diff --git a/baystation12.dme b/baystation12.dme index 57a993230e8..79f0e2de777 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -6,14 +6,235 @@ // BEGIN_FILE_DIR #define FILE_DIR . #define FILE_DIR "code" +#define FILE_DIR "code/__HELPERS" +#define FILE_DIR "code/ATMOSPHERICS" +#define FILE_DIR "code/ATMOSPHERICS/components" +#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/unary" +#define FILE_DIR "code/controllers" +#define FILE_DIR "code/datums" +#define FILE_DIR "code/datums/diseases" +#define FILE_DIR "code/datums/diseases/advance" +#define FILE_DIR "code/datums/diseases/advance/symptoms" +#define FILE_DIR "code/datums/helper_datums" +#define FILE_DIR "code/datums/spells" +#define FILE_DIR "code/defines" +#define FILE_DIR "code/defines/obj" +#define FILE_DIR "code/defines/procs" +#define FILE_DIR "code/FEA" +#define FILE_DIR "code/game" +#define FILE_DIR "code/game/area" +#define FILE_DIR "code/game/gamemodes" +#define FILE_DIR "code/game/gamemodes/autotraitor" +#define FILE_DIR "code/game/gamemodes/blob" +#define FILE_DIR "code/game/gamemodes/blob/blobs" +#define FILE_DIR "code/game/gamemodes/changeling" +#define FILE_DIR "code/game/gamemodes/cult" +#define FILE_DIR "code/game/gamemodes/epidemic" +#define FILE_DIR "code/game/gamemodes/events" +#define FILE_DIR "code/game/gamemodes/events/holidays" +#define FILE_DIR "code/game/gamemodes/extended" +#define FILE_DIR "code/game/gamemodes/malfunction" +#define FILE_DIR "code/game/gamemodes/meme" +#define FILE_DIR "code/game/gamemodes/meteor" +#define FILE_DIR "code/game/gamemodes/nuclear" +#define FILE_DIR "code/game/gamemodes/revolution" +#define FILE_DIR "code/game/gamemodes/sandbox" +#define FILE_DIR "code/game/gamemodes/traitor" +#define FILE_DIR "code/game/gamemodes/wizard" +#define FILE_DIR "code/game/jobs" +#define FILE_DIR "code/game/jobs/job" +#define FILE_DIR "code/game/machinery" +#define FILE_DIR "code/game/machinery/atmoalter" +#define FILE_DIR "code/game/machinery/bots" +#define FILE_DIR "code/game/machinery/camera" +#define FILE_DIR "code/game/machinery/computer" +#define FILE_DIR "code/game/machinery/doors" +#define FILE_DIR "code/game/machinery/embedded_controller" +#define FILE_DIR "code/game/machinery/kitchen" +#define FILE_DIR "code/game/machinery/pipe" +#define FILE_DIR "code/game/machinery/telecomms" +#define FILE_DIR "code/game/magic" +#define FILE_DIR "code/game/mecha" +#define FILE_DIR "code/game/mecha/combat" +#define FILE_DIR "code/game/mecha/equipment" +#define FILE_DIR "code/game/mecha/equipment/tools" +#define FILE_DIR "code/game/mecha/equipment/weapons" +#define FILE_DIR "code/game/mecha/medical" +#define FILE_DIR "code/game/mecha/working" +#define FILE_DIR "code/game/objects" +#define FILE_DIR "code/game/objects/closets" +#define FILE_DIR "code/game/objects/closets/secure" +#define FILE_DIR "code/game/objects/effects" +#define FILE_DIR "code/game/objects/effects/decals" +#define FILE_DIR "code/game/objects/effects/decals/Cleanable" +#define FILE_DIR "code/game/objects/effects/spawners" +#define FILE_DIR "code/game/objects/items" +#define FILE_DIR "code/game/objects/items/devices" +#define FILE_DIR "code/game/objects/items/devices/PDA" +#define FILE_DIR "code/game/objects/items/devices/radio" +#define FILE_DIR "code/game/objects/items/robot" +#define FILE_DIR "code/game/objects/items/stacks" +#define FILE_DIR "code/game/objects/items/stacks/sheets" +#define FILE_DIR "code/game/objects/items/stacks/tiles" +#define FILE_DIR "code/game/objects/items/weapons" +#define FILE_DIR "code/game/objects/items/weapons/grenades" +#define FILE_DIR "code/game/objects/items/weapons/implants" +#define FILE_DIR "code/game/objects/items/weapons/melee" +#define FILE_DIR "code/game/objects/items/weapons/storage" +#define FILE_DIR "code/game/objects/items/weapons/tanks" +#define FILE_DIR "code/game/objects/storage" +#define FILE_DIR "code/game/objects/structures" +#define FILE_DIR "code/game/objects/structures/crates_lockers" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" +#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" +#define FILE_DIR "code/game/structure" +#define FILE_DIR "code/game/turfs" +#define FILE_DIR "code/game/turfs/simulated" +#define FILE_DIR "code/game/turfs/space" +#define FILE_DIR "code/game/turfs/unsimulated" +#define FILE_DIR "code/game/vehicles" +#define FILE_DIR "code/game/verbs" +#define FILE_DIR "code/js" +#define FILE_DIR "code/modules" +#define FILE_DIR "code/modules/admin" +#define FILE_DIR "code/modules/admin/DB ban" +#define FILE_DIR "code/modules/admin/permissionverbs" +#define FILE_DIR "code/modules/admin/verbs" +#define FILE_DIR "code/modules/assembly" +#define FILE_DIR "code/modules/awaymissions" +#define FILE_DIR "code/modules/awaymissions/maploader" +#define FILE_DIR "code/modules/client" +#define FILE_DIR "code/modules/clothing" +#define FILE_DIR "code/modules/clothing/glasses" +#define FILE_DIR "code/modules/clothing/gloves" +#define FILE_DIR "code/modules/clothing/head" +#define FILE_DIR "code/modules/clothing/masks" +#define FILE_DIR "code/modules/clothing/shoes" +#define FILE_DIR "code/modules/clothing/spacesuits" +#define FILE_DIR "code/modules/clothing/suits" +#define FILE_DIR "code/modules/clothing/under" +#define FILE_DIR "code/modules/clothing/under/jobs" +#define FILE_DIR "code/modules/customitems" +#define FILE_DIR "code/modules/destilery" +#define FILE_DIR "code/modules/DetectiveWork" +#define FILE_DIR "code/modules/events" +#define FILE_DIR "code/modules/flufftext" +#define FILE_DIR "code/modules/food" +#define FILE_DIR "code/modules/genetics" +#define FILE_DIR "code/modules/icon generation" +#define FILE_DIR "code/modules/library" +#define FILE_DIR "code/modules/liquid" +#define FILE_DIR "code/modules/maps" +#define FILE_DIR "code/modules/mining" +#define FILE_DIR "code/modules/mob" +#define FILE_DIR "code/modules/mob/dead" +#define FILE_DIR "code/modules/mob/dead/observer" +#define FILE_DIR "code/modules/mob/living" +#define FILE_DIR "code/modules/mob/living/blob" +#define FILE_DIR "code/modules/mob/living/carbon" +#define FILE_DIR "code/modules/mob/living/carbon/alien" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" +#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" +#define FILE_DIR "code/modules/mob/living/carbon/alien/special" +#define FILE_DIR "code/modules/mob/living/carbon/brain" +#define FILE_DIR "code/modules/mob/living/carbon/human" +#define FILE_DIR "code/modules/mob/living/carbon/metroid" +#define FILE_DIR "code/modules/mob/living/carbon/monkey" +#define FILE_DIR "code/modules/mob/living/silicon" +#define FILE_DIR "code/modules/mob/living/silicon/ai" +#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" +#define FILE_DIR "code/modules/mob/living/silicon/decoy" +#define FILE_DIR "code/modules/mob/living/silicon/pai" +#define FILE_DIR "code/modules/mob/living/silicon/robot" +#define FILE_DIR "code/modules/mob/living/simple_animal" +#define FILE_DIR "code/modules/mob/living/simple_animal/friendly" +#define FILE_DIR "code/modules/mob/living/simple_animal/hostile" +#define FILE_DIR "code/modules/mob/living/simple_animal/hostile/retaliate" +#define FILE_DIR "code/modules/mob/new_player" +#define FILE_DIR "code/modules/organs" +#define FILE_DIR "code/modules/paperwork" +#define FILE_DIR "code/modules/power" +#define FILE_DIR "code/modules/power/antimatter" +#define FILE_DIR "code/modules/power/singularity" +#define FILE_DIR "code/modules/power/singularity/particle_accelerator" +#define FILE_DIR "code/modules/projectiles" +#define FILE_DIR "code/modules/projectiles/ammunition" +#define FILE_DIR "code/modules/projectiles/guns" +#define FILE_DIR "code/modules/projectiles/guns/energy" +#define FILE_DIR "code/modules/projectiles/guns/projectile" +#define FILE_DIR "code/modules/projectiles/projectile" +#define FILE_DIR "code/modules/reagents" +#define FILE_DIR "code/modules/reagents/reagent_containers" +#define FILE_DIR "code/modules/reagents/reagent_containers/food" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" +#define FILE_DIR "code/modules/recycling" +#define FILE_DIR "code/modules/research" +#define FILE_DIR "code/modules/research/xenoarchaeology" +#define FILE_DIR "code/modules/research/xenoarchaeology/artifact" +#define FILE_DIR "code/modules/research/xenoarchaeology/artifact/effects" +#define FILE_DIR "code/modules/research/xenoarchaeology/finds" +#define FILE_DIR "code/modules/research/xenoarchaeology/machinery" +#define FILE_DIR "code/modules/research/xenoarchaeology/tools" +#define FILE_DIR "code/modules/scripting" +#define FILE_DIR "code/modules/scripting/AST" +#define FILE_DIR "code/modules/scripting/AST/Operators" +#define FILE_DIR "code/modules/scripting/Implementations" +#define FILE_DIR "code/modules/scripting/Interpreter" +#define FILE_DIR "code/modules/scripting/Parser" +#define FILE_DIR "code/modules/scripting/Scanner" +#define FILE_DIR "code/modules/security levels" +#define FILE_DIR "code/modules/surgery" #define FILE_DIR "code/TriDimension" +#define FILE_DIR "code/unused" +#define FILE_DIR "code/unused/beast" +#define FILE_DIR "code/unused/computer2" +#define FILE_DIR "code/unused/disease2" +#define FILE_DIR "code/unused/gamemodes" +#define FILE_DIR "code/unused/hivebot" +#define FILE_DIR "code/unused/mining" +#define FILE_DIR "code/unused/optics" +#define FILE_DIR "code/unused/pda2" +#define FILE_DIR "code/unused/powerarmor" +#define FILE_DIR "code/unused/spacecraft" #define FILE_DIR "code/WorkInProgress" +#define FILE_DIR "code/WorkInProgress/AI_Visibility" +#define FILE_DIR "code/WorkInProgress/animusstation" +#define FILE_DIR "code/WorkInProgress/Apples" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn" +#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Economy" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" +#define FILE_DIR "code/WorkInProgress/carn" +#define FILE_DIR "code/WorkInProgress/Chinsky" +#define FILE_DIR "code/WorkInProgress/Cib" +#define FILE_DIR "code/WorkInProgress/Cib/amorph" +#define FILE_DIR "code/WorkInProgress/Mini" +#define FILE_DIR "code/WorkInProgress/Mloc" +#define FILE_DIR "code/WorkInProgress/organs" +#define FILE_DIR "code/WorkInProgress/Ported" +#define FILE_DIR "code/WorkInProgress/Ported/Abi79" +#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy" +#define FILE_DIR "code/WorkInProgress/Ported/Spawners" +#define FILE_DIR "code/WorkInProgress/Sigyn" +#define FILE_DIR "code/WorkInProgress/Sigyn/Department Sec" +#define FILE_DIR "code/WorkInProgress/Sigyn/Softcurity" +#define FILE_DIR "code/WorkInProgress/SkyMarshal" #define FILE_DIR "code/WorkInProgress/Susan" +#define FILE_DIR "code/WorkInProgress/Tastyfish" +#define FILE_DIR "code/WorkInProgress/virus2" +#define FILE_DIR "code/WorkInProgress/virus2/Disease2" +#define FILE_DIR "code/WorkInProgress/Wrongnumber" +#define FILE_DIR "code/ZAS" #define FILE_DIR "html" #define FILE_DIR "icons" #define FILE_DIR "icons/48x48" @@ -36,6 +257,9 @@ #define FILE_DIR "icons/turf" #define FILE_DIR "icons/vending_icons" #define FILE_DIR "icons/xenoarch_icons" +#define FILE_DIR "interface" +#define FILE_DIR "maps" +#define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" #define FILE_DIR "sound/ambience" @@ -51,7 +275,10 @@ #define FILE_DIR "sound/piano" #define FILE_DIR "sound/violin" #define FILE_DIR "sound/voice" +#define FILE_DIR "sound/voice/Serithi" #define FILE_DIR "sound/weapons" +#define FILE_DIR "tools" +#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES #define DEBUG @@ -478,6 +705,7 @@ #include "code\game\objects\items\trash.dm" #include "code\game\objects\items\devices\aicard.dm" #include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\flash.dm" #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\lightreplacer.dm" @@ -785,7 +1013,7 @@ #include "code\modules\DetectiveWork\detective_work.dm" #include "code\modules\DetectiveWork\evidence.dm" #include "code\modules\DetectiveWork\footprints_and_rag.dm" -#include "code\modules\DetectiveWork\scanner.dm" +#include "code\modules\detectivework\scanner.dm" #include "code\modules\events\alien_infestation.dm" #include "code\modules\events\blob.dm" #include "code\modules\events\brand_intelligence.dm" @@ -804,6 +1032,7 @@ #include "code\modules\events\money_hacker.dm" #include "code\modules\events\money_lotto.dm" #include "code\modules\events\money_spam.dm" +#include "code\modules\events\organ_failure.dm" #include "code\modules\events\prison_break.dm" #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\rogue_drones.dm" @@ -813,6 +1042,7 @@ #include "code\modules\events\spontaneous_appendicitis.dm" #include "code\modules\events\viral_infection.dm" #include "code\modules\events\viral_outbreak.dm" +#include "code\modules\events\wallrot.dm" #include "code\modules\flufftext\Dreaming.dm" #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" @@ -834,6 +1064,7 @@ #include "code\modules\mining\ores_coins.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mob\death.dm" +#include "code\modules\mob\emote.dm" #include "code\modules\mob\inventory.dm" #include "code\modules\mob\login.dm" #include "code\modules\mob\logout.dm" @@ -1245,6 +1476,7 @@ #include "code\WorkInProgress\autopsy.dm" #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" +#include "code\WorkInProgress\periodic_news.dm" #include "code\WorkInProgress\Cael_Aislinn\meteor_battery.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Accounts.dm" @@ -1275,6 +1507,7 @@ #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_compressor_construction.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_control.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\fuel_injector.dm" +#include "code\WorkInProgress\Cael_Aislinn\Rust\fusion_reactions.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\gyrotron_controller.dm" #include "code\WorkInProgress\Cael_Aislinn\Rust\radiation.dm" diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index 1425ed8d776..0ac8ab62997 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -1,14 +1,6 @@ //node1, air1, network1 correspond to input //node2, air2, network2 correspond to output -#define CIRCULATOR_MIN_PRESSURE 10 //KPA to move the mechanism -#define CIRCULATOR_VOLUME 100 //Litres -#define CIRCULATOR_EFFICIENCY 0.65 //Out of 1. - -#define TURBINE_EFFICIENCY 0.1 //Uses more power than is generated. -#define TURBINE_PRESSURE_DIFFERENCE 20 //Simulates a 20KPa difference -#define GENRATE 800 - /obj/machinery/atmospherics/binary/circulator name = "circulator/heat exchanger" desc = "A gas circulator pump and heat exchanger." @@ -16,97 +8,60 @@ icon_state = "circ-off" anchored = 0 - //var/side = 1 // 1=left 2=right - var/status = 0 - - var/datum/gas_mixture/gas_contents + var/recent_moles_transferred = 0 + var/last_heat_capacity = 0 + var/last_temperature = 0 var/last_pressure_delta = 0 - var/turbine_pumping = 0 //For when there is not enough pressure difference and we need to induce one or something. - var/last_power_generation = 0 + var/last_worldtime_transfer = 0 density = 1 /obj/machinery/atmospherics/binary/circulator/New() ..() desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]." - gas_contents = new - gas_contents.volume = CIRCULATOR_VOLUME - /obj/machinery/atmospherics/binary/circulator/proc/return_transfer_air() - if(!anchored) - return null + var/datum/gas_mixture/removed + if(anchored && !(stat&BROKEN) ) + var/input_starting_pressure = air1.return_pressure() + var/output_starting_pressure = air2.return_pressure() + last_pressure_delta = max(input_starting_pressure - output_starting_pressure + 10, 0) - var/output_starting_pressure = air2.return_pressure() - var/input_starting_pressure = air1.return_pressure() - var/internal_gas_pressure = gas_contents.return_pressure() + //only circulate air if there is a pressure difference (plus 10 kPa to represent friction in the machine) + if(air1.temperature > 0 && last_pressure_delta > 0) - var/intake_pressure_delta = input_starting_pressure - internal_gas_pressure - var/output_pressure_delta = internal_gas_pressure - output_starting_pressure + //Calculate necessary moles to transfer using PV = nRT + recent_moles_transferred = last_pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - var/pressure_delta = max(intake_pressure_delta, output_pressure_delta, 0) + //Actually transfer the gas + removed = air1.remove(recent_moles_transferred) + if(removed) + last_heat_capacity = removed.heat_capacity() + last_temperature = removed.temperature - last_power_generation = 0 - //If the turbine is running, we need to consider that. - if(turbine_pumping) - //Make it use powah - if(pressure_delta < TURBINE_PRESSURE_DIFFERENCE) - last_power_generation = (pressure_delta - TURBINE_PRESSURE_DIFFERENCE)*(1/TURBINE_EFFICIENCY) - pressure_delta = TURBINE_PRESSURE_DIFFERENCE + //Update the gas networks. + if(network1) + network1.update = 1 - //If the force is already above what the turbine can do, shut it off and generate power instead! + last_worldtime_transfer = world.time else - turbine_pumping = 0 - - //Calculate necessary moles to transfer using PV = nRT - if(air1.temperature > 0) - - var/transfer_moles = pressure_delta*gas_contents.volume/(air1.temperature * R_IDEAL_GAS_EQUATION) - - last_pressure_delta = pressure_delta - - //Actually transfer the gas - //Internal to output. - air2.merge(gas_contents.remove(transfer_moles)) - - //Intake to internal. - gas_contents.merge(air1.remove(transfer_moles)) - - //Update the gas networks. - if(network1) - network1.update = 1 - - if(network2) - network2.update = 1 - - else - last_pressure_delta = 0 - - //Needs at least 10 KPa difference to move the mechanism and make power - if(pressure_delta < CIRCULATOR_MIN_PRESSURE) - last_pressure_delta = 0 - - last_power_generation += pressure_delta*CIRCULATOR_EFFICIENCY - - return gas_contents - - - -//Used by the TEG to know how much power to use/produce. -/obj/machinery/atmospherics/binary/circulator/proc/ReturnPowerGeneration() - return GENRATE*last_power_generation + recent_moles_transferred = 0 + update_icon() + return removed /obj/machinery/atmospherics/binary/circulator/process() ..() - update_icon() + if(last_worldtime_transfer < world.time - 50) + recent_moles_transferred = 0 + update_icon() /obj/machinery/atmospherics/binary/circulator/update_icon() if(stat & (BROKEN|NOPOWER) || !anchored) icon_state = "circ-p" - else if(last_pressure_delta > 0) - if(last_pressure_delta > ONE_ATMOSPHERE) + else if(last_pressure_delta > 0 && recent_moles_transferred > 0) + if(last_pressure_delta > 5*ONE_ATMOSPHERE) icon_state = "circ-run" else icon_state = "circ-slow" diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm index ac09a7c2ce6..c2ae804a5d2 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm @@ -130,207 +130,202 @@ desc = "a mysterious and ancient piece of machinery" var/list/animal_spawners = list() - New() - ..() - Initialise() -/obj/machinery/jungle_controller/proc/Initialise() - set background = 1 - spawn(0) - world << "\red \b Setting up jungle, this may take a moment..." +/obj/machinery/jungle_controller/initialize() + world << "\red \b Setting up jungle, this may take a bleeding eternity..." - //crash dat shuttle - var/area/start_location = locate(/area/jungle/crash_ship_source) - var/area/clean_location = locate(/area/jungle/crash_ship_clean) - var/list/ship_locations = list(/area/jungle/crash_ship_one, /area/jungle/crash_ship_two, /area/jungle/crash_ship_three, /area/jungle/crash_ship_four) - var/area/end_location = locate( pick(ship_locations) ) - ship_locations -= end_location.type + //crash dat shuttle + var/area/start_location = locate(/area/jungle/crash_ship_source) + var/area/clean_location = locate(/area/jungle/crash_ship_clean) + var/list/ship_locations = list(/area/jungle/crash_ship_one, /area/jungle/crash_ship_two, /area/jungle/crash_ship_three, /area/jungle/crash_ship_four) + var/area/end_location = locate( pick(ship_locations) ) + ship_locations -= end_location.type - start_location.move_contents_to(end_location) - for(var/area_type in ship_locations) - var/area/cur_location = locate(area_type) - clean_location.copy_turfs_to(cur_location) + start_location.move_contents_to(end_location) + for(var/area_type in ship_locations) + var/area/cur_location = locate(area_type) + clean_location.copy_turfs_to(cur_location) - //drop some random river nodes - var/list/river_nodes = list() - var/max = rand(1,3) - var/num_spawned = 0 - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!istype(J)) - continue - if(!J.bushes_spawn) - continue - river_nodes.Add(new /obj/effect/landmark/river_waypoint(J)) - num_spawned++ + //drop some random river nodes + var/list/river_nodes = list() + var/max = rand(1,3) + var/num_spawned = 0 + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!istype(J)) + continue + if(!J.bushes_spawn) + continue + river_nodes.Add(new /obj/effect/landmark/river_waypoint(J)) + num_spawned++ - //make some randomly pathing rivers - for(var/obj/effect/landmark/river_waypoint/W in world) - if (W.z != src.z || W.connected) - continue + //make some randomly pathing rivers + for(var/obj/effect/landmark/river_waypoint/W in world) + if (W.z != src.z || W.connected) + continue - W.connected = 1 - var/turf/cur_turf = new /turf/unsimulated/jungle/water(get_turf(W)) - var/turf/target_turf = get_turf(pick(river_nodes)) + W.connected = 1 + var/turf/cur_turf = new /turf/unsimulated/jungle/water(get_turf(W)) + var/turf/target_turf = get_turf(pick(river_nodes)) - var/detouring = 0 - var/cur_dir = get_dir(cur_turf, target_turf) - // - while(cur_turf != target_turf) - //randomly snake around a bit - if(detouring) - if(prob(20)) - detouring = 0 - cur_dir = get_dir(cur_turf, target_turf) - else if(prob(20)) - detouring = 1 - if(prob(50)) - cur_dir = turn(cur_dir, 45) - else - cur_dir = turn(cur_dir, -45) - else - cur_dir = get_dir(cur_turf, target_turf) - - cur_turf = get_step(cur_turf, cur_dir) - - var/skip = 0 - if(!istype(cur_turf, /turf/unsimulated/jungle) || istype(cur_turf, /turf/unsimulated/jungle/rock)) + var/detouring = 0 + var/cur_dir = get_dir(cur_turf, target_turf) + // + while(cur_turf != target_turf) + //randomly snake around a bit + if(detouring) + if(prob(20)) detouring = 0 cur_dir = get_dir(cur_turf, target_turf) - cur_turf = get_step(cur_turf, cur_dir) - continue - - if(!skip) - var/turf/unsimulated/jungle/water/water_turf = new(cur_turf) - water_turf.Spread(75, rand(65, 25)) - - var/list/path_nodes = list() - - //place some ladders leading down to pre-generated temples - max = rand(2,5) - num_spawned = 0 - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !J.bushes_spawn) - continue - new /obj/effect/landmark/temple(J) - path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) - num_spawned++ - - //put a native tribe somewhere - num_spawned = 0 - while(num_spawned < 1) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !J.bushes_spawn) - continue - new /obj/effect/jungle_tribe_spawn(J) - path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) - num_spawned++ - - //place some random path waypoints to confuse players - max = rand(1,3) - num_spawned = 0 - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !J.bushes_spawn) - continue - path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) - num_spawned++ - - //get any path nodes placed on the map - for(var/obj/effect/landmark/path_waypoint/W in world) - if (W.z == src.z) - path_nodes.Add(W) - - //make random, connecting paths - for(var/obj/effect/landmark/path_waypoint/W in path_nodes) - if (W.connected) - continue - - W.connected = 1 - var/turf/cur_turf = get_turf(W) - path_nodes.Remove(W) - var/turf/target_turf = get_turf(pick(path_nodes)) - path_nodes.Add(W) - // - cur_turf = new /turf/unsimulated/jungle/path(cur_turf) - - var/detouring = 0 - var/cur_dir = get_dir(cur_turf, target_turf) - // - while(cur_turf != target_turf) - //randomly snake around a bit - if(detouring) - if(prob(20) || get_dist(cur_turf, target_turf) < 5) - detouring = 0 - cur_dir = get_dir(cur_turf, target_turf) - else if(prob(20) && get_dist(cur_turf, target_turf) > 5) - detouring = 1 - if(prob(50)) - cur_dir = turn(cur_dir, 45) - else - cur_dir = turn(cur_dir, -45) + else if(prob(20)) + detouring = 1 + if(prob(50)) + cur_dir = turn(cur_dir, 45) else - cur_dir = get_dir(cur_turf, target_turf) + cur_dir = turn(cur_dir, -45) + else + cur_dir = get_dir(cur_turf, target_turf) - //move a step forward + cur_turf = get_step(cur_turf, cur_dir) + + var/skip = 0 + if(!istype(cur_turf, /turf/unsimulated/jungle) || istype(cur_turf, /turf/unsimulated/jungle/rock)) + detouring = 0 + cur_dir = get_dir(cur_turf, target_turf) cur_turf = get_step(cur_turf, cur_dir) + continue - //if we're not a jungle turf, get back to what we were doing - if(!istype(cur_turf, /turf/unsimulated/jungle/)) + if(!skip) + var/turf/unsimulated/jungle/water/water_turf = new(cur_turf) + water_turf.Spread(75, rand(65, 25)) + + var/list/path_nodes = list() + + //place some ladders leading down to pre-generated temples + max = rand(2,5) + num_spawned = 0 + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !J.bushes_spawn) + continue + new /obj/effect/landmark/temple(J) + path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) + num_spawned++ + + //put a native tribe somewhere + num_spawned = 0 + while(num_spawned < 1) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !J.bushes_spawn) + continue + new /obj/effect/jungle_tribe_spawn(J) + path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) + num_spawned++ + + //place some random path waypoints to confuse players + max = rand(1,3) + num_spawned = 0 + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !J.bushes_spawn) + continue + path_nodes.Add(new /obj/effect/landmark/path_waypoint(J)) + num_spawned++ + + //get any path nodes placed on the map + for(var/obj/effect/landmark/path_waypoint/W in world) + if (W.z == src.z) + path_nodes.Add(W) + + //make random, connecting paths + for(var/obj/effect/landmark/path_waypoint/W in path_nodes) + if (W.connected) + continue + + W.connected = 1 + var/turf/cur_turf = get_turf(W) + path_nodes.Remove(W) + var/turf/target_turf = get_turf(pick(path_nodes)) + path_nodes.Add(W) + // + cur_turf = new /turf/unsimulated/jungle/path(cur_turf) + + var/detouring = 0 + var/cur_dir = get_dir(cur_turf, target_turf) + // + while(cur_turf != target_turf) + //randomly snake around a bit + if(detouring) + if(prob(20) || get_dist(cur_turf, target_turf) < 5) + detouring = 0 cur_dir = get_dir(cur_turf, target_turf) - cur_turf = get_step(cur_turf, cur_dir) - continue + else if(prob(20) && get_dist(cur_turf, target_turf) > 5) + detouring = 1 + if(prob(50)) + cur_dir = turn(cur_dir, 45) + else + cur_dir = turn(cur_dir, -45) + else + cur_dir = get_dir(cur_turf, target_turf) - var/turf/unsimulated/jungle/J = cur_turf - if(istype(J, /turf/unsimulated/jungle/impenetrable) || istype(J, /turf/unsimulated/jungle/water/deep)) - cur_dir = get_dir(cur_turf, target_turf) - cur_turf = get_step(cur_turf, cur_dir) - continue + //move a step forward + cur_turf = get_step(cur_turf, cur_dir) - if(!istype(J, /turf/unsimulated/jungle/water)) - J = new /turf/unsimulated/jungle/path(cur_turf) - J.Spread(PATH_SPREAD_CHANCE_START, rand(PATH_SPREAD_CHANCE_LOSS_UPPER, PATH_SPREAD_CHANCE_LOSS_LOWER)) - - //create monkey spawners - num_spawned = 0 - max = rand(3,6) - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !J.bushes_spawn) + //if we're not a jungle turf, get back to what we were doing + if(!istype(cur_turf, /turf/unsimulated/jungle/)) + cur_dir = get_dir(cur_turf, target_turf) + cur_turf = get_step(cur_turf, cur_dir) continue - animal_spawners.Add(new /obj/effect/landmark/animal_spawner/monkey(J)) - num_spawned++ - //create panther spawners - num_spawned = 0 - max = rand(6,12) - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !istype(J) || !J.bushes_spawn) + var/turf/unsimulated/jungle/J = cur_turf + if(istype(J, /turf/unsimulated/jungle/impenetrable) || istype(J, /turf/unsimulated/jungle/water/deep)) + cur_dir = get_dir(cur_turf, target_turf) + cur_turf = get_step(cur_turf, cur_dir) continue - animal_spawners.Add(new /obj/effect/landmark/animal_spawner/panther(J)) - num_spawned++ - //create snake spawners - num_spawned = 0 - max = rand(6,12) - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !istype(J) || !J.bushes_spawn) - continue - animal_spawners.Add(new /obj/effect/landmark/animal_spawner/snake(J)) - num_spawned++ + if(!istype(J, /turf/unsimulated/jungle/water)) + J = new /turf/unsimulated/jungle/path(cur_turf) + J.Spread(PATH_SPREAD_CHANCE_START, rand(PATH_SPREAD_CHANCE_LOSS_UPPER, PATH_SPREAD_CHANCE_LOSS_LOWER)) - //create parrot spawners - num_spawned = 0 - max = rand(3,6) - while(num_spawned < max) - var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) - if(!J || !istype(J) || !J.bushes_spawn) - continue - animal_spawners.Add(new /obj/effect/landmark/animal_spawner/parrot(J)) - num_spawned++ + //create monkey spawners + num_spawned = 0 + max = rand(3,6) + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !J.bushes_spawn) + continue + animal_spawners.Add(new /obj/effect/landmark/animal_spawner/monkey(J)) + num_spawned++ + + //create panther spawners + num_spawned = 0 + max = rand(6,12) + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !istype(J) || !J.bushes_spawn) + continue + animal_spawners.Add(new /obj/effect/landmark/animal_spawner/panther(J)) + num_spawned++ + + //create snake spawners + num_spawned = 0 + max = rand(6,12) + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !istype(J) || !J.bushes_spawn) + continue + animal_spawners.Add(new /obj/effect/landmark/animal_spawner/snake(J)) + num_spawned++ + + //create parrot spawners + num_spawned = 0 + max = rand(3,6) + while(num_spawned < max) + var/turf/unsimulated/jungle/J = locate(rand(RANDOM_LOWER_X, RANDOM_UPPER_X), rand(RANDOM_LOWER_Y, RANDOM_UPPER_Y), src.z) + if(!J || !istype(J) || !J.bushes_spawn) + continue + animal_spawners.Add(new /obj/effect/landmark/animal_spawner/parrot(J)) + num_spawned++ #undef PATH_SPREAD_CHANCE_START #undef PATH_SPREAD_CHANCE_LOSS_UPPER diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm index 666d6cb3559..357b4277f84 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm @@ -163,11 +163,11 @@ Deuterium-tritium fusion: 4.5 x 10^7 K React() //forcibly radiate any excess energy - var/energy_max = transfer_ratio * 100000 + /*var/energy_max = transfer_ratio * 100000 if(mega_energy > energy_max) var/energy_lost = rand( 1.5 * (mega_energy - energy_max), 2.5 * (mega_energy - energy_max) ) mega_energy -= energy_lost - radiation += energy_lost + radiation += energy_lost*/ //change held plasma temp according to energy levels //SPECIFIC_HEAT_TOXIN @@ -200,12 +200,14 @@ Deuterium-tritium fusion: 4.5 x 10^7 K //held_plasma.update_values() //handle some reactants formatting - //helium-4 has no use at the moment, but a buttload of it is produced - if(dormant_reactant_quantities["Helium-4"] > 1000) - dormant_reactant_quantities["Helium-4"] = rand(0,dormant_reactant_quantities["Helium-4"]) for(var/reactant in dormant_reactant_quantities) - if(!dormant_reactant_quantities[reactant]) + var/amount = dormant_reactant_quantities[reactant] + if(amount < 1) dormant_reactant_quantities.Remove(reactant) + else if(amount >= 1000000) + var/radiate = rand(3 * amount / 4, amount / 4) + dormant_reactant_quantities[reactant] -= radiate + radiation += radiate return 1 @@ -236,6 +238,10 @@ Deuterium-tritium fusion: 4.5 x 10^7 K energy += a_energy - a_energy * energy_loss_ratio mega_energy += a_mega_energy - a_mega_energy * energy_loss_ratio + while(energy > 100000) + energy -= 100000 + mega_energy += 0.1 + /obj/effect/rust_em_field/proc/AddParticles(var/name, var/quantity = 1) if(name in dormant_reactant_quantities) dormant_reactant_quantities[name] += quantity @@ -296,9 +302,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K return changed //the !!fun!! part -//reactions have to be individually hardcoded, see AttemptReaction() below this /obj/effect/rust_em_field/proc/React() - //world << "React()" //loop through the reactants in random order var/list/reactants_reacting_pool = dormant_reactant_quantities.Copy() /* @@ -316,8 +320,8 @@ Deuterium-tritium fusion: 4.5 x 10^7 K if(!reactants_reacting_pool[reactant]) reactants_reacting_pool -= reactant - var/list/produced_reactants = new/list //loop through all the reacting reagents, picking out random reactions for them + var/list/produced_reactants = new/list var/list/primary_reactant_pool = reactants_reacting_pool.Copy() while(primary_reactant_pool.len) //pick one of the unprocessed reacting reagents randomly @@ -331,95 +335,80 @@ Deuterium-tritium fusion: 4.5 x 10^7 K possible_secondary_reactants[cur_primary_reactant] -= 1 if(possible_secondary_reactants[cur_primary_reactant] < 1) possible_secondary_reactants.Remove(cur_primary_reactant) - var/list/possible_reactions = new/list //loop through and work out all the possible reactions - while(possible_secondary_reactants.len) - var/cur_secondary_reactant = pick(possible_secondary_reactants) + var/list/possible_reactions = new/list + for(var/cur_secondary_reactant in possible_secondary_reactants) if(possible_secondary_reactants[cur_secondary_reactant] < 1) - possible_secondary_reactants.Remove(cur_secondary_reactant) continue - possible_secondary_reactants.Remove(cur_secondary_reactant) - var/list/reaction_products = AttemptReaction(cur_primary_reactant, cur_secondary_reactant) - if(reaction_products.len) + var/datum/fusion_reaction/cur_reaction = get_fusion_reaction(cur_primary_reactant, cur_secondary_reactant) + if(cur_reaction) //world << "\blue secondary reactant: [cur_secondary_reactant], [reaction_products.len]" - possible_reactions[cur_secondary_reactant] = reaction_products + possible_reactions.Add(cur_reaction) + //if there are no possible reactions here, abandon this primary reactant and move on if(!possible_reactions.len) //world << "\blue no reactions" continue //split up the reacting atoms between the possible reactions - //the problem is in this while statement below while(possible_reactions.len) - //pick another substance to react with - var/cur_secondary_reactant = pick(possible_reactions) - if(!reactants_reacting_pool[cur_secondary_reactant]) - possible_reactions.Remove(cur_secondary_reactant) - continue - var/list/cur_reaction_products = possible_reactions[cur_secondary_reactant] + //pick a random substance to react with + var/datum/fusion_reaction/cur_reaction = pick(possible_reactions) + possible_reactions.Remove(cur_reaction) //set the randmax to be the lower of the two involved reactants - var/max_num_reactants = reactants_reacting_pool[cur_primary_reactant] > reactants_reacting_pool[cur_secondary_reactant] ? reactants_reacting_pool[cur_secondary_reactant] : reactants_reacting_pool[cur_primary_reactant] + var/max_num_reactants = reactants_reacting_pool[cur_reaction.primary_reactant] > reactants_reacting_pool[cur_reaction.secondary_reactant] ? \ + reactants_reacting_pool[cur_reaction.secondary_reactant] : reactants_reacting_pool[cur_reaction.primary_reactant] + if(max_num_reactants < 1) + continue //make sure we have enough energy - if( mega_energy < max_num_reactants*cur_reaction_products["consumption"]) - max_num_reactants = round(mega_energy / cur_reaction_products["consumption"]) + if(mega_energy < max_num_reactants * cur_reaction.energy_consumption) + max_num_reactants = round(mega_energy / cur_reaction.energy_consumption) + if(max_num_reactants < 1) + continue //randomly determined amount to react var/amount_reacting = rand(1, max_num_reactants) //removing the reacting substances from the list of substances that are primed to react this cycle //if there aren't enough of that substance (there should be) then modify the reactant amounts accordingly - if( reactants_reacting_pool[cur_primary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_primary_reactant] -= amount_reacting + if( reactants_reacting_pool[cur_reaction.primary_reactant] - amount_reacting >= 0 ) + reactants_reacting_pool[cur_reaction.primary_reactant] -= amount_reacting else - amount_reacting = reactants_reacting_pool[cur_primary_reactant] - reactants_reacting_pool[cur_primary_reactant] = 0 - // - if( reactants_reacting_pool[cur_secondary_reactant] - amount_reacting > -1 ) - reactants_reacting_pool[cur_secondary_reactant] -= amount_reacting + amount_reacting = reactants_reacting_pool[cur_reaction.primary_reactant] + reactants_reacting_pool[cur_reaction.primary_reactant] = 0 + //same again for secondary reactant + if( reactants_reacting_pool[cur_reaction.secondary_reactant] - amount_reacting >= 0 ) + reactants_reacting_pool[cur_reaction.secondary_reactant] -= amount_reacting else - reactants_reacting_pool[cur_primary_reactant] += amount_reacting - reactants_reacting_pool[cur_primary_reactant] - amount_reacting = reactants_reacting_pool[cur_secondary_reactant] - reactants_reacting_pool[cur_secondary_reactant] = 0 + reactants_reacting_pool[cur_reaction.primary_reactant] += amount_reacting - reactants_reacting_pool[cur_reaction.primary_reactant] + amount_reacting = reactants_reacting_pool[cur_reaction.secondary_reactant] + reactants_reacting_pool[cur_reaction.secondary_reactant] = 0 //remove the consumed energy - if(cur_reaction_products["consumption"]) - mega_energy -= max_num_reactants * cur_reaction_products["consumption"] - cur_reaction_products.Remove("consumption") + mega_energy -= max_num_reactants * cur_reaction.energy_consumption - //grab any radiation and put it separate - //var/new_radiation = 0 - if("production" in cur_reaction_products) - mega_energy += max_num_reactants * cur_reaction_products["production"] - cur_reaction_products.Remove("production") - /*for(var/i=0, i 0.1) - products["Helium-4"] = 1 - // - products["production"] = 11.3 - products["radiation"] = 1 - /*products["photon"] = 11.3 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - // - mega_energy -= 0.1 - if("Deuterium") - if(mega_energy > 0.1) - products["Helium-4"] = 1 - // - products["production"] = 3.5 - products["radiation"] = 14.1 - /*products["photon"] = 3.5 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 14.1 - // - products["consumption"] = 0.1*/ - if("Helium-3") - if(mega_energy > 0.4) - if(prob(51)) - products["Helium-4"] = 1 - // - products["production"] = 13.1 - products["radiation"] = 1 - /*products["photon"] = 12.1 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if (prob(43)) - products["Helium-4"] = 1 - products["Deuterium"] = 1 - // - products["production"] = 14.3 - /*products["photon"] = 4.8 + 9.5//14.3 - */ - else - products["Helium-4"] = 1 - products["production"] = 2.4 - products["radiation"] = 11.9 - /*products["photon"] = 0.5//12.4 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 1.9 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 11.9*/ - // - products["consumption"] = 0.4 - if("Deuterium") - switch(reactant_two) - if("Deuterium") - if(mega_energy > 0.1) - if(prob(50)) - products["Tritium"] = 1 - // - products["production"] = 4.03 - /*products["photon"] = 1.01 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 3.02*/ - else - products["Helium-3"] = 1 - // - products["production"] = 0.82 - products["radiation"] = 2.45 - /*products["photon"] = 0.82 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 2.45*/ - // - products["consumption"] = 0.1 - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - // - products["production"] = 18.3 - /*products["photon"] = 3.6 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 14.7*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - if(prob(25)) - products["Helium-4"] = 2 - products["production"] = 1 - /*products["photon"] = 22.4*/ - else if(prob(33)) - products["Helium-3"] = 1 - products["Helium-4"] = 1 - // - products["radiation"] = 1 - /*products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - else if(prob(50)) - products["Lithium-7"] = 1 - // - products["production"] = 1 - /*products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - else - products["Beryllium-7"] = 1 - products["production"] = 3.4 - products["radiation"] = 1 - /*products["photon"] = 3.4 - // - products["neutron_quantity"] = 1 - products["neutron_charge"] = 0*/ - // - products["consumption"] = 0.6 - if("Helium-3") - switch(reactant_two) - if("Helium-3") - if(mega_energy > 0.4) - products["Helium-4"] = 1 - products["production"] = 14.9 - /*products["photon"] = 12.9 - // - products["proton_quantity"] = 2 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.4 - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 2 - // - products["production"] = 17.9 - /*products["photon"] = 16.9 - // - products["proton_quantity"] = 1 - products["proton_charge"] = 0*/ - // - products["consumption"] = 0.6 - /* - if("proton") - switch(reactant_two) - if("Lithium-6") - if(mega_energy > 0.6) - products["Helium-4"] = 1 - products["Helium-3"] = 1 - products["photon"] = 4 - // - mega_energy -= 0.6 - if("Boron-11") - if(mega_energy > 1) - products["Helium-4"] = 3 - products["photon"] = 8.7 - // - mega_energy -= 1 - */ - - //if no reaction happened, switch the two reactants and try again - if(!products.len && check) - check = 0 - var/temp = reactant_one - reactant_one = reactant_two - reactant_two = temp - goto recheck_reactions - /*if(products.len) - world << "\blue [reactant_one] + [reactant_two] reaction occured" - for(var/reagent in products) - world << "\blue [reagent]: [products[reagent]]"*/ - /*if(products["neutron"]) - products -= "neutron" - if(products["proton"]) - products -= "proton" - if(products["photon"]) - products -= "photon" - if(products["radiated charge"]) - products -= "radiated charge"*/ - return products - /obj/effect/rust_em_field/Del() //radiate everything in one giant burst for(var/obj/effect/rust_particle_catcher/catcher in particle_catchers) diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm index 438894ca865..72dddd6fe06 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_gen.dm @@ -282,6 +282,6 @@ max volume of plasma storeable by the field = the total volume of a number of ti return 0 /obj/machinery/power/rust_core/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && owned_field) - owned_field.AddEnergy(Proj.damage, 0, 1) + if(owned_field) + return owned_field.bullet_act(Proj) return 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm index bbd374a21e4..d8ca364cb20 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly.dm @@ -5,6 +5,7 @@ name = "Fuel Rod Assembly" var/list/rod_quantities var/percent_depleted = 1 + layer = 3.1 // New() rod_quantities = new/list diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm index 3d88307242e..7c976ac9564 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm @@ -64,14 +64,14 @@ /obj/machinery/rust_fuel_assembly_port/proc/eject_assembly() if(cur_assembly) - cur_assembly.loc = get_step(get_turf(src), src.dir) + cur_assembly.loc = src.loc//get_step(get_turf(src), src.dir) cur_assembly = null icon_state = "port0" return 1 /obj/machinery/rust_fuel_assembly_port/proc/try_draw_assembly() var/success = 0 - if(cur_assembly) + if(!cur_assembly) var/turf/check_turf = get_step(get_turf(src), src.dir) check_turf = get_step(check_turf, src.dir) for(var/obj/machinery/power/rust_fuel_injector/I in check_turf) @@ -89,31 +89,14 @@ I.cur_assembly = null icon_state = "port1" success = 1 + break return success -/* -/obj/machinery/rust_fuel_assembly_port/verb/try_insert_assembly_verb() - set name = "Attempt to insert assembly from port into injector" - set category = "Object" - set src in oview(1) - - if(!busy) - try_insert_assembly() - /obj/machinery/rust_fuel_assembly_port/verb/eject_assembly_verb() - set name = "Attempt to eject assembly from port" + set name = "Eject assembly from port" set category = "Object" set src in oview(1) - if(!busy) - eject_assembly() + eject_assembly() -/obj/machinery/rust_fuel_assembly_port/verb/try_draw_assembly_verb() - set name = "Draw assembly from injector" - set category = "Object" - set src in oview(1) - - if(!busy) - try_draw_assembly() -*/ diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm index cfade3ab2ac..526742aac94 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm @@ -4,7 +4,7 @@ var/const/max_assembly_amount = 300 icon = 'code/WorkInProgress/Cael_Aislinn/Rust/rust.dmi' icon_state = "fuel_compressor1" name = "Fuel Compressor" - var/list/new_assembly_quantities = list("Deuterium" = 200,"Tritium" = 100,"Helium-3" = 0,"Lithium-6" = 0,"Silver" = 0) + var/list/new_assembly_quantities = list("Deuterium" = 150,"Tritium" = 150,"Rodinium-6" = 0,"Stravium-7" = 0, "Pergium" = 0, "Dilithium" = 0) var/compressed_matter = 0 anchored = 1 layer = 2.9 @@ -79,12 +79,16 @@ var/const/max_assembly_amount = 300 var/fail = 0 var/old_matter = compressed_matter for(var/reagent in new_assembly_quantities) - var/req_matter = new_assembly_quantities[reagent] / 30 + var/req_matter = round(new_assembly_quantities[reagent] / 30) //world << "[reagent] matter: [req_matter]/[compressed_matter]" if(req_matter <= compressed_matter) F.rod_quantities[reagent] = new_assembly_quantities[reagent] compressed_matter -= req_matter + if(compressed_matter < 1) + compressed_matter = 0 else + /*world << "bad reagent: [reagent], [req_matter > compressed_matter ? "req_matter > compressed_matter"\ + : (req_matter < compressed_matter ? "req_matter < compressed_matter" : "req_matter == compressed_matter")]"*/ fail = 1 break //world << "\blue [reagent]: new_assembly_quantities[reagent]
" @@ -93,7 +97,7 @@ var/const/max_assembly_amount = 300 compressed_matter = old_matter usr << "\red \icon[src] [src] flashes red: \'Out of matter.\'" else - F.loc = get_step(get_turf(src), src.dir) + F.loc = src.loc//get_step(get_turf(src), src.dir) F.percent_depleted = 0 if(compressed_matter < 0.034) compressed_matter = 0 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm index 6d18b71f4cb..5047ab1a5d1 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_injector.dm @@ -179,11 +179,7 @@ id_tag = input("Enter new ID tag", "Modifying ID tag") as text|null if( href_list["fuel_assembly"] ) - if(!trying_to_swap_fuel) - trying_to_swap_fuel = 1 - spawn(50) - attempt_fuel_swap() - trying_to_swap_fuel = 0 + attempt_fuel_swap() if( href_list["emergency_fuel_assembly"] ) if(cur_assembly) @@ -290,3 +286,23 @@ updateDialog() else src.visible_message("\red \icon[src] a red light flashes on [src].") + +/obj/machinery/power/rust_fuel_injector/verb/rotate_clock() + set category = "Object" + set name = "Rotate Generator (Clockwise)" + set src in view(1) + + if (usr.stat || usr.restrained() || anchored) + return + + src.dir = turn(src.dir, 90) + +/obj/machinery/power/rust_fuel_injector/verb/rotate_anticlock() + set category = "Object" + set name = "Rotate Generator (Counterclockwise)" + set src in view(1) + + if (usr.stat || usr.restrained() || anchored) + return + + src.dir = turn(src.dir, -90) \ No newline at end of file diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fusion_reactions.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fusion_reactions.dm new file mode 100644 index 00000000000..c083cad713a --- /dev/null +++ b/code/WorkInProgress/Cael_Aislinn/Rust/fusion_reactions.dm @@ -0,0 +1,160 @@ + +datum/fusion_reaction + var/primary_reactant = "" + var/secondary_reactant = "" + var/energy_consumption = 0 + var/energy_production = 0 + var/radiation = 0 + var/list/products = list() + +/datum/controller/game_controller/var/list/fusion_reactions + +proc/get_fusion_reaction(var/primary_reactant, var/secondary_reactant) + if(!master_controller.fusion_reactions) + populate_fusion_reactions() + if(master_controller.fusion_reactions.Find(primary_reactant)) + var/list/secondary_reactions = master_controller.fusion_reactions[primary_reactant] + if(secondary_reactions.Find(secondary_reactant)) + return master_controller.fusion_reactions[primary_reactant][secondary_reactant] + +proc/populate_fusion_reactions() + if(!master_controller.fusion_reactions) + master_controller.fusion_reactions = list() + for(var/cur_reaction_type in typesof(/datum/fusion_reaction) - /datum/fusion_reaction) + var/datum/fusion_reaction/cur_reaction = new cur_reaction_type() + if(!master_controller.fusion_reactions[cur_reaction.primary_reactant]) + master_controller.fusion_reactions[cur_reaction.primary_reactant] = list() + master_controller.fusion_reactions[cur_reaction.primary_reactant][cur_reaction.secondary_reactant] = cur_reaction + if(!master_controller.fusion_reactions[cur_reaction.secondary_reactant]) + master_controller.fusion_reactions[cur_reaction.secondary_reactant] = list() + master_controller.fusion_reactions[cur_reaction.secondary_reactant][cur_reaction.primary_reactant] = cur_reaction + +//Fake elements and fake reactions, but its nicer gameplay-wise +//Deuterium +//Tritium +//Uridium-3 +//Obdurium +//Solonium +//Rodinium-6 +//Dilithium +//Trilithium +//Pergium +//Stravium-7 + +//Primary Production Reactions + +datum/fusion_reaction/tritium_deuterium + primary_reactant = "Tritium" + secondary_reactant = "Deuterium" + energy_consumption = 1 + energy_production = 5 + radiation = 0 + +//Secondary Production Reactions + +datum/fusion_reaction/deuterium_deuterium + primary_reactant = "Deuterium" + secondary_reactant = "Deuterium" + energy_consumption = 1 + energy_production = 4 + radiation = 1 + products = list("Obdurium" = 2) + +datum/fusion_reaction/tritium_tritium + primary_reactant = "Tritium" + secondary_reactant = "Tritium" + energy_consumption = 1 + energy_production = 4 + radiation = 1 + products = list("Solonium" = 2) + +//Cleanup Reactions + +datum/fusion_reaction/rodinium6_obdurium + primary_reactant = "Rodinium-6" + secondary_reactant = "Obdurium" + energy_consumption = 1 + energy_production = 2 + radiation = 2 + +datum/fusion_reaction/rodinium6_solonium + primary_reactant = "Rodinium-6" + secondary_reactant = "Solonium" + energy_consumption = 1 + energy_production = 2 + radiation = 2 + +//Breeder Reactions + +datum/fusion_reaction/dilithium_obdurium + primary_reactant = "Dilithium" + secondary_reactant = "Obdurium" + energy_consumption = 1 + energy_production = 1 + radiation = 3 + products = list("Deuterium" = 1, "Dilithium" = 1) + +datum/fusion_reaction/dilithium_solonium + primary_reactant = "Dilithium" + secondary_reactant = "Solonium" + energy_consumption = 1 + energy_production = 1 + radiation = 3 + products = list("Tritium" = 1, "Dilithium" = 1) + +//Breeder Inhibitor Reactions + +datum/fusion_reaction/stravium7_dilithium + primary_reactant = "Stravium-7" + secondary_reactant = "Dilithium" + energy_consumption = 2 + energy_production = 1 + radiation = 4 + +//Enhanced Breeder Reactions + +datum/fusion_reaction/trilithium_obdurium + primary_reactant = "Trilithium" + secondary_reactant = "Obdurium" + energy_consumption = 1 + energy_production = 2 + radiation = 5 + products = list("Dilithium" = 1, "Trilithium" = 1, "Deuterium" = 1) + +datum/fusion_reaction/trilithium_solonium + primary_reactant = "Trilithium" + secondary_reactant = "Solonium" + energy_consumption = 1 + energy_production = 2 + radiation = 5 + products = list("Dilithium" = 1, "Trilithium" = 1, "Tritium" = 1) + +//Control Reactions + +datum/fusion_reaction/pergium_deuterium + primary_reactant = "Pergium" + secondary_reactant = "Deuterium" + energy_consumption = 5 + energy_production = 0 + radiation = 5 + +datum/fusion_reaction/pergium_tritium + primary_reactant = "Pergium" + secondary_reactant = "Tritium" + energy_consumption = 5 + energy_production = 0 + radiation = 5 + +datum/fusion_reaction/pergium_deuterium + primary_reactant = "Pergium" + secondary_reactant = "Obdurium" + energy_consumption = 5 + energy_production = 0 + radiation = 5 + +datum/fusion_reaction/pergium_tritium + primary_reactant = "Pergium" + secondary_reactant = "Solonium" + energy_consumption = 5 + energy_production = 0 + radiation = 5 diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm index 60301334736..39110653848 100644 --- a/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm +++ b/code/WorkInProgress/Cael_Aislinn/Rust/virtual_particle_catcher.dm @@ -34,16 +34,16 @@ /obj/effect/rust_particle_catcher/proc/UpdateSize() if(parent.size >= mysize) density = 1 - invisibility = 0 + //invisibility = 0 name = "collector [mysize] ON" else density = 0 - invisibility = 101 + //invisibility = 101 name = "collector [mysize] OFF" /obj/effect/rust_particle_catcher/bullet_act(var/obj/item/projectile/Proj) if(Proj.flag != "bullet" && parent) - parent.AddEnergy(Proj.damage, 0, 1) + parent.AddEnergy(Proj.damage * 20, 0, 1) update_icon() return 0 diff --git a/code/WorkInProgress/periodic_news.dm b/code/WorkInProgress/periodic_news.dm new file mode 100644 index 00000000000..92186869264 --- /dev/null +++ b/code/WorkInProgress/periodic_news.dm @@ -0,0 +1,117 @@ +// This system defines news that will be displayed in the course of a round. +// Uses BYOND's type system to put everything into a nice format + +/datum/news_announcement + var + round_time // time of the round at which this should be announced, in seconds + message // body of the message + author = "NanoTrasen Editor" + channel_name = "Tau Ceti Daily" + can_be_redacted = 0 + + revolution_inciting_event + + paycuts_suspicion + round_time = 60*10 + message = "Reports have leaked that Nanotrasen Inc. is planning to put paycuts into effect on many of its Research Stations in Tau Ceti. Apparently these research stations haven't been able to yield the expected revenue, and thus adjustments have to be made." + author = "Unauthorized" + + paycuts_confirmation + round_time = 60*40 + message = "Earlier rumours about paycuts on Research Stations in the Tau Ceti system have been confirmed. Shockingly, however, the cuts will only affect lower tier personnel. Heads of Staff will, according to our sources, not be affected." + author = "Unauthorized" + + human_experiments + round_time = 60*90 + message = "Unbelievable reports about human experimentation have reached our ears. According to a refugee from one of the Tau Ceti Research Stations, their station, in order to increase revenue, has refactored several of their facilities to perform experiments on live humans, including virology research, genetic manipulation, and \"feeding them to the slimes to see what happens\". Allegedly, these test subjects were neither humanified monkeys nor volunteers, but rather unqualified staff that were forced into the experiments, and reported to have died in a \"work accident\" by Nanotrasen Inc." + author = "Unauthorized" + + bluespace_research + + announcement + round_time = 60*20 + message = "The new field of research trying to explain several interesting spacetime oddities, also known as \"Bluespace Research\", has reached new heights. Of the several hundred space stations now orbiting in Tau Ceti, fifteen are now specially equipped to experiment with and research Bluespace effects. Rumours have it some of these stations even sport functional \"travel gates\" that can instantly move a whole research team to an alternate reality." + + random_junk + cheesy_honkers + author = "Assistant Editor Carl Ritz" + channel_name = "The Gibson Gazzette" + message = "Do cheesy honkers increase risk of having a miscarriage? Several health administrations say so!" + round_time = 60 * 15 + + net_block + author = "Assistant Editor Carl Ritz" + channel_name = "The Gibson Gazzette" + message = "Several corporations banding together to block access to 'wetskrell.nt', site administrators claiming violation of net laws." + round_time = 60 * 50 + + found_ssd + channel_name = "Tau Ceti Daily" + author = "Doctor Eric Hanfield" + + message = "Several people have been found unconscious at their terminals. It is thought that it was due to a lack of sleep or of simply migraines from staring at the screen too long. Camera footage reveals that many of them were playing games instead of working and their pay has been docked accordingly." + round_time = 60 * 90 + + lotus_tree + explosions + channel_name = "Tau Ceti Daily" + author = "Reporter Leland H. Howards" + + message = "The newly-christened civillian transport Lotus Tree suffered two very large explosions near the bridge today, and there are unconfirmed reports that the death toll has passed 50. The cause of the explosions remain unknown, but there is speculation that it might have something to do with the recent change of regulation in the Moore-Lee Corporation, a major funder of the ship, when M-L announced that they were officially acknowledging inter-species marriage and providing couples with marriage tax-benefits." + round_time = 60 * 30 + + food_riots + breaking_news + channel_name = "Tau Ceti Daily" + author = "Reporter Ro'kii Ar-Raqis" + + message = "Breaking news: Food riots have broken out throughout the Refuge asteroid colony in the Tenebrae Lupus system. This comes only hours after NanoTrasen officials announced they will no longer trade with the colony, citing the increased presence of \"hostile factions\" on the colony has made trade too dangerous to continue. NanoTrasen officials have not given any details about said factions. More on that at the top of the hour." + round_time = 60 * 10 + + more + channel_name = "Tau Ceti Daily" + author = "Reporter Ro'kii Ar-Raqis" + + message = "More on the Refuge food riots: The Refuge Council has condemned NanoTrasen's withdrawal from the colony, claiming \"there has been no increase in anti-NanoTrasen activity\", and \"\[the only] reason NanoTrasen withdrew was because the \[Tenebrae Lupus] system's Plasma deposits have been completely mined out. We have little to trade with them now\". NanoTrasen officials have denied these allegations, calling them \"further proof\" of the colony's anti-NanoTrasen stance. Meanwhile, Refuge Security has been unable to quell the riots. More on this at 6." + round_time = 60 * 60 + + +var/global/list/newscaster_standard_feeds = list(/datum/news_announcement/bluespace_research, /datum/news_announcement/lotus_tree, /datum/news_announcement/random_junk, /datum/news_announcement/lotus_tree) + +proc/process_newscaster() + check_for_newscaster_updates(ticker.mode.newscaster_announcements) + +var/global/tmp/announced_news_types = list() +proc/check_for_newscaster_updates(type) + for(var/subtype in typesof(type)-type) + var/datum/news_announcement/news = new subtype() + if(news.round_time * 10 <= world.time && !(subtype in announced_news_types)) + announced_news_types += subtype + announce_newscaster_news(news) + +proc/announce_newscaster_news(datum/news_announcement/news) + + var/datum/feed_message/newMsg = new /datum/feed_message + newMsg.author = news.author + newMsg.is_admin_message = !news.can_be_redacted + + newMsg.body = news.message + + var/datum/feed_channel/sendto + for(var/datum/feed_channel/FC in news_network.network_channels) + if(FC.channel_name == news.channel_name) + sendto = FC + break + + if(!sendto) + sendto = new /datum/feed_channel + sendto.channel_name = news.channel_name + sendto.author = news.author + sendto.locked = 1 + sendto.is_admin_channel = 1 + news_network.network_channels += sendto + + sendto.messages += newMsg + + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) + NEWSCASTER.newsAlert(news.channel_name) diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index bd8eb43787c..da41edf406b 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -21,6 +21,7 @@ connection last_updated //The tick at which this was last updated. no_zone_count = 0 + New(turf/T,turf/O) A = T B = O @@ -49,51 +50,23 @@ connection if(A.CanPass(null, B, 0, 0)) - if(!A.zone.connected_zones) - A.zone.connected_zones = list() - if(!B.zone.connected_zones) - B.zone.connected_zones = list() - - if(B.zone in A.zone.connected_zones) - A.zone.connected_zones[B.zone]++ - else - A.zone.connected_zones += B.zone - A.zone.connected_zones[B.zone] = 1 - - if(A.zone in B.zone.connected_zones) - B.zone.connected_zones[A.zone]++ - else - B.zone.connected_zones += A.zone - B.zone.connected_zones[A.zone] = 1 + ConnectZones(A.zone, B.zone, 1) if(A.HasDoor(B) || B.HasDoor(A)) indirect = CONNECTION_INDIRECT else + ConnectZones(A.zone, B.zone) indirect = CONNECTION_CLOSED - if(!A.zone.closed_connection_zones) - A.zone.closed_connection_zones = list() - if(B.zone in A.zone.closed_connection_zones) - A.zone.closed_connection_zones[B.zone]++ - else - A.zone.closed_connection_zones += B.zone - A.zone.closed_connection_zones[B.zone] = 1 - - if(!B.zone.closed_connection_zones) - B.zone.closed_connection_zones = list() - if(A.zone in B.zone.closed_connection_zones) - B.zone.closed_connection_zones[A.zone]++ - else - B.zone.closed_connection_zones += A.zone - B.zone.closed_connection_zones[A.zone] = 1 - else - world.log << "Attempted to create connection object for non-zone tiles: [T] -> [O]" + world.log << "Attempted to create connection object for non-zone tiles: [T] ([T.x],[T.y],[T.z]) -> [O] ([O.x],[O.y],[O.z])" del(src) + Del() + //remove connections from master lists. if(ref_B in air_master.turfs_with_connections) var/list/connections = air_master.turfs_with_connections[ref_B] connections.Remove(src) @@ -102,279 +75,203 @@ connection var/list/connections = air_master.turfs_with_connections[ref_A] connections.Remove(src) + //Ensure we delete the right values by sanity checkign right before deletion. + Sanitize() + + //Remove connection from current zones. if(A) if(A.zone && A.zone.connections) A.zone.connections.Remove(src) if(!A.zone.connections.len) - del A.zone.connections + A.zone.connections = null if(B) if(B.zone && B.zone.connections) B.zone.connections.Remove(src) if(!B.zone.connections.len) - del B.zone.connections - if(zone_A) - if(zone_A && zone_A.connections) - zone_A.connections.Remove(src) - if(!zone_A.connections.len) - del zone_A.connections - if(zone_B) - if(zone_B && zone_B.connections) - zone_B.connections.Remove(src) - if(!zone_B.connections.len) - del zone_B.connections + B.zone.connections = null - if(indirect != CONNECTION_CLOSED) - if(A && A.zone) - if(B && B.zone) - if(B.zone in A.zone.connected_zones) - if(A.zone.connected_zones[B.zone] > 1) - A.zone.connected_zones[B.zone]-- - else - A.zone.connected_zones -= B.zone - if(A.zone.connected_zones && !A.zone.connected_zones.len) - A.zone.connected_zones = null - if( zone_B && (!B.zone || zone_B != B.zone) ) - if(zone_B in A.zone.connected_zones) - if(A.zone.connected_zones[zone_B] > 1) - A.zone.connected_zones[zone_B]-- - else - A.zone.connected_zones -= zone_B - if(A.zone.connected_zones && !A.zone.connected_zones.len) - A.zone.connected_zones = null - if(zone_A && (!A.zone || zone_A != A.zone)) - if(B && B.zone) - if(B.zone in zone_A.connected_zones) - if(zone_A.connected_zones[B.zone] > 1) - zone_A.connected_zones[B.zone]-- - else - zone_A.connected_zones -= B.zone - if(zone_A.connected_zones && !zone_A.connected_zones.len) - zone_A.connected_zones = null - if( zone_B && (!B.zone || zone_B != B.zone) ) - if(zone_B in zone_A.connected_zones) - if(zone_A.connected_zones[zone_B] > 1) - zone_A.connected_zones[zone_B]-- - else - zone_A.connected_zones -= zone_B - if(zone_A.connected_zones && !zone_A.connected_zones.len) - zone_A.connected_zones = null - if(B && B.zone) - if(A && A.zone) - if(A.zone in B.zone.connected_zones) - if(B.zone.connected_zones[A.zone] > 1) - B.zone.connected_zones[A.zone]-- - else - B.zone.connected_zones -= A.zone - if(B.zone.connected_zones && !B.zone.connected_zones.len) - B.zone.connected_zones = null - if( zone_A && (!A.zone || zone_A != A.zone) ) - if(zone_A in B.zone.connected_zones) - if(B.zone.connected_zones[zone_A] > 1) - B.zone.connected_zones[zone_A]-- - else - B.zone.connected_zones -= zone_A - if(B.zone.connected_zones && !B.zone.connected_zones.len) - B.zone.connected_zones = null - if(zone_B && (!B.zone || zone_B != B.zone)) - if(A && A.zone) - if(A.zone in zone_B.connected_zones) - if(zone_B.connected_zones[A.zone] > 1) - zone_B.connected_zones[A.zone]-- - else - zone_B.connected_zones -= A.zone - if(zone_B.connected_zones && !zone_B.connected_zones.len) - zone_B.connected_zones = null - if( zone_A && (!A.zone || zone_A != A.zone) ) - if(zone_A in zone_B.connected_zones) - if(zone_B.connected_zones[zone_A] > 1) - zone_B.connected_zones[zone_A]-- - else - zone_B.connected_zones -= zone_A - if(zone_B.connected_zones && !zone_B.connected_zones.len) - zone_B.connected_zones = null - else - if(A && A.zone) - if(B && B.zone) - if(B.zone in A.zone.closed_connection_zones) - if(A.zone.closed_connection_zones[B.zone] > 1) - A.zone.closed_connection_zones[B.zone]-- - else - A.zone.closed_connection_zones -= B.zone - if(A.zone.closed_connection_zones && !A.zone.closed_connection_zones.len) - A.zone.closed_connection_zones = null - if( zone_B && (!B.zone || zone_B != B.zone) ) - if(zone_B in A.zone.closed_connection_zones) - if(A.zone.closed_connection_zones[zone_B] > 1) - A.zone.closed_connection_zones[zone_B]-- - else - A.zone.closed_connection_zones -= zone_B - if(A.zone.closed_connection_zones && !A.zone.closed_connection_zones.len) - A.zone.closed_connection_zones = null - if(zone_A && (!A.zone || zone_A != A.zone)) - if(B && B.zone) - if(B.zone in zone_A.closed_connection_zones) - if(zone_A.closed_connection_zones[B.zone] > 1) - zone_A.closed_connection_zones[B.zone]-- - else - zone_A.closed_connection_zones -= B.zone - if(zone_A.closed_connection_zones && !zone_A.closed_connection_zones.len) - zone_A.closed_connection_zones = null - if( zone_B && (!B.zone || zone_B != B.zone) ) - if(zone_B in zone_A.closed_connection_zones) - if(zone_A.closed_connection_zones[zone_B] > 1) - zone_A.closed_connection_zones[zone_B]-- - else - zone_A.closed_connection_zones -= zone_B - if(zone_A.closed_connection_zones && !zone_A.closed_connection_zones.len) - zone_A.closed_connection_zones = null - if(B && B.zone) - if(A && A.zone) - if(A.zone in B.zone.closed_connection_zones) - if(B.zone.closed_connection_zones[A.zone] > 1) - B.zone.closed_connection_zones[A.zone]-- - else - B.zone.closed_connection_zones -= A.zone - if(B.zone.closed_connection_zones && !B.zone.closed_connection_zones.len) - B.zone.closed_connection_zones = null - if( zone_A && (!A.zone || zone_A != A.zone) ) - if(zone_A in B.zone.closed_connection_zones) - if(B.zone.closed_connection_zones[zone_A] > 1) - B.zone.closed_connection_zones[zone_A]-- - else - B.zone.closed_connection_zones -= zone_A - if(B.zone.closed_connection_zones && !B.zone.closed_connection_zones.len) - B.zone.closed_connection_zones = null - if(zone_B && (!B.zone || zone_B != B.zone)) - if(A && A.zone) - if(A.zone in zone_B.closed_connection_zones) - if(zone_B.closed_connection_zones[A.zone] > 1) - zone_B.closed_connection_zones[A.zone]-- - else - zone_B.closed_connection_zones -= A.zone - if(zone_B.closed_connection_zones && !zone_B.closed_connection_zones.len) - zone_B.closed_connection_zones = null - if( zone_A && (!A.zone || zone_A != A.zone) ) - if(zone_A in zone_B.closed_connection_zones) - if(zone_B.closed_connection_zones[zone_A] > 1) - zone_B.closed_connection_zones[zone_A]-- - else - zone_B.closed_connection_zones -= zone_A - if(zone_B.closed_connection_zones && !zone_B.closed_connection_zones.len) - zone_B.closed_connection_zones = null + //Disconnect zones while handling unusual conditions. + // e.g. loss of a zone on a turf + if(A && A.zone && B && B.zone) + DisconnectZones(A.zone, B.zone) + + //Finally, preform actual deletion. . = ..() + + proc/ConnectZones(var/zone/zone_1, var/zone/zone_2, open = 0) + + //Sanity checking + if(!istype(zone_1) || !istype(zone_2)) + return + + //Handle zones connecting indirectly/directly. + if(open) + + //Create the lists if necessary. + if(!zone_1.connected_zones) + zone_1.connected_zones = list() + + if(!zone_2.connected_zones) + zone_2.connected_zones = list() + + //Increase the number of connections between zones. + if(zone_2 in zone_1.connected_zones) + zone_1.connected_zones[zone_2]++ + else + zone_1.connected_zones += zone_2 + zone_1.connected_zones[zone_2] = 1 + + if(zone_1 in zone_2.connected_zones) + zone_2.connected_zones[zone_1]++ + else + zone_2.connected_zones += zone_1 + zone_2.connected_zones[zone_1] = 1 + + //Handle closed connections. + else + + //Create the lists + if(!zone_1.closed_connection_zones) + zone_1.closed_connection_zones = list() + + if(!zone_2.closed_connection_zones) + zone_2.closed_connection_zones = list() + + //Increment the connections. + if(zone_2 in zone_1.closed_connection_zones) + zone_1.closed_connection_zones[zone_2]++ + else + zone_1.closed_connection_zones += zone_2 + zone_1.closed_connection_zones[zone_2] = 1 + + if(zone_1 in zone_2.closed_connection_zones) + zone_2.closed_connection_zones[zone_1]++ + else + zone_2.closed_connection_zones += zone_1 + zone_2.closed_connection_zones[zone_1] = 1 + + + proc/DisconnectZones(var/zone/zone_1, var/zone/zone_2) + + //Sanity checking + if(!istype(zone_1) || !istype(zone_2)) + return + + //Handle disconnection of indirectly or directly connected zones. + if( (zone_1 in zone_2.connected_zones) || (zone_2 in zone_1.connected_zones) ) + + //If there are more than one connection, decrement the number of connections + //Otherwise, remove all connections between the zones. + if(zone_1.connected_zones[zone_2] > 1) + zone_1.connected_zones[zone_2]-- + else + zone_1.connected_zones -= zone_2 + //remove the list if it is empty + if(!zone_1.connected_zones.len) + zone_1.connected_zones = null + + //Then do the same for the other zone. + if(zone_2.connected_zones[zone_1] > 1) + zone_2.connected_zones[zone_1]-- + else + zone_2.connected_zones -= zone_1 + if(!zone_2.connected_zones.len) + zone_2.connected_zones = null + + //Handle disconnection of closed zones. + if( (zone_1 in zone_2.closed_connection_zones) || (zone_2 in zone_1.closed_connection_zones) ) + + //If there are more than one connection, decrement the number of connections + //Otherwise, remove all connections between the zones. + if(zone_1.closed_connection_zones[zone_2] > 1) + zone_1.closed_connection_zones[zone_2]-- + else + zone_1.closed_connection_zones -= zone_2 + //remove the list if it is empty + if(!zone_1.closed_connection_zones.len) + zone_1.closed_connection_zones = null + + //Then do the same for the other zone. + if(zone_2.closed_connection_zones[zone_1] > 1) + zone_2.closed_connection_zones[zone_1]-- + else + zone_2.closed_connection_zones -= zone_1 + if(!zone_2.closed_connection_zones.len) + zone_2.closed_connection_zones = null + + proc/Cleanup() + + //Check sanity: existance of turfs if(!A || !B) - //world.log << "Connection removed: [A] or [B] missing entirely." del src + + //Check sanity: zones are different if(A.zone == B.zone) - //world.log << "Connection removed: Zones now merged." del src + + //Check sanity: same turfs as before. if(ref_A != "\ref[A]" || ref_B != "\ref[B]") del src + + //Handle zones changing on a turf. if((A.zone && A.zone != zone_A) || (B.zone && B.zone != zone_B)) Sanitize() + + //Manage sudden loss of a turfs zone. (e.g. a wall being built) if(!A.zone || !B.zone) no_zone_count++ if(no_zone_count >= 5) //world.log << "Connection removed: [A] or [B] missing a zone." del src return 0 + return 1 + proc/CheckPassSanity() + //Sanity check, first. Cleanup() + if(A.zone && B.zone) + + //If no walls are blocking us... if(A.ZAirPass(B)) + //...we check to see if there is a door in the way... var/door_pass = A.CanPass(null,B,1.5,1) + //...and if it is opened. if(door_pass || A.CanPass(null,B,0,0)) + + //Make and remove connections to let air pass. if(indirect == CONNECTION_CLOSED) - //ADJUST FOR CAN CONNECT - if(!A.zone.connected_zones) - A.zone.connected_zones = list() - if(B.zone in A.zone.connected_zones) - A.zone.connected_zones[B.zone]++ - else - A.zone.connected_zones += B.zone - A.zone.connected_zones[B.zone] = 1 - - if(!B.zone.connected_zones) - B.zone.connected_zones = list() - if(A.zone in B.zone.connected_zones) - B.zone.connected_zones[A.zone]++ - else - B.zone.connected_zones += A.zone - B.zone.connected_zones[A.zone] = 1 - - if(A.zone.closed_connection_zones) - if(A.zone.closed_connection_zones[B.zone] > 1) - A.zone.closed_connection_zones[B.zone]-- - else - A.zone.closed_connection_zones.Remove(B.zone) - if(A.zone.closed_connection_zones && !A.zone.closed_connection_zones.len) - A.zone.closed_connection_zones = null - - if(B.zone.closed_connection_zones) - if(B.zone.closed_connection_zones[A.zone] > 1) - B.zone.closed_connection_zones[A.zone]-- - else - B.zone.closed_connection_zones.Remove(A.zone) - - if(B.zone.closed_connection_zones && !B.zone.closed_connection_zones.len) - B.zone.closed_connection_zones = null + DisconnectZones(A.zone, B.zone) + ConnectZones(A.zone, B.zone, 1) if(door_pass) indirect = CONNECTION_DIRECT else if(!door_pass) indirect = CONNECTION_INDIRECT + //The door is instead closed. else if(indirect > CONNECTION_CLOSED) indirect = CONNECTION_CLOSED - //ADJUST FOR CANNOT CONNECT - if(A.zone.connected_zones) - if(A.zone.connected_zones[B.zone] > 1) - A.zone.connected_zones[B.zone]-- - else - A.zone.connected_zones.Remove(B.zone) - if(A.zone.connected_zones && !A.zone.connected_zones.len) - A.zone.connected_zones = null + DisconnectZones(A.zone, B.zone) + ConnectZones(A.zone, B.zone) - if(B.zone.connected_zones) - if(B.zone.connected_zones[A.zone] > 1) - B.zone.connected_zones[A.zone]-- - else - B.zone.connected_zones.Remove(A.zone) - - if(B.zone.connected_zones && !B.zone.connected_zones.len) - B.zone.connected_zones = null - - //Add to the closed connections list(s) - if(!A.zone.closed_connection_zones) - A.zone.closed_connection_zones = list() - if(B.zone in A.zone.closed_connection_zones) - A.zone.closed_connection_zones[B.zone]++ - else - A.zone.closed_connection_zones += B.zone - A.zone.closed_connection_zones[B.zone] = 1 - - if(!B.zone.closed_connection_zones) - B.zone.closed_connection_zones = list() - if(A.zone in B.zone.closed_connection_zones) - B.zone.closed_connection_zones[A.zone]++ - else - B.zone.closed_connection_zones += A.zone - B.zone.closed_connection_zones[A.zone] = 1 - - else //If I can no longer pass air, better delete + //If I can no longer pass air, better delete + else del src proc/Sanitize() //If the zones change on connected turfs, update it. - if(A.zone && A.zone != zone_A && B.zone && B.zone != zone_B) - if(!A.zone || !B.zone) - del src + //Both zones changed (wat) + if(A.zone && A.zone != zone_A && B.zone && B.zone != zone_B) + + //If the zones have gotten swapped + // (do not ask me how, I am just being anal retentive about sanity) if(A.zone == zone_B && B.zone == zone_A) var/turf/temp = B B = A @@ -386,208 +283,101 @@ connection ref_B = temp_ref return - if(zone_A) - if(zone_A.connections) - zone_A.connections.Remove(src) - if(!zone_A.connections.len) - del zone_A.connections + //Handle removal of connections from archived zones. + if(zone_A && zone_A.connections) + zone_A.connections.Remove(src) + if(!zone_A.connections.len) + zone_A.connections = null - if(indirect != CONNECTION_CLOSED) - if(zone_A.connected_zones) - if(zone_A.connected_zones[zone_B] > 1) - zone_A.connected_zones[zone_B]-- - else - zone_A.connected_zones.Remove(zone_B) - if(zone_A.connected_zones && !zone_A.connected_zones.len) - zone_A.connected_zones = null + if(zone_B && zone_B.connections) + zone_B.connections.Remove(src) + if(!zone_B.connections.len) + zone_B.connections = null - else - if(zone_A.closed_connection_zones) - if(zone_A.closed_connection_zones[zone_B] > 1) - zone_A.closed_connection_zones[zone_B]-- - else - zone_A.closed_connection_zones.Remove(zone_B) - if(zone_A.closed_connection_zones && !zone_A.closed_connection_zones.len) - zone_A.closed_connection_zones = null - - - if(zone_B) - if(zone_B.connections) - zone_B.connections.Remove(src) - if(!zone_B.connections.len) - del zone_B.connections - - if(indirect != CONNECTION_CLOSED) - if(zone_B.connected_zones) - if(zone_B.connected_zones[zone_A] > 1) - zone_B.connected_zones[zone_A]-- - else - zone_B.connected_zones.Remove(zone_A) - if(zone_B.connected_zones && !zone_B.connected_zones.len) - zone_B.connected_zones = null - - else - if(zone_B.closed_connection_zones) - if(zone_B.closed_connection_zones[zone_A] > 1) - zone_B.closed_connection_zones[zone_A]-- - else - zone_B.closed_connection_zones.Remove(zone_A) - if(zone_B.closed_connection_zones && !zone_B.closed_connection_zones.len) - zone_B.closed_connection_zones = null - - if(indirect != CONNECTION_CLOSED) + if(A.zone) if(!A.zone.connections) A.zone.connections = list() A.zone.connections |= src + + if(B.zone) if(!B.zone.connections) B.zone.connections = list() B.zone.connections |= src - if(!A.zone.connected_zones) - A.zone.connected_zones = list() - if(B.zone in A.zone.connected_zones) - A.zone.connected_zones[B.zone]++ - else - A.zone.connected_zones += B.zone - A.zone.connected_zones[B.zone] = 1 + //If either zone is null, we disconnect the archived ones after cleaning up the connections. + if(!A.zone || !B.zone) + if(zone_A && zone_B) + DisconnectZones(zone_B, zone_A) - if(!B.zone.connected_zones) - B.zone.connected_zones = list() - if(A.zone in B.zone.connected_zones) - B.zone.connected_zones[A.zone]++ - else - B.zone.connected_zones += A.zone - B.zone.connected_zones[A.zone] = 1 + if(!A.zone) + zone_A = A.zone - else + if(!B.zone) + zone_B = B.zone + return - if(!A.zone.connections) - A.zone.connections = list() - A.zone.connections |= src - if(!B.zone.connections) - B.zone.connections = list() - B.zone.connections |= src - - if(!A.zone.closed_connection_zones) - A.zone.closed_connection_zones = list() - if(B.zone in A.zone.closed_connection_zones) - A.zone.closed_connection_zones[B.zone]++ - else - A.zone.closed_connection_zones += B.zone - A.zone.closed_connection_zones[B.zone] = 1 - - if(!B.zone.closed_connection_zones) - B.zone.closed_connection_zones = list() - if(A.zone in B.zone.closed_connection_zones) - B.zone.closed_connection_zones[A.zone]++ - else - B.zone.closed_connection_zones += A.zone - B.zone.closed_connection_zones[A.zone] = 1 + //Handle diconnection and reconnection of zones. + if(zone_A && zone_B) + DisconnectZones(zone_A, zone_B) + ConnectZones(A.zone, B.zone, indirect) + //resetting values of archived values. zone_B = B.zone - zone_A = A.zone - + //The "A" zone changed. else if(A.zone && A.zone != zone_A) - if(zone_A) + //Handle connection cleanup + if(zone_A) if(zone_A.connections) zone_A.connections.Remove(src) if(!zone_A.connections.len) - del zone_A.connections + zone_A.connections = null + + if(A.zone) if(!A.zone.connections) A.zone.connections = list() A.zone.connections |= src - if(indirect != CONNECTION_CLOSED) - if(zone_A.connected_zones) - if(zone_A.connected_zones[zone_B] > 1) - zone_A.connected_zones[zone_B]-- - else - zone_A.connected_zones.Remove(zone_B) - if(zone_A.connected_zones && !zone_A.connected_zones.len) - zone_A.connected_zones = null - - if(!A.zone.connected_zones) - A.zone.connected_zones = list() - if(!(zone_B in A.zone.connected_zones)) - A.zone.connected_zones += zone_B - A.zone.connected_zones[zone_B] = 1 - else - A.zone.connected_zones[zone_B]++ - - else - if(zone_A.closed_connection_zones) - if(zone_A.closed_connection_zones[zone_B] > 1) - zone_A.closed_connection_zones[zone_B]-- - else - zone_A.closed_connection_zones.Remove(zone_B) - if(zone_A.closed_connection_zones && !zone_A.closed_connection_zones.len) - zone_A.closed_connection_zones = null - - if(!A.zone.closed_connection_zones) - A.zone.closed_connection_zones = list() - if(!(zone_B in A.zone.closed_connection_zones)) - A.zone.closed_connection_zones += zone_B - A.zone.closed_connection_zones[zone_B] = 1 - else - A.zone.closed_connection_zones[zone_B]++ - + //If the "A" zone is null, we disconnect the archived ones after cleaning up the connections. + if(!A.zone) + if(zone_A && zone_B) + DisconnectZones(zone_A, zone_B) zone_A = A.zone + return - else - del src + //Handle diconnection and reconnection of zones. + if(zone_A && zone_B) + DisconnectZones(zone_A, zone_B) + ConnectZones(A.zone, B.zone, indirect) + //The "B" zone changed. else if(B.zone && B.zone != zone_B) - if(zone_B) + //Handle connection cleanup + if(zone_B) if(zone_B.connections) zone_B.connections.Remove(src) if(!zone_B.connections.len) - del zone_B.connections + zone_B.connections = null + + if(B.zone) if(!B.zone.connections) B.zone.connections = list() B.zone.connections |= src - if(indirect != CONNECTION_CLOSED) - if(zone_B.connected_zones) - if(zone_B.connected_zones[zone_A] > 1) - zone_B.connected_zones[zone_A]-- - else - zone_B.connected_zones.Remove(zone_A) - if(zone_B.connected_zones && !zone_B.connected_zones.len) - zone_B.connected_zones = null - - if(!B.zone.connected_zones) - B.zone.connected_zones = list() - if(!(zone_A in B.zone.connected_zones)) - B.zone.connected_zones += zone_A - B.zone.connected_zones[zone_A] = 1 - else - B.zone.connected_zones[zone_A]++ - - else - if(zone_B.closed_connection_zones) - if(zone_B.closed_connection_zones[zone_A] > 1) - zone_B.closed_connection_zones[zone_A]-- - else - zone_B.closed_connection_zones.Remove(zone_A) - if(zone_B.closed_connection_zones && !zone_B.closed_connection_zones.len) - zone_B.closed_connection_zones = null - - if(!B.zone.closed_connection_zones) - B.zone.closed_connection_zones = list() - if(!(zone_A in B.zone.closed_connection_zones)) - B.zone.closed_connection_zones += zone_A - B.zone.closed_connection_zones[zone_A] = 1 - else - B.zone.closed_connection_zones[zone_A]++ - + //If the "B" zone is null, we disconnect the archived ones after cleaning up the connections. + if(!B.zone) + if(zone_A && zone_B) + DisconnectZones(zone_A, zone_B) zone_B = B.zone + return - else - del src + //Handle diconnection and reconnection of zones. + if(zone_A && zone_B) + DisconnectZones(zone_A, zone_B) + ConnectZones(A.zone, B.zone, indirect) #undef CONNECTION_DIRECT diff --git a/code/ZAS/Debug.dm b/code/ZAS/Debug.dm index 9cde83e7e3a..9a7ef43a071 100644 --- a/code/ZAS/Debug.dm +++ b/code/ZAS/Debug.dm @@ -40,7 +40,7 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf) if(!istype(other_turf)) return - var/pass_directions = T.CanPass(null, other_turf, 0, 0) + 2*other_turf.CanPass(null, T, 0, 0) + var/pass_directions = T.CanPass(null, other_turf, 0, 0) + 2 * other_turf.CanPass(null, T, 0, 0) switch(pass_directions) if(0) @@ -80,12 +80,9 @@ zone/proc M << "Connections: [length(connections)]" for(var/connection/C in connections) - M << "[C.A] --> [C.B] [(C.indirect?"Indirect":"Direct")]" + M << "[C.A] --> [C.B] [(C.indirect?"Open":"Closed")]" C.A.overlays += 'debug_connect.dmi' C.B.overlays += 'debug_connect.dmi' - spawn(50) - C.A.overlays -= 'debug_connect.dmi' - C.B.overlays -= 'debug_connect.dmi' for(var/C in connections) if(!istype(C,/connection)) M << "[C] (Not Connection!)" diff --git a/code/ZAS/FEA_system.dm b/code/ZAS/FEA_system.dm index 1eadd31ed6b..94b7c5cf6d1 100644 --- a/code/ZAS/FEA_system.dm +++ b/code/ZAS/FEA_system.dm @@ -101,12 +101,10 @@ datum //Geometry updates lists var/list/tiles_to_update = list() var/list/connections_to_check = list() - var/list/rebuilds_to_consider = list() var/current_cycle = 0 var/update_delay = 5 //How long between check should it try to process atmos again. var/failed_ticks = 0 //How many ticks have runtimed? - var/next_stat_check = 10 var/tick_progress = 0 @@ -137,7 +135,10 @@ datum var/start_time = world.timeofday + var/simulated_turf_count = 0 + for(var/turf/simulated/S in world) + simulated_turf_count++ if(!S.zone && !S.blocks_air) if(S.CanPass(null, S, 0, 0)) new/zone(S) @@ -145,8 +146,12 @@ datum for(var/turf/simulated/S in world) S.update_air_properties() - world << "\red \b Geometry processed in [time2text(world.timeofday-start_time, "mm:ss")] minutes!" -// spawn start() + world << {"Geometry initialized in [round(0.1*(world.timeofday-start_time),0.1)] seconds. + Total Simulated Turfs: [simulated_turf_count] + Total Zones: [zones.len] + Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_count]"} + /* + spawn start() proc/start() //Purpose: This is kicked off by the master controller, and controls the processing of all atmosphere. @@ -154,7 +159,7 @@ datum //Inputs: None. //Outputs: None. - /* + set background = 1 while(1) @@ -172,55 +177,30 @@ datum proc/tick() . = 1 //Set the default return value, for runtime detection. - tick_progress = "next_stat_check (atmos statistics)" - if(current_cycle >= next_stat_check) - var/zone/z = pick(zones) - var/log_file = file("[time2text(world.timeofday, "statistics/DD-MM-YYYY-air.txt")]") - log_file << "\"\The [get_area(pick(z.contents))]\",[z.air.oxygen],[z.air.nitrogen],[z.air.carbon_dioxide],[z.air.toxins],[z.air.temperature],[z.air.group_multiplier * z.air.volume]" - next_stat_check = current_cycle + (rand(5,7)*60) - tick_progress = "update_air_properties" if(tiles_to_update.len) //If there are tiles to update, do so. for(var/turf/simulated/T in tiles_to_update) - var/output = T.update_air_properties() - if(. && T && !output) + if(. && T && !T.update_air_properties()) . = 0 //If a runtime occured, make sure we can sense it. //message_admins("ZASALERT: Unable run turf/simualted/update_air_properties()") tiles_to_update = list() - tick_progress = "reconsider_zones" - if(rebuilds_to_consider.len) - for(var/turf/T in rebuilds_to_consider) - if(istype(T, /turf/simulated) && T.zone && !T.zone.rebuild) - var/turf/simulated/other_turf = rebuilds_to_consider[T] - if(istype(other_turf)) - ConsiderRebuild(T,other_turf) - else if(istype(other_turf, /list)) - var/list/temp_turfs = other_turf - for(var/turf/NT in temp_turfs) - ConsiderRebuild(T,NT) - else if (istype(T)) - var/turf/simulated/other_turf = rebuilds_to_consider[T] - if(istype(other_turf)) - ConsiderRebuild(other_turf,T) - else if(istype(other_turf, /list)) - var/list/temp_turfs = other_turf - for(var/turf/simulated/NT in temp_turfs) - ConsiderRebuild(NT,T) - rebuilds_to_consider = list() - + //Check sanity on connection objects. tick_progress = "connections_to_check" if(connections_to_check.len) for(var/connection/C in connections_to_check) C.CheckPassSanity() connections_to_check = list() + //Ensure tiles still have zones. tick_progress = "tiles_to_reconsider_zones" if(tiles_to_reconsider_zones.len) for(var/turf/simulated/T in tiles_to_reconsider_zones) if(!T.zone) new /zone(T) + tiles_to_reconsider_zones = list() + //Process zones. tick_progress = "zone/process()" for(var/zone/Z in zones) if(Z.last_update < current_cycle) @@ -229,150 +209,10 @@ datum Z.last_update = current_cycle if(. && Z && !output) . = 0 - log_admin("ZASALERT: unable run zone/process(), [Z.progress]") - message_admins("ZASALERT. ZASALERT: unable run zone/proc/process(), [Z.progress], tell someone about this!") - + //Process fires. tick_progress = "active_hotspots (fire)" for(var/obj/fire/F in active_hotspots) - var/output = F.process() - if(. && F && !output) + if(. && F && !F.process()) . = 0 - //message_admins("ZASALERT: Unable run obj/fire/process()") - tick_progress = "success" - - proc/AddToConsiderRebuild(var/turf/simulated/T, var/turf/NT) - var/turf/existing_test = rebuilds_to_consider[T] - var/turf/existing_test_alternate = rebuilds_to_consider[NT] - - if(existing_test) - if(NT == existing_test) - return - else if(islist(existing_test) && existing_test[NT]) - return - - else if(existing_test_alternate) - if(T == existing_test_alternate) - return - else if(islist(existing_test_alternate) && existing_test_alternate[T]) - return - - if(istype(T)) - if(istype(existing_test)) - var/list/temp_list = list(NT = 1, existing_test = 1) - rebuilds_to_consider[T] = temp_list - else if(istype(existing_test, /list)) - existing_test[NT] = 1 - else - rebuilds_to_consider[T] = NT - - else if(istype(NT, /turf/simulated)) - if(istype(existing_test_alternate)) - var/list/temp_list = list(T = 1, existing_test_alternate = 1) - rebuilds_to_consider[NT] = temp_list - else if(istype(existing_test_alternate, /list)) - existing_test_alternate[T] = 1 - else - rebuilds_to_consider[NT] = T - - proc/ConsiderRebuild(var/turf/simulated/T, var/turf/NT) - - if(!istype(T)) return - //zones should naturally spread to these tiles eventually - if(!T.zone || !NT.zone) - return - - if(istype(NT, /turf/simulated) && NT.zone != T.zone) - T.zone.RemoveTurf(NT) - if(NT.zone) - NT.zone.RemoveTurf(T) - return - if(T.zone.rebuild) - return - - var/zone/zone = T.zone - - var/target_dir = get_dir(T, NT) - if(target_dir in list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) - T.zone.rebuild = 1 - return - var/test_dir = turn(target_dir, 90) - - var/turf/simulated/current = T - var/turf/simulated/next - var/stepped_back = 0 - - if( !(T.air_check_directions&test_dir || T.air_check_directions&turn(target_dir, 270)) ) - //Step back, then try to connect. - if(!(T.air_check_directions&get_dir(NT, T))) - zone.rebuild = 1 - return - current = get_step(T, get_dir(NT, T)) - if(!istype(current) || !(current.air_check_directions&test_dir || current.air_check_directions&turn(target_dir, 270)) ) - zone.rebuild = 1 - return - stepped_back = 1 - - if ( !(current.air_check_directions&test_dir) && current.air_check_directions&turn(target_dir, 270) ) - //Try to connect to the right hand side. - var/flipped = 0 - test_dir = turn(target_dir, 270) - - for(var/i = 1, i <= 10, i++) - if(get_dir(current, NT) in cardinal) - target_dir = get_dir(current, NT) - - if(!istype(current) || !(current.air_check_directions&target_dir || current.air_check_directions&test_dir)) - if(flipped) - zone.rebuild = 1 - return - current = T - test_dir = turn(target_dir, 180) - i = 0 - target_dir = get_dir(current, NT) - flipped = 1 - continue - - if(current.air_check_directions&target_dir && !stepped_back) - next = get_step(current, target_dir) - if(!next.HasDoor()) - current = next - - if(current.air_check_directions&test_dir && current != next) - next = get_step(current, test_dir) - if(!next.HasDoor()) - current = next - - if(current == NT) - return //We made it, yaaay~ - stepped_back = 0 - zone.rebuild = 1 - - else if ( current.air_check_directions&test_dir ) - //Try to connect to the left hand side. - for(var/i = 1, i <= 10, i++) - if(get_dir(current, NT) in cardinal) - target_dir = get_dir(current, NT) - - if(!istype(current) || !(current.air_check_directions&target_dir || current.air_check_directions&test_dir)) - zone.rebuild = 1 - return - - if(current.air_check_directions&target_dir && !stepped_back) - next = get_step(current, target_dir) - if(!next.HasDoor()) - current = next - - if(current.air_check_directions&test_dir && current != next) - next = get_step(current, test_dir) - if(!next.HasDoor()) - current = next - - if(current == NT) - return //We made it, yaaay~ - stepped_back = 0 - zone.rebuild = 1 - - else - //FUCK IT - zone.rebuild = 1 \ No newline at end of file + tick_progress = "success" \ No newline at end of file diff --git a/code/ZAS/Functions.dm b/code/ZAS/Functions.dm index 0394c6eff79..df250fcb724 100644 --- a/code/ZAS/Functions.dm +++ b/code/ZAS/Functions.dm @@ -1,35 +1,44 @@ //Global Functions //Contents: FloodFill, ZMerge, ZConnect +//Floods outward from an initial turf to fill everywhere it's zone would reach. proc/FloodFill(turf/simulated/start) + if(!istype(start)) return list() - var - list - open = list(start) - closed = list() + //The list of tiles waiting to be evaulated. + var/list/open = list(start) + //The list of tiles which have been evaulated. + var/list/closed = list() + + //Loop through the turfs in the open list in order to find which adjacent turfs should be added to the zone. while(open.len) var/turf/simulated/T = pick(open) + //sanity! if(!istype(T)) open -= T continue + //Check all cardinal directions for(var/d in cardinal) var/turf/simulated/O = get_step(T,d) + //Ensure the turf is of proper type, that it is not in either list, and that air can reach it. if(istype(O) && !(O in open) && !(O in closed) && O.ZCanPass(T)) + //Handle connections from a tile with a door. if(T.HasDoor()) - //If they both have doors, then they are nto able to connect period. + //If they both have doors, then they are not able to connect period. if(O.HasDoor()) continue - //connect first to north and west + //Connect first to north and west if(d == NORTH || d == WEST) open += O + //If that fails, and north/west cannot be connected to, see if west or south can be connected instead. else var/turf/simulated/W = get_step(O, WEST) var/turf/simulated/N = get_step(O, NORTH) @@ -38,9 +47,11 @@ proc/FloodFill(turf/simulated/start) //If it cannot connect either to the north or west, connect it! open += O + //If no doors are involved, add it immediately. else if(!O.HasDoor()) open += O + //Handle connecting to a tile with a door. else if(d == SOUTH || d == EAST) //doors prefer connecting to zones to the north or west @@ -56,23 +67,25 @@ proc/FloodFill(turf/simulated/start) //If it cannot connect either to the north or west, connect it! closed += O + //This tile is now evaluated, and can be moved to the list of evaluated tiles. open -= T closed += T return closed +//Procedure to merge two zones together. proc/ZMerge(zone/A,zone/B) + //Sanity~ if(!istype(A) || !istype(B)) return //Merges two zones so that they are one. - var - a_size = A.air.group_multiplier - b_size = B.air.group_multiplier - c_size = a_size + b_size - new_contents = A.contents + B.contents + var/a_size = A.air.group_multiplier + var/b_size = B.air.group_multiplier + var/c_size = a_size + b_size + var/new_contents = A.contents + B.contents //Set air multipliers to one so air represents gas per tile. A.air.group_multiplier = 1 @@ -86,33 +99,28 @@ proc/ZMerge(zone/A,zone/B) A.air.merge(B.air) A.air.group_multiplier = c_size - //Check for connections to merge into the new zone. - for(var/connection/C in B.connections) - if((C.A in new_contents) && (C.B in new_contents)) - del C - continue - if(!A.connections) A.connections = list() - A.connections += C - - //Add space tiles. - A.unsimulated_tiles += B.unsimulated_tiles - - //Add contents. - A.contents = new_contents - //Set all the zone vars. for(var/turf/simulated/T in B.contents) T.zone = A - for(var/connection/C in A.connections) + //Check for connections to merge into the new zone. + for(var/connection/C in B.connections) + //The Cleanup proc will delete the connection if the zones are the same. + // It will also set the zone variables correctly. C.Cleanup() + //Add space tiles. + A.unsimulated_tiles |= B.unsimulated_tiles + + //Add contents. + A.contents = new_contents + + //Remove the "B" zone, finally. B.SoftDelete() +//Connects two zones by forming a connection object representing turfs A and B. proc/ZConnect(turf/simulated/A,turf/simulated/B) - //Connects two zones by forming a connection object representing turfs A and B. - //Make sure that if it's space, it gets added to unsimulated_tiles instead. if(!istype(B)) @@ -141,83 +149,5 @@ proc/ZConnect(turf/simulated/A,turf/simulated/B) if(C && (C.B == B || C.A == B)) return - new /connection(A,B) - -/* -proc/ZDisconnect(turf/A,turf/B) - //Removes a zone connection. Can split zones in the case of a permanent barrier. - - //If one of them doesn't have a zone, it might be space, so check for that. - if(A.zone && B.zone) - //If the two zones are different, just remove a connection. - if(A.zone != B.zone) - for(var/connection/C in A.zone.connections) - if((C.A == A && C.B == B) || (C.A == B && C.B == A)) - del C - if(C) - C.Cleanup() - //If they're the same, split the zone at this line. - else - //Preliminary checks to prevent stupidity. - if(A == B) return - if(A.CanPass(0,B,0,0)) return - if(A.HasDoor(B) || B.HasDoor(A)) return - - //Do a test fill. If turf B is still in the floodfill, then the zone isn't really split. - var/zone/oldzone = A.zone - var/list/test = FloodFill(A) - if(B in test) return - - else - var/zone/Z = new(test,oldzone.air) //Create a new zone based on the old air and the test fill. - - //Add connections from the old zone. - for(var/connection/C in oldzone.connections) - if((C.A in Z.contents) || (C.B in Z.contents)) - if(!Z.connections) Z.connections = list() - Z.connections += C - C.Cleanup() - - //Check for space. - for(var/turf/T in test) - T.check_for_space() - - //Make a new, identical air mixture for the other zone. - var/datum/gas_mixture/Y_Air = new - Y_Air.copy_from(oldzone.air) - - var/zone/Y = new(B,Y_Air) //Make a new zone starting at B and using Y_Air. - - //Add relevant connections from old zone. - for(var/connection/C in oldzone.connections) - if((C.A in Y.contents) || (C.B in Y.contents)) - if(!Y.connections) Y.connections = list() - Y.connections += C - C.Cleanup() - - //Add the remaining space tiles to this zone. - for(var/turf/space/T in oldzone.unsimulated_tiles) - if(!(T in Z.unsimulated_tiles)) - Y.AddSpace(T) - - oldzone.air = null - del oldzone - else - if(B.zone) - if(istype(A,/turf/space)) - B.zone.RemoveSpace(A) - else - for(var/connection/C in B.zone.connections) - if((C.A == A && C.B == B) || (C.A == B && C.B == A)) - del C - if(C) - C.Cleanup() - if(A.zone) - if(istype(B,/turf/space)) - A.zone.RemoveSpace(B) - else - for(var/connection/C in A.zone.connections) - if((C.A == A && C.B == B) || (C.A == B && C.B == A)) - del C - if(C) - C.Cleanup()*/ \ No newline at end of file + //Make the connection. + new /connection(A,B) \ No newline at end of file diff --git a/code/ZAS/Plasma.dm b/code/ZAS/Plasma.dm index aa444628d9b..3196d93db92 100644 --- a/code/ZAS/Plasma.dm +++ b/code/ZAS/Plasma.dm @@ -68,8 +68,9 @@ obj/item/proc if(!pl_head_protected()) if(prob(1)) suit_contamination() //Plasma can sometimes get through such an open suit. - if(istype(back,/obj/item/weapon/storage/backpack)) - back.contaminate() +//Cannot wash backpacks currently. +// if(istype(back,/obj/item/weapon/storage/backpack)) +// back.contaminate() /mob/proc/pl_effects() diff --git a/code/ZAS/ZAS_Turfs.dm b/code/ZAS/ZAS_Turfs.dm index e058cea3537..c66d77e5f37 100644 --- a/code/ZAS/ZAS_Turfs.dm +++ b/code/ZAS/ZAS_Turfs.dm @@ -165,27 +165,32 @@ turf if(!zone) //Still no zone, the floodfill determined it is not part of a larger zone. Force a zone on it. new/zone(list(src)) - if("\ref[src]" in air_master.turfs_with_connections) //Check pass sanity of the connections. + //Check pass sanity of the connections. + if("\ref[src]" in air_master.turfs_with_connections) for(var/connection/C in air_master.turfs_with_connections["\ref[src]"]) - if(!(C in air_master.connections_to_check)) - air_master.connections_to_check += C + air_master.connections_to_check |= C if(zone && !zone.rebuild) for(var/direction in cardinal) - if(zone.rebuild) - break - var/turf/T = get_step(src,direction) if(!istype(T)) continue - // var/list/zone/adjacent_zones = list() - if(air_check_directions&direction) //I can connect air in this direction - if(!CanPass(null, T, 0, 0)) //If either block air, we must look to see if the adjacent turfs need rebuilt. - if(!T.CanPass(null, T, 0, 0)) //Target blocks air + //I can connect to air in this direction + if(air_check_directions&direction) + + //If either block air, we must look to see if the adjacent turfs need rebuilt. + if(!CanPass(null, T, 0, 0)) + + //Target blocks air + if(!T.CanPass(null, T, 0, 0)) var/turf/NT = get_step(T, direction) + + //If that turf is in my zone still, rebuild. if(istype(NT,/turf/simulated) && NT in zone.contents) - air_master.AddToConsiderRebuild(src,NT) + zone.rebuild = 1 + + //If that is an unsimulated tile in my zone, see if we need to rebuild or just remove. else if(istype(NT) && NT in zone.unsimulated_tiles) var/consider_rebuild = 0 for(var/d in cardinal) @@ -194,17 +199,22 @@ turf consider_rebuild = 1 break if(consider_rebuild) - air_master.AddToConsiderRebuild(src,NT) //Gotta check if we need to rebuild, dammit + zone.rebuild = 1 //Gotta check if we need to rebuild, dammit else zone.RemoveTurf(NT) //Not adjacent to anything, and unsimulated. Goodbye~ //To make a closed connection through closed door. ZConnect(T, src) - if(T.zone && !T.zone.rebuild) //I block air. + //If I block air. + else if(T.zone && !T.zone.rebuild) var/turf/NT = get_step(src, reverse_direction(direction)) + + //If I am splitting a zone, rebuild. if(istype(NT,/turf/simulated) && (NT in T.zone.contents || (NT.zone && T in NT.zone.contents))) - air_master.AddToConsiderRebuild(T,NT) + T.zone.rebuild = 1 + + //If NT is unsimulated, parse if I should remove it or rebuild. else if(istype(NT) && NT in T.zone.unsimulated_tiles) var/consider_rebuild = 0 for(var/d in cardinal) @@ -212,30 +222,48 @@ turf if(istype(UT, /turf/simulated) && UT.zone == T.zone && UT.CanPass(null, NT, 0, 0)) //If we find a neighboring tile that is in the same zone, check if we need to rebuild consider_rebuild = 1 break + + //Needs rebuilt. if(consider_rebuild) - air_master.AddToConsiderRebuild(T,NT) //Gotta check if we need to rebuild, dammit + T.zone.rebuild = 1 + + //Not adjacent to anything, and unsimulated. Goodbye~ else - T.zone.RemoveTurf(NT) //Not adjacent to anything, and unsimulated. Goodbye~ + T.zone.RemoveTurf(NT) else + //Produce connection through open door. ZConnect(src,T) - else if(air_directions_archived&direction) //Something like a wall was built, changing the geometry. + //Something like a wall was built, changing the geometry. + else if(air_directions_archived&direction) var/turf/NT = get_step(T, direction) - if(istype(NT,/turf/simulated) && NT in zone.contents) - air_master.AddToConsiderRebuild(src,NT) - else if(istype(NT) && NT in zone.unsimulated_tiles) //Parse if we need to remove the tile, or rebuild the zone. + //If the tile is in our own zone, and we cannot connect to it, better rebuild. + if(istype(NT,/turf/simulated) && NT in zone.contents) + zone.rebuild = 1 + + //Parse if we need to remove the tile, or rebuild the zone. + else if(istype(NT) && NT in zone.unsimulated_tiles) var/consider_rebuild = 0 + + //Loop through all neighboring turfs to see if we should remove the turf or just rebuild. for(var/d in cardinal) var/turf/UT = get_step(NT,d) - if(istype(UT, /turf/simulated) && UT.zone == zone && UT.CanPass(null, NT, 0, 0)) //If we find a neighboring tile that is in the same zone, check if we need to rebuild + + //If we find a neighboring tile that is in the same zone, rebuild + if(istype(UT, /turf/simulated) && UT.zone == zone && UT.CanPass(null, NT, 0, 0)) consider_rebuild = 1 break + + //The unsimulated turf is adjacent to another one of our zone's turfs, + // better rebuild to be sure we didn't get cut in twain if(consider_rebuild) - air_master.AddToConsiderRebuild(src,NT) //Gotta check if we need to rebuild, dammit + NT.zone.rebuild = 1 + + //Not adjacent to anything, and unsimulated. Goodbye~ else - zone.RemoveTurf(NT) //Not adjacent to anything, and unsimulated. Goodbye~ + zone.RemoveTurf(NT) if(air_check_directions) processing = 1 @@ -254,8 +282,10 @@ turf if(isnum(O) && O) if(!D.density) continue if(istype(D,/obj/machinery/door/window)) - if(!O) continue - if(D.dir == get_dir(D,O)) return 1 + if(!istype(O)) + continue + if(D.dir == get_dir(D,O)) + return 1 else return 1 @@ -271,13 +301,13 @@ turf/proc/ZCanPass(turf/simulated/T, var/include_space = 0) return 0 for(var/obj/obstacle in src) - if(istype(obstacle,/obj/machinery/door) && !istype(obstacle,/obj/machinery/door/window)) + if(istype(obstacle, /obj/machinery/door) && !obstacle:air_properties_vary_with_direction) continue if(!obstacle.CanPass(null, T, 1.5, 1)) return 0 for(var/obj/obstacle in T) - if(istype(obstacle,/obj/machinery/door) && !istype(obstacle,/obj/machinery/door/window)) + if(istype(obstacle, /obj/machinery/door) && !obstacle:air_properties_vary_with_direction) continue if(!obstacle.CanPass(null, src, 1.5, 1)) return 0 @@ -293,13 +323,13 @@ turf/proc/ZAirPass(turf/T) return 0 for(var/obj/obstacle in src) - if(istype(obstacle,/obj/machinery/door) && !istype(obstacle,/obj/machinery/door/window)) + if(istype(obstacle, /obj/machinery/door) && !obstacle:air_properties_vary_with_direction) continue if(!obstacle.CanPass(null, T, 0, 0)) return 0 for(var/obj/obstacle in T) - if(istype(obstacle,/obj/machinery/door) && !istype(obstacle,/obj/machinery/door/window)) + if(istype(obstacle, /obj/machinery/door) && !obstacle:air_properties_vary_with_direction) continue if(!obstacle.CanPass(null, src, 0, 0)) return 0 diff --git a/code/ZAS/ZAS_Zones.dm b/code/ZAS/ZAS_Zones.dm index d4e457ddc91..6401a63a9fb 100644 --- a/code/ZAS/ZAS_Zones.dm +++ b/code/ZAS/ZAS_Zones.dm @@ -20,6 +20,7 @@ zone // To make sure you're not spammed to death by airflow sound effects tmp/playsound_cooldown = 0 + //CREATION AND DELETION New(turf/start) . = ..() @@ -53,6 +54,7 @@ zone //Add this zone to the global list. zones.Add(src) + //LEGACY, DO NOT USE. Use the SoftDelete proc. Del() //Ensuring the zone list doesn't get clogged with null values. @@ -68,25 +70,27 @@ zone air = null . = ..() + //Handles deletion via garbage collection. proc/SoftDelete() zones.Remove(src) air = null + //Ensuring the zone list doesn't get clogged with null values. for(var/turf/simulated/T in contents) RemoveTurf(T) air_master.tiles_to_reconsider_zones += T + + //Removing zone connections and scheduling connection cleanup for(var/zone/Z in connected_zones) if(src in Z.connected_zones) Z.connected_zones.Remove(src) for(var/connection/C in connections) - if(C.zone_A == src) - C.zone_A = null - if(C.zone_B == src) - C.zone_B = null air_master.connections_to_check += C + return 1 + //ZONE MANAGEMENT FUNCTIONS proc/AddTurf(turf/T) //Adds the turf to contents, increases the size of the zone, and sets the zone var. @@ -270,7 +274,13 @@ zone/proc/process() if(moles_delta > 0.1 || abs(air.temperature - Z.air.temperature) > 0.1) if(abs(Z.air.return_pressure() - air.return_pressure()) > vsc.airflow_lightest_pressure) Airflow(src,Z) - ShareRatio( air , Z.air , connected_zones[Z] ) + var/unsimulated_boost = 0 + if(unsimulated_tiles) + unsimulated_boost += unsimulated_tiles.len + if(Z.unsimulated_tiles) + unsimulated_boost += Z.unsimulated_tiles.len + unsimulated_boost = min(3, unsimulated_boost) + ShareRatio( air , Z.air , connected_zones[Z] + unsimulated_boost) for(var/zone/Z in closed_connection_zones) if(air && Z.air) @@ -371,7 +381,14 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles) unsim_co2 += T.carbon_dioxide unsim_nitrogen += T.nitrogen unsim_plasma += T.toxins - unsim_heat_capacity += T.heat_capacity + + // Make sure it actually has gas in it, and use the heat capacity of that. + // Space and unsimulated tiles do NOT have a heat capacity. Thus we don't + // add them. This means "space is not cold", which turns out just fine in + // gameplay terms. + if(istype(T, /turf/simulated)) + unsim_heat_capacity += T:air.heat_capacity() + unsim_temperature += T.temperature/unsimulated_tiles.len var @@ -380,7 +397,14 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles) old_pressure = A.return_pressure() size = max(1,A.group_multiplier) - share_size = max(1,unsimulated_tiles.len) + + // We use the same size for the potentially single space tile + // as we use for the entire room. Why is this? + // Short answer: We do not want larger rooms to depressurize more + // slowly than small rooms, preserving our good old "hollywood-style" + // oh-shit effect when large rooms get breached, but still having small + // rooms remain pressurized for long enough to make escape possible. + share_size = max(1,size - 5 + unsimulated_tiles.len) full_oxy = A.oxygen * size full_nitro = A.nitrogen * size diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index 2daf3690d8b..8a5b496328e 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -15,6 +15,16 @@ if (config.log_admin) diary << "\[[time_stamp()]]ADMIN: [text]" + +/proc/log_debug(text) + if (config.log_debug) + diary << "\[[time_stamp()]]DEBUG: [text]" + + for(var/client/C in admins) + if(C.prefs.toggles & CHAT_DEBUGLOGS) + C << "DEBUG: [text]" + + /proc/log_game(text) if (config.log_game) diary << "\[[time_stamp()]]GAME: [text]" diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index da9d8b34bce..a493aa9d080 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -140,7 +140,24 @@ return t_out - +//checks text for html tags +//if tag is not in whitelist (var/list/paper_tag_whitelist in global.dm) +//relpaces < with < +proc/checkhtml(var/t) + t = sanitize_simple(t, list("&#"=".")) + var/p = findtext(t,"<",1) + while (p) //going through all the tags + var/start = p++ + var/tag = copytext(t,p, p+1) + if (tag != "/") + while (reject_bad_text(copytext(t, p, p+1), 1)) + tag = copytext(t,start, p) + p++ + tag = copytext(t,start+1, p) + if (!(tag in paper_tag_whitelist)) //if it's unkown tag, disarming it + t = copytext(t,1,start-1) + "<" + copytext(t,start+1) + p = findtext(t,"<",p) + return t /* * Text searches */ diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 40e2d4618cd..4f000fe603e 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1327,6 +1327,7 @@ proc/is_hot(obj/item/W as obj) //Is this even used for anything besides balloons? Yes I took out the W:lit stuff because : really shouldnt be used. /proc/is_sharp(obj/item/W as obj) // For the record, WHAT THE HELL IS THIS METHOD OF DOING IT? + if(W.sharp) return 1 return ( \ W.sharp || \ istype(W, /obj/item/weapon/screwdriver) || \ diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index f537bbae3e6..02f8c521aa6 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -8,6 +8,7 @@ var/log_access = 0 // log login/logout var/log_say = 0 // log client say var/log_admin = 0 // log admin actions + var/log_debug = 1 // log debug output var/log_game = 0 // log game events var/log_vote = 0 // log voting var/log_whisper = 0 // log client whisper @@ -193,6 +194,9 @@ if ("log_admin") config.log_admin = 1 + if ("log_debug") + config.log_debug = text2num(value) + if ("log_game") config.log_game = 1 diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 25dc9804d97..3633cda3748 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -117,6 +117,7 @@ datum/controller/game_controller/proc/process() controller_iteration++ vote.process() + process_newscaster() //AIR @@ -132,11 +133,12 @@ datum/controller/game_controller/proc/process() air_master.current_cycle++ var/success = air_master.tick() //Changed so that a runtime does not crash the ticker. if(!success) //Runtimed. - log_adminwarn("ZASALERT: air_system/tick() failed: [air_master.tick_progress]") air_master.failed_ticks++ if(air_master.failed_ticks > 5) world << "RUNTIMES IN ATMOS TICKER. Killing air simulation!" - kill_air = 1 + message_admins("ZASALERT: unable run [air_master.tick_progress], tell someone about this!") + log_admin("ZASALERT: unable run zone/process() -- [air_master.tick_progress]") + air_processing_killed = 1 air_master.failed_ticks = 0 air_cost = (world.timeofday - timer) / 10 diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 69915279a89..c8336d85f20 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -165,7 +165,7 @@ datum/controller/vote proc/initiate_vote(var/vote_type, var/initiator_key) if(!mode) - if(started_time != null) + if(started_time != null && !check_rights(R_ADMIN)) var/next_allowed_time = (started_time + config.vote_delay) if(next_allowed_time > world.time) return 0 @@ -200,7 +200,13 @@ datum/controller/vote log_vote(text) world << "[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote." - world << sound('weapons/smg_empty_alarm.ogg') + switch(vote_type) + if("crew_transfer") + world << sound('sound/voice/Serithi/Shuttlehere.ogg') + if("gamemode") + world << sound('sound/voice/Serithi/pretenddemoc.ogg') + if("custom") + world << sound('sound/voice/Serithi/weneedvote.ogg') if(mode == "gamemode" && going) going = 0 world << "Round start has been delayed." diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 99b56c346e0..e4fa37f77ac 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -696,7 +696,11 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl if (in_range) if (!( human.restrained() || human.lying )) if (W) - attackby(W,human) + var/was_used = 0 + if(W) + was_used = W.is_used_on(src, human) + if(!was_used) + attackby(W,human) if (W) W.afterattack(src, human) else diff --git a/code/game/communications.dm b/code/game/communications.dm index e3a42c0fb09..f83c3028745 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -112,6 +112,7 @@ var/list/radiochannels = list( var/list/DEPT_FREQS = list(1351,1355,1357,1359,1213,1441,1347) var/const/COMM_FREQ = 1353 //command, colored gold in chat window var/const/SYND_FREQ = 1213 +var/const/ERT_FREQ = 1439 #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index c0368c0ad04..c5b159dd1a9 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -142,7 +142,7 @@ traitorcheckloop() -/* + /datum/game_mode/traitor/autotraitor/latespawn(mob/living/carbon/human/character) ..() if(emergency_shuttle.departed) @@ -192,6 +192,5 @@ //message_admins("New traitor roll failed. No new traitor.") //else //message_admins("Late Joiner does not have Be Syndicate") -*/ diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 712fd7261de..e1fbf5dfb4f 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -27,6 +27,7 @@ var/required_players_secret = 0 //Minimum number of players for that game mode to be chose in Secret var/required_enemies = 0 var/recommended_enemies = 0 + var/newscaster_announcements = null var/uplink_welcome = "Syndicate Uplink Console:" var/uplink_uses = 10 var/uplink_items = {"Highly Visible and Dangerous Weapons; @@ -290,6 +291,7 @@ Implants; if(player.client.prefs.be_special & role) if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans candidates += player.mind // Get a list of all the people who want to be the antagonist for this round + log_debug("[player.key] had [roletext] enabled, so drafting them.") if(restricted_jobs) for(var/datum/mind/player in candidates) @@ -317,6 +319,7 @@ Implants; applicant = pick(drafted) if(applicant) candidates += applicant + log_debug("[applicant.key] was force-drafted as [roletext], because there aren't enough candidates.") drafted.Remove(applicant) else // Not enough scrubs, ABORT ABORT ABORT @@ -342,7 +345,7 @@ Implants; if(applicant) candidates += applicant drafted.Remove(applicant) - message_admins("[applicant.key] drafted into antagonist role against their preferences.") + log_debug("[applicant.key] was force-drafted as [roletext], because there aren't enough candidates.") else // Not enough scrubs, ABORT ABORT ABORT break @@ -351,9 +354,10 @@ Implants; // recommended_enemies if the number of people with that role set to yes is less than recomended_enemies, // Less if there are not enough valid players in the game entirely to make recommended_enemies. -/* + /datum/game_mode/proc/latespawn(var/mob) +/* /datum/game_mode/proc/check_player_role_pref(var/role, var/mob/new_player/player) if(player.preferences.be_special & role) return 1 @@ -388,6 +392,9 @@ Implants; heads += player.mind return heads +/datum/game_mode/New() + newscaster_announcements = pick(newscaster_standard_feeds) + ////////////////////////// //Reports player logouts// ////////////////////////// diff --git a/code/game/gamemodes/revolution/rp_revolution.dm b/code/game/gamemodes/revolution/rp_revolution.dm index 2159138448a..98923b49eef 100644 --- a/code/game/gamemodes/revolution/rp_revolution.dm +++ b/code/game/gamemodes/revolution/rp_revolution.dm @@ -8,6 +8,12 @@ required_enemies = 3 recommended_enemies = 3 + uplink_welcome = "Revolutionary Uplink Console:" + uplink_uses = 5 + + newscaster_announcements = /datum/news_announcement/revolution_inciting_event + + var/last_command_report = 0 var/list/heads = list() var/tried_to_add_revheads = 0 @@ -57,7 +63,7 @@ var/datum/objective/mutiny/rp/rev_obj = new rev_obj.owner = rev_mind rev_obj.target = head_mind - rev_obj.explanation_text = "Assassinate or capture [head_mind.name], the [head_mind.assigned_role]." + rev_obj.explanation_text = "Assassinate, convert or capture [head_mind.name], the [head_mind.assigned_role]." rev_mind.objectives += rev_obj update_rev_icons_added(rev_mind) @@ -65,6 +71,8 @@ for(var/datum/mind/rev_mind in head_revolutionaries) greet_revolutionary(rev_mind) rev_mind.current.verbs += /mob/living/carbon/human/proc/RevConvert + equip_traitor(rev_mind.current, 1) //changing how revs get assigned their uplink so they can get PDA uplinks. --NEO + modePlayer += head_revolutionaries spawn (rand(waittime_l, waittime_h)) send_intercept() @@ -183,8 +191,7 @@ active_revs++ if(active_revs == 0) - log_admin("There are zero active head revolutionists, trying to add some..") - message_admins("There are zero active head revolutionists, trying to add some..") + log_debug("There are zero active heads of revolution, trying to add some..") var/added_heads = 0 for(var/mob/living/carbon/human/H in world) if(H.client && H.mind && H.client.inactivity <= 10*60*20 && H.mind in revolutionaries) head_revolutionaries += H.mind @@ -210,4 +217,38 @@ message_admins("Unable to add new heads of revolution.") tried_to_add_revheads = world.time + 6000 // wait 10 minutes - return ..() \ No newline at end of file + if(last_command_report == 0 && world.time >= 10 * 60 * 10) + src.command_report("We are regrettably announcing that your performance has been disappointing, and we are thus forced to cut down on financial support to your station. To achieve this, the pay of all personnal, except the Heads of Staff, has been halved.") + last_command_report = 1 + else if(last_command_report == 1 && world.time >= 10 * 60 * 30) + src.command_report("Statistics hint that a high amount of leisure time, and associated activities, are responsible for the poor performance of many of our stations. You are to bolt and close down any leisure facilities, such as the holodeck, the theatre and the bar. Food can be distributed through vendors and the kitchen.") + last_command_report = 2 + else if(last_command_report == 2 && world.time >= 10 * 60 * 60) + src.command_report("It is reported that merely closing down leisure facilities has not been successful. You and your Heads of Staff are to ensure that all crew are working hard, and not wasting time or energy. Any crew caught off duty without leave from their Head of Staff are to be warned, and on repeated offence, to be brigged until the next transfer shuttle arrives, which will take them to facilities where they can be of more use.") + last_command_report = 3 + + return ..() + +/datum/game_mode/revolution/rp_revolution/proc/command_report(message) + for (var/obj/machinery/computer/communications/comm in world) + if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) + var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) + intercept.name = "paper- 'Cent. Com. Announcement'" + intercept.info = message + + comm.messagetitle.Add("Cent. Com. Announcement") + comm.messagetext.Add(message) + world << sound('commandreport.ogg') + +/datum/game_mode/revolution/rp_revolution/latespawn(mob/M) + if(M.mind.assigned_role in command_positions) + log_debug("Adding head kill/capture/convert objective for [M.name]") + heads += M + + for(var/datum/mind/rev_mind in head_revolutionaries) + var/datum/objective/mutiny/rp/rev_obj = new + rev_obj.owner = rev_mind + rev_obj.target = M.mind + rev_obj.explanation_text = "Assassinate, convert or capture [M.real_name], the [M.mind.assigned_role]." + rev_mind.objectives += rev_obj + rev_mind.current << "\red A new Head of Staff, [M.real_name], the [M.mind.assigned_role] has appeared. Your objectives have been updated." \ No newline at end of file diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 020fb720922..a6f19053ce9 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -115,7 +115,7 @@ steal_objective.find_target() traitor.objectives += steal_objective switch(rand(1,100)) - if(1 to 90) + if(1 to 100) if (!(locate(/datum/objective/escape) in traitor.objectives)) var/datum/objective/escape/escape_objective = new escape_objective.owner = traitor diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index d086a7f6b0b..e1b19a287b6 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -87,7 +87,7 @@ escape_objective.owner = wizard wizard.objectives += escape_objective - if(61 to 85) + if(61 to 100) var/datum/objective/assassinate/kill_objective = new kill_objective.owner = wizard kill_objective.find_target() diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 40fc0e0bcd3..256d7892f82 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -62,7 +62,7 @@ switch(H.mind.role_alt_title) if("Emergency Physician") H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/fr_jacket(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/fr_jacket(H), slot_wear_suit) if("Surgeon") H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit) @@ -215,4 +215,4 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) - return 1 + return 1 diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index cdfde8afaf2..f31746de802 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -67,7 +67,7 @@ idle_power_usage = 4 active_power_usage = 8 power_channel = ENVIRON - req_access = list(access_atmospherics, access_engine_equip) + req_one_access = list(access_atmospherics, access_engine_equip) var/frequency = 1439 //var/skipprocess = 0 //Experimenting var/alarm_frequency = 1437 diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index d43f7657f2c..5fdfc357490 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -18,6 +18,14 @@ use_power = 0 var/release_log = "" +/obj/machinery/portable_atmospherics/initialize() + . = ..() + spawn() + var/obj/machinery/atmospherics/portables_connector/connector = locate() in loc + if(connector) + connected_port = connector + update_icon() + /obj/machinery/portable_atmospherics/canister/sleeping_agent name = "Canister: \[N2O\]" icon_state = "redws" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 935cae8240f..e8d4078593e 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1169,7 +1169,7 @@ About the new airlock wires panel: return src.add_fingerprint(user) - if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating ) && src.density)) + if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density)) var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(0,user)) if(!src.welded) @@ -1198,7 +1198,7 @@ About the new airlock wires panel: beingcrowbarred = 1 //derp, Agouri else beingcrowbarred = 0 - if( beingcrowbarred && (density && welded && !operating && src.p_open && (!src.arePowerSystemsOn() || stat & NOPOWER) && !src.locked) ) + if( beingcrowbarred && (operating == -1 || density && welded && operating != 1 && src.p_open && (!src.arePowerSystemsOn() || stat & NOPOWER) && !src.locked) ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") if(do_after(user,40)) @@ -1243,6 +1243,9 @@ About the new airlock wires panel: ae = electronics electronics = null ae.loc = src.loc + if(operating == -1) + ae.icon_state = "door_electronics_smoked" + operating = 0 del(src) return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index c09dbfdf682..9ac8ad6c7f4 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -18,6 +18,7 @@ var/glass = 0 var/normalspeed = 1 var/heat_proof = 0 // For glass airlocks/opacity firedoors + var/air_properties_vary_with_direction = 0 /obj/machinery/door/New() ..() @@ -218,7 +219,7 @@ /obj/machinery/door/proc/close() if(density) return 1 - if(operating) return + if(operating > 0) return operating = 1 animate("closing") diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 07a3a1b9b83..9566cd6db40 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -234,6 +234,7 @@ glass = 1 //There is a glass window so you can see through the door //This is needed due to BYOND limitations in controlling visibility heat_proof = 1 + air_properties_vary_with_direction = 1 CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(istype(mover) && mover.checkpass(PASSGLASS)) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 55aef446eaa..45ff776d401 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -11,6 +11,7 @@ opacity = 0 var/obj/item/weapon/airlock_electronics/electronics = null explosion_resistance = 5 + air_properties_vary_with_direction = 1 /obj/machinery/door/window/update_nearby_tiles(need_rebuild) diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index fb5cc1575af..a0d9c847b2f 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -153,6 +153,7 @@ obj/machinery/embedded_controller/radio/access_controller name = "Access Console" density = 0 power_channel = ENVIRON + unacidable = 1 frequency = 1449 diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index a997dcfdac0..9aa6a5a8e96 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -262,6 +262,7 @@ obj/machinery/embedded_controller/radio/airlock_controller name = "Airlock Console" density = 0 + unacidable = 1 frequency = 1449 power_channel = ENVIRON diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm index f43031884da..f226d33f9ef 100644 --- a/code/game/machinery/embedded_controller/simple_vent_controller.dm +++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm @@ -44,6 +44,7 @@ name = "Vent Controller" density = 0 + unacidable = 1 frequency = 1229 power_channel = ENVIRON diff --git a/code/game/machinery/embedded_controller/smart_airlock_controller.dm b/code/game/machinery/embedded_controller/smart_airlock_controller.dm index 3d5fe5a01ef..032c1fa82c5 100644 --- a/code/game/machinery/embedded_controller/smart_airlock_controller.dm +++ b/code/game/machinery/embedded_controller/smart_airlock_controller.dm @@ -252,7 +252,7 @@ obj/machinery/embedded_controller/radio/smart_airlock_controller name = "Cycling Airlock Console" density = 0 - + unacidable = 1 frequency = 1449 power_channel = ENVIRON diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 10002bc570b..d50cc775ca4 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -99,4 +99,32 @@ obj/machinery/recharger/update_icon() //we have an update_icon() in addition to if(charging) icon_state = "recharger1" else - icon_state = "recharger0" \ No newline at end of file + icon_state = "recharger0" + +obj/machinery/recharger/wallcharger + name = "wall recharger" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "wrecharger0" + +obj/machinery/recharger/wallcharger/process() + if(stat & (NOPOWER|BROKEN) || !anchored) + return + + if(charging) + if(istype(charging, /obj/item/weapon/gun/energy)) + var/obj/item/weapon/gun/energy/E = charging + if(E.power_supply.charge < E.power_supply.maxcharge) + E.power_supply.give(100) + icon_state = "wrecharger1" + use_power(250) + else + icon_state = "wrecharger2" + return + if(istype(charging, /obj/item/weapon/melee/baton)) + var/obj/item/weapon/melee/baton/B = charging + if(B.charges < initial(B.charges)) + B.charges++ + icon_state = "wrecharger1" + use_power(150) + else + icon_state = "wrecharger2" \ No newline at end of file diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 754d758248b..0845b0ba73b 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -148,6 +148,15 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept signal.data["radio"], signal.data["message"], signal.data["name"], signal.data["job"], signal.data["realname"], signal.data["vname"],, signal.data["compression"], list(0), connection.frequency) + + if(connection.frequency == ERT_FREQ) + Broadcast_Message(signal.data["connection"], signal.data["mob"], + signal.data["vmask"], signal.data["vmessage"], + signal.data["radio"], signal.data["message"], + signal.data["name"], signal.data["job"], + signal.data["realname"], signal.data["vname"],, signal.data["compression"], list(0), connection.frequency) + + else if(intercept) Broadcast_Message(signal.data["connection"], signal.data["mob"], diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 0cd533cf274..2fe5b5e3a64 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -24,12 +24,18 @@ toggled = 0 autolinkers = list("r_relay") +/obj/machinery/telecomms/relay/preset/centcom + id = "Centcom Relay" + hide = 1 + toggled = 0 + autolinkers = list("c_relay") + //HUB /obj/machinery/telecomms/hub/preset id = "Hub" network = "tcommsat" - autolinkers = list("hub", "relay", "s_relay", "m_relay", "r_relay", "science", "medical", + autolinkers = list("hub", "relay", "c_relay", "s_relay", "m_relay", "r_relay", "science", "medical", "supply", "common", "command", "engineering", "security", "receiverA", "receiverB", "broadcasterA", "broadcasterB") diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 1c6fe70e8c0..ba63563d7c5 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -84,3 +84,45 @@ icon_state = icon_closed else icon_state = icon_opened + + +/obj/item/bodybag/cryobag + name = "stasis bag" + desc = "A folded, non-reusable bag designed for the preservation of an occupant's brain by stasis." + icon = 'icons/obj/cryobag.dmi' + icon_state = "bodybag_folded" + + + attack_self(mob/user) + var/obj/structure/closet/body_bag/cryobag/R = new /obj/structure/closet/body_bag/cryobag(user.loc) + R.add_fingerprint(user) + del(src) + + + +/obj/structure/closet/body_bag/cryobag + name = "stasis bag" + desc = "A non-reusable plastic bag designed for the preservation of an occupant's brain by stasis." + icon = 'icons/obj/cryobag.dmi' + icon_state = "bodybag_closed" + icon_closed = "bodybag_closed" + icon_opened = "bodybag_open" + density = 0 + + var/used = 0 + + open() + . = ..() + if(used) + var/obj/item/O = new/obj/item(src.loc) + O.name = "used stasis bag" + O.icon = src.icon + O.icon_state = "bodybag_used" + O.desc = "Pretty useless now.." + del(src) + + MouseDrop(over_object, src_location, over_location) + if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) + if(!ishuman(usr)) return + usr << "\red You can't fold that up anymore.." + ..() \ No newline at end of file diff --git a/code/game/objects/items/devices/debugger.dm b/code/game/objects/items/devices/debugger.dm new file mode 100644 index 00000000000..7a05fc696a9 --- /dev/null +++ b/code/game/objects/items/devices/debugger.dm @@ -0,0 +1,45 @@ +/** + * Multitool -- A multitool is used for hacking electronic devices. + * TO-DO -- Using it as a power measurement tool for cables etc. Nannek. + * + */ + +/obj/item/device/debugger + icon = 'icons/obj/hacktool.dmi' + name = "debugger" + desc = "Used to debug electronic equipment." + icon_state = "hacktool-g" + flags = FPRINT | TABLEPASS| CONDUCT + force = 5.0 + w_class = 2.0 + throwforce = 5.0 + throw_range = 15 + throw_speed = 3 + desc = "You can use this on airlocks or APCs to try to hack them without cutting wires." + m_amt = 50 + g_amt = 20 + origin_tech = "magnets=1;engineering=1" + var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage + +/obj/item/device/debugger/is_used_on(obj/O, mob/user) + if(istype(O, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = O + if(A.emagged || A.malfhack) + user << "\red There is a software error with the device." + else + user << "\blue The device's software appears to be fine." + return 1 + if(istype(O, /obj/machinery/door)) + var/obj/machinery/door/D = O + if(D.operating == -1) + user << "\red There is a software error with the device." + else + user << "\blue The device's software appears to be fine." + return 1 + else if(istype(O, /obj/machinery)) + var/obj/machinery/A = O + if(A.emagged) + user << "\red There is a software error with the device." + else + user << "\blue The device's software appears to be fine." + return 1 \ No newline at end of file diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index d79a76507a5..82abc09f7ea 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -76,9 +76,9 @@ M.updatehealth() /obj/item/stack/medical/bruise_pack - name = "bruise pack" - singular_name = "bruise pack" - desc = "A pack designed to treat blunt-force trauma." + name = "roll of gauze" + singular_name = "gauze length" + desc = "Some sterile gauze to wrap around bloody stumps." icon_state = "brutepack" heal_brute = 60 origin_tech = "biotech=1" diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 649a4fe713c..aeb3e86227d 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -119,7 +119,7 @@ /obj/item/weapon/card/id/syndicate name = "agent card" - access = list(access_maint_tunnels, access_syndicate) + access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) origin_tech = "syndicate=3" /obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob) @@ -156,7 +156,7 @@ desc = "An ID straight from the Syndicate." registered_name = "Syndicate" assignment = "Syndicate Overlord" - access = list(access_syndicate) + access = list(access_syndicate, access_external_airlocks) /obj/item/weapon/card/id/captains_spare name = "captain's spare ID" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 66cb1998d0a..d68a7b3c8d3 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -16,6 +16,8 @@ var/damtype = "brute" var/force = 0 +/obj/item/proc/is_used_on(obj/O, mob/user) + /obj/proc/process() processing_objects.Remove(src) return 0 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 02198aee08f..3309b5b54d1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -94,7 +94,7 @@ new /obj/item/clothing/under/rank/nurse(src) new /obj/item/clothing/under/rank/orderly(src) new /obj/item/clothing/suit/storage/labcoat(src) - new /obj/item/clothing/suit/fr_jacket(src) + new /obj/item/clothing/suit/storage/fr_jacket(src) new /obj/item/clothing/shoes/white(src) // new /obj/item/weapon/cartridge/medical(src) new /obj/item/device/radio/headset/headset_med(src) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index ea06d19ed60..7ece9970d55 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -349,7 +349,7 @@ obj/structure/door_assembly src.state = 0 src.name = "Secured Airlock Assembly" - else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 ) + else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.") user.drop_item() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 5d055f1a8cb..f06eb81ba32 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -3,6 +3,7 @@ desc = "A huge chunk of metal used to seperate rooms." icon = 'icons/turf/walls.dmi' var/mineral = "metal" + var/rotting = 0 opacity = 1 density = 1 blocks_air = 1 @@ -59,9 +60,11 @@ P.roll_and_drop(src) else O.loc = src + ChangeTurf(/turf/simulated/floor/plating) /turf/simulated/wall/ex_act(severity) + if(rotting) severity = 1.0 switch(severity) if(1.0) //SN src = null @@ -84,7 +87,7 @@ return /turf/simulated/wall/blob_act() - if(prob(50)) + if(prob(50) || rotting) dismantle_wall() /turf/simulated/wall/attack_paw(mob/user as mob) @@ -103,11 +106,11 @@ /turf/simulated/wall/attack_animal(mob/living/simple_animal/M as mob) if(M.wall_smash) - if (istype(src, /turf/simulated/wall/r_wall)) + if (istype(src, /turf/simulated/wall/r_wall) && !rotting) M << text("\blue This wall is far too strong for you to destroy.") return else - if (prob(40)) + if (prob(40) || rotting) M << text("\blue You smash through the wall.") dismantle_wall(1) return @@ -120,7 +123,7 @@ /turf/simulated/wall/attack_hand(mob/user as mob) if (HULK in user.mutations) - if (prob(40)) + if (prob(40) || rotting) usr << text("\blue You smash through the wall.") usr.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) dismantle_wall(1) @@ -129,6 +132,11 @@ usr << text("\blue You punch the wall.") return + if(rotting) + user << "\blue The wall crumbles under your touch." + dismantle_wall() + return + user << "\blue You push the wall but nothing happens!" playsound(src.loc, 'sound/weapons/Genhit.ogg', 25, 1) src.add_fingerprint(user) @@ -143,6 +151,21 @@ //get the user's location if( !istype(user.loc, /turf) ) return //can't do this stuff whilst inside objects and such + if(rotting) + if(istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) + user << "You burn away the fungi with \the [WT]." + playsound(src.loc, 'sound/items/Welder.ogg', 10, 1) + for(var/obj/effect/E in src) if(E.name == "Wallrot") + del E + rotting = 0 + return + else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) + user << "\The [src] crumbles away under the force of your [W.name]." + src.dismantle_wall(1) + return + //THERMITE related stuff. Calls src.thermitemelt() which handles melting simulated walls and the relevant effects if( thermite ) if( istype(W, /obj/item/weapon/weldingtool) ) @@ -284,6 +307,24 @@ return attack_hand(user) return +// Wall-rot effect, a nasty fungus that destroys walls. +/turf/simulated/wall/proc/rot() + if(!rotting) + rotting = 1 + + var/number_rots = rand(2,3) + for(var/i=0, iYou burn away the fungi with \the [WT]." + playsound(src.loc, 'sound/items/Welder.ogg', 10, 1) + for(var/obj/effect/E in src) if(E.name == "Wallrot") + del E + rotting = 0 + return + else if(!is_sharp(W) && W.force >= 10 || W.force >= 20) + user << "\The [src] crumbles away under the force of your [W.name]." + src.dismantle_wall() + return //THERMITE related stuff. Calls src.thermitemelt() which handles melting simulated walls and the relevant effects if( thermite ) diff --git a/code/global.dm b/code/global.dm index 3a81f7bac43..cd6e374a94f 100644 --- a/code/global.dm +++ b/code/global.dm @@ -27,6 +27,12 @@ var/global/list/global_map = null ////////////// +var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \ + "big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \ + "table","td","th","tr") +var/list/paper_blacklist = list("java","onblur","onchange","onclick","ondblclick","onfocus","onkeydown", \ + "onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover", \ + "onmouseup","onreset","onselect","onsubmit","onunload") var/BLINDBLOCK = 0 var/DEAFBLOCK = 0 diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index abcb3d52b7b..25daafc9f41 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -64,6 +64,7 @@ var/list/admin_verbs_admin = list( /client/proc/cmd_admin_change_custom_event, /client/proc/cmd_admin_rejuvenate, /client/proc/toggleattacklogs, + /client/proc/toggledebuglogs, /datum/admins/proc/show_skills, /client/proc/check_customitem_activity ) @@ -134,7 +135,8 @@ var/list/admin_verbs_debug = list( /client/proc/reload_admins, /client/proc/restart_controller, /client/proc/enable_debug_verbs, - /client/proc/callproc + /client/proc/callproc, + /client/proc/toggledebuglogs ) var/list/admin_verbs_possess = list( /proc/possess, @@ -222,6 +224,7 @@ var/list/admin_verbs_mod = list( /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/debug_variables, /*allows us to -see- the variables of any instance in the game.*/ + /client/proc/toggledebuglogs, /datum/admins/proc/PlayerNotes, /client/proc/admin_ghost, /*allows us to ghost/reenter body at will*/ /client/proc/cmd_mod_say, @@ -721,4 +724,15 @@ var/list/admin_verbs_mod = list( if (prefs.toggles & CHAT_ATTACKLOGS) usr << "You now will get attack log messages" else - usr << "You now won't get attack log messages" + usr << "You now won't get attack log messages" + + +/client/proc/toggledebuglogs() + set name = "Toggle Debug Log Messages" + set category = "Preferences" + + prefs.toggles ^= CHAT_DEBUGLOGS + if (prefs.toggles & CHAT_DEBUGLOGS) + usr << "You now will get debug log messages" + else + usr << "You now won't get debug log messages" \ No newline at end of file diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 41ba7dd82a2..f31802d4e07 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -158,7 +158,7 @@ icon_state = "suspenders" blood_overlay_type = "armor" //it's the less thing that I can put here -/obj/item/clothing/suit/fr_jacket +/obj/item/clothing/suit/storage/fr_jacket name = "first responder jacket" desc = "A high-visibility jacket worn by medical first responders." icon_state = "fr_jacket_open" diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index dce1fcc0b3b..93fc84f97c7 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -20,6 +20,8 @@ sleep(2400) */ +var/list/event_last_fired = list() + //Always triggers an event when called, dynamically chooses events based on job population /proc/spawn_dynamic_event() if(!config.allow_random_events) @@ -61,6 +63,7 @@ possibleEvents[/datum/event/ionstorm] = 25 + active_with_role["AI"] * 25 + active_with_role["Cyborg"] * 25 + active_with_role["Engineer"] * 10 + active_with_role["Scientist"] * 5 possibleEvents[/datum/event/grid_check] = 25 + 10 * active_with_role["Engineer"] possibleEvents[/datum/event/electrical_storm] = 75 + 25 * active_with_role["Janitor"] + 5 * active_with_role["Engineer"] + possibleEvents[/datum/event/wallrot] = 50 * active_with_role["Engineer"] + 100 * active_with_role["Botanist"] if(!spacevines_spawned) possibleEvents[/datum/event/spacevine] = 5 + 10 * active_with_role["Engineer"] @@ -69,11 +72,12 @@ possibleEvents[/datum/event/meteor_shower] = 80 * active_with_role["Engineer"] possibleEvents[/datum/event/blob] = 30 * active_with_role["Engineer"] - possibleEvents[/datum/event/viral_infection] = 25 + active_with_role["Medical"] * 25 + possibleEvents[/datum/event/viral_infection] = 25 + active_with_role["Medical"] * 100 if(active_with_role["Medical"] > 0) possibleEvents[/datum/event/radiation_storm] = active_with_role["Medical"] * 100 - possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 75 - possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 5 + possibleEvents[/datum/event/spontaneous_appendicitis] = active_with_role["Medical"] * 150 + possibleEvents[/datum/event/viral_outbreak] = active_with_role["Medical"] * 10 + possibleEvents[/datum/event/organ_failure] = active_with_role["Medical"] * 50 possibleEvents[/datum/event/prison_break] = active_with_role["Security"] * 50 if(active_with_role["Security"] > 0) @@ -84,16 +88,26 @@ if(!sent_ninja_to_station && toggle_space_ninja) possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5) + for(var/event_type in event_last_fired) if(possibleEvents[event_type]) + var/time_passed = world.time - event_last_fired[event_type] + var/full_recharge_after = 60 * 60 * 10 * 3 // 3 hours + var/weight_modifier = max(0, (full_recharge_after - time_passed) / 300) + + possibleEvents[event_type] = max(possibleEvents[event_type] - weight_modifier, 0) + + var/picked_event = pickweight(possibleEvents) + event_last_fired[picked_event] = world.time + // Debug code below here, very useful for testing so don't delete please. - /*var/debug_message = "Firing random event. " + var/debug_message = "Firing random event. " for(var/V in active_with_role) debug_message += "#[V]:[active_with_role[V]] " debug_message += "||| " for(var/V in possibleEvents) debug_message += "[V]:[possibleEvents[V]]" - message_admins(debug_message)*/ + debug_message += "|||Picked:[picked_event]" + log_debug(debug_message) - var/picked_event = pickweight(possibleEvents) if(!picked_event) return @@ -176,6 +190,7 @@ active_with_role["AI"] = 0 active_with_role["Cyborg"] = 0 active_with_role["Janitor"] = 0 + active_with_role["Botanist"] = 0 for(var/mob/M in player_list) if(!M.mind || !M.client || M.client.inactivity > 10 * 10 * 60) // longer than 10 minutes AFK counts them as inactive @@ -208,4 +223,7 @@ if(M.mind.assigned_role == "Janitor") active_with_role["Janitor"]++ + if(M.mind.assigned_role == "Botanist") + active_with_role["Botanist"]++ + return active_with_role diff --git a/code/modules/events/event_manager.dm b/code/modules/events/event_manager.dm index 0af33b153be..585cf6122a2 100644 --- a/code/modules/events/event_manager.dm +++ b/code/modules/events/event_manager.dm @@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event //var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation -var/eventTimeLower = 10000 //15 minutes -var/eventTimeUpper = 25000 //30 minutes +var/eventTimeLower = 6000 //10 minutes +var/eventTimeUpper = 12000 //15 minutes var/scheduledEvent = null @@ -30,7 +30,9 @@ var/scheduledEvent = null playercount_modifier = 0.9 if(36 to 100000) playercount_modifier = 0.8 - scheduledEvent = world.timeofday + rand(eventTimeLower, eventTimeUpper) * playercount_modifier + var/next_event_delay = rand(eventTimeLower, eventTimeUpper) * playercount_modifier + scheduledEvent = world.timeofday + next_event_delay + log_debug("Next event in [next_event_delay/600] minutes.") else if(world.timeofday > scheduledEvent) spawn_dynamic_event() diff --git a/code/modules/events/organ_failure.dm b/code/modules/events/organ_failure.dm new file mode 100644 index 00000000000..89456c0c1ba --- /dev/null +++ b/code/modules/events/organ_failure.dm @@ -0,0 +1,28 @@ +datum/event/organ_failure + var/severity = 1 + +datum/event/organ_failure/setup() + announceWhen = rand(0, 300) + endWhen = announceWhen + 1 + severity = rand(1, 3) + +datum/event/organ_failure/announce() + command_alert("Confirmed outbreak of level [rand(3,7)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + world << sound('sound/AI/outbreak5.ogg') + +datum/event/organ_failure/start() + var/list/candidates = list() //list of candidate keys + for(var/mob/living/carbon/human/G in player_list) + if(G.mind && G.mind.current && G.mind.current.stat != DEAD && G.health > 70) + candidates += G + if(!candidates.len) return + candidates = shuffle(candidates)//Incorporating Donkie's list shuffle + + while(severity > 0 && candidates.len) + var/mob/living/carbon/human/C = candidates[1] + + // Bruise one of their organs + var/datum/organ/internal/I = pick(C.internal_organs) + I.damage = I.min_bruised_damage + candidates.Remove(C) + severity-- diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index b077ef5782b..d9cca33e725 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -1,36 +1,45 @@ /datum/event/radiation_storm - announceWhen = 5 + announceWhen = 1 oneShot = 1 /datum/event/radiation_storm/announce() - command_alert("High levels of radiation detected near the station. Please report to the Med-bay if you feel strange.", "Anomaly Alert") - world << sound('sound/AI/radiation.ogg') - + // Don't do anything, we want to pack the announcement with the actual event /datum/event/radiation_storm/start() - for(var/mob/living/carbon/human/H in living_mob_list) - var/turf/T = get_turf(H) - if(!T) - continue - if(T.z != 1) - continue - if(istype(H,/mob/living/carbon/human)) - H.apply_effect((rand(15,75)),IRRADIATE,0) - if(prob(5)) - H.apply_effect((rand(90,150)),IRRADIATE,0) - if(prob(25)) - if (prob(75)) - randmutb(H) - domutcheck(H,null,1) - else - randmutg(H) - domutcheck(H,null,1) + spawn() + command_alert("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert") - for(var/mob/living/carbon/monkey/M in living_mob_list) - var/turf/T = get_turf(M) - if(!T) - continue - if(T.z != 1) - continue - M.apply_effect((rand(15,75)),IRRADIATE,0) \ No newline at end of file + sleep(200) + + command_alert("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert") + for(var/i = 0, i < 10, i++) + for(var/mob/living/carbon/human/H in living_mob_list) + var/turf/T = get_turf(H) + if(!T) + continue + if(T.z != 1) + continue + if(istype(T.loc, /area/maintenance) || istype(T.loc, /area/crew_quarters)) + continue + if(istype(H,/mob/living/carbon/human)) + H.apply_effect((rand(5,25)),IRRADIATE,0) + if(prob(5)) + H.apply_effect((rand(30,50)),IRRADIATE,0) + if (prob(75)) + randmutb(H) + domutcheck(H,null,1) + else + randmutg(H) + domutcheck(H,null,1) + for(var/mob/living/carbon/monkey/M in living_mob_list) + var/turf/T = get_turf(M) + if(!T) + continue + if(T.z != 1) + continue + M.apply_effect((rand(5,25)),IRRADIATE,0) + sleep(50) + + + command_alert("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms.", "Anomaly Alert") \ No newline at end of file diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm new file mode 100644 index 00000000000..13da0842b02 --- /dev/null +++ b/code/modules/events/wallrot.dm @@ -0,0 +1,37 @@ +/turf/simulated/wall + + +datum/event/wallrot + var/severity = 1 + +datum/event/wallrot/setup() + announceWhen = rand(0, 300) + endWhen = announceWhen + 1 + severity = rand(5, 10) + +datum/event/wallrot/announce() + command_alert("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert") + +datum/event/wallrot/start() + spawn() + var/turf/center = null + + // 100 attempts + for(var/i=0, i<100, i++) + var/turf/candidate = locate(rand(1, world.maxx), rand(1, world.maxy), 1) + if(istype(candidate, /turf/simulated/wall)) + center = candidate + + if(center) + // Make sure at least one piece of wall rots! + center:rot() + + // Have a chance to rot lots of other walls. + var/rotcount = 0 + for(var/turf/simulated/wall/W in range(5, center)) if(prob(50)) + W:rot() + rotcount++ + + // Only rot up to severity walls + if(rotcount >= severity) + break \ No newline at end of file diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 627df7c6ddf..2a76150d673 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -6,7 +6,8 @@ mob/living/carbon/proc/dream() "light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", "a hat","the Luna","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights", "a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", - "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs" + "riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying","the eggs","money", + "a beach","the holodeck","a smokey room","a voice","the cold","a mouse","an operating table","the bar","the rain" ) spawn(0) for(var/i = rand(1,4),i > 0, i--) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 3c070bdbd2b..9225eb0f8bd 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -32,19 +32,13 @@ mob/proc/custom_emote(var/m_type=1,var/message = null) continue if(findtext(message," snores.")) //Because we have so many sleeping people. break - if(M.stat == 2 && M.client.ghost_sight && !(M in viewers(src,null))) + if(M.stat == 2 && (M.client.prefs.toggles & CHAT_GHOSTSIGHT) && !(M in viewers(src,null))) M.show_message(message) if (m_type & 1) for (var/mob/O in viewers(src, null)) - if(istype(O,/mob/living/carbon/human)) - for(var/mob/living/parasite/P in O:parasites) - P.show_message(message, m_type) O.show_message(message, m_type) else if (m_type & 2) for (var/mob/O in hearers(src.loc, null)) - if(istype(O,/mob/living/carbon/human)) - for(var/mob/living/parasite/P in O:parasites) - P.show_message(message, m_type) O.show_message(message, m_type) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 802841e17a3..4029fc46444 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -53,27 +53,17 @@ var/input = copytext(sanitize(input("Choose an emote to display.") as text|null),1,MAX_MESSAGE_LEN) if (!input) return - if(copytext(input,1,5) == "says") - src << "\red Invalid emote." - return - else if(copytext(input,1,9) == "exclaims") - src << "\red Invalid emote." - return - else if(copytext(input,1,5) == "asks") - src << "\red Invalid emote." - return - else - var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable") - if (input2 == "Visible") - m_type = 1 - else if (input2 == "Hearable") - if (src.miming) - return - m_type = 2 - else - alert("Unable to use this emote, must be either hearable or visible.") + var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable") + if (input2 == "Visible") + m_type = 1 + else if (input2 == "Hearable") + if (src.miming) return - message = "[src] [input]" + m_type = 2 + else + alert("Unable to use this emote, must be either hearable or visible.") + return + message = "[src] [input]" if ("me") if(silent) @@ -88,17 +78,7 @@ return if(!(message)) return - if(copytext(message,1,5) == "says") - src << "\red Invalid emote." - return - else if(copytext(message,1,9) == "exclaims") - src << "\red Invalid emote." - return - else if(copytext(message,1,5) == "asks") - src << "\red Invalid emote." - return - else - message = "[src] [message]" + message = "[src] [message]" if ("salute") if (!src.buckled) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 09ef8072e72..a73e6c21910 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -439,7 +439,7 @@ //Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable /mob/living/carbon/human/proc/get_face_name() var/datum/organ/external/head/head = get_organ("head") - if( !head || head.disfigured || (head.status & ORGAN_DESTROYED) || !real_name ) //disfigured. use id-name if possible + if( !head || head.disfigured || (head.status & ORGAN_DESTROYED) || !real_name || (HUSK in mutations) ) //disfigured. use id-name if possible return "Unknown" return real_name diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 5221d779791..36b039dc89b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -28,6 +28,7 @@ var/pressure_alert = 0 var/prev_gender = null // Debug for plural genders var/temperature_alert = 0 + var/in_stasis = 0 /mob/living/carbon/human/Life() @@ -59,8 +60,11 @@ life_tick++ var/datum/gas_mixture/environment = loc.return_air() + in_stasis = istype(loc, /obj/structure/closet/body_bag/cryobag) && loc:opened == 0 + if(in_stasis) loc:used++ + //No need to update all of these procs if the guy is dead. - if(stat != DEAD) + if(stat != DEAD && !in_stasis) if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath breathe() //Only try to take a breath every 4 ticks, unless suffocating @@ -86,18 +90,20 @@ handle_virus_updates() + //stuff in the stomach + handle_stomach() + + handle_shock() + + handle_pain() + + handle_medical_side_effects() + + handle_stasis_bag() + //Handle temperature/pressure differences between body and environment handle_environment(environment) - //stuff in the stomach - handle_stomach() - - handle_shock() - - handle_pain() - - handle_medical_side_effects() - //Status updates, death etc. handle_regular_status_updates() //TODO: optimise ~Carn update_canmove() @@ -196,6 +202,16 @@ src << "\red Your legs won't respond properly, you fall down." lying = 1 + proc/handle_stasis_bag() + // Handle side effects from stasis bag + if(in_stasis) + // First off, there's no oxygen supply, so the mob will slowly take brain damage + adjustBrainLoss(0.1) + + // Next, the method to induce stasis has some adverse side-effects, manifesting + // as cloneloss + adjustCloneLoss(0.1) + proc/handle_mutations_and_radiation() if(getFireLoss()) if((COLD_RESISTANCE in mutations) || (prob(1))) @@ -787,8 +803,8 @@ var/total_plasmaloss = 0 for(var/obj/item/I in src) if(I.contaminated) - total_plasmaloss += vsc.plc.CONTAMINATION_LOSS - if(status_flags & GODMODE) return 0 //godmode + total_plasmaloss += vsc.plc.CONTAMINATION_LOSS + if(status_flags & GODMODE) return 0 //godmode adjustToxLoss(total_plasmaloss) // if(dna && dna.mutantrace == "plant") //couldn't think of a better place to place it, since it handles nutrition -- Urist @@ -886,8 +902,10 @@ silent = 0 else //ALIVE. LIGHTS ARE ON updatehealth() //TODO - handle_organs() - handle_blood() + if(!in_stasis) + handle_organs() + handle_blood() + if(health <= config.health_threshold_dead || brain_op_stage == 4.0) death() blinded = 1 diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm index 2ee388f7d0c..0e6688e69ea 100644 --- a/code/modules/mob/living/carbon/metroid/emote.dm +++ b/code/modules/mob/living/carbon/metroid/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/slime/emote(var/act) +/mob/living/carbon/slime/emote(var/act, var/type, var/desc) if (findtext(act, "-", 1, null)) @@ -13,6 +13,10 @@ var/message switch(act) + if ("me") + return custom_emote(m_type, desc) + if ("custom") + return custom_emote(m_type, desc) if("moan") message = "The [src.name] moans." m_type = 2 diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm index eccb365a6f2..8e6c281c781 100644 --- a/code/modules/mob/living/carbon/monkey/emote.dm +++ b/code/modules/mob/living/carbon/monkey/emote.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/monkey/emote(var/act) +/mob/living/carbon/monkey/emote(var/act, var/type, var/desc) var/param = null if (findtext(act, "-", 1, null)) @@ -14,6 +14,12 @@ var/message switch(act) + if ("me") + return custom_emote(m_type, desc) + + if ("custom") + return custom_emote(m_type, desc) + if("sign") if (!src.restrained()) message = text("The monkey signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null)) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index dcf08ba0d80..86d4e5d2f46 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -9,6 +9,12 @@ act = copytext(act,1,length(act)) switch(act) + if ("me") + return custom_emote(m_type, message) + + if ("custom") + return custom_emote(m_type, message) + if ("salute") if (!src.buckled) var/M = null @@ -56,20 +62,6 @@ message = "[src] flaps his wings ANGRILY!" m_type = 2 - if ("custom") - var/input = copytext(sanitize(input("Choose an emote to display.") as text|null),1,MAX_MESSAGE_LEN) - if (!input) - return - var/input2 = input("Is this a visible or hearable emote?") in list("Visible","Hearable") - if (input2 == "Visible") - m_type = 1 - else if (input2 == "Hearable") - m_type = 2 - else - alert("Unable to use this emote, must be either hearable or visible.") - return - message = "[src] [input]" - if ("me") if (src.client) if(client.prefs.muted & MUTE_IC) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bc25116ae52..f7154694f7e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -226,14 +226,8 @@ /mob/living/simple_animal/emote(var/act, var/type, var/desc) if(act) - if(act == "scream") act = "makes a loud and pained whimper" //ugly hack to stop animals screaming when crushed :P - if(act == "me") //Allow me-emotes. - act = desc - if( findtext(act,".",lentext(act)) == 0 && findtext(act,"!",lentext(act)) == 0 && findtext(act,"?",lentext(act)) == 0 ) - act = addtext(act,".") //Makes sure all emotes end with a period. - for (var/mob/O in viewers(src, null)) - O.show_message("[src] [act]") - + if(act == "scream") act = "whimper" //ugly hack to stop animals screaming when crushed :P + ..(act, type, desc) /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 97133deb4c4..a5b92bdc407 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -277,6 +277,8 @@ character.loc = pick(latejoin) character.lastarea = get_area(loc) + ticker.mode.latespawn(character) + //ticker.mode.latespawn(character) if(character.mind.assigned_role != "Cyborg") diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 5876a874e94..8a28152a239 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -75,31 +75,32 @@ //tcomms code is still runtiming somewhere here var/ending = copytext(text, length(text)) if (is_speaking_soghun) - return "hisses, \"[text]\""; + return "hisses, \"[text]\""; if (is_speaking_skrell) - return "warbles, \"[text]\""; + return "warbles, \"[text]\""; if (is_speaking_tajaran) - return "mrowls, \"[text]\""; + return "mrowls, \"[text]\""; //Needs Virus2 // if (src.disease_symptoms & DISEASE_HOARSE) // return "rasps, \"[text]\""; if (src.stuttering) - return "stammers, \"[text]\""; + return "stammers, \"[text]\""; if (src.slurring) - return "slurrs, \"[text]\""; + return "slurrs, \"[text]\""; if(isliving(src)) var/mob/living/L = src if (L.getBrainLoss() >= 60) - return "gibbers, \"[text]\""; + return "gibbers, \"[text]\""; if (ending == "?") - return "asks, \"[text]\""; + return "asks, \"[text]\""; if (ending == "!") - return "exclaims, \"[text]\""; + return "exclaims, \"[text]\""; - return "says, \"[text]\""; + return "says, \"[text]\""; -/mob/proc/emote(var/act) - return +/mob/proc/emote(var/act, var/type, var/message) + if(act == "me") + return custom_emote(type, message) /mob/proc/get_ear() // returns an atom representing a location on the map from which this diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 528e3b942fd..439bf62baf1 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -236,7 +236,8 @@ if(href_list["write"]) var/id = href_list["write"] //var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as message - var/t = strip_html_simple(input("Enter what you want to write:", "Write", null, null) as message, MAX_MESSAGE_LEN) + //var/t = strip_html_simple(input("Enter what you want to write:", "Write", null, null) as message, MAX_MESSAGE_LEN) + var/t = input("Enter what you want to write:", "Write", null, null) as message var/obj/item/i = usr.get_active_hand() // Check to see if he still got that darn pen, also check if he's using a crayon or pen. var/iscrayon = 0 if(!istype(i, /obj/item/weapon/pen)) @@ -248,6 +249,17 @@ if((!in_range(src, usr) && loc != usr && !( istype(loc, /obj/item/weapon/clipboard) ) && loc.loc != usr && usr.get_active_hand() != i)) // Some check to see if he's allowed to write return + t = checkhtml(t) + + // check for exploits + for(var/bad in paper_blacklist) + if(findtext(t,bad)) + usr << "\blue You think to yourself, \"Hm.. this is only paper...\"" + log_admin("PAPER: [usr] ([usr.ckey]) tried to use forbidden word in [src]: [bad].") + message_admins("PAPER: [usr] ([usr.ckey]) tried to use forbidden word in [src]: [bad].") + return + + t = replacetext(t, "\n", "
") t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html if(id!="end") diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index c3139f1682d..f25abe3c76c 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -187,10 +187,7 @@ else icon_state = basestate else if (opened == 2) - if ((stat & BROKEN) || malfhack ) - icon_state = "[basestate]-b-nocover" - else /* if (emagged)*/ - icon_state = "[basestate]-nocover" + icon_state = "[basestate]-nocover" else if (stat & BROKEN) icon_state = "apc-b" else if(emagged || malfai) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index f37e62ac490..325f8917a3a 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -1,5 +1,4 @@ -//updated by cael_aislinn on 5/3/2013 to be rotateable, moveable and generally more flexible /obj/machinery/power/generator name = "thermoelectric generator" desc = "It's a high efficiency thermoelectric generator." @@ -57,39 +56,26 @@ if(lastgenlev != 0) overlays += image('icons/obj/power.dmi', "teg-op[lastgenlev]") - - /obj/machinery/power/generator/process() - - //world << "Generator process ran" - if(!circ1 || !circ2 || !anchored || stat & (BROKEN|NOPOWER)) return - //world << "circ1 and circ2 pass" + updateDialog() var/datum/gas_mixture/air1 = circ1.return_transfer_air() var/datum/gas_mixture/air2 = circ2.return_transfer_air() - lastgen = 0 - //world << "hot_air = [hot_air]; cold_air = [cold_air];" - if(air1 && air2) - - //world << "hot_air = [hot_air] temperature = [air2.temperature]; cold_air = [cold_air] temperature = [air2.temperature];" - - //world << "coldair and hotair pass" var/air1_heat_capacity = air1.heat_capacity() var/air2_heat_capacity = air2.heat_capacity() var/delta_temperature = abs(air2.temperature - air1.temperature) - //world << "delta_temperature = [delta_temperature]; air1_heat_capacity = [air1_heat_capacity]; air2_heat_capacity = [air2_heat_capacity]" - if(delta_temperature > 0 && air1_heat_capacity > 0 && air2_heat_capacity > 0) var/efficiency = 0.65 var/energy_transfer = delta_temperature*air2_heat_capacity*air1_heat_capacity/(air2_heat_capacity+air1_heat_capacity) var/heat = energy_transfer*(1-efficiency) + lastgen = energy_transfer*efficiency*0.05 if(air2.temperature > air1.temperature) air2.temperature = air2.temperature - energy_transfer/air2_heat_capacity @@ -98,20 +84,29 @@ air2.temperature = air2.temperature + heat/air2_heat_capacity air1.temperature = air1.temperature - energy_transfer/air1_heat_capacity - lastgen = circ1.ReturnPowerGeneration() + circ2.ReturnPowerGeneration() - if(lastgen > 0) - add_avail(lastgen) + //Transfer the air + circ1.air2.merge(air1) + circ2.air2.merge(air2) - else - add_load(-lastgen) + //Update the gas networks + if(circ1.network2) + circ1.network2.update = 1 + if(circ2.network2) + circ2.network2.update = 1 // update icon overlays and power usage only if displayed level has changed - var/genlev = max(0, min( round(11*lastgen / 100000), 11)) + if(lastgen > 250000 && prob(10)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + lastgen *= 0.5 + var/genlev = max(0, min( round(11*lastgen / 250000), 11)) + if(lastgen > 100 && genlev == 0) + genlev = 1 if(genlev != lastgenlev) lastgenlev = genlev updateicon() - - updateDialog() + add_avail(lastgen) /obj/machinery/power/generator/attack_ai(mob/user) if(stat & (BROKEN|NOPOWER)) return @@ -145,19 +140,17 @@ if(circ1 && circ2) t += "Output : [round(lastgen)] W

" - t += "Primary Circulator (top/right)
" + t += "Primary Circulator (top or right)
" t += "Inlet Pressure: [round(circ1.air1.return_pressure(), 0.1)] kPa
" t += "Inlet Temperature: [round(circ1.air1.temperature, 0.1)] K
" t += "Outlet Pressure: [round(circ1.air2.return_pressure(), 0.1)] kPa
" t += "Outlet Temperature: [round(circ1.air2.temperature, 0.1)] K
" - t += "Turbine Status: [circ1.turbine_pumping ? "Pumping" : "Generating"]

" - t += "Secondary Circulator (bottom/left)
" + t += "Secondary Circulator (bottom or left)
" t += "Inlet Pressure: [round(circ2.air1.return_pressure(), 0.1)] kPa
" t += "Inlet Temperature: [round(circ2.air1.temperature, 0.1)] K
" t += "Outlet Pressure: [round(circ2.air2.return_pressure(), 0.1)] kPa
" t += "Outlet Temperature: [round(circ2.air2.temperature, 0.1)] K
" - t += "Turbine Status: [circ2.turbine_pumping ? "Pumping" : "Generating"]
" else t += "Unable to connect to circulators.
" @@ -179,14 +172,6 @@ usr.unset_machine() return 0 - if( href_list["turbine2"] ) - if(circ2) - circ2.turbine_pumping = !circ2.turbine_pumping - - if( href_list["turbine1"] ) - if(circ1) - circ1.turbine_pumping = !circ1.turbine_pumping - updateDialog() return 1 diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 0036ca2333c..e839cf34a8c 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1214,6 +1214,17 @@ datum ..() return + // Clear off wallrot fungi + reaction_turf(var/turf/T, var/volume) + if(istype(T, /turf/simulated/wall)) + var/turf/simulated/wall/W = T + if(W.rotting) + W.rotting = 0 + for(var/obj/effect/E in W) if(E.name == "Wallrot") del E + + for(var/mob/O in viewers(W, null)) + O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1) + reaction_obj(var/obj/O, var/volume) if(istype(O,/obj/effect/alien/weeds/)) var/obj/effect/alien/weeds/alien_weeds = O diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index d919ca32775..48636b4b608 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -42,9 +42,9 @@ icon_state = "chocolateglass" name = "Glass of chocolate" desc = "Tasty" - if("lemon") + if("lemonjuice") icon_state = "lemonglass" - name = "Glass of lemon" + name = "Glass of lemonjuice" desc = "Sour..." if("cola") icon_state = "glass_brown" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index da78e252a3a..8551a16f2af 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -49,12 +49,20 @@ D.icon += mix_color_from_reagents(D.reagents.reagent_list) + var/turf/A_turf = get_turf(A) + spawn(0) for(var/i=0, i<3, i++) step_towards(D,A) D.reagents.reaction(get_turf(D)) for(var/atom/T in get_turf(D)) D.reagents.reaction(T) + + // When spraying against the wall, also react with the wall, but + // not its contents. + if(get_dist(D, A_turf) == 1 && A_turf.density) + D.reagents.reaction(A_turf) + sleep(2) sleep(3) del(D) diff --git a/code/setup.dm b/code/setup.dm index 76fe7094516..9f319d3c82e 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -621,6 +621,8 @@ var/list/TAGGERLOCATIONS = list("Disposals", #define CHAT_PRAYER 256 #define CHAT_RADIO 512 #define CHAT_ATTACKLOGS 1024 +#define CHAT_DEBUGLOGS 2048 + #define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_ATTACKLOGS) diff --git a/code/stylesheet.dm b/code/stylesheet.dm index b838c9c77df..2481e247afd 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -55,6 +55,7 @@ h1.alert, h2.alert {color: #000000;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .soghun {color: #228B22;} +.say_quote {font-family: Georgia, Verdana, sans-serif;} .interface {color: #330033;} "} diff --git a/html/changelog.html b/html/changelog.html index 87dfe9f6a74..efa20e78e37 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,7 +57,47 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> - +
+ +
+

5/26/2013

+

Meyar updated:

+
    +
  • The syndicate shuttle now has a cycling airlock during Nuke rounds.
  • +
  • Restored the ability for the syndicate Agent ID to change the name on the card (reforge it) more than once.
  • +
  • ERT Radio now functional again.
  • +
  • Research blast doors now actually lock down the entirety of station-side Research.
  • +
  • Added lock down buttons to the wardens office.
  • +
  • The randomized barsign has made a return.
  • +
  • Syndicate Agent ID's external airlock access restored.
  • +
+
+ +
+

21 May 2013

+

SkyMarshal updated:

+
    +
  • ZAS will now speed air movement into/out of a zone when unsimulated tiles (e.g. space) are involved, in relation to the number of tiles.
  • +
  • Portable Canisters will now automatically connect to any portable connecter beneath them on map load.
  • +
  • Bug involving mis-mapped disposal junction fixed
  • +
  • Air alarms now work for atmos techs (whoops!)
  • +
  • The Master Controller now properly stops atmos when it runtimes.
  • +
  • Backpacks can no longer be contaminated
  • +
  • ZAS no longer logs air statistics.
  • +
  • ZAS now rebuilds as soon as it detects a semi-complex change in geometry. (It was doing this already, but in a convoluted way which was actually less efficient)
  • +
  • General code cleanup/commenting of ZAS
  • +
  • Jungle now initializes after the random Z-level loads and atmos initializes.
  • +
+
+ +
+

May 18th, 2013

+

CIB updated:

+
    +
  • A new event type: Wallrot. Use welder or plantbgone on infected walls.
  • +
  • Newscasters now can deliver preset news stories over the course of a round. See http://baystation12.net/forums/viewtopic.php?f=14&t=7619 to add your own!
  • +
+

25th May 2013

@@ -79,6 +119,7 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Iced tea no longer makes a glass of .what?
  • +

    April 24, 2013

    faux updated:

    diff --git a/icons/effects/wallrot.dmi b/icons/effects/wallrot.dmi new file mode 100644 index 00000000000..3ca54677121 Binary files /dev/null and b/icons/effects/wallrot.dmi differ diff --git a/icons/obj/cryobag.dmi b/icons/obj/cryobag.dmi index 116a2c44d16..fe543fad642 100644 Binary files a/icons/obj/cryobag.dmi and b/icons/obj/cryobag.dmi differ diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index 10e85722a74..691f53a76f3 100644 Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ diff --git a/icons/obj/hacktool.dmi b/icons/obj/hacktool.dmi new file mode 100644 index 00000000000..b1d6753ff16 Binary files /dev/null and b/icons/obj/hacktool.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 97d97c603d6..12154767737 100755 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/maps/rust_test.dmm b/maps/rust_test.dmm index dc64c088f14..36ee802a88e 100644 --- a/maps/rust_test.dmm +++ b/maps/rust_test.dmm @@ -3,309 +3,303 @@ "ac" = (/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/control) "ad" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/control) "ae" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 0},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/engine/control) -"af" = (/turf/simulated/floor,/area/engine/control) +"af" = (/obj/machinery/door_control{id = 1; step_y = 32},/turf/simulated/floor,/area/engine/control) "ag" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area/engine/control) "ah" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engine/control) -"ai" = (/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/control) -"aj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/control) -"ak" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/control) -"al" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/control) -"am" = (/obj/machinery/computer/rust_fuel_control,/turf/simulated/floor,/area/engine/control) -"an" = (/obj/machinery/computer/rust_core_control,/turf/simulated/floor,/area/engine/control) -"ao" = (/obj/machinery/computer/rust_radiation_monitor,/turf/simulated/floor,/area/engine/control) -"ap" = (/obj/machinery/light,/turf/simulated/floor,/area/engine/control) -"aq" = (/turf/space,/area/engine/engineering) -"ar" = (/turf/simulated/wall/r_wall,/area/engine/engineering) -"as" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"at" = (/obj/effect/landmark{name = "LateStart"},/turf/simulated/floor,/area/engine/engineering) -"au" = (/obj/effect/landmark{name = "LateStart"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"av" = (/obj/effect/landmark{name = "LateStart"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engineering) -"aw" = (/turf/simulated/floor,/area/engine/engineering) -"ax" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engineering) -"ay" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"az" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"aA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) -"aB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{id = 1; pixel_y = -24},/turf/simulated/floor,/area/engine/engineering) -"aC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"aD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) -"aE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_assembly_port{pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) -"aF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"aG" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"aH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/engine/engineering) -"aI" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) -"aJ" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"aK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"aL" = (/turf/simulated/floor/plating,/area/engine/engineering) -"aM" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area/engine/engineering) -"aN" = (/obj/machinery/power/rust_fuel_injector,/turf/simulated/floor/plating,/area/engine/engineering) -"aO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"aP" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"aQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) -"aR" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"aS" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/space,/area) -"aT" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) -"aU" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/space,/area) -"aV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/engine/engineering) -"aW" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"aX" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"aY" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) -"aZ" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) -"ba" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/space,/area) -"bb" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/engine/engineering) -"bc" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"bd" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) -"be" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"bf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"bg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"bh" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/engine/engineering) -"bi" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/space,/area) -"bj" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bk" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bl" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bm" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bn" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bo" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/engine/engineering) -"bp" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area/engine/engineering) -"bq" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"br" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"bs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"bt" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"bu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"bv" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) -"bw" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) -"bx" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"by" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"bz" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area/engine/engineering) -"bA" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor/engine,/area/engine/engineering) -"bB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) -"bC" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/engine/engineering) -"bD" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/engine,/area/engine/engineering) -"bE" = (/turf/simulated/floor/engine,/area/engine/engineering) -"bF" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"bG" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) -"bH" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bI" = (/obj/machinery/atmospherics/binary/pump/highcap{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"bJ" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) -"bK" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bL" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) -"bM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"bN" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) -"bO" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/engine,/area/engine/engineering) -"bP" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) -"bQ" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"bR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bS" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine/engineering) -"bT" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"bU" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1; dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"bV" = (/obj/machinery/power/generator{anchored = 1; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"bW" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"bX" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"bY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"bZ" = (/obj/machinery/power/emitter{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) -"ca" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"cb" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine,/area/engine/engineering) -"cc" = (/obj/machinery/power/emitter{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"cd" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"ce" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 1},/turf/space,/area) -"cf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cg" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) -"ch" = (/obj/machinery/atmospherics/binary/pump/highcap{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"ci" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"ck" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/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,/area/engine/engineering) -"cn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"co" = (/obj/machinery/power/rust_core,/obj/structure/cable,/turf/simulated/floor/engine,/area/engine/engineering) -"cp" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/engine,/area/engine/engineering) -"cq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cr" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"cs" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"ct" = (/turf/simulated/wall/r_wall,/area) -"cu" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) -"cv" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) -"cw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) -"cx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) -"cy" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) -"cz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) -"cB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cC" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) -"cD" = (/turf/simulated/floor/plating,/area) -"cE" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) -"cF" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area) -"cG" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor/plating,/area) -"cH" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"cI" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"cJ" = (/turf/simulated/floor,/area) -"cK" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) -"cL" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area) -"cM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) -"cN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) -"cO" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) -"cP" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) -"cQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) -"cR" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area) -"cS" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"cT" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"cU" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) -"cV" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area/engine/engineering) -"cW" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area) -"cX" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) -"cY" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1; dir = 1},/turf/simulated/floor/plating,/area) -"cZ" = (/obj/machinery/power/generator{anchored = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area) -"da" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1},/turf/simulated/floor/plating,/area) -"db" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"dc" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) -"dd" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) -"de" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) -"df" = (/turf/simulated/floor/engine,/area) -"dg" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"dh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) -"di" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"dj" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area) -"dk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) -"dl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) -"dm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) -"dn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area) -"do" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) -"dp" = (/obj/machinery/power/turbine{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area) -"dq" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"dr" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area) -"ds" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) -"dt" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) -"du" = (/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) -"dv" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area) -"dw" = (/obj/machinery/compressor,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area) -"dx" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area) -"dy" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area) -"dz" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) -"dA" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) -"dB" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/engine,/area/engine/engineering) -"dC" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) -"dD" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) -"dE" = (/obj/machinery/power/generator{anchored = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) -"dF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) -"dG" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/plating,/area) -"dH" = (/obj/machinery/door/window/northright,/turf/simulated/floor/plating,/area) -"dI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area) -"dJ" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area) -"dK" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area) -"dL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) -"dN" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dO" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dP" = (/obj/machinery/power/monitor,/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dQ" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"dR" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) -"dS" = (/obj/machinery/compressor{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/engine/engineering) -"dT" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engineering) -"dU" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"dV" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dW" = (/obj/machinery/computer/turbine_computer,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"dY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) -"dZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) -"ea" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) -"eb" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area) -"ec" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) -"ed" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area) -"ee" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"ef" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"eg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) -"eh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) -"ei" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"ej" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"ek" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"el" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) -"em" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) -"en" = (/obj/machinery/power/turbine{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/engine/engineering) -"eo" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) -"ep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) -"eq" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) -"er" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) -"es" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area) -"et" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area) -"eu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area) -"ev" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) -"ew" = (/obj/machinery/power/generator{anchored = 1; dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) -"ex" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"ey" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) -"ez" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"eA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"eB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"eC" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) -"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) -"eE" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) -"eF" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area) -"eG" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) -"eH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) -"eI" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) -"eJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area) -"eK" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area) -"eL" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) -"eM" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/space,/area) -"eN" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) -"eO" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"eP" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"eQ" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engineering) -"eR" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"eS" = (/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area/engine/engineering) -"eT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engineering) -"eU" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) -"eV" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/engine/engineering) -"eW" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) -"eX" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area/engine/engineering) -"eY" = (/obj/machinery/computer/turbine_computer,/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) -"eZ" = (/obj/machinery/power/emitter{dir = 4},/turf/simulated/floor/plating,/area) -"fa" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fb" = (/obj/machinery/power/emitter{dir = 8},/turf/simulated/floor/plating,/area) -"fc" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/wall/r_wall,/area) -"fd" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/wall/r_wall,/area/engine/engineering) -"fe" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"ff" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area) -"fg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fh" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area) -"fi" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/obj/structure/lattice,/turf/space,/area) -"fj" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/structure/lattice,/turf/space,/area) -"fk" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/plating,/area) -"fl" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/obj/structure/lattice,/turf/space,/area) -"fm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fn" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/structure/lattice,/turf/space,/area) -"fo" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/obj/structure/lattice,/turf/space,/area) -"fp" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) -"fq" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) -"fr" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) -"fs" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on{dir = 8},/turf/simulated/floor/engine,/area) -"ft" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) -"fu" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) -"fv" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) -"fw" = (/obj/structure/lattice,/turf/space,/area) -"fx" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) -"fy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area) -"fz" = (/obj/machinery/atmospherics/binary/pump,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) -"fA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area) -"fB" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/structure/lattice,/turf/space,/area) -"fC" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area) -"fD" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area) -"fE" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) -"fF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) -"fI" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area) -"fJ" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating,/area) -"fK" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area) -"fL" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area) -"fM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) -"fN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) -"fO" = (/obj/machinery/power/rust_fuel_injector{dir = 1},/turf/simulated/floor/plating,/area) -"fP" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area) -"fQ" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) -"fR" = (/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area) -"fS" = (/obj/machinery/rust_fuel_assembly_port{pixel_y = 32},/turf/simulated/floor/plating,/area) -"fT" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) -"fU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area) -"fV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area) +"ai" = (/turf/simulated/floor,/area/engine/control) +"aj" = (/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/control) +"ak" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/control) +"al" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/control) +"am" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/control) +"an" = (/obj/machinery/computer/rust_fuel_control,/turf/simulated/floor,/area/engine/control) +"ao" = (/obj/machinery/computer/rust_core_control,/turf/simulated/floor,/area/engine/control) +"ap" = (/obj/machinery/computer/rust_radiation_monitor,/turf/simulated/floor,/area/engine/control) +"aq" = (/obj/machinery/light,/turf/simulated/floor,/area/engine/control) +"ar" = (/turf/space,/area/engine/engineering) +"as" = (/turf/simulated/wall/r_wall,/area/engine/engineering) +"at" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"au" = (/obj/effect/landmark{name = "LateStart"},/turf/simulated/floor,/area/engine/engineering) +"av" = (/obj/effect/landmark{name = "LateStart"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"aw" = (/obj/effect/landmark{name = "LateStart"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engineering) +"ax" = (/turf/simulated/floor,/area/engine/engineering) +"ay" = (/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/engine/engineering) +"az" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) +"aC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{id = 1; pixel_y = -24},/turf/simulated/floor,/area/engine/engineering) +"aD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"aF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/rust_fuel_assembly_port{pixel_y = -32},/turf/simulated/floor,/area/engine/engineering) +"aG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"aI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/engine/engineering) +"aJ" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) +"aK" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"aL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"aM" = (/turf/simulated/floor/plating,/area/engine/engineering) +"aN" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area/engine/engineering) +"aO" = (/obj/machinery/power/rust_fuel_injector{anchored = 1; state = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"aP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"aQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"aR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"aS" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"aT" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/space,/area) +"aU" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/space,/area) +"aV" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/space,/area) +"aW" = (/obj/structure/lattice,/turf/space,/area) +"aX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/engine/engineering) +"aY" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"aZ" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"ba" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"bb" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"bc" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/space,/area) +"bd" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plating,/area/engine/engineering) +"be" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) +"bf" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"bg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"bj" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"bk" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/space,/area) +"bl" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bm" = (/obj/machinery/atmospherics/pipe/manifold4w{tag = "icon-manifold4w"; icon_state = "manifold4w"},/turf/simulated/floor/plating,/area/engine/engineering) +"bn" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bo" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bp" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bq" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/engine/engineering) +"br" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area/engine/engineering) +"bs" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bt" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bv" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"bw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"bx" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) +"by" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"bz" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bA" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"bB" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area/engine/engineering) +"bC" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor/engine,/area/engine/engineering) +"bD" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bE" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/engine/engineering) +"bF" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/engine,/area/engine/engineering) +"bG" = (/turf/simulated/floor/engine,/area/engine/engineering) +"bH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bI" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/engine/engineering) +"bJ" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/obj/structure/lattice,/turf/space,/area) +"bK" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/structure/lattice,/turf/space,/area) +"bL" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 8},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bM" = (/obj/machinery/atmospherics/binary/pump/highcap{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"bN" = (/obj/machinery/atmospherics/binary/pump/highcap{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"bO" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bP" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bQ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"bR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"bS" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bT" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/engine,/area/engine/engineering) +"bU" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"bV" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bX" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"bY" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/engine/engineering) +"bZ" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/space,/area) +"ca" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"cb" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1; dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) +"cc" = (/obj/machinery/power/generator{anchored = 1; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cd" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1},/turf/simulated/floor/plating,/area/engine/engineering) +"ce" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) +"cf" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"cg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"ch" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/engine,/area/engine/engineering) +"ci" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"cj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ck" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 1},/turf/space,/area) +"cl" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/structure/lattice,/turf/space,/area) +"cm" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"cn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"co" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area/engine/engineering) +"cp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"cr" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ct" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/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,/area/engine/engineering) +"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"cv" = (/obj/machinery/power/rust_core{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/engine,/area/engine/engineering) +"cw" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/engine,/area/engine/engineering) +"cx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"cz" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"cA" = (/turf/simulated/wall/r_wall,/area) +"cB" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"cC" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/plating,/area) +"cD" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"cE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"cF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/plating,/area) +"cG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area/engine/engineering) +"cI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cJ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"cK" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"cL" = (/turf/simulated/floor/plating,/area) +"cM" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"cN" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area) +"cO" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor/plating,/area) +"cP" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cQ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"cR" = (/turf/simulated/floor,/area) +"cS" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"cT" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area) +"cU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"cV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"cW" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"cX" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"cY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"cZ" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area) +"da" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"db" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"dc" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/engine/engineering) +"dd" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"de" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 4},/turf/simulated/floor/plating,/area) +"df" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area) +"dg" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1; dir = 1},/turf/simulated/floor/plating,/area) +"dh" = (/obj/machinery/power/generator{anchored = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area) +"di" = (/obj/machinery/atmospherics/binary/circulator{anchored = 1},/turf/simulated/floor/plating,/area) +"dj" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"dk" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area) +"dl" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area) +"dm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"dn" = (/turf/simulated/floor/engine,/area) +"do" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"dp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"dq" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"dr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area) +"ds" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"dt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"du" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"dv" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area) +"dw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area) +"dx" = (/obj/machinery/power/turbine{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area) +"dy" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"dz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area) +"dA" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"dB" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area) +"dC" = (/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area) +"dD" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area) +"dE" = (/obj/machinery/compressor,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area) +"dF" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area) +"dG" = (/obj/machinery/power/monitor,/turf/simulated/floor,/area) +"dH" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/engine/engineering) +"dI" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area/engine/engineering) +"dJ" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/engine,/area/engine/engineering) +"dK" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/engine,/area/engine/engineering) +"dL" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/engine/engineering) +"dM" = (/obj/machinery/power/generator{anchored = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area) +"dN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"dO" = (/obj/machinery/door/window/northleft,/turf/simulated/floor/plating,/area) +"dP" = (/obj/machinery/door/window/northright,/turf/simulated/floor/plating,/area) +"dQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area) +"dR" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area) +"dS" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area) +"dT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/engineering) +"dV" = (/obj/machinery/door/airlock/engineering,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dX" = (/obj/machinery/power/monitor,/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dY" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"dZ" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"ea" = (/obj/machinery/compressor{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/engine/engineering) +"eb" = (/obj/machinery/power/smes,/turf/simulated/floor/plating,/area/engine/engineering) +"ec" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) +"ed" = (/obj/machinery/power/monitor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"ee" = (/obj/machinery/computer/turbine_computer,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"ef" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"eg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area) +"eh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"ei" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"ej" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area) +"ek" = (/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"el" = (/obj/machinery/door/poddoor,/turf/simulated/floor/engine,/area) +"em" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"en" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"eo" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) +"ep" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) +"eq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"er" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"es" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"et" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) +"eu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"ev" = (/obj/machinery/power/turbine{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/engine/engineering) +"ew" = (/obj/machinery/power/apc{cell_type = 15000; dir = 4; name = "Engineering APC"; pixel_x = 25; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/engineering) +"ex" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"ey" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"ez" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"eA" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8},/turf/simulated/floor/plating,/area) +"eB" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/engine,/area) +"eC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/plating,/area) +"eD" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"eE" = (/obj/machinery/power/generator{anchored = 1; dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"eF" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"eG" = (/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"eH" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering) +"eI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"eJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"eK" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 0; d2 = 2; icon_state = "0-2"},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"eL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"eM" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"eN" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area) +"eO" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area) +"eP" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"eQ" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"eR" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4},/turf/simulated/floor/engine,/area) +"eS" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/turf/simulated/floor/plating,/area) +"eT" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor/plating,/area) +"eU" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/space,/area) +"eV" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engineering) +"eW" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"eX" = (/obj/structure/cable,/obj/machinery/power/terminal{dir = 4; icon_state = "term"},/turf/simulated/floor/plating,/area/engine/engineering) +"eY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/light,/turf/simulated/floor/plating,/area/engine/engineering) +"eZ" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) +"fa" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor/plating,/area/engine/engineering) +"fb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor,/area/engine/engineering) +"fc" = (/obj/machinery/computer/turbine_computer,/turf/simulated/floor,/area/engine/engineering) +"fd" = (/obj/machinery/computer/turbine_computer,/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering) +"fe" = (/obj/machinery/power/emitter{dir = 4},/turf/simulated/floor/plating,/area) +"ff" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fg" = (/obj/machinery/power/emitter{dir = 8},/turf/simulated/floor/plating,/area) +"fh" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"fi" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/plating,/area) +"fj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fk" = (/obj/machinery/power/rust_core,/turf/simulated/floor/engine,/area) +"fl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fm" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"fn" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"fo" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area) +"fp" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on{dir = 8},/turf/simulated/floor/engine,/area) +"fq" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; icon_state = "on"; on = 1},/turf/simulated/floor/engine,/area) +"fr" = (/obj/machinery/atmospherics/valve/digital{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area) +"fs" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area) +"ft" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area) +"fu" = (/obj/machinery/atmospherics/binary/pump,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating,/area) +"fv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area) +"fw" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area) +"fx" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area) +"fy" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (SOUTHEAST)"},/area) +"fz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/grille,/turf/simulated/floor/engine,/area) +"fC" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area) +"fD" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/turf/simulated/floor/plating,/area) +"fE" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/plating,/area) +"fF" = (/obj/structure/closet/crate,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/simulated/floor/plating,/area) +"fG" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area) +"fH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fI" = (/obj/machinery/power/rust_fuel_injector{dir = 1},/turf/simulated/floor/plating,/area) +"fJ" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area) +"fK" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area) +"fL" = (/obj/machinery/rust_fuel_compressor{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area) +"fM" = (/obj/machinery/rust_fuel_assembly_port{pixel_y = 32},/turf/simulated/floor/plating,/area) +"fN" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area) +"fO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area) +"fP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -365,44 +359,44 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadaeafagahabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafaiajakacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafafafalacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabamanaoapalacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqarararararasarararararararararararararararararararaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqaratatatatauavatatatawawawaxawawawawawawaxawawawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqarayazaAaBaCazazaDaEaEaEaFaEaEaEaDazazazaAazaGawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqaraHawararaIaIaIararararaJararararaIaIaIararaKawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqaraKawararaLaMaMaraNaNaNaOaNaNaNaraPaQaLararaKaRaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaSaTaTaTaTaTaTaTaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararaVararaKawararaWaMaMaraWaLaLaOaLaLaXaraYaYaXararaKawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaZaSaTaTaTaTaTaTbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbbbbbbbbbcbbbbbbaKawaraOaLbdaLararararbebfbgaVbebfbgararararaLbhaOaLaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaZbiaTaTaTaTaTaTaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbjbkbkblbmbkbkbnaKawaraOaLbdbhbobdaLarbpbpbpaVbpbpbparaWbhbobdbhaOaLaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaZaSaTaTaTaTaTaTbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbqaLaLaLbrbsbsbtbubvaraOaLbdbwbxbybhbzbAbBbBbCbBbDbEbzbdbFbxbGbhaOaLarararaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaZbiaTaTaTaTaTaTaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbmbHbIbJaObKbLbnaKbMaraObKbxbxbxbxbxbNbObAbBbCbBbObPbxbxbxbxbxbxbQbRbHbSaraaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaZaSaTaTaTaTaTaTbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbTbnaLbUbVbWaLbXaKaKarbYbXaraLbrbZcabpbEcbbBbCbBbBbDbpcacccdaXaraOaLbmbSaraaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaceceaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaraLbjbLblcfcgchbnaKaKarcicjckclcmbZcnbpbEbEbEcobEbEcpbpcncccqclckcraLbKcsaraaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcucvcwcxcxcxcxcyctctctctctctctctctctctaaaaaaaaaaaaaactctctctctctctctctaaaaaaaaaaaaaaaaaaaraWbjbIbJcfbKbLbnaKaKaraObXaraWczbZcAbpbEbAbBbBbBbBbObpcAcccBaLaraOaLbjcCaraaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcFcGcDcHcIcGcJcJctcKcLcMcNcOcPcDcQaaaaaaaaaaaaaacQcDcDcRcRcRcRcRctaaaaaaaaaaaaaaaaaaarbTbnaLbUbVbWaLbjcScTbxbQcUbxbxbxbxbxbNbDcbbBbBbBbDcVbxbxbxbxbxbxbQbRbkcCaraaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcWcXcDcYcZdacDdbcJcJctdccLcMcNcOddcDdedfdfdfdfdfdfdfdecDcDcJcJcJcJcJctaaaaaaaaaaaaaaaaaaaraLbjbLblcfcgchbnaKbMaraOaLbdbwbxbybhbzcbbBbBbBbBbObEbzbdbFbxbGbhaOaLarararaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcIdgdhdicGdbcJcJctdjdkdldkdkdmdndodpdpdpdpdpdpdpdocDcDcJcJcJcJcJctaaaaaaaaaaaaaaaaaaaraLbjbIbJcfbKbLbnaKaKarbYaLbdbhbobdaLarbparbpbpbpbpbparaWbhbobdbhaOaLaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcFcGdhcHdqcXdrdkdsdkdkdldkdtdudvctdwdwdwdwdwdwdwctdxcDdycRcRcJcJctaaaaaaaaaaaaaaaaaaarbTbnaLbUbVbWaLbXaKaKaraOaLdzdAarararardBarbEbEbEbEdCarararardAdDaOaXaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcWcXcDcYdEdadbdbdFcJctdGdHdIdJctctctctdfdfdfdfdfdfdfctctctctdJdKdGdHctaaaaaaaaaaaaaaaaaaaraWbjbLblcfcgchbndLdMdNdMazdOazdPdQdRardSardSdSdSdSdSardTdUdVdWdWdXawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcIdgdhdicXdbdFcJctdYcNdZeaebeccDctedededededededctcDeaebeceacDcDctaaaaaaaaaaaaaaaaaaaraLbjbIbJcfbKbLeeefegeheiejbuejejekelemenarenenenenenemaLaLawawawdLeoaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcFcGdhcHdqcXdFcJctepcDeceqereseaetdfdfdfdfdfdfdfeteceuerevcDcDcDctaaaaaaaaaaaaaaaactarbTbnaLbUewbWaLexaLaLareyezeAeBdReCaLeDbEbEbEbEbEbEbEeDaLaLawawawawawaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcWcXcDcYdEdadbcEeEeFereGeHerererererereIdfdfdfdfdfeJerererererereKeLereMaaaaaaaaaaaaaaeNeOePbkbLbleQcgcheReQaLareSezeTeBdReUeVeWaqaqaqaqaqaqaqeWeVaLeXeXeYeXeXaraaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcIdgdhdicXdbdFcJctepcDctcDcDeZfaeddfdfdfdfdfdfdfedfafbcDcDctcDdbctaaaaaaaaaaaaaaaafcfdarararararararararboarararararararararaqaqaqaqaqaqaqarararararararararaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcFcGdhcHfedgdFcJctepcDffcDcDeZfgeddfdfdffhdfdfdfedfgfbcDcDffcDdbctaaaaaaaaaaaaaaaafifjaTaTaTaTaTaTaTaTaTfkaTaTaTaTaTaTaTaTflaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcWcXcDcYdEdadbcDdFcJctepcDctcDcDeZfmeddfdfdfdfdfdfdfedfmfbcDcDctcHdgctaaaaaaaaaaaaaaaafjfnaTaTaTaTaTaTaTaTaUcDaSaTaTaTaTaTaTaTfoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcIdgdhdifpfqfreFereGeHererererererfsdfdfdfdfdfftererererererfufvereMaaaaaaaaaaaaaaaafwfwfwfwfwfwfwfwfwfxcDfxfwfwfwfwfwfwfwfwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDdbcDcDfycNcNfzfAcJctepcDeceqereseaetdfdfdfdfdfdfdfeteceuereveadbdbctaaaaaaaaaaaaaaaaaafBaTaTaTaTaTaTaTaTbacDbiaTaTaTaTaTaTaTflaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcEcIcIcIcIcIcXcJcJctepcDeceaebeccDctedededctedededctcDeaebeceafCdbctaaaaaaaaaaaaaaaaaafjaTaTaTaTaTaTaTaTaUcDaSaTaTaTaTaTaTaTfoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcHcXcDcDcDcDcDdbcJcJctepcDfDfEctctctctfFfGfHctfFfGfHctctctctfEfIfJdbctaaaaaaaaaaaaaaaaaafwfwfwfwfwfwfwfwfwfxcDfxfwfwfwfwfwfwfwfwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactfKfCcDcDcDcDcDdbcJcJctepcDcDcDecfLfLctcDcDcDcDcDcDcDctfMfMfNcDcDcDdbctaaaaaaaaaaaaaaaaaafBaTaTaTaTaTaTaTaTbacDbiaTaTaTaTaTaTaTflaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactfJfJcDcDcDcDcDdbcJcJctepcDcDcDecfLfLctfOfOfOcDfOfOfOctfPfPfQcDcDcDdbctaaaaaaaaaaaaaaaaaafjaTaTaTaTaTaTaTaTaTfkaTaTaTaTaTaTaTaTfoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcDcDcDcDcDcDdbcJcJctepcDcDcDfDfEfEctctctctffctctctctfEfEfIcDcHfqcXctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcDcDcDcDcDcDdbcJcJctepcDcDcDcDcDcDfRfSfSfScDfSfSfSfRcDcDcDcDfKfKfKctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactcDcDcDcDcDcDcDdbcJcJctepcDcDcDcDcDcDcDcDcDcDcDcDcDcDcDcDcDcDcDfJfJfJctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaactctctctctctctctfTctctctfUctctctctctctctctctctctctctctctctctctctctctctctaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiajakalacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaiaiaiamacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabanaoapaqamacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararararasasasasasatasasasasasasasasasasasasasasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararararasauauauauavawauauauaxaxaxayaxaxaxaxaxaxayaxaxaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararararasazaAaBaCaDaAaAaEaFaFaFaGaFaFaFaEaAaAaAaBaAaHaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararararasaIaxasasaJaJaJasasasasaKasasasasaJaJaJasasaLaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarararararararararararasaLaxasasaMaNaNasaOaOaOaPaOaOaOasaQaRaMasasaLaSasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaTaUaUaUaUaUaUaUaVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaWaWaWaWasasasasasasasasasaXasasaLaxasasaYaNaNasaYaMaMaPaMaMaZasbabaaZasasaLaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabbaTaUaUaUaUaUaUbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaaaaaaWasbdbdbdbdbebdbdbdaLaxasaPaMbfaMasasasasbgbhbiaXbgbhbiasasasasaMbjaPaMasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabbbkaUaUaUaUaUaUaVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaaaaaaWasblbmbnboblbnbnbpaLaxasaPaMbfbjbqbfaMasbrbrbraXbrbrbrasaYbjbqbfbjaPaMasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabbaTaUaUaUaUaUaUbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaaaaaaWasaMbsaMaMbtbububvbwbxasaPaMbfbybzbAbjbBbCbDbDbEbDbFbGbBbfbHbzbIbjaPaMasasasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabbbkaUaUaUaUaUaUaVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJaUaUaUbKbLbMbmbNbOaPbPbQbpaLbRasaPbPbzbzbzbzbzbSbTbCbDbEbDbTbUbzbzbzbzbzbzbVbWbXbYasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaabbaTaUaUaUaUaUaUbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZaaaaaaaWascabpaMcbcccdaMbsaLaLascebsasaMbtcfcgbrbGchbDbEbDbDbFbrcgcicjaZasaPaMblbYasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaackckaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclaUaUaUbKbLcmbmbQbocncobMbpaLaLascpcqcrcsctcfcubrbGbGbGcvbGbGcwbrcucicxcscrcyaMbPczasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcBcCcDcEcEcEcEcFcAcAcAcAcAcAcAcAcAcAcAaaaaaaaaaaaaaacAcAcAcAcAcAcAcAcAaaaaaaaabJaUaUaUbKbLbMbmbNbOcnbPbQbpaLaLasaPbsasaYcGcfcHbrbGbCbDbDbDbDbTbrcHcicIaMasaPaMcJcKasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcNcOcLcPcQcOcRcRcAcScTcUcVcWcXcLcYaaaaaaaaaaaaaacYcLcLcZcZcZcZcZcAaaaaaaaabZaaaaaaaWascabpaMcbcccdaMcJdadbbzbVdcbzbzbzbzbzbSbFchbDbDbDbFddbzbzbzbzbzbzbVbWbncKasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAdedfcLdgdhdicLdjcRcRcAdkcTcUcVcWdlcLdmdndndndndndndndmcLcLcRcRcRcRcRcAaaaaaaaaclaUaUaUbKbLcmbmbQbocncobMbpaLbRasaPaMbfbybzbAbjbBchbDbDbDbDbTbGbBbfbHbzbIbjaPaMasasasaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcQdodpdqcOdjcRcRcAdrdsdtdsdsdudvdwdxdxdxdxdxdxdxdwcLcLcRcRcRcRcRcAaaaaaaaabJaUaUaUbKbLbMbmbNbOcnbPbQbpaLaLasceaMbfbjbqbfaMasbrasbrbrbrbrbrasaYbjbqbfbjaPaMasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcNcOdpcPdydfdzdsdAdsdsdtdsdBdCdDcAdEdEdEdEdEdEdEcAdFcLdGcZcZcRcRcAaaaaaaaabZaaaaaaaWascabpaMcbcccdaMbsaLaLasaPaMdHdIasasasasdJasbGbGbGbGdKasasasasdIdLaPaZasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAdedfcLdgdMdidjdjdNcRcAdOdPdQdRcAcAcAcAdndndndndndndncAcAcAcAdRdSdOdPcAaaaaaaaaclaUaUaUbKbLcmbmbQbocncobMbpdTdUdVdUaAdWaAdXdYdZaseaaseaeaeaeaeaasebecedeeeeefaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcQdodpdqdfdjdNcRcAegcVeheiejekcLcAelelelelelelelcAcLeiejekeicLcLcAaaaaaaaabJaUaUaUbKbLbMbmbNbOcnbPbQemeneoepeqerbwerereseteuevaseveveveveveuaMaMaxaxaxdTewasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcNcOdpcPdydfdNcRcAexcLekeyezeAeieBdndndndndndndneBekeCezeDcLcLcLcAaaaaaaaabZaaaaaaaWascabpaMcbeEcdaMeFaMaMaseGeHeIeJdZeKaMeLbGbGbGbGbGbGbGeLaMaMaxaxaxaxaxasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAdedfcLdgdMdidjcMeMeNezeOePezezezezezezeQdndndndndneRezezezezezezeSeTezeUaaaaaaclaUaUaUbKbLcmbnbQboeVcobMeWeVaMaseXeHeYeJdZeZfafbarararararararfbfaaMfcfcfdfcfcasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcQdodpdqdfdjdNcRcAexcLcAcLcLfeffeldndndndndndndnelfffgcLcLcAcLdjcAaaaaaaaaaWcLcLcLaWasasasasasasasasasasbqasasasasasasasasasarararararararasasasasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcNcOdpcPfhdodNcRcAexcLficLcLfefjeldndndnfkdndndnelfjfgcLcLficLdjcAaaaaaaaaaWcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLaWaWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAdedfcLdgdMdidjcLdNcRcAexcLcAcLcLfefleldndndndndndndnelflfgcLcLcAcPdocAaaaaaaaaaWcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLaWaWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcQdodpdqfmfnfoeNezeOePezezezezezezfpdndndndndnfqezezezezezezfrfsezeUaaaaaaaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLdjcLcLftcVcVfufvcRcAexcLekeyezeAeieBdndndndndndndneBekeCezeDeidjdjcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcMcQcQcQcQcQdfcRcRcAexcLekeiejekcLcAelelelcAelelelcAcLeiejekeifwdjcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcPdfcLcLcLcLcLdjcRcRcAexcLfxfycAcAcAcAfzfAfBcAfzfAfBcAcAcAcAfyfCfDdjcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAfEfwcLcLcLcLcLdjcRcRcAexcLcLcLekfFfFcAcLcLcLcLcLcLcLcAfGfGfHcLcLcLdjcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAfDfDcLcLcLcLcLdjcRcRcAexcLcLcLekfFfFcAfIfIfIcLfIfIfIcAfJfJfKcLcLcLdjcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcLcLcLcLcLcLdjcRcRcAexcLcLcLfxfyfycAcAcAcAficAcAcAcAfyfyfCcLcPfndfcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcLcLcLcLcLcLdjcRcRcAexcLcLcLcLcLcLfLfMfMfMcLfMfMfMfLcLcLcLcLfEfEfEcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcLcLcLcLcLcLcLdjcRcRcAexcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLfDfDfDcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaacAcAcAcAcAcAcAcAfNcAcAcAfOcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAcAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 3ddede0e91e..446cf11e474 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -70,8 +70,8 @@ "abr" = (/obj/machinery/magnetic_module,/obj/structure/target_stake,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abs" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/security/prison) -"abu" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) -"abv" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "abw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/prison) "abx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/security/prison) "aby" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/security/prison) @@ -102,7 +102,7 @@ "abX" = (/turf/simulated/wall,/area/security/main) "abY" = (/turf/simulated/wall/r_wall,/area/security/main) "abZ" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) -"aca" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/lobby) +"aca" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/secure_data,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) "acb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/prison) "acc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/prison) "acd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) @@ -115,11 +115,11 @@ "ack" = (/obj/machinery/camera{c_tag = "Firing Range"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "acl" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) "acm" = (/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) -"acn" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/computer/secure_data,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) +"acn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/lobby) "aco" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) "acp" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"acq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/lobby) -"acr" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) +"acq" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) +"acr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/lobby) "acs" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "act" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/prison) "acu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"},/area/security/prison) @@ -213,11 +213,11 @@ "aee" = (/obj/structure/rack,/obj/item/clothing/suit/armor/laserproof{pixel_x = -2; pixel_y = 2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aef" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = 2; pixel_y = -2},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Weapons locker"; req_access_txt = "3"},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aeg" = (/turf/simulated/wall,/area/security/warden) -"aeh" = (/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/range) +"aeh" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aei" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/security/range) -"aej" = (/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/range) +"aej" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/security{name = "Interrogation Observervation"; req_access = null; req_access_txt = "63"},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "aek" = (/obj/machinery/computer/security,/turf/simulated/floor,/area/security/main) -"ael" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ael" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "aem" = (/turf/simulated/floor,/area/security/main) "aen" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/main) "aeo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/main) @@ -226,9 +226,9 @@ "aer" = (/obj/machinery/recharger{pixel_y = 4},/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aes" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aet" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/power/apc{dir = 4; name = "Head of Security Office APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"aeu" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) +"aeu" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor,/area/security/brig) "aev" = (/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/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/prison) -"aew" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) +"aew" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/wall,/area/security/brig) "aex" = (/turf/simulated/wall,/area/security/brig) "aey" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/security/warden) "aez" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -236,7 +236,7 @@ "aeB" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aeC" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/lobby) "aeD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/main) -"aeE" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/security/main) +"aeE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "aeF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/main) "aeG" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/noticeboard{pixel_y = 28},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "aeH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) @@ -289,13 +289,13 @@ "afC" = (/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "afD" = (/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "afE" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"afF" = (/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "3"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/warden) +"afF" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/security{name = "Equipment Storage"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "afG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/warden) "afH" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/warden) "afI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/warden) "afJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/warden) "afK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/warden) -"afL" = (/obj/machinery/door/airlock/security{name = "Armory"; req_access = null; req_access_txt = "3"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/warden) +"afL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "afM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "afO" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) @@ -305,10 +305,10 @@ "afS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/security/main) "afT" = (/obj/machinery/photocopier,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/newscaster{pixel_x = -32; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "afU" = (/obj/structure/table/woodentable,/obj/item/device/radio,/obj/machinery/camera{c_tag = "HoS Office South"; dir = 1},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"afV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) +"afV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 0; pixel_y = 2},/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "afW" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/main) "afX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/main) -"afY" = (/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"afY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/brig) "afZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "aga" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/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/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "agb" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) @@ -323,19 +323,19 @@ "agk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/brig) "agl" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/brig) "agm" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/light/small,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/brig) -"agn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor,/area/security/brig) +"agn" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/brig) "ago" = (/obj/machinery/deployable/barrier,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "agp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/warden) "agq" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "agr" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "ags" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "agt" = (/obj/structure/closet/secure_closet/security,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) -"agu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/general/visible{color = "red"; icon_state = "manifold4w-r-f"; layer = 2.4; level = 1},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) +"agu" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/mask/muzzle,/obj/item/weapon/cane,/obj/item/weapon/cane,/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag,/obj/item/clothing/suit/straight_jacket,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "agv" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "agw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) -"agx" = (/obj/structure/table,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) +"agx" = (/obj/machinery/door/airlock/glass_security{name = "Warden's Office"; req_access_txt = "3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "agy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/security/main) -"agz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) +"agz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag,/turf/simulated/floor,/area/engine/break_room) "agA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/security/hos) "agB" = (/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) "agC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/security/hos) @@ -344,19 +344,19 @@ "agF" = (/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "agG" = (/obj/structure/closet/secure_closet/brig,/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/prison) "agH" = (/obj/structure/closet/secure_closet/brig,/obj/machinery/power/apc{cell_type = 2500; name = "Prison Wing APC"; pixel_y = -28},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "red"},/area/security/prison) -"agI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/lobby) +"agI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor,/area/security/brig) "agJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "agK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/security/prison) "agL" = (/turf/simulated/wall/r_wall,/area/security/brig) "agM" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/security/brig) -"agN" = (/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "1"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/brig) +"agN" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "agO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/security/brig) "agP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/warden) "agQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/warden) -"agR" = (/obj/machinery/door/airlock/glass_security{name = "Warden's Office"; req_access_txt = "3"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/security/warden) +"agR" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "agS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/warden) "agT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden) -"agU" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/bridge) +"agU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold4w/general/visible{color = "red"; icon_state = "manifold4w-r-f"; layer = 2.4; level = 1},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "agV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/stool,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "agW" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "agX" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/security/main) @@ -367,7 +367,7 @@ "ahc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "ahd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "ahe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) -"ahf" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Security Medical Station"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"ahf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ahg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/security/hos) "ahh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "ahi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/prison) @@ -375,19 +375,19 @@ "ahk" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "ahl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "ahm" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) -"ahn" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"ahn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Security Medical Station"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aho" = (/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,/turf/simulated/floor/plating,/area/security/warden) "ahp" = (/obj/machinery/door_timer/cell_2{pixel_x = 32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) -"ahq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) +"ahq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"ahs" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Security Equipment North"; dir = 4; network = list("SS13")},/turf/simulated/floor{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/security/main) +"ahs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aht" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper{info = "4 Deployable Barriers
    4 Portable Flashers + Wrench
    3 Sets of Riot Armor
    1 Bulletproof Vest
    1 Ablative Vest
    1 Bomb Suit
    1 Biohazard Suit
    1 Chemical Implant Kit
    1 Tracking Implant Kit
    1 Loyalty Implant Kit
    1 Box of Spare Handcuffs
    1 Box of flashbangs
    1 Box of spare R.O.B.U.S.T. cartridges
    3 Riot shields
    3 Stun Batons
    3 Energy Guns
    3 Laser Rifles
    6 Gas Masks"; name = "Armory Inventory"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "ahu" = (/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/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/warden) "ahv" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/main) "ahw" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/machinery/camera{c_tag = "Brig Execution Chamber"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "ahx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "ahy" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) -"ahz" = (/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) +"ahz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTH)"},/area/maintenance/fpmaint) "ahA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "ahB" = (/obj/structure/sign/goldenplaque,/turf/simulated/wall/r_wall,/area/security/hos) "ahC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/security/prison) @@ -416,8 +416,8 @@ "ahZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/security/hos) "aia" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/hos) "aib" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/structure/lattice,/turf/space,/area) -"aic" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/security/prison) -"aid" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/prison) +"aic" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aid" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aie" = (/obj/structure/table,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/obj/item/weapon/storage/box/evidence,/turf/simulated/floor,/area/security/brig) "aif" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/brig) "aig" = (/obj/structure/table,/turf/simulated/floor,/area/security/brig) @@ -449,7 +449,7 @@ "aiG" = (/obj/structure/filingcabinet/chestdrawer,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Security Warden Office"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "aiH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "aiI" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) -"aiJ" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/main) +"aiJ" = (/obj/structure/table,/obj/item/ashtray/plastic,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aiK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "aiL" = (/obj/machinery/vending/security,/turf/simulated/floor{icon_state = "red"},/area/security/main) "aiM" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "red"},/area/security/main) @@ -458,29 +458,29 @@ "aiP" = (/obj/machinery/door/window/eastright{dir = 1; name = "Security Delivery"; req_access_txt = "1"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"},/area/security/main) "aiQ" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Security"},/turf/simulated/floor/plating,/area/security/main) "aiR" = (/turf/simulated/floor/plating,/area/security/main) -"aiS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) +"aiS" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aiT" = (/obj/structure/table,/obj/item/device/healthanalyzer{pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) -"aiU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 0; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"aiU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aiV" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/security/brig) "aiW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/security/brig) "aiX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/brig) "aiY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "aiZ" = (/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,/turf/simulated/floor/plating,/area/security/brig) -"aja" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/brig) -"ajb" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/brig) -"ajc" = (/obj/machinery/door/airlock/glass_security{name = "Warden's Office"; req_access_txt = "3"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/security/warden) -"ajd" = (/obj/machinery/door/airlock/security{name = "Equipment Storage"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main) +"aja" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/crowbar,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/dice,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aje" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/security/main) -"ajf" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/main) -"ajg" = (/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main) -"ajh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) +"ajf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajg" = (/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajh" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Lobby"; req_access_txt = "0"},/turf/simulated/floor,/area/security/lobby) "aji" = (/obj/item/device/radio/intercom{pixel_x = -27},/obj/machinery/camera{c_tag = "Brig Toxin Control"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) -"ajj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor,/area/hallway/primary/fore) +"ajj" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/bridge) "ajk" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Security Escape Pod"},/turf/simulated/floor/plating,/area/security/main) "ajl" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod3/station) "ajm" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod3/station) "ajn" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod3/station) -"ajo" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"ajo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction{tag = "icon-pipe-y"; icon_state = "pipe-y"; dir = 2},/turf/simulated/floor,/area/hallway/primary/fore) "ajp" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "white"},/area/security/brig) "ajq" = (/turf/simulated/floor{icon_state = "white"},/area/security/brig) "ajr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/security/brig) @@ -496,8 +496,8 @@ "ajB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ajC" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ajD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) -"ajE" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) -"ajF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/machinery/recharger{pixel_y = 29},/obj/structure/sign/biohazard{pixel_x = 32},/turf/simulated/floor,/area/gateway) +"ajE" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) +"ajF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore) "ajG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ajH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ajI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -540,17 +540,17 @@ "akt" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/main) "aku" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod3/station) "akv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod3/station) -"akw" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) -"akx" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) +"akw" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"akx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aky" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/lobby) "akz" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "akA" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "akB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "akC" = (/obj/effect/landmark/start{name = "Psychiatrist"},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) -"akD" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/mask/muzzle,/obj/item/weapon/cane,/obj/item/weapon/cane,/obj/item/clothing/suit/straight_jacket,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"akE" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintainance"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"akF" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/simulated/floor,/area/teleporter) -"akG" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/turf/simulated/floor,/area/teleporter) +"akD" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintainance"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"akE" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"akF" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor,/area/engine/engineering) +"akG" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "akH" = (/turf/simulated/wall,/area/security/detectives_office) "akI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/security/detectives_office) "akJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/detectives_office) @@ -559,23 +559,23 @@ "akM" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/simulated/floor/plating,/area/security/main) "akN" = (/obj/structure/lattice,/turf/space,/area/security/brig) "akO" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) -"akP" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 29},/turf/simulated/floor,/area/crew_quarters/heads) +"akP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "akQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) -"akR" = (/obj/machinery/door/airlock/security{name = "Interrogation Observervation"; req_access = null; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"akR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "akS" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "akT" = (/obj/item/device/radio/intercom{pixel_x = 27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/brig) "akU" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) "akV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) -"akW" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) +"akW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "akX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) "akY" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/security,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/lobby) "akZ" = (/obj/structure/stool/bed/chair,/obj/machinery/door_control{desc = "A remote control switch for the brig foyer."; id = "BrigFoyer"; name = "Brig Foyer Doors"; normaldoorcontrol = 1; pixel_x = 16; pixel_y = -25; range = 3},/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 1 and 2."; id = "BrigEast"; name = "Brig Cells 1-2 Hallway Doors"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = -25; range = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/lobby) "ala" = (/obj/structure/stool/bed/chair,/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 3 and 4."; id = "BrigWest"; name = "Brig Cells 3-4 Hallway Doors"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = -25; range = 8},/turf/simulated/floor,/area/security/lobby) -"alb" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor,/area/engine/engineering) +"alb" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "alc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) "ald" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/lobby) "ale" = (/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) -"alf" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"alf" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "alg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "alh" = (/obj/item/device/radio/intercom{pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "ali" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) @@ -586,10 +586,10 @@ "aln" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "alo" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{dir = 1; name = "Detective APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table/woodentable,/obj/item/weapon/storage/photo_album{pixel_y = -10},/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "alp" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"alq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"alr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"als" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"alt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"alq" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_east_pump"; exterior_door_tag = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; interior_door_tag = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; sensor_tag = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"alr" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"als" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"alt" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTH)"},/area/security/brig) "alu" = (/turf/space,/area/shuttle/syndicate_elite/station) "alv" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) "alw" = (/obj/structure/grille,/turf/space,/area) @@ -606,14 +606,14 @@ "alH" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/turf/simulated/floor,/area/security/lobby) "alI" = (/obj/structure/table/reinforced,/obj/structure/table/reinforced{tag = "icon-table_horizontal (NORTH)"; icon_state = "table_horizontal"; dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/southright,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) "alJ" = (/obj/structure/table/reinforced{tag = "icon-table_horizontal (NORTH)"; icon_state = "table_horizontal"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/window/southright,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) -"alK" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_east_pump"; exterior_door_tag = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; interior_door_tag = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; sensor_tag = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"alK" = (/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTH)"},/area) "alL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) -"alM" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"alM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/lobby) "alN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/security/brig) "alO" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/brig) "alP" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/brigdoor{dir = 8; id = "Cell 3"; name = "Cell 3"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/brig) "alQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/security/brig) -"alR" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"alR" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "alS" = (/turf/simulated/floor/carpet,/area/security/detectives_office) "alT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/carpet,/area/security/detectives_office) "alU" = (/obj/structure/table/woodentable,/obj/machinery/requests_console{pixel_x = 30},/obj/item/device/camera{name = "detectives camera"; desc = "A one use - polaroid camera. 30 photos left."; pixel_x = 0; pixel_y = 0; pictures_left = 30},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) @@ -625,7 +625,7 @@ "ama" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plating,/area/security/brig) "amb" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor/plating,/area/security/brig) "amc" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/brig) -"amd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) +"amd" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) "ame" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/security/brig) "amf" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) "amg" = (/obj/machinery/flasher{id = "Cell 1"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) @@ -640,7 +640,7 @@ "amp" = (/obj/machinery/flasher{id = "Cell 3"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "amq" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/brig) "amr" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) -"ams" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) +"ams" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/turf/simulated/floor,/area/security/range) "amt" = (/obj/item/weapon/storage/secure/safe{pixel_x = -23},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "amu" = (/obj/structure/stool,/turf/simulated/floor/carpet,/area/security/detectives_office) "amv" = (/obj/structure/table/woodentable,/obj/structure/noticeboard{pixel_x = 30; pixel_y = 0},/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/handcuffs,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) @@ -649,7 +649,7 @@ "amy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "amz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) "amA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"amB" = (/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) +"amB" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) "amC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "amD" = (/obj/machinery/door_timer/cell_1{dir = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "amE" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/lobby) @@ -657,7 +657,7 @@ "amG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/lobby) "amH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) "amI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/security/lobby) -"amJ" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) +"amJ" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "amK" = (/obj/machinery/door_timer/cell_3{dir = 8; pixel_x = -32; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "amL" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "amM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/security/detectives_office) @@ -679,13 +679,13 @@ "anc" = (/obj/item/device/radio/intercom{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "and" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/brig) "ane" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/turf/simulated/floor,/area/security/brig) -"anf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"anf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/main) "ang" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) "anh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/security/lobby) "ani" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/lobby) "anj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) "ank" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) -"anl" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"anl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "anm" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "ann" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/computer/security/wooden_tv,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "ano" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Detective"},/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/floor/carpet,/area/security/detectives_office) @@ -722,7 +722,7 @@ "anT" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) "anU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/brig) "anV" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) -"anW" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) +"anW" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Security Equipment North"; dir = 4; network = list("SS13")},/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{tag = "icon-red (NORTHWEST)"; icon_state = "red"; dir = 9},/area/security/main) "anX" = (/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 = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/security/brig) "anY" = (/obj/machinery/flasher{id = "Cell 2"; pass_flags = 0; pixel_x = 0; pixel_y = -26},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/brig) "anZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) @@ -740,7 +740,7 @@ "aol" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office) "aom" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "aon" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aoo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aoo" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor,/area/security/prison) "aop" = (/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/fsmaint) "aoq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aor" = (/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/fsmaint) @@ -764,7 +764,7 @@ "aoJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/security/lobby) "aoK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/lobby) "aoL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/security/lobby) -"aoM" = (/obj/machinery/door/airlock/glass_security{name = "Security Lobby"; req_access_txt = "0"},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/security/lobby) +"aoM" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor,/area/security/prison) "aoN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/lobby) "aoO" = (/turf/simulated/wall/r_wall,/area/security/detectives_office) "aoP" = (/obj/structure/closet{name = "Evidence Closet"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) @@ -805,7 +805,7 @@ "apy" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "apz" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "apA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apB" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) +"apB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "1"},/turf/simulated/floor,/area/security/main) "apC" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "security_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "security_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "security_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apE" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "security_pump"; exterior_door_tag = "security_outer"; frequency = 1379; id_tag = "security_airlock"; interior_door_tag = "security_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; sensor_tag = "security_sensor"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -826,13 +826,13 @@ "apT" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "apU" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "apV" = (/obj/machinery/computer/forensic_scanning,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) -"apW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"apX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"apW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "Prison Gate"; name = "Prison Wing Lockdown"; pixel_x = -28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = -28; pixel_y = -3; req_access_txt = "2"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) +"apX" = (/obj/structure/table,/obj/item/weapon/folder/red,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) "apY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fsmaint) "aqb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint) -"aqc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"aqc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/handcuffs,/obj/item/device/flash,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "aqd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aqe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aqf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint) @@ -852,12 +852,12 @@ "aqt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) "aqu" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) "aqv" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway East"; dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) -"aqw" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/engine/engineering) +"aqw" = (/obj/structure/table,/obj/item/weapon/folder/red,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) "aqx" = (/turf/simulated/wall/r_wall,/area/maintenance/fsmaint) "aqy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqz" = (/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqA" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/floor,/area/engine/break_room) +"aqA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) +"aqB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/assembly/timer,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "aqC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/stool,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/maintenance/fsmaint) "aqD" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aqE" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "arrivals_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -872,8 +872,9 @@ "aqN" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/fore) "aqO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "aqP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/fsmaint) +"aqQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/item/weapon/folder/red,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) "aqR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Security Maintenance APC"; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aqS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aqS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "aqT" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access_txt = "12;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aqU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/item/weapon/wrench,/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fsmaint) "aqV" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/maintenance/fsmaint) @@ -907,7 +908,7 @@ "arx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ary" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "arz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"arA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"arA" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Warden's Office"; req_access_txt = "3"},/turf/simulated/floor/plating,/area/security/warden) "arB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint) "arC" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/maintenance/fsmaint) "arD" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/maintenance/fsmaint) @@ -1025,12 +1026,12 @@ "atL" = (/turf/simulated/floor/wood{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/crew_quarters/sleep) "atM" = (/turf/simulated/floor/wood{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/crew_quarters/sleep) "atN" = (/obj/machinery/power/apc{dir = 8; name = "Fitness Room APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness) -"atO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness) -"atP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/fitness) -"atQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/crew_quarters/fitness) -"atR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness) -"atS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) -"atT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/crew_quarters/fitness) +"atO" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/brig) +"atP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Armory"; req_access = null; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) +"atQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio,/obj/item/weapon/crowbar,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) +"atR" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/weapon/folder/red,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) +"atS" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/folder/red,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) +"atT" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/door/airlock/glass_command{name = "Head of Security"; req_access_txt = "58"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "atU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) "atV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "atW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -1070,12 +1071,12 @@ "auE" = (/obj/machinery/door/airlock{id_tag = "Dorm5"; name = "Cabin 1"},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "auF" = (/obj/machinery/door/airlock{id_tag = "Dorm6"; name = "Cabin 2"},/turf/simulated/floor/wood,/area/crew_quarters/sleep) "auG" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness) -"auH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness) +"auH" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Evidence Storage"; req_access = null; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) "auI" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Fitness Ring"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness) "auJ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness) "auK" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness) "auL" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/eastright{base_state = "left"; icon_state = "left"; name = "Fitness Ring"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness) -"auM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/crew_quarters/fitness) +"auM" = (/obj/structure/sign/barsign,/turf/simulated/wall,/area/crew_quarters/bar) "auN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) "auO" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor,/area/crew_quarters/fitness) "auP" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1117,7 +1118,7 @@ "avz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) "avA" = (/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) "avB" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) -"avC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness) +"avC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/fitness) "avD" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/crew_quarters/fitness) "avE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "avF" = (/obj/machinery/computer/HolodeckControl,/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1148,6 +1149,8 @@ "awe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "awf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "awg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) +"awh" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/fitness) +"awi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/fitness) "awj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "awk" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/crew_quarters/sleep) "awl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep) @@ -1159,7 +1162,7 @@ "awr" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/silver,/turf/simulated/floor,/area/crew_quarters/sleep) "aws" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Fitness"},/turf/simulated/floor,/area/crew_quarters/fitness) "awt" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/fitness) -"awu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/fitness) +"awu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/crew_quarters/fitness) "awv" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) "aww" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "awx" = (/obj/structure/table,/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1190,6 +1193,7 @@ "awW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva) "awX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "awY" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/fore) +"awZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/fitness) "axa" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axc" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/sleep) @@ -1203,7 +1207,7 @@ "axk" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) "axl" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) "axm" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/beach/water,/area/crew_quarters/fitness) -"axn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) +"axn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/fitness) "axo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) "axp" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor,/area/crew_quarters/fitness) "axq" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Holodeck Door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -1257,12 +1261,12 @@ "aym" = (/obj/machinery/atm{pixel_y = -32},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/sleep) "ayn" = (/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/crew_quarters/sleep) "ayo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/newscaster{pixel_y = -28},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) -"ayp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/crew_quarters/fitness) -"ayq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/crew_quarters/fitness) -"ayr" = (/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},/turf/simulated/floor,/area/crew_quarters/fitness) -"ays" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness) -"ayt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/crew_quarters/fitness) -"ayu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor,/area/crew_quarters/fitness) +"ayp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/crew_quarters/fitness) +"ayq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/cleanable/robot_debris,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ayr" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness) +"ays" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness) +"ayt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness) +"ayu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{tag = "icon-escapecorner (WEST)"; icon_state = "escapecorner"; dir = 8},/area/crew_quarters/fitness) "ayv" = (/obj/machinery/camera{c_tag = "Fitness Room South"; dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) "ayw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "ayx" = (/obj/structure/grille,/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,/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -1305,7 +1309,7 @@ "azi" = (/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/crew_quarters/sleep) "azj" = (/turf/simulated/wall,/area/crew_quarters/toilet) "azk" = (/obj/machinery/door/airlock{name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) -"azl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/light,/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) +"azl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/crew_quarters/fitness) "azm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness) "azn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness) "azo" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness) @@ -1516,6 +1520,7 @@ "aDl" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/simulated/floor,/area/gateway) "aDm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/gateway) "aDn" = (/obj/structure/table,/obj/item/device/radio{pixel_y = 6},/obj/item/device/radio{pixel_x = 6; pixel_y = 4},/obj/item/device/radio{pixel_x = -6; pixel_y = 4},/obj/item/device/radio,/turf/simulated/floor,/area/gateway) +"aDo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/machinery/recharger{pixel_y = 29},/obj/structure/sign/biohazard{pixel_x = 32},/turf/simulated/floor,/area/gateway) "aDp" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aDq" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "aDr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva) @@ -2226,6 +2231,7 @@ "aQU" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/secure/briefcase,/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) "aQV" = (/obj/structure/window/reinforced/tinted{dir = 5},/turf/simulated/floor/plating,/area/bridge) "aQW" = (/obj/machinery/computer/communications,/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/bridge) +"aQX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness) "aQY" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/bridge) "aQZ" = (/obj/machinery/computer/crew,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/bridge) "aRa" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor{dir = 6; icon_state = "whitehall"},/area/bridge) @@ -2773,8 +2779,8 @@ "bbw" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "bbx" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central) "bby" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor,/area/crew_quarters/bar) -"bbz" = (/obj/structure/sign/maltesefalcon/left,/turf/simulated/wall,/area/crew_quarters/bar) -"bbA" = (/obj/structure/sign/maltesefalcon/right{pixel_y = 0},/turf/simulated/wall,/area/crew_quarters/bar) +"bbz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/crew_quarters/fitness) +"bbA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/crew_quarters/fitness) "bbB" = (/turf/simulated/wall,/area/hallway/primary/starboard) "bbC" = (/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bbD" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) @@ -3116,15 +3122,15 @@ "bib" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bic" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bid" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) -"bie" = (/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firedoor South"},/turf/simulated/floor,/area/assembly/chargebay) -"bif" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay) +"bie" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/crew_quarters/fitness) +"bif" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "escapecorner"},/area/crew_quarters/fitness) "big" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bih" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bii" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bij" = (/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) -"bik" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/turf/simulated/floor/plating,/area/assembly/robotics) +"bij" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/crew_quarters/fitness) +"bik" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/light,/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},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) "bil" = (/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/toxins/lab) -"bim" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/lab) +"bim" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bin" = (/obj/machinery/autolathe,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bio" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/gloves/latex,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bip" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3495,8 +3501,8 @@ "bpq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/central) "bpr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central) "bps" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads) -"bpt" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/eftpos{eftpos_name = "HoP EFTPOS scanner"},/turf/simulated/floor,/area/crew_quarters/heads) -"bpu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor,/area/crew_quarters/heads) +"bpt" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"}) +"bpu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"}) "bpv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/apc{dir = 1; name = "Head of Personnel APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/crew_quarters/heads) "bpw" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/crew_quarters/heads) "bpx" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/lattice,/turf/space,/area) @@ -3732,7 +3738,9 @@ "btT" = (/obj/machinery/turret{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "btU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/comms{name = "\improper Cyborg Station"}) "btV" = (/turf/simulated/wall/r_wall,/area/comms{name = "\improper Cyborg Station"}) +"btW" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/structure/table,/turf/simulated/floor,/area/teleporter) "btX" = (/obj/machinery/light{dir = 1},/obj/structure/table,/obj/item/weapon/hand_tele,/turf/simulated/floor,/area/teleporter) +"btY" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/closet/crate,/obj/item/weapon/crowbar,/turf/simulated/floor,/area/teleporter) "btZ" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/teleporter) "bua" = (/obj/machinery/camera{c_tag = "Teleporter"},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/teleporter) "bub" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/teleporter) @@ -3780,6 +3788,7 @@ "buR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "buS" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "buT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"buU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Misc Research Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/toxins/misc_lab) "buV" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "buW" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "buX" = (/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/shuttle/plating,/area/medical/research{name = "Research Division"}) @@ -3960,6 +3969,7 @@ "byq" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central) "byr" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/crew_quarters/heads) "bys" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1},/turf/simulated/floor,/area/crew_quarters/heads) +"byt" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/turf/simulated/floor,/area/toxins/mixing) "byu" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads) "byv" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/server) "byw" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/bluegrid,/area/server) @@ -4482,6 +4492,7 @@ "bIt" = (/obj/machinery/holosign/surgery,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor,/area/medical/sleeper) "bIu" = (/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "bIv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/sleeper) +"bIw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bIx" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bIy" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bIz" = (/obj/structure/disposalpipe/segment,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) @@ -4592,11 +4603,11 @@ "bKA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bKB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bKC" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) -"bKD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) +"bKD" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bKE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/mixing) "bKF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/mixing) "bKG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/mixing) -"bKH" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/research{name = "Toxins Launch Room"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/toxins/mixing) +"bKH" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bKI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/toxins/mixing) "bKJ" = (/turf/simulated/floor,/area/toxins/mixing) "bKK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/mixing) @@ -4769,6 +4780,9 @@ "bNV" = (/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bNW" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bNX" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bNY" = (/obj/structure/table,/obj/item/device/eftpos{eftpos_name = "HoP EFTPOS scanner"},/turf/simulated/floor,/area/crew_quarters/heads) +"bNZ" = (/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/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"bOa" = (/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/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "bOb" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "bOc" = (/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "bOd" = (/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/clothing/suit/straight_jacket{layer = 3},/obj/structure/closet/secure_closet{name = "Psychiatrist's Locker"; req_access = null; req_access_txt = "64"},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) @@ -4826,11 +4840,14 @@ "bPd" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bPe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv1"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay) "bPf" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay) +"bPg" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) +"bPh" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/lab) +"bPi" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firedoor South"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) "bPj" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "bPk" = (/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "bPl" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/machinery/camera{c_tag = "Psychiatric Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) "bPm" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bPn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Misc Research Maintenance"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab) +"bPn" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay) "bPo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/plating,/area/toxins/misc_lab) "bPp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access_txt = "47"},/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bPq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) @@ -4953,8 +4970,8 @@ "bRD" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/bombcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/toxins/misc_lab) "bRE" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bRF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bRG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"}) -"bRH" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/research{name = "Research Division"}) +"bRG" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/crew_quarters/heads) +"bRH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/crew_quarters/heads) "bRI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/toxins/mixing) "bRJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bRK" = (/obj/machinery/atmospherics/pipe/vent{dir = 2},/turf/simulated/floor/plating/airless,/area) @@ -5228,9 +5245,9 @@ "bWS" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bWT" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bWU" = (/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/toxins/xenobiology) -"bWV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bWW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bWX" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"bWV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"bWW" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"bWX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bWY" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "bWZ" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "bXa" = (/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) @@ -5675,6 +5692,7 @@ "cfx" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cfy" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cfz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/engine/break_room) +"cfA" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_outer"; locked = 1; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cfB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/break_room) "cfC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "cfD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor,/area/engine/break_room) @@ -5799,6 +5817,7 @@ "chS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "chT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "chU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/break_room) +"chV" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "synd_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "chW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/engine/break_room) "chX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "chY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact-g (SOUTHEAST)"; icon_state = "intact-g"; dir = 6; level = 2; color = "green"},/turf/simulated/floor/plating,/area/atmos) @@ -5872,6 +5891,7 @@ "cjo" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) "cjp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cjq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cjr" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) "cjs" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cjt" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cju" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -5937,7 +5957,9 @@ "ckC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) "ckD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) "ckE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) +"ckF" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "synd_pump"; exterior_door_tag = "synd_outer"; frequency = 1331; id_tag = "synd_airlock"; interior_door_tag = "synd_inner"; pixel_x = 25; req_access_txt = "0"; sensor_tag = "synd_sensor"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "synd_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ckG" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/engineering) +"ckH" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ckI" = (/turf/simulated/wall,/area/engine/chiefs_office) "ckJ" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ckK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -5946,6 +5968,7 @@ "ckN" = (/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ckO" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/simulated/floor,/area/engine/break_room) "ckP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/radio/headset/headset_eng,/obj/item/device/multitool{pixel_x = 5},/turf/simulated/floor,/area/engine/break_room) +"ckQ" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_inner"; locked = 1; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ckR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) "ckS" = (/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "ckT" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) @@ -5968,6 +5991,7 @@ "clk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "cll" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "clm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"cln" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "clo" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/chiefs_office) "clp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "clq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) @@ -5996,6 +6020,7 @@ "clN" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North-West"; dir = 3; network = list("Singularity"); pixel_x = 20; pixel_y = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) "clO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area) "clP" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity North East"; dir = 2; network = list("Singularity")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) +"clQ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "clR" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/engine/engineering) "clS" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "clT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/break_room) @@ -6025,8 +6050,10 @@ "cmr" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cms" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) "cmt" = (/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/engine/engineering) +"cmu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) "cmv" = (/obj/machinery/camera{c_tag = "Engineering East"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/engine/engineering) "cmw" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) +"cmx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cmy" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/break_room) "cmz" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod5/station) "cmA" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod5/station) @@ -6059,15 +6086,21 @@ "cnb" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) "cnc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cnd" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cne" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cnf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/break_room) "cng" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"cnh" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cni" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) +"cnj" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/engine/engineering) "cnk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cnl" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) "cnm" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cnn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cno" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) "cnp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) "cnq" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/engineering) +"cnr" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"cns" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) "cnt" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod5/station) "cnu" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod5/station) "cnv" = (/obj/machinery/door/poddoor{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -6677,7 +6710,6 @@ "czd" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac) "cze" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czf" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"czg" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/door/airlock/external{layer = 2.6; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "czh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "czi" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; tag = "icon-gravsnow_corner (WEST)"},/area/syndicate_station/start) "czj" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTHEAST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) @@ -6695,13 +6727,11 @@ "czv" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/simulated/floor/wood,/area/syndicate_mothership) "czw" = (/turf/simulated/floor/wood{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/syndicate_mothership) "czx" = (/obj/machinery/door/window{dir = 4; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"czy" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czz" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership) "czA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood{tag = "icon-wood-broken4"; icon_state = "wood-broken4"},/area/syndicate_mothership) "czB" = (/turf/simulated/floor/wood,/area/syndicate_mothership) "czC" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czD" = (/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/shuttle/plating,/area/syndicate_station/start) -"czE" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czF" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (SOUTHWEST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership) "czG" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/simulated/floor/wood{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/syndicate_mothership) "czH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -6731,7 +6761,6 @@ "cAf" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/table,/obj/effect/spawner/newbomb/timer/syndicate,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAg" = (/obj/machinery/door/poddoor{id = "smindicate"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cAh" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (WEST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership) -"cAi" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAj" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAk" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAl" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/syndicate_station/start) @@ -9903,18 +9932,13 @@ "dRG" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Warden"},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "dRH" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/warden) "dRI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Security Processing"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) -"dRJ" = (/obj/structure/table,/obj/item/device/assembly/timer,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) "dRK" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/main) "dRL" = (/obj/machinery/camera{c_tag = "Security Office South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/main) "dRM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/secure_closet/warden,/turf/simulated/floor{icon_state = "dark"},/area/security/warden) -"dRN" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) -"dRO" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/device/flash,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) "dRQ" = (/obj/machinery/deployable/barrier,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/obj/machinery/camera{c_tag = "Armory"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "dRR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Brig Evidence Storage"; dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/brig) -"dRS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table,/obj/item/weapon/handcuffs,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) "dRT" = (/obj/structure/closet/secure_closet/brig,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/camera{c_tag = "Prison Wing Processing"; dir = 1},/turf/simulated/floor{icon_state = "red"},/area/security/prison) "dRU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/security/warden) -"dRV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/device/radio,/obj/item/weapon/crowbar,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) "dRW" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor,/area/security/main) "dRX" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Head of Security"},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -9988,46 +10012,46 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNacOacPdRDaaMaaMaaMaaMaaaabMacRacyacSachacAacBacTabMacUacVacWacXacYabXaclacmacZadaacLabYaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadbadcaddadeadfadgadhadiaaqadjadkaaMaaaabMadlacyadmachacAacBadnabMadoadpadqadradsabXabXabXdRCaduabXabYaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMahwadwadxadwadyadzacsadAadBadCadCaaMaaaabMabMadDadEachadFadGabMabMadHadIadqadJaaSabXadKafbadMadNadOadPadPadQadRadPadPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadSadTadUadVadWadXadYadZaaGaeaaebaaMaaaaaaabMaecaedachaeeaefabMaegaaSaehaeiaejaaSaekdRzaemaenaeoaepadPaeqaeraesaetadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNaeuaevaewaexaexaexaexaexaexabMabMaeydRAaeAabMabMahsahqaeDaeEaeFaeGaeHaeHaeHaeIaeJaeKaeLaeMaeNaeOaePaeQaeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadSadTadUadVadWadXadYadZaaGaeaaebaaMaaaaaaabMaecaedachaeeaefabMaegaaSamsaeiamdaaSaekdRzaemaenaeoaepadPaeqaeraesaetadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNamJaevamBaexaexaexaexaexaexabMabMaeydRAaeAabMabManWanfaeDanlaeFaeGaeHaeHaeHaeIaeJaeKaeLaeMaeNaeOaePaeQaeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeSaeTaeUaeVaeWadAaexaeXaeYaeYaeYaeYaegaeZafadRUafcafdaegafeaffafgafhafiafjafkaflaflafmafnafoafpafqafrafsaftafuafvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafwafxafyafzadhafAaexafBafCafDafEafDafFafGafHafIafJafKafLafMafNafOaiSafQafRafSdRVdRWafVafWafXafYafZagaagbdRXagdadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiajiaaoagfaggaghagiaexagjdRRafDaglagmaegdRQagoagpagqagraegagsaenagtaiSagvagwaemagxdRKdRSdRKaemagAagBagCagDagEagFaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagGagHdRTagJagKadAaexagLagMagNagOagLabMagPagQagRagSagTaegagsaenagtdRNagVagWagXagYagYagZagYahaahbahcahdaheaheagcahgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiahhahiahjaexahkahlahmdRIahmahoafTaiGahrdRMahtahuahvaenagtaiSahxahyaemdRJdRKahzdRKdRLahBafUahDahEahFadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahGahHadAaexahIahJahKahLahMahNahOahPahQahRahSahTahUahVagtajhahxahXaemagxdRKdROagyahYadPadPadPahZaiaadPaibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaicaevaidaexaieaifaigaihahMaiiaijdRGahrailaimahuainaenagtaioaipaiqairaisaitaemaiuafPabYabYabXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaexaexaexaexagLaiwaixaiyaexaizaiAaiBaihahMaegaiCaiDahQaiEdRHaegaiFaiHaiIaiJaffaiKabXaiLaiMaiNaiOaiPaiQaiRabXabXabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaexahnaiTaiUaiVaiWaiXaiYaexaiZajaaiZajbaiZaegagPagQajcagSagTaegabXajdajeabXajfajgabXdRudRtdRtdRvabXaexaiRajkajlajmajmajnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaexahfajpajqajrajsajtajuajvajvajwajxajyajvajvajvajyajzajwajAajBajxajCajDagzaguajGajHdRsajJajKajLajMajNajOajPajQajRajSajTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaexajUajVajWajXajYajZakaakbakcakdakeakfakgakhakbakgakiakjakkakgakeakfakgakgagkagnakoaiBakpakqakraksaexaiRaktakuajmajmakvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaexaexaexaexaexaexaexaexakwakxaexaexaexagLakyakzakAacqadvagIaeCagLaexaexaexacrageakHakHakIakJakKakLakHakHakMabXabXabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafakNaexakOdRrakQakRakSakTakUakVdRqakXakYakZalaacnalcaldaleakXdRpalgakUalhaliakHaljalkallalmalnaloakHalpalWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalxaexalyalzalAaexalBalCalDalEalFalGalHalIalJabZalLacaalealNalOalEalPalQaliakHadLalSalSalTalSalUakHalpalWaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaafaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafwafxafyafzadhafAaexafBafCafDafEafDauHafGafHafIafJafKatPafMafNafOatQafQafRafSatRdRWatSafWafXatTafZagaagbdRXagdadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiajiaaoagfaggaghagiaexagjdRRafDaglagmaegdRQagoagpagqagraegagsaenagtaqBagvagwaemaqwdRKaqQdRKaemagAagBagCagDagEagFaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagGagHdRTagJagKadAaexagLagMatOagOagLabMagPagQarAagSagTaegagsaenagtaqSagVagWagXagYagYagZagYahaahbahcahdaheaheagcahgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiahhahiahjaexahkahlahmdRIahmahoafTaiGahrdRMahtahuahvaenagtaqcahxahyaemapXdRKapXdRKdRLahBafUahDahEahFadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahGahHadAaexahIahJahKahLahMahNahOahPahQahRahSahTahUahVagtaqAahxahXaemaqwdRKaqwagyahYadPadPadPahZaiaadPaibaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaoMaevaooaexaieaifaigaihahMaiiaijdRGahrailaimahuainaenagtaioaipaiqairaisaitaemaiuafPabYabYabXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaexaexaexaexagLaiwaixaiyaexaizaiAaiBaihahMaegaiCaiDapWaiEdRHaegaiFaiHaiIapBaffaiKabXaiLaiMaiNaiOaiPaiQaiRabXabXabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaexagNaiTafVaiVaiWaiXaiYaexaiZagnaiZafYaiZaegagPagQagxagSagTaegabXafFajeabXaeEafLabXdRudRtdRtdRvabXaexaiRajkajlajmajmajnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaexahnajpajqajrajsajtajuajvajvajwajxajyajvajvajvajyajzajwajAajBajxajCajDahfagUajGajHdRsajJajKajLajMajNajOajPajQajRajSajTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaexajUajVajWajXajYajZakaakbakcakdakeakfakgakhakbakgakiakjakkakgakeakfakgakgagkagIakoaiBakpakqakraksaexaiRaktakuajmajmakvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaexaexaexaexaexaexaexaexaelaeuaewaexaexagLakyakzakAacnadvacraeCagLaexaexaexacqageakHakHakIakJakKakLakHakHakMabXabXabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafakNaexakOdRrakQaejakSakTakUakVdRqakXakYakZalaacaalcaldaleakXdRpalgakUalhaliakHaljalkallalmalnaloakHalpalWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalxaexalyalzalAaexalBalCalDalEalFalGalHalIalJabZalLalMalealNalOalEalPalQaliakHadLalSalSalTalSalUakHalpalWaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaafaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaafaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalYalZaexamaambamcaexdRoameamfamgamhamiamjamkamlammalLamnaleamiamoampamqamrdRnakHamtamualSalTalSamvakHalpalWaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafamwaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafamxaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalYalxaexamyamzamAamBamCamDaexaexaexagLamEamnamFamGamHamIdRmagLaexaexaexamKamLamMamNamOamPamQalSamRakHalpalWaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvalvalvalvalvaaaaaaaaaamSaaaaaaaaaalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafamxaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafalYalxaexamyamzamAaehamCamDaexaexaexagLamEamnamFamGamHamIdRmagLaexaexaexamKamLamMamNamOamPamQalSamRakHalpalWaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvalvalvalvalvaaaaaaaaaamSaaaaaaaaaalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalwalvalvaaaaaaaaaamTaaaaaaaaaalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafamUamVamWamXaexamYamZanaaexanbancandanedRxakXanganhanianjankamnaleakXdRyalgakUalhanmakHannanoanpalTalSanqakHalpalWaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalXaaaaaaaafaafaafaaaaaaamSaafaafaaaaafaafaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaafaafaaaaaaaaaamTaafaafaaaaafaafaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaamUalYalYalxaexamYanrdRwaexansantanuanvanwanxanyanzanAamnanBamnaleanCalOanDanEanFanGakHanHanIanJanKanLanMakHalpalWalWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvaafanNanNanNanNanNaafanOaafanNanNanNanNanNaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafanPanPanPanPanPaafanQaafanPanPanPanPanPaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaamUalYanRalxaexanSanTanUaexanVahpanXanYamhamianZaoaaobaocanBaodaleamiamoaoeamfaofaogakHaohaoiaojaokaolaolaomaonaooalWalWalWaopaoqaoralWaafaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvaafaosaotaotaotaotaouaovaowaoxaoxaoxaoxaoyaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaamUaoGaoHaexaexagLagLagLagLagLagLagLagLagLagLaoIaoJaoKaoLaoMaoNaoMagLagLagLagLagLagLaoOaoPaoQaoRaoRaoSaoTaoUaoVaoWalWaoXaoYaoZaoZaoZalWalWalWalWapaalualualualualuaaaaaaaaaaaaaaaaaaalvaafapbapbapbapbapbaafaovaafapbapbapbapbapbaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafapcapcapcapcapcaafaoCaafapcapcapcapcapcaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamUapdapeapdapfapdapgapgaphapiapjapgapgapgapgapkapgaplapgapgapmapnapoappapqaprapsaptakHapuapvapwapxapyapzaoOapAaoWalValValValVaezaeBapCapDapEapFapGalualualualualuaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaafaovaaaaaaaaaaafaaaaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaafaoCaaaaaaaaaaafaaaaaaaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapdapHapIapdapdapJapmapKapmapmapmapmapmapmapLapmapMapmapmapNapOapPapmapQapmapmapmakHapRapSapTapUapwapVaoOapWapXapYapYapYapZaelaqaaqbalWalWalWalValualualualualuaaaaaaaaaaaaaaaaaaalvaafanNanNanNanNanNaafaovaafanNanNanNanNanNaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafanPanPanPanPanPaafaoCaafanPanPanPanPanPaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapdaqcaqdaqeaqfaqgaqhaqiaqjaqjaqjaqjaqjaqjaqkaqlaqmaqnaqoaqpaqqaqraqsaqtaquaqsaqvakHaoOaoOaoOaoOaoOaoOaqxaqyaoWaqzaqzaqzaqAaciadtacQaqCalWaaaaaaaaaalualualuaaaaaaaaaaaaaaaaaaaaaalvaafaosaotaotaotaotaouaovaowaoxaoxaoxaoxaoyaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqDaqEaqDaaaaaaaaaaaaaaaaaaaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapdaoGaqFapdaqGaqGaqHaqIaqJaqGaqGaqKaqKaqKaqKaqLaqKaqKaqMaqNaqOalWalWaqPalWacgalWalWaoYalValValValValVaqRaqyaoWalValValVaqSapZaqTaqUaqValWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafapbapbapbapbapbaafaovaafapbapbapbapbapbaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaqWaqXaqWaaaaaaaaaaaaaaaaaaaaaalvaafapcapcapcapcapcaafaoCaafapcapcapcapcapcaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapdaqYaoHapdayZarearbarcardazaaqGarfargarhariarjarkarlarmapmarnalWaroarparqarqarqarqarqarrarqarqarqarsartaruarvarwarxaryarzarAarBarCarDalWaafarEarFarFarGarFarFarHaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaaaaovaaaaaaaaaaafaaaaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaafaafaaaaaaaaaamTaafaafaaaaafaafaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaamUalKalKaltaexamYanrdRwaexansantanuanvanwanxanyanzanAamnanBamnaleanCalOanDanEanFanGakHanHanIanJanKanLanMakHalRalWalWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvaafanNanNanNanNanNaafanOaafanNanNanNanNanNaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafanPanPanPanPanPaafanQaafanPanPanPanPanPaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaamUalYanRalxaexanSanTanUaexanVahpanXanYamhamianZaoaaobaocanBaodaleamiamoaoeamfaofaogakHaohaoiaojaokaolaolaomaonakRalWalWalWaopaoqaoralWaafaaaaaaaaaalualualualualuaaaaaaaaaaaaaaaaaaalvaafaosaotaotaotaotaouaovaowaoxaoxaoxaoxaoyaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaamUaoGaoHaexaexagLagLagLagLagLagLagLagLagLagLaoIaoJaoKaoLajhaoNajhagLagLagLagLagLagLaoOaoPaoQaoRaoRaoSaoTaoUaoVakxalWaoXaoYaoZaoZakwalWalWalWalWapaalualualualualuaaaaaaaaaaaaaaaaaaalvaafapbapbapbapbapbaafaovaafapbapbapbapbapbaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafapcapcapcapcapcaafaoCaafapcapcapcapcapcaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamUapdapeapdapfapdapgapgaphapiapjapgapgapgapgapkapgaplapgapgapmapnapoappapqaprapsaptakHapuapvapwapxapyapzaoOapAaoWalValValVajgaezaeBapCapDapEapFapGalualualualualuaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaafaovaaaaaaaaaaafaaaaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaafaoCaaaaaaaaaaafaaaaaaaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapdapHapIapdapdapJapmapKapmapmapmapmapmapmapLapmapMapmapmapNapOapPapmapQapmapmapmakHapRapSapTapUapwapVaoOajfajdajcajbapYajaaiUaqaaqbalWalWalWalValualualualualuaaaaaaaaaaaaaaaaaaalvaafanNanNanNanNanNaafaovaafanNanNanNanNanNaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafanPanPanPanPanPaafaoCaafanPanPanPanPanPaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapdahzaqdaqeaqfaqgaqhaqiaqjaqjaqjaqjaqjaqjaqkaqlaqmaqnaqoaqpaqqaqraqsaqtaquaqsaqvakHaoOaoOaoOaoOaoOaoOaqxaqyaidaicaqzaiJaiSaciadtacQaqCalWaaaaaaaaaalualualuaaaaaaaaaaaaaaaaaaaaaalvaafaosaotaotaotaotaouaovaowaoxaoxaoxaoxaoyaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqDaqEaqDaaaaaaaaaaaaaaaaaaaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapdaoGaqFapdaqGaqGaqHaqIaqJaqGaqGaqKaqKaqKaqKaqLaqKaqKaqMaqNaqOalWalWaqPalWacgalWalWaoYalValValValValVaqRaqyahqagRagRagRahsapZaqTaqUaqValWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafapbapbapbapbapbaafaovaafapbapbapbapbapbaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaqWaqXaqWaaaaaaaaaaaaaaaaaaaaaalvaafapcapcapcapcapcaafaoCaafapcapcapcapcapcaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapdaqYaoHapdayZarearbarcardazaaqGarfargarhariarjarkarlarmapmarnalWaroarparqarqarqarqarqarrarqarqarqarsartaruarvarwarxaryarzayqarBarCarDalWaafarEarFarFarGarFarFarHaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaaaaovaaaaaaaaaaafaaaaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarIarJarKaaaarLarMarNaaaaafarOaqDarOaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaafaaaaaaaaaaoCaaaaaaaaaaafaaaaaaaaaalwaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapdapdapdapdaoHapdarParQarRarSarTarUaqGarVarWarWarWarjarXarYarZasaasbalWascasdaseaseaseaseasfasdaseasgaseasdaseaseasgaseashasiasjaskaslasmasnasnasnasoaspaspaspaspaspasoasnaaaaaaaaaaaaalvaafanNanNanNanNanNaafaovaafanNanNanNanNanNaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasqasrassasrasqastasuastasqaafarOasvaswaaaaaaaaaaaaaaaaaaaaaalvaafanPanPanPanPanPaafaoCaafanPanPanPanPanPaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapdasxasyapdaoHapdaszasAasBasCasDasEaqGasFarWasGasGarjarWarYapgapmasHalWasIasJasKasLasMasNasOasPasNasQasRasSasNasTasUasVasWasXasYasZataatbatcatdasnasoaspaspaspaspaspasoasnaafaaaaaaaaaalwaafaosaotaotaotaotaouaovaowaoxaoxaoxaoxaoyaafalvaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateasratfasrateastatgastateathatiatjatkatlatlatmathathaafaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapdatnatoatpatqatratsattatuatvatwatxaqGatyatzatAatBatCatDarYapgapmarnalWasIasJatEatFasMasNatGatHasNatIatJatKasNatLatJatMasnatNatOatPatQatRatSatTatUatVaspaspaspaspaspatWasnasnasnaaaaaaalwaaaapbapbapbapbapbaafaovaafapbapbapbapbapbaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateatXatYatZateauaaubaucateaqDaqDaudaueaufaugauhauiathaaaaaaalXaaaapcapcapcapcapcaafaoCaafapcapcapcapcapcaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapdaujaoGapdaukapdaulaumaunauoaupauqaqGaurausautautauuauvauwauxauyauzauAauBauCatEasLasMasNauDatHasNasNauEasNasNasNauFasNasnauGauHauIauJauKauLauMauNauOaspaspaspaspaspauPauQauRauSaaaaaaalwaaaaafaaaaafaafaaaaaaaovaaaaaaaafaaaaaaaafaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateauTauUauVateauTauUauVateauWauXauYauYauYauYauZavaaqWaaaaaaalvaaaaafaaaaafaafaaaaaaavbaaaaaaaafaaaaaaaafaaaalvaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapdapdapdapdaukapdavcavdavdaveavdaraavdavfavgavgavgavgavhaviavjapmavkalWavlasdavmasLavnavoauDavpavqavravsavsavtavuavsavvavwavxauHavyavzavAavBavCavDavEaspaspaspaspaspavEavFavGavHaaaaaaalwalwalvaaaaaaaafaaaaaaaovaaaaafaafaafaafalvalvalvaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasqateavIavJasqateavIavJasqathavKathathathathathavLarOaaaaaaalvalvalvaaaaaaaafaaaavMavNavMaafaafaafaafalvalvalvaafapdapdapdapdavOavPavPavPavPavPavPavPavQapdapdavRavSavTapdavUaoGavVavWavXavYavYavYavZavYawaavYawbawcawdawdaweaweawfawgajjajoaqaawjawkawlawmawnasNauDawoawoawpawqawqawrawpawoawoawsawtawuavyavzavAavBavCawvawwaspaspaspaspaspawwawxavGavHaaaaaaaaaaaaaafaafaaaaafaaaaaaawyaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawzawAawAawAawBawAawAawAawCawDawEawCawCawCawFathawGarOaaaaafaafaaaaaaaaaaaaaafaaaawHawIawJaafaaaaafaaaaaaaaaaaaaaaapdaoGaoGawKaoGaoGaoGaoGaoGaoGaoGaoGawLawMawNawOawOawOawOawOawOawPawQawRawSawSawSawSawTawUawSawVawWawTawSawSawSawSawXawYajEaxaaxbauCasNasNasNasNatGaxcawoawpawqaxdawqaxeaxfaxgaxhaxiatOaxjaxkaxlaxmaxnaxoaxpaspaspaspaspaspaxqaxraxsaxtaaaaaaaaaaaaaaaaafaaaaafaaaaxuaxvaxuaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxwaxxaxyaxzaxAaxyaxyaxBaxzaxyaxCaxDaxEaxEaxFathawGatiaafaafaaaaaaaaaaaaaaaaafaxGaxHaxIaxJaxKaaaaafaaaaaaaaaaaaaaaapdaoGapdaxLaxMaxNaxNaxNaxNaxNaxNaxNaxOaxLaxPaxQaxQaxQaxQaxQaxQaxQaxRaxSawSaxTaxUaxVaxWaxXaxYaxZayaaybaycaxUaydawSayeapmayfalWaygasJasKasLasMasNauDayhayiaxgaxgayjaykaylaymaynavwayoaypayqayraysaytayuayvaywaspaspaspaspaspayxasnasnasnaaaaaaaaaaaaaafaafaafaafaaaayyayzayyaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafateawzayAawzayBaxyaxyayCawzayAawzayDaxxaxAayEathawGathathayFatlatlatlatlatmathayGayHayIayJayGapdapdavRavSavTapdapdapdaoGaqYaxLaaaaafaaaaafaaaaafaaaaafaaaaxLaxPaxQayKayLayMayNayOaxQaxRaoGawSayPayPayQayRaySayTayUayVayWayXayYayYawSayeapmazcalWaygasJatEasLasMasNatGazdazeazfazgazhaziazjazjazkazjasnazlazmaznazoazpazqasnazraspaspaspaspaspazrasnaafaaaaaaaaaaaaaaaaafaafaaaaafazsaztazuazvazwaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateasratfasrateastatgastateathatiatjatkatlatlatmathathaafaaaalvaafaozaoAaoAaoAaoAaoBaoCaoDaoEaoEaoEaoEaoFaafalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapdatnatoatpatqatratsattatuatvatwatxaqGatyatzatAatBatCatDarYapgapmarnalWasIasJatEatFasMasNatGatHasNatIatJatKasNatLatJatMasnatNazlaQXayraysaytayuatUatVaspaspaspaspaspatWasnasnasnaaaaaaalwaaaapbapbapbapbapbaafaovaafapbapbapbapbapbaaaalXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateatXatYatZateauaaubaucateaqDaqDaudaueaufaugauhauiathaaaaaaalXaaaapcapcapcapcapcaafaoCaafapcapcapcapcapcaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapdaujaoGapdaukapdaulaumaunauoaupauqaqGaurausautautauuauvauwauxauyauzauAauBauCatEasLasMasNauDatHasNasNauEasNasNasNauFasNasnauGavCauIauJauKauLawhauNauOaspaspaspaspaspauPauQauRauSaaaaaaalwaaaaafaaaaafaafaaaaaaaovaaaaaaaafaaaaaaaafaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaateauTauUauVateauTauUauVateauWauXauYauYauYauYauZavaaqWaaaaaaalvaaaaafaaaaafaafaaaaaaavbaaaaaaaafaaaaaaaafaaaalvaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapdapdapdapdaukapdavcavdavdaveavdaraavdavfavgavgavgavgavhaviavjapmavkalWavlasdavmasLavnavoauDavpavqavravsavsavtavuavsavvavwavxawiavyavzavAavBawuavDavEaspaspaspaspaspavEavFavGavHaaaaaaalwalwalvaaaaaaaafaaaaaaaovaaaaafaafaafaafalvalvalvaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasqateavIavJasqateavIavJasqathavKathathathathathavLarOaaaaaaalvalvalvaaaaaaaafaaaavMavNavMaafaafaafaafalvalvalvaafapdapdapdapdavOavPavPavPavPavPavPavPavQapdapdavRavSavTapdavUaoGavVavWavXavYavYavYavZavYawaavYawbawcawdawdaweaweawfawgajoajEaqaawjawkawlawmawnasNauDawoawoawpawqawqawrawpawoawoawsawtawZavyavzavAavBawuawvawwaspaspaspaspaspawwawxavGavHaaaaaaaaaaaaaafaafaaaaafaaaaaaawyaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawzawAawAawAawBawAawAawAawCawDawEawCawCawCawFathawGarOaaaaafaafaaaaaaaaaaaaaafaaaawHawIawJaafaaaaafaaaaaaaaaaaaaaaapdaoGaoGawKaoGaoGaoGaoGaoGaoGaoGaoGawLawMawNawOawOawOawOawOawOawPawQawRawSawSawSawSawTawUawSawVawWawTawSawSawSawSawXawYajFaxaaxbauCasNasNasNasNatGaxcawoawpawqaxdawqaxeaxfaxgaxhaxiaxnaxjaxkaxlaxmaypaxoaxpaspaspaspaspaspaxqaxraxsaxtaaaaaaaaaaaaaaaaafaaaaafaaaaxuaxvaxuaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxwaxxaxyaxzaxAaxyaxyaxBaxzaxyaxCaxDaxEaxEaxFathawGatiaafaafaaaaaaaaaaaaaaaaafaxGaxHaxIaxJaxKaaaaafaaaaaaaaaaaaaaaapdaoGapdaxLaxMaxNaxNaxNaxNaxNaxNaxNaxOaxLaxPaxQaxQaxQaxQaxQaxQaxQaxRaxSawSaxTaxUaxVaxWaxXaxYaxZayaaybaycaxUaydawSayeapmayfalWaygasJasKasLasMasNauDayhayiaxgaxgayjaykaylaymaynavwayobifbijbiebiebbzbbAayvaywaspaspaspaspaspayxasnasnasnaaaaaaaaaaaaaafaafaafaafaaaayyayzayyaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafateawzayAawzayBaxyaxyayCawzayAawzayDaxxaxAayEathawGathathayFatlatlatlatlatmathayGayHayIayJayGapdapdavRavSavTapdapdapdaoGaqYaxLaaaaafaaaaafaaaaafaaaaafaaaaxLaxPaxQayKayLayMayNayOaxQaxRaoGawSayPayPayQayRaySayTayUayVayWayXayYayYawSayeapmazcalWaygasJatEasLasMasNatGazdazeazfazgazhaziazjazjazkazjasnbikazmaznazoazpazqasnazraspaspaspaspaspazrasnaafaaaaaaaaaaaaaaaaafaafaaaaafazsaztazuazvazwaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazxasqazyauUazzazAazBazCazDazzauUazEazFasqazGazHathazIazJazJazJazJazJazJavaazKazLayGazMazNazOayGazPaoGaoGaoGaoGaoGaoGaoGaoGazQaxLaafazRazRazRazRazRazRazRaafaxLaxPaxQazSazTazUazVazSaxQaxRazWawSawSawSawSazXazYaxUazZazYaAaawSawSawSawSayeapmaAbalWaygasJatEasLasMasNauDaAcazjazjazjazjazjazjaAdaAeaAfazjasnasnasnasnaAgasnasnazraspaspaspaspaspazrasnaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaAhaAiaAjaAkaAhaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxwayAaAlaAmaAmaAmaAmaAnayAaxwaAoasqaApaAqaAraAraAraAraAraAraAraAravLaAsazLayGaAtaAuaAvayGaAwaAxaAwaAwaAwaAwaAwaAwaAwaAwaAyaaaazRaAzaAAaABaACaADazRaaaaxLaxPaxQazSaAEaAFaAGazSaxQaxRapdawSaAHaAIayQaAJaAKayTaALaAKaAMaANaAOaAOawSayeapmayfalWaAPasdavmasLavnaAQauDaAcazjaARaAeaASaASazjaAdaATaAfazjaAUaAVaAUaAWaAXaAYaafaAZaBaaBaaBaaBaaBaaBbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAhaBcaBdaBeaAhaafaaaaaaaBfaBgaBgaBgaBgaBhaBiaBgaBgaBgaBgaBjaBjaBgaBkaBlaBmaBnaBoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBpaBqaBraBqaBqaBsaBtaBqaBqaBraBuaBvasqayBaBwaBxaByaBzaBAaBBaBCaBDaAravLaBEathayGayGaBFaBGaAyaBHaBIaBJaBKaBLaBMaBNaBOaBPaBQaAyaafazRaBRaBSaBTaBUaBVazRaafaxLaxPaxQaBWaBXaBYaBXaBZaxQaxRaCaawSaxUaxUaCbaCcazYaCdazZazYaCeaCfaxUaydawSayeapmayfalWaygawkawlaCgawnasNaChaCiazjaCjaAeaAeaAeazkaCkaClaCmazjaCnaCoaCoaCpaAXaAYaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAhaCqaCraCsaAhaAYaCtaCuaCvaCwaCxaCxaCxaCxaCxaCxaCyaCzaCzaCAaCBaCCaCzaCzaCDaCEaCFaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBpaBuaBqaCGaCHaCHaCIaCJazbaCKaCLaCHaCHaCMaCNawzayBaCOaAraCPaCQaCRaCSaCRaCTaCUaCVaCWaqDaCXaCYaCZazJaDaaDbaDcaDdaDdaDdaDeaDdaDdaDfaBIaAyaaaazRaDgaDhaDiaBUaDjazRaaaaxLaxPaxQaDkaDlaDmaDnajFaxQaxRaDpawSawSawSawSaDqazYaxUaDraAKaDsayXaDtaDuawSaDvasaaDwalWaygaDxaDyaDyaDyaDyaDzaDAaDBaDCaDDaDEaDEaDEaDFaDEaDGaDEaDHaDIaDJaDKaDLaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaCtaCuaAYaAYaAYaCtaDMaDNaAYaAYaAhaAhaDOaDPaAhaDQaDRaDSaDTaDUaDVaDVaDVaDVaDVaDQaDWaDXaDXaDYaDZaEaaDXaEbaEcaEdaEbaEbaEbaEbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBpaBuaBqaCGaCHaCHaCIaCJazbaCKaCLaCHaCHaCMaCNawzayBaCOaAraCPaCQaCRaCSaCRaCTaCUaCVaCWaqDaCXaCYaCZazJaDaaDbaDcaDdaDdaDdaDeaDdaDdaDfaBIaAyaaaazRaDgaDhaDiaBUaDjazRaaaaxLaxPaxQaDkaDlaDmaDnaDoaxQaxRaDpawSawSawSawSaDqazYaxUaDraAKaDsayXaDtaDuawSaDvasaaDwalWaygaDxaDyaDyaDyaDyaDzaDAaDBaDCaDDaDEaDEaDEaDFaDEaDGaDEaDHaDIaDJaDKaDLaAYaAYaAYaAYaAYaAYaAYaAYaAYaAYaCtaCuaAYaAYaAYaCtaDMaDNaAYaAYaAhaAhaDOaDPaAhaDQaDRaDSaDTaDUaDVaDVaDVaDVaDVaDQaDWaDXaDXaDYaDZaEaaDXaEbaEcaEdaEbaEbaEbaEbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMaEeaEfaEgaCHaEhaCHaEhaCHaEhaCHaEhaCHaEiaEjazzayBaEkaAraElaEmaEnaEoaEpaEqaAraEraEsazJaEtazJaEuaqDaAwaEvaDfaDdaDdaDdaDdaDdaDdaEwaExaEyaEzaEAaEBaECaEDaEEaEFazRaafaxLaEGaEHaEIaEJaEKaELaEMaEHaENaEOawSaEPaxUayQaEQaAKayTaERazYaESawSawSawSawSaETaEUaEValWaEWapZapZapZaEXaEYaEZaFaaFbaFcaFdaFbaFeaFbaFfaFbaFgaFhaFiaCoaFjaAWaFkaFlaFmaFnaFnaFlaFoaFpaFpaFpaFpaFpaFqaFraFpaFsaFtaFuaFvaFwaFxaFyaFzaFAaFBaFBaFBaFCaFDaFEaFFaDVaFGaFHaFIaDVaDXaFJaDXaFKaFLaFMaFNaFOaFPaFQaFRaFSaFTaFUaFVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFWaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFXaCHaCHaBraCHaEhaCHaEhaFYaEhaCHaEhaCHaEiaEjazzayBaFZaAraGaaGbaGcaGdaGcaBxaBxaGeaGfaGgaGhaGiaGhaGhaGjaGkaGlaGmaGmaGmaGnaGmaGmaGoaGpaAyaaaaGqazRaGraGsaGrazRazRaaaaxLaGtaxQaGuaGvaGwaGxaGyaGzaGAaGBawSaGCaxUaGDaCcazYaxUazZazYaCeaGEawSawSawSaGFaGGaGHalWaGIalWalWalWaGJalWaGKaGLazjaGMaAeazjaGNazjaGOazjaGPaGQaGRaGSaGTaGUaGVaGWaGXaGYaGZaHaaHbaGZaGZaHcaBgaGYaHdaGYaHeaHfaGYaHgaHhaHiaHjaHjaHkaHlaHmaHnaHjaHoaHpaHqaHraHsaHtaHuaHvaDVaHwaHxaDXaHyaHzaHAaHBaFOaHCaHDaFRaHEaEbaEbaEbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCMaHFaEfaEgaCHaEhaCHaEhaCHaEhaCHaEhaCHaEiaEjazzaHGaHHaHIaHJaHKaHKaHKaHHaHLaHMaHHaHNaHOaqDaHPauiauiaAwaHQaHRaBIaHSaHTaHUaHVaHWaHXaHYaAyaaaaHZaaaaIaaIbaIaaaaaafaaaaxLaGtaxQaIcaIdaIeaIfaIgaxQaIhaoGawSaIiaxUayQaIjaIkayTaIlaImaInaIoaIpaIqaIraIsaItaIuaIvaIwaIxaaaaaaaIyaIzaIAaIBazjaICaAeaAeaAeaClaAeaAeaAeaIDaAWaIEaAWaIFaIGaIHaIIaIHaIHaIJaIKaILaIMaINaIOaIOaIPaIOaIQaIOaIRaISaISaITaISaISaIUaISaISaISaISaIVaIWaHraIXaIYaIZaJaaJbaDVaJcaJdaJeaJfaJgaJhaHBaJiaHCaHDaFRaHDaJjaJkaJlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10036,49 +10060,49 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawzayAaMxaAmaAmaAmaAmaMyayAawzaAoasqaApaMzazzaMAaMBaMCaMCaMDateaMEaKXaMFaMGaKZaMHaMIaMJaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLgaMNaMOaLeaLeaLeaMPaMQaLeaLeaLeaLeaMRaLeaLeaLeaMSaMNaKZaLuaItaItaItaItaItaItaItaItaItaItaItaItaMTaMUaMVaMWaMXaMYaMZaNaaNbaItaItaItaLuaItaItaItaItaItaItaItaItaNcaItaAWaKcaNdaKcaKcaKcaKcaNeaNfaNgaNhaIHaNiaNjaNkaNlaNmaIOaNnaKpaMbaMcaNoaIOaISaISaNpaISaISaISaNqaNraNqaISaIVaIWaNsaHraHraNtaHraNuaDVaDXaDXaDXaDXaDXaDXaNvaDXaHDaHDaFRaHDaNwaNxaEbaaaaafaaaaaaaaaaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazxasqazzauUazzaNyaNzaNAaNBazzauUaNCaNDasqayBaxyazzaNEaNFaMCaMCaMDateaNGaKXaJvaMGaKZaNHaNIaNJaNJaNJaNKaNLaNMaNJaNNaNJaNJaNOaNPaNQaNRaNJaNSaNTaNUaNVaNWaNXaNYaNZaOaaObaObaOcaOdaMNaKZaLuaItaOeaItaOfaOfaOfaOfaOfaOfaOfaOfaOgaOhaOfaOfaOfaOfaOiaOfaOfaOfaOfaOfaOjaOkaOfaOfaOfaOfaOfaOfaOfaItaItaItaAWaOlaOmaOlaOlaOlaOnaOoaNfaNgaOpaIHaIHaOqaIHaIHaIHaIOaOraKpaOsaOtaOuaIOaISaOvaOwaOxaOyaOxaOxaOzaOAaISaIVaIWaOBaOBaOCaODaOEaOEaOFaDVaOGaOHaOIaEbaOJaOKaOLaHDaHDaOMaONaEbaOOaEbaOPaOPaOPaaaaaaaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafateaxwayAaxwayBaxyaxyayCaxwayAaxwaOQawAaORaxyaxwaOSaOSaKUaOSaKVateaOTaKXaJvaOUaOUaOVaOWaOUaOXaOXaOXaOXaOXaOYaOZaOXaOXaOXaOXaOXaPaaPbaPcaPbaPdaPeaPfaLeaLfaPgaPhaPiaPjaLfaLeaPkaPlaPlaItaItaIuaPmaJXaJXaPnaPnaPnaPnaPoaPpaPqaPraPsaPtaPtaPuaPvaPtaPwaPxaPyaPpaPzaPnaPnaPnaPnaJXaJXaPAaIsaItaItaIHaPBaPCaPDaPDaPDaPDaPEaKlaPFaKnaIHaPGaPHaPIaIOaPJaIOaIOaPKaIOaPLaIOaIOaISaPMaPNaPOaPOaPOaPOaPPaPQaISaPRaIWaPSaHraOCaODaHraHraPTaDVaPUaPVaPWaEbaPXaPYaPZaQaaQaaQbaPZaQcaQdaEbaQeaQfaOPaQgaQhaQiaafaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawzaQjaxyaQkaORaxyaxyaQlaQkaxyaQjaORaxyaxyaxyaQmaQnaQnaQnaQnaQnaQnaQnaQoaQpaOUaQqaQraQsaQtaqZaQvaQwaQxaQyaQzaQAaQBaQCaQDaQEaQFaQGaQHaQIaQJaPdaQKaPfaPfaQLaPfaQMaPlaPlaQNaQOaPlaPlaPlaQPaItaIuaQQaaaaaaaaaaaaaaaaaaaaaaPpaQRaQSaQTaQUaQVaQWaQVagUaQYaQZaRaaPpaaaaaaaaaaaaaaaaaaaaaaRbaIsaItaRcaRdaReaRfaRgaRgaRgaRgaRgaKnaRhaRgaRiaRjaRkaRlaIOaRmaRnaRoaRpaRqaRraRsaRtaIOaOxaRuaRvaRvaRvaRvaRwaRxaISaIVaIWaRyaRyaOCaODaRzaRzaRAaDVaDVaRBaDVaEbaRCaOKaONaRDaRDaOMaONaEbaEbaEbaREaRFaRGaRHaRIaRJaafaafaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawzaQjaxyaQkaORaxyaxyaQlaQkaxyaQjaORaxyaxyaxyaQmaQnaQnaQnaQnaQnaQnaQnaQoaQpaOUaQqaQraQsaQtaqZaQvaQwaQxaQyaQzaQAaQBaQCaQDaQEaQFaQGaQHaQIaQJaPdaQKaPfaPfaQLaPfaQMaPlaPlaQNaQOaPlaPlaPlaQPaItaIuaQQaaaaaaaaaaaaaaaaaaaaaaPpaQRaQSaQTaQUaQVaQWaQVajjaQYaQZaRaaPpaaaaaaaaaaaaaaaaaaaaaaRbaIsaItaRcaRdaReaRfaRgaRgaRgaRgaRgaKnaRhaRgaRiaRjaRkaRlaIOaRmaRnaRoaRpaRqaRraRsaRtaIOaOxaRuaRvaRvaRvaRvaRwaRxaISaIVaIWaRyaRyaOCaODaRzaRzaRAaDVaDVaRBaDVaEbaRCaOKaONaRDaRDaOMaONaEbaEbaEbaREaRFaRGaRHaRIaRJaafaafaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxwaRKaRLaRKaRKaRKaRKaRKaRKaRLaRKaRKaRMaxyaxyaRNaxyaxyaROaxyaRPaRQaRRaRSaRTaOUaQqaRUaRVaOXaRWaQzaQzaQzaQzaQzaQAaRXaQzaQzaQzaQFaPaaRYaRZaSaaPdaQKaPfaSbaScaSdaSeaPlaSfaSgaShaSiaSjaSkaItaItaIuaQQaaaaaaaaaaaaaPpaPpaPpaPpaSlaSmaSnaSoaSpaSqaSraSsaStaSuaSvaPpaPpaPpaPpaaaaaaaaaaaaaRbaIsaItaItaSwaKnaSxaKnaKnaKnaSyaSzaSzaSAaRgaSBaRjaSCaRjaSDaRmaSEaSFaSGaSHaSIaSJaRmaSKaSLaSMaRvaSNaSOaRvaSPaOxaISaIVaIWaPSaHraOCaODaHraHraHraSQaSRaHraSSaEbaSTaSUaSVaRDaRDaSWaSVaSXaEbaSYaSZaSZaSZaSZaTaaTbaQhaQhaTcaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasqasqaTdaTeaTeaTeaTeaTeaTeaTeazFasqateaTfaTgaThaThaThaTiaThaThaThaTjaThaTjaOUaQqaTkaTlaOXaTmaQzaQzaTnaToaTpaTqaTnaQzaQzaQzaTraPaaTsaTtaTuaPdaTvaPfaTwaTxaTyaTzaPlaTAaTBaTCaShaTDaTEaItaItaIuaJWaPoaTFaTGaPpaPpaTHaTIaTJaTKaTLaTLaTMaTNaTLaTMaTNaTLaTOaTPaTQaTRaTSaPpaPpaTGaTFaTTaTUaIsaItaItaIHaTVaTWaTXaTYaKnaTZaUaaTYaUbaRgaSBaUcaRjaUdaIOaRmaUeaUfaUgaUhaUiaUjaRmaUkaUlaUmaRvaUnaUoaRvaUpaUqaISaIVaIWaUraUraOCaODaUsaHraHraUtaHraUuaUvaEbaUwaUxaUyaRDaRDaUzaUyaUAaEbaUBaSZaSZaSZaSZaSZaUCaUDaUEaUFaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaafaUHazAaxAaxyaUIaUJaUKaULaUMaUNaUOaUPaUQaURaUSaUTaUUaUVaOXaUWaQzaQzaTnaTpaUXaUYaTnaQzaQzaQzaQFaPaaPdaPdaUZaPdaVaaVbaVbaVbaVbaVcaVdaVeaShaShaShaShaTEaItaItaIuaIvaIvaVfaVgaVhaPpaViaSqaTLaVjaTLaTLaTLaTLaVkaTLaVlaTLaVmaVnaVnaVoaVpaPpaVqaVgaVraVsaIvaIsaItaItaSwaKnaSxaKnaKnaVtaTZaVuaTYaUbaRgaSBaRjaRjaRjaVvaRmaVwaVxaVyaVzaVAaUjaVBaIOaOxaUmaVCaRvaRvaRvaUpaOxaISaVDaIWaDVaDVaVEaODaVFaVGaHraVHaVIaKFaVJaVKaVLaVMaVNaVOaVOaVPaVQaVRaVKaVSaVTaSZaSZaSZaTaaVUaQhaQhaVVaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaVWaVXaVYayBaVZaWaaWbaWcaWdaWeaWfaWgaWhaWcaWiaWjaWkaWlaWmaOXaWnaQzaWoaWpaWqaWqaWraWqaWqaWqaWsaWtaWuaQqaWvaWwaWxaWyaQqaQqaWzaOUaWAaPlaWBaWCaWDaWEaWEaWFaItaItaItaItaItaWGaWHaWIaWJaWKaWLaTLaWMaWNaWOaWPaWQaWRaWSaWTaWUaWVaWWaWKaWXaWYaWZaXaaXbaXcaXdaXeaXfaItaXgaIHaXhaTWaTXaTYaKnaTZaUaaTYaUbaRgaXiaXjaXkaXlaIOaRmaVwaRmaXmaRmaXnaUjaXoaIOaPMaUmaRvaRvaRvaRvaUpaPQaISaXpaXqaXraXsaXtaXuaXvaXvaXvaXvaXvaXvaXwaXxaXyaRDaRDaRDaRDaRDaRDaXzaXAaXBaSZaSZaSZaSZaTaaRJaaaaafaafaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGayAauUayAaxyaXCaTjaXDaXEaXFaXFaXFaXFaXGaXHaThaXIaXJaXKaXLaXMaXMaXMaXNaXMaXOaXPaXQaXRaXSaXSaXTaQFaXUaXVaXWaXXaXYaXZaYaaYaaYbaYcaYdaYeaYfaYgaYgaYgaYhaPlaYiaItaYjaYkaYlaYmaYnaYoaYpaYqaYraYsaYtaPpaPpaPpaPpaPpaPpaYuaYvaYwaYxaWNaYyaYzaPpaYoaYnaYAaYBaYkaYCaItaItaSwaKnaYDaKnaKnaKnaNjaKnaKnaUbaKnaYEaYEaYEaYEaYFaYGaYHaRmaRmaRmaYIaYJaYKaIOaYLaYMaRvaYNaYNaYOaYMaYPaISaYQaYRaYSaYTaOCaOCaOCaOCaYUaOCaOCaOCaYVaXAaRDaRDaRDaRDaRDaRDaRDaXzaXAaXBaSZaSZaYWaSZaYXaRJaafaafaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaYYaYZaVYayBaZaaZbaZcaZdaZeaZfaZgaXFaZhaZiaThaZjaZkaXKaXLaZlaZmaZnaZoaXMaZpaZqaZraOXaZsaZtaZuaZvaOXaZwaZxaZyaZyaZyaZyaZzaZyaZyaZAaZBaZBaZBaZCaZBaZDaZEaZFaZGaZHaZIaZJaZJaZJaZJaZKaZLaZMaZLaZNaZOaZOaZOaZOaZOaZOaZOaZOaZPaZQaZQaZRaZQaZQaZQaZQaZQaZQaZQaYCaItaItaIHaZSaZTaZUaZVaKnaZWaKnaZXaZYaKnaYEaZZbaababaIOaIOaIObacbadbadbadaIOaIOaIObaeaRvaRvbafbagbahbaiaNqaISbajaYRbakaDVbalbambanaVGbaobambapaVGbaqaEbbaraHDbasaRDaRDbasaHDbataEbbaubavbawaSZaSZaTaaRJaaaaafaafaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaafaxwbaxaORbayaTjbazbazbaAbaBbaCbaAbaDbazaThbaEbaFbaGbaHbaIbaIbaJbaKbaIbaLaZqbaMaOXaZsaZtbaNbaOaOXbaPaZxaZybaQbaRbaRbaRbaSaZybaTbaUbaVbaWaZEaZEaZEaZEaItaItbaXbaYbaZbbabbbbbcbbdbbebbfbbgaZNaZObbhbbibbjbbkbblbbmbbnaZPaZQbbobbpbbqbbrbbsbbtbbubbvaZQbbwbbxbbxaIHaIHaIHaIHaIHbbyaSwbbybbzbbAaIHaRdaIHaIHaIHbbBbbCbbCbbCbbCbbCbbCbbDbbCbbBaNqbbEbbEbbFaYSaYSaYSaYSbbBbajbbGbakaDVaDVaDVaDVaDVbbHaDVaDVaDVaDVaEbbbIbbJbbKbbKbbKbbKbbLaEbaEbbbMaSZbbNaSZaSZaTaaTbaQhaQhaVVaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaUGaafaxwbaxaORbayaTjbazbazbaAbaBbaCbaAbaDbazaThbaEbaFbaGbaHbaIbaIbaJbaKbaIbaLaZqbaMaOXaZsaZtbaNbaOaOXbaPaZxaZybaQbaRbaRbaRbaSaZybaTbaUbaVbaWaZEaZEaZEaZEaItaItbaXbaYbaZbbabbbbbcbbdbbebbfbbgaZNaZObbhbbibbjbbkbblbbmbbnaZPaZQbbobbpbbqbbrbbsbbtbbubbvaZQbbwbbxbbxaIHaIHaIHaIHaIHbbyaSwbbyauMaIHaIHaRdaIHaIHaIHbbBbbCbbCbbCbbCbbCbbCbbDbbCbbBaNqbbEbbEbbFaYSaYSaYSaYSbbBbajbbGbakaDVaDVaDVaDVaDVbbHaDVaDVaDVaDVaEbbbIbbJbbKbbKbbKbbKbbLaEbaEbbbMaSZbbNaSZaSZaTaaTbaQhaQhaVVaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazxasqbbOaAmaVYateateateateateatebbPbayaTjaThaThaThaThaThaThaThaThaThbbQaQqaXKaXLaZlbbRbbSbbTaXMbbUbbVbbWaOXaZsaZtbbXbbYaOXbaPaZxaZybaRbbZbbZbaRbbZaZybaTbcabcbbcbbccbcdbceaZEbcfaItaYjbcgbchbcibcjbckbckbcjbclbcmaZNaZObcnbcobcpbcqbcrbcsbctbcubcvbcwbcxbbvbcybczbcAbbvbcBaZQaYCbcCaItbcDbcEbcFaYSaYSaYSaYSaYSaYSaYSbcGaYSaYSaYSaYSbcHaYSaYSaYSaYSaYSaYSaYSaYSbcIaYSaYSaYSaYSaYSaYSaYSaYSbcJbcKbcLbcMbcNbcMbcObcMbcPbcQbcRbcMbcSbcMbcTbcUbcMbcMbcMbcMbcMbcMbcVbcWbcXbcYbbNaSZaSZaSZaUFbcZaUEaUFaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdaaaaaafbdbazAaxAbdcbddbdebdebdebdebdebdebdfbdgaOUaWzaQqaXKaXLaXMaXMbdhbdiaXMaOXaOXbdjaOXaZsbdkbbXbdlaOXbaPaZxaZybdmbdnbaRbbZbdoaZybaTbdpbcbbcbbcbbdqbdraZEbdsaItaYjbdtbdubdvbdwbdxbdybdzbclbdAaZNaZObdBbdCbdDbdDbdDbdEbdFaZObdGbdHbbvbbvbcybdIbcAbbvbdJaZQbdKaItaItbcDbcEbcFaYSaYSaYSaYSaYSaYSaYSbdLaYSaYSaYSaYSaYSaYSbdMbcMbcMbcMbcMbcMbcMbdNbcMbcMbcMbcMbcMbcMbcMbdObdPbdQbdRaYSaYSaYSaYSaYSaYRaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSbdSbcJbdTaSZaSZbbNaSZaSZbdUaVUaQhaQhaTcaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdabdaaVWaVXaVYayBbdVbdWbdXbdXbdYbdXbdXbdXbdZaOUaOUaOUaOUaXKaXLaZlbeabebbecaXMbedbeebefaOXaOXaOXaOXbegaOXbaPaZxaZybehbaRbbZbeibejaZybaTaZEbekbcbbcbbelbemaZEbenaItaYjbeobepbdvbdwbeqberbdzbclbesaZNbetbeubevbdDbewbdDbcobexbeybdGbezbeAbeBbeCbeCbeDbbvbeEaZQaYCbeFaItbcDbcEbcFaYSbeGaYSbeHbeIbeIbeIbeJbeIbeIbeIbeKaYSaYSaYSaYSbeLaYSbeGbeMbeNbeOaYSaYSaYSbePbeQbeRbeSbeTbeUbeVaYSaYSaYSaYSaYSbeWbeXbeLaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSaYSbcJbeYbeZbfabfbbfcbfdbfebffaafaaaaafaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdabdaayAauUayAaxybfgbdXbfhbfibfjbfjbfkbflbfmbfnbfnbfnbfnbfobfpbfqbfqbfrbfsbfqbftbftbfubftbfvbfwbfwbfxbfwbfybfzbfAbfBbfCbfCbfDbfEbfAbfFbfGbfHbcbbcbbelbfIbfJbenaItaYjbfKbfLbfMbcjbcjbcjbcjbclbfNaZNaZObfObfPbfQbfRbfSbfPbfTaZObdGbfUbfVbfWbfXbfYbfZbgabgbaZQbgcaGGaGGbgdbgdbgdbgdbgdbgdbgdbgebgfbgfbggbghbgibgebgjbgjbgjbgjbgjbgjbgkbgkbgkbglbgkbgkbgkbgmbgnbeWbgobgpbgqbgrbgsaYSaYSbgtbgtbgubgubgubgubgubgvbgwbgwbgxbgwaYSbgwbgxbgwbgwbgybgzbgzbgzbgzbgAbgBbgCaQhbgDaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdabdaaYYaYZaVYayBbgEbdXbgFbdXbgGbgHbdXbdXbdXaQqbgIbgJbgJbgKaXMaZlbgLbbSbgMaXMbgNbgObgPbgPbgQbgRbgSbgTbgUbgSbgVbgWbgXbgYbgXbgXbgZbhabhbbhcbhdbcbbcbbhebhfbhgbenaItbhhbfKbhibhjbhkbhlbhmbhnbhoaZNaZNaZObhpbhqbhrbhsbhtbhubhvaZObdGbhwbhxbhybhzbhAbfZbbvbhBaZQaYCaItbhCbgdbhDbhEbhFbhGbhHbhIbhJbhKbhKbhLbhMbhMbhNbgjbhObhPbhQbhRbgjbhSbhTbhUbhVbhWbhXbhYbhZbiabhZbhZbhZbibbicbidbiebidbifbifbgubigbihbiibgubijbikbijbgubgvbgwbgybgzbilbimbilbgzbinbiobgzbipbgBaaaaafaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdabdaaYYaYZaVYayBbgEbdXbgFbdXbgGbgHbdXbdXbdXaQqbgIbgJbgJbgKaXMaZlbgLbbSbgMaXMbgNbgObgPbgPbgQbgRbgSbgTbgUbgSbgVbgWbgXbgYbgXbgXbgZbhabhbbhcbhdbcbbcbbhebhfbhgbenaItbhhbfKbhibhjbhkbhlbhmbhnbhoaZNaZNaZObhpbhqbhrbhsbhtbhubhvaZObdGbhwbhxbhybhzbhAbfZbbvbhBaZQaYCaItbhCbgdbhDbhEbhFbhGbhHbhIbhJbhKbhKbhLbhMbhMbhNbgjbhObhPbhQbhRbgjbhSbhTbhUbhVbhWbhXbhYbhZbiabhZbhZbhZbibbicbidbPibidbPnbPnbgubigbihbiibgubOabPgbOabgubgvbgwbgybgzbNZbPhbNZbgzbinbiobgzbipbgBaaaaafaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdabdabdabdabdabdabdabdabdabdaaaaaaaazzbaxaORbiqbdXbirbdXbisbitbiubivbdXbiwaQqbixaQqbiyaXMaXMaXMaXMaXMaXMbizbiAbiBaQqbiCaZyaZyaZybiDaZyaZyaZybiEaZyaZyaZyaZybiFbiGbiHbiIbcbbcbbelbiJbfJbenaItbiKbfKbiLbhjaZNaZNaZNaZNbiMaZNbiNbiObiPbiQbbhbiRbbhbiSbiTbiUbiVbhwbiWbbvbiXbiYbfZbiZbbvbjabjbbjcbjdbgdbjebjfbjgbjhbjibjjbjkbjlbhKbjmbhKbhKbjnbjobjpbjqbjrbjsbgjbjtbjubjvbjubjwbjxbgkbjybjzbjAbjBbgpbjCbjDbjEbjFbjGbjHbjIbjJbjKbjLbjKbjMbjNbjObjPbgubjQbjRbjSbgzbjTbjUbjVbjWbjXbjYbgzbipbgBaaaaafaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazxasqbbOaAmaYZaTeaTeaTeaAmaTebjZayBaxyaxybdXbkabkbbkcbiubkdbkebkfbkgbkgbkgbkgbkhbkibkibkibgSbgSbgSbkjbkkbkkbkkbklaZybkmbknbkobkpbkqbkrbksbktbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkEbkEbkFbjcbkGbkHbkIbkJbkKbkLbkMbkNbkObkPbkQbiUbiUbiUbiUbkRbiUbiUbiUbiUbkSbkTbkUbkVbkWbkXbkYbkZblablbblcaItaItbgdbldbleblfbjhblgblhbjkblibljblkbljbljbllblmblnbloblpblqbgjblrbjublsbjubjwbltbgkblublvblwblxbgpbjCblyblzblAblAblBblCblDblEblEblEblFblGblHblIblJblKblLblMblNblOblPbjXblQblRblSbgzbipblTaafaafaaaaaaaaaaaaaaaaJmaJmaJmaJmaJmaJmaJmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablUblVauUayAawAawAawAaORaxyaxybdXblWblXbiublYbdXbdXbdXaOUblZbmabmbbmcbmbbmbbmbbmcbmbaOUaOUaZyaZyaZybmdaZybksbksbmebksbksbksbksbksbmfbmgbmhbmibmjbmkbmkbmkbmlbmmbmnbmobmpbmqbmrbmsbmtbmtbmubmvbmwbmxbmybmzbmAbmBbmCbmDbmEbmFbmGbmDbmHbmBbmIbhwbmJbmKbmJaZQaZQaZQbmLbdGbmMaItaItbgdbmNbmObmPbjhbmQbmRbjkbjmbhKbmSbmTbmUbmVbgjbmWbmXbmYbmZbgjblrbnabjubjubjwbjxbgkbgpbgpbgpbgpbgpbjCbjDbnbbncbndbnebnfbngbnhbnibnjbnjbnkbjKbnlbgubnmbnnbnobgzbnpbnqbnrbnsbntbnubgzbipbnvaaaaafaaaaaeaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaablUauUauUayAaxxaxxaxxbnwaxxaxxbdXbnxbnybnzbiubdXaaaaaaaaaaafaafbnAbnAbnAbnAbnAbnAbnAaaaaaabnBbnCbnDbnEbnFbksbksbksbksbksbksbksbksbnGbiIbcbbnHbnIbnJaZEaZEbnKbkyaZEaZEbnLbnMbnNbnObnPbnQbnQbnRbnQbnSbnTbnQabHbnUbnVbmDbnWbmFbnWbmDbnXbnUbmIbnYbnZbeCboabobbocbodboebofbogaItbohboibojbokbmPbjhbolbhIbombjmbhKbonboobhKbopbgjbjpboqborbosbgjbotboubovbowboxbowboybozbozbozbozbozboAbjDboBbjFbjFbneboCboDboEboFboGboGboHboIboJbguboKbnnboLbgzboMboNboObnsbjXboPbgzbipboQaaaaafaaaaaaaaaaaaaafboRboSboTboSboTboSboUaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxwayAayAboVaTeboWazxasqboXboWbdXboYboZbpabgHbdXaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAaaaaaabpbbpcbksbpdbpebpebpebpebpebpfbpebpebpebpgbphbpibpjbpkbplaZEbpmbelbpnbpobppbenbpqbprbnObnObnQbpsbptbpubpvbpwbnQbpxbpybpzbpAbpBbpCbpBbpDbpEbpFbpGbnYbpHbeCbpIaZQbpJbmJbpKbpLbogaItaItbgdbpMbpNbmPbpObpPbhIbpQbpRbpSbpTbpUbhKbpVbpWbpXbpYbpZbqabgjbgkbqbbgkbgkbqcbqcbqcbqcbqcbqcbqcbqcbjCbjDbnbbncbndbqdbqebqfbqgbqhbqhbqhboHbjKbqibqjbqkbjRbqlbgzbqmbqnbqobqpbjXbqqbgzbipbgBbgBaafaaaaaaaaaaaaaafbqrbqsbqtbqubqubqvbqraafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxwayAayAboVaTeboWazxasqboXboWbdXboYboZbpabgHbdXaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAaaaaaabpbbpcbksbpdbpebpebpebpebpebpfbpebpebpebpgbphbpibpjbpkbplaZEbpmbelbpnbpobppbenbpqbprbnObnObnQbpsbRGbRHbpvbpwbnQbpxbpybpzbpAbpBbpCbpBbpDbpEbpFbpGbnYbpHbeCbpIaZQbpJbmJbpKbpLbogaItaItbgdbpMbpNbmPbpObpPbhIbpQbpRbpSbpTbpUbhKbpVbpWbpXbpYbpZbqabgjbgkbqbbgkbgkbqcbqcbqcbqcbqcbqcbqcbqcbjCbjDbnbbncbndbqdbqebqfbqgbqhbqhbqhboHbjKbqibqjbqkbjRbqlbgzbqmbqnbqobqpbjXbqqbgzbipbgBbgBaafaaaaaaaaaaaaaafbqrbqsbqtbqubqubqvbqraafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbqxbqybqzbqAbksbksbksbqBbqBbqBbqBbnEbksbksbksbmfbqCbcbbqDbqEbqFbqGbqHbelbcbbqIbqJbenbpqbqKbqLbqMbqNbqObqPbqQbqRbqSbnQabHbqTbqUbmDbpBbqVbpBbmDbqWbqXbmIbqYbqZbrabrbaZQbrcbmJbrdbpLbogaItbrebgdbrfbrgbmPbrhbribhIbrjbjmbhKbrkbrlbrmbrnbgjbrobrpbrqbrrbgjbrsbrtbrubrvbrwbrxbrybrzbrAbrBbrCbrDbibbicbrEbrFbrGbrHbrIbjJbrJbqhbqhbqhbrKbjKbrLbgubrMbrMbrNbgzbrObrPbrQbrRbjXbrSbgzbipbrTbgBaafaaaaaaaaaaaaaafbrUbrVbqtbqubqtbrWboTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbrXbrYbrXbrZbsabksbksbksbksbksbksbnEbksbsbaZyaZybscbcbbcbbsdbsebsfbsgbelbcbbcbbshaItbpqbsibsjbskbslbsmbsnbsobspbsqbnQabHbqXbqXbsrbssbstbmDbsubsvbswbsxbsybszbszbszbszbszbszbsAbsBbsCaGGbsDbsEbsFbsGbsHbsIbhIbhIbsJbjmbhKbhKbhKbhKbsKbsLbhKbsMbhKbsNbsObsPbsQbhKbsRbsSbsTbsUbsVbsWbsXbsYbqcbsZbtabtbbtbbtcbtdbtebjJbtfbjKbjKbtgbthbjKbtibjJbtjbtkbtlbtmbtnbtobtpbtqbilbgzbgzbtrbgBbgBbtsbttbttbttbtubjQbqrbqubqtbqubqubqvbqraafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbtvbtwbtvbtxbksbksbksbqBbqBbqBbqBbnEbksbtybtzaZybtAbcbbcbbsdbtBbtCbsgbtDbtEbpibtFbtGbtHbogaRbbskbtIbtJbtKbtLbtMbtNbtObtPbtQbtRbtSbtTbqVbtTbsvbtUbtVbtVbsyakGbtXakFbtZbuabubbucbudbueaXebufbugbuhbuibujbukbulbumbunbuobunbupbunbunbuqburbunburbunbunbunbusbutbuubuvbsSbuwbsUbuxbuxbuybuzbqcbjCbjDbuAbuBbuCbuDbuDbjJbuEbuFbuGbjJbuHbjKbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbuSbrMbjRbuTakEbuVbuWbuWbuWbuWbuWbuXbuYboSboTbuZboTboSbvaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbvbbqybvcbvdbksbksbksbksbksbksbksbnEbksbtybveaZybvfbdqbcbbvgbpibvhbpibvibcbbqIbppbenaItbogaRbbskbnQbvjbvkbvlbvmbvnbnRbvobvpbvqbvrbswbvsbvtbvubvvbvwbvxbsybvybvzbvAbvBbvCbvCbvDbvEbvFaItbvGbvHbvIbvJbhKbvKbvLbvMbvNbvObvNbvPbvNbvQbvRbsPbvSbsPbsPbvTbvUbvVbvVbvWbvXbvYbvZbsUbwabwbbsXbuzbqcbgqbjDbidbwcbwdbwcbwcbjJbjJbjJbjJbjJbwebwfbwgbwhbwibwjbwkbwlbwlbwmbwnbnnbwobwpbwqbuTbnnbuVbnnbnnbwrbnnbwsbjQbtsbttbtubwtbjQaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbtvbtwbtvbwubwvbksbksbwwbwxbwybwxbwzbwxbwAbwBbfAbwCbwDbkBbwEbkBbwFbkCbwDbwGbwHbqJbenaItbwIbwJbwKbnQbwLbwMbwNbwObwPbnRbwQbwRbwSbwTbwUbwVbwWbwXbwYbwZbxabxbbxcbxdbxdbxebxfbxgbxhbsBbxiaItdIHbgebpQbxjbhKbxkbxlbxmbxnbxobxpbxqbxrbxmbxnbxsbxsbxnbxmbxtbgfbvVbxubuxbuxbxvbsSbsUbxwbxxbxybxzbqcbxAbxBbxCbxDbxEbwlbwlbxFbxGbwlbxHbxIbxJbxKbxLbwlbxMbxNbxObxPbxQbxRbxSbxSbxSbxSbxSbtrbxTbgBbtsbtubjQbnnbuWakWbxUbwtbxVbxWbxXaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbxYbxZbxYbyabybbycbycbycbycbycbydbyebksbtybyfaZybygbyhbyibyjbykbnIbylbymbynaZEaZEbyoaItbypbyqbskbnQbyrbysakPbvkbyubnRbyvbywbyxbyybyzbyAbyBbyCbyDbyEbyFbsybyGbyHbyIbyJbxfbxgbxhbsBbyKaItaQubyLbyMbyNbhKbxkbyObxmbyPbyQbyRbySbyTbxmbyUbyVbyVbyWbxmbyXbhKbvVbyYbuxbyZbzabzbbzcbzdbzebzebzfbzgbzhbzibzjbzkbzlbuObuObzmbuObznbuObuPbuObuObuObuObzobzpbzqbzrbzsbztbzubzvbzwbzxbxSbipbzyblTaafaafbjQbzzbuWbxUbxUbuXbzAbzBbzCaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbtvbtwbtvbtxbksbksbksbqBbqBbqBbqBbnEbksbtybtzaZybtAbcbbcbbsdbtBbtCbsgbtDbtEbpibtFbtGbtHbogaRbbskbtIbtJbtKbtLbtMbtNbtObtPbtQbtRbtSbtTbqVbtTbsvbtUbtVbtVbsybtWbtXbtYbtZbuabubbucbudbueaXebufbugbuhbuibujbukbulbumbunbuobunbupbunbunbuqburbunburbunbunbunbusbutbuubuvbsSbuwbsUbuxbuxbuybuzbqcbjCbjDbuAbuBbuCbuDbuDbjJbuEbuFbuGbjJbuHbjKbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbuSbrMbjRbuTakDbuVbKHbuWbuWbuWbuWbuXbuYboSboTbuZboTboSbvaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbvbbqybvcbvdbksbksbksbksbksbksbksbnEbksbtybveaZybvfbdqbcbbvgbpibvhbpibvibcbbqIbppbenaItbogaRbbskbnQbvjbvkbvlbvmbvnbnRbvobvpbvqbvrbswbvsbvtbvubvvbvwbvxbsybvybvzbvAbvBbvCbvCbvDbvEbvFaItbvGbvHbvIbvJbhKbvKbvLbvMbvNbvObvNbvPbvNbvQbvRbsPbvSbsPbsPbvTbvUbvVbvVbvWbvXbvYbvZbsUbwabwbbsXbuzbqcbgqbjDbidbwcbwdbwcbwcbjJbjJbjJbjJbjJbwebwfbwgbwhbwibwjbwkbwlbwlbwmbwnbnnbwobwpbwqbuTbnnbuVbKDbnnbwrbnnbwsbjQbtsbttbtubwtbjQaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbtvbtwbtvbwubwvbksbksbwwbwxbwybwxbwzbwxbwAbwBbfAbwCbwDbkBbwEbkBbwFbkCbwDbwGbwHbqJbenaItbwIbwJbwKbnQbwLbwMbwNbwObwPbnRbwQbwRbwSbwTbwUbwVbwWbwXbwYbwZbxabxbbxcbxdbxdbxebxfbxgbxhbsBbxiaItdIHbgebpQbxjbhKbxkbxlbxmbxnbxobxpbxqbxrbxmbxnbxsbxsbxnbxmbxtbgfbvVbxubuxbuxbxvbsSbsUbxwbxxbxybxzbqcbxAbxBbxCbxDbxEbwlbwlbxFbxGbwlbxHbxIbxJbxKbxLbwlbxMbxNbxObxPbxQbxRbxSbxSbxSbxSbxSbtrbxTbgBbtsbtubjQbnnbuWakEbxUbwtbxVbxWbxXaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbxYbxZbxYbyabybbycbycbycbycbycbydbyebksbtybyfaZybygbyhbyibyjbykbnIbylbymbynaZEaZEbyoaItbypbyqbskbnQbyrbysbNYbvkbyubnRbyvbywbyxbyybyzbyAbyBbyCbyDbyEbyFbsybyGbyHbyIbyJbxfbxgbxhbsBbyKaItaQubyLbyMbyNbhKbxkbyObxmbyPbyQbyRbySbyTbxmbyUbyVbyVbyWbxmbyXbhKbvVbyYbuxbyZbzabzbbzcbzdbzebzebzfbzgbzhbzibzjbzkbzlbuObuObzmbuObznbuObuPbuObuObuObuObzobzpbzqbzrbzsbztbzubzvbzwbzxbxSbipbzyblTaafaafbjQbzzbuWbxUbxUbuXbzAbzBbzCaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAbzDbzEbzFaZyaZybzGbqybqybqybzHaZyaZybzIbzJbzKaZybzLbzLbzLbzMbzLbzNbzObzPbzQbzRbzNbenaItbzSbzTaTFbnQbtObzUbzVbzVbzWbzXbzYbzYbzZbzYbAabAbbAcbAdbAebAebAebAfbszbszbszbszbszbszbszbsBbyKaItbAgbxmbxmbAhbAibAjbxmbxmbAkbAlbAmbAnbAnbAobApbAqbArbApbAsbyXbhKbvVbAtbAubAvbAwbAxbAybAzbAwbAwbAAbABbACbADbAEbAEbAEbAEbAEbAFbAEbAEbAGbAHbAIbAJbAJbAKbALbuTbAMbzrbANbAObAPbAQbARbASbxSbipbzyboQaaaaaabjQbATbAUbjQbuXbjQbjQbuXbjQaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAVaafaaaaaaaaaaaabzLbAWbAXbAYbAZbzNbBabBbbBcbBdbzNbenaItbBebBfbBgbBfbBhbBibBjbBkbBlbBmaXebBnaXebBobBpbBqbBrbBsbBtaItaLMbBuaLNbcDbBjbBvbBwaItbBxbBybyKaItbBzbxmbBAbBBbBCbBDbBEbBFbBGbBHbBIbAnbAnbBJbApbBKbBLbBMbAsbyXbBNbvVbBObBPbBQbBRbBSbBTbBUbBVbBWbqcbqcbgqbBXbAEbBYbBZbCabCbbCcbCdbCebAGbCfbCgbChbAJbAJbCibuTbAMbCjbCkbClbCmbCnbCobCpbxSbipbzybgBbgBbgBbgBbgBbjQbjQaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFWaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzLbCqbCrbCsbCtbCubCvbCwbCxbCybzNbenbCzbCAaItaItaItaItbcDbBjbBvbCBaItaItbCCaItaItbCDbCEbCFaItaItaItaItbBuaItbcDbBjbBvaItaItbCGbCHbyKbCIbCJbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbCUbyTbxmbCVbCWbCXbCYbxmbyXbhKbvVbvVbvVbvVbvVbqcbqcbqcbqcbqcbqcbCZbDabDbbAEbDcbDdbDebDfbDgbDhbDibAGbDjbDkbDlbDlbAJbDmbDnbDobDpbDqbDrbCobDsbDtbDubxSbipbzybgBbDvbDwbDwbgBaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbDxbDybDybDzbDAbDAbDBbDBbDBbDBbDCaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnAbnAbnAbnAaaaaaaaaaaaaaaaaaaaaaaaabDDbDEbDFbDEbDGaaaaaaaaabzLbzLbDHbDIbCsbDIbDJbDKbDLbDMbDNbzNbDObenbDPbDQbtGbDRbtGbDSbDTbDUbtHaItbDVbDWbjcbjcbDXaXeaXeaXeaXeaXeaXebDYbDZbEabEbbEcaXebEdbEebEfbEgaItaItbxmbEhbEibEjbAjbxmbxmbxnbEkbxnbxmbxmbxmbxmbxmbxmbxmbxmbyXbhKbElbEmbEnbyObEobpQbEpbEqbErbEsbEtbEubEvbEwbAEbExbEybCabEzbEAbEBbECbAGbEDbDkbDlbDlbAJbEEbEFbEGbEHbEIbEJbEKbELbEMbENbEObEPbEQbEQbEQbEQbERblTaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbESbETbEUbETbDAbDBbDBbEVbEWbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEXbEYbEZbEYbEXbFabFbbFcbzLbFdbDIbFebFfbFgbFhbFibFibFjbFkbzNbFlbFlbFmbFlaTFaTFaTFaTFbFnbFnbFnbFnbFnbFnbFnbFnbFobbxbbxbFpbFpbFpbFpbFqbFrbFpbFpbFpbFpbFsbFtbFuaIzaJZbFvbxmbFwbFxbFybFzbFAbxmbFBbFCbFDbxnbFEbFEbFFbFGbFHbFIbxnbFJbhKbhKbhKbhKbhKbyXbpTbFKbFLbFMbFNbpQbFObFPbFQbFQbFQbFQbFQbFQbFQbFQbFQbAGbFRbFSbFTbFTbAJbFUbFVbFWbFXbFXbFXbFXbFYbFZbGabGbbFXbFXbFXbFXbzybGcbGdaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbGebETbETbGfbDBbDBbEVbEVbGgbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDFbGhbGibGhbDFbGjbGkbGlbzLbGmbGnbDIbGobGpbzNbGqbGrbGsbGtbzNbGubGubGvbFlaaaaaaaaaaaabFnbGwbGxbGybGzbGAbGBbFnbGCbGDbGEbFpbGFbGGbGHbGIbGJbGKbGLbGMbGNbGObGPbGQbGRbGSbFsbxmbGTbFCbBIbGUbGVbxmbGWbGXbGYbGZbAnbAnbAnbAnbAnbHabHbbHcbsPbsPbsPbsPbvTbyXbHdbFKbFLbFMbHebpQbFObFPbFQbHfbHgbHgbHhbHibHjbHkbHlbAGbHmbHnbHobHobAJbHpbHqbAMbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBbFXbgBbHCbgBbHDbHDbHDbHDbHDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabHEbDBbGebDBbDBbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEXbGhbGhbGhbHFbHGbDIbDIbHHbHIbDIbDIbHJbHKbzNbzNbzNbHLbzNbzNbHMbHNbHObHPaaabHQbHRbHSbHTbHUbGBbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbIkbFpbFpbIlbImbInbIobIpbIqbIrbAnbFCbIsbGUbAnbItbIubFCbIvbxmakDbIxbAnbAnbIybIzbpQbpQbpQbpQbpQbIAbyXbyXbIBbFKbFLbFMbICbIDbIEbFPbFQbIFbIGbHgbIHbHgbHgbHgbIIbAGbIJbDkbIKbIKbAJbALbILbIMbINbIObIObIObIObIPbIQbIRbISbITbIUbFXbIVbIWbIXbIYbIZbJabJbbJcaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbDAbDBbJdbJebJebEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDFbGibGibGibDFbJfbJgbJhbJibJjbDIbJkbJlbJmbJnbJobJobJpbJobJobJqbJrbJsbJtaaabJubJvbJwbJxbJybGBbJzbJAbJBbJCbFnbJDbJEbJFbFpbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbxsbJVbJWbJXbJYbJZbxmbKabFCbKbbxmbKcbGUbAnbAnbKdbKebpQbKfbKgbKhbKibjmbyXbsNbKjbKkbKkbKkbKkbKlbKmbKnbFQbHfbKobHgbHgbHgbHgbHgbKpbAGbKqbDkbKrbKrbAJbKsbKtbAMbKubIQbIQbKvbKwbKxbKybKzbKAbKBbKCbKDbKEbKFbKGbKHbKIbKJbJbbKKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbDBbKLbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEXbGhbGhbGhbHFbHGbDIbDIbHHbHIbDIbDIbHJbHKbzNbzNbzNbHLbzNbzNbHMbHNbHObHPaaabHQbHRbHSbHTbHUbGBbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbIkbFpbFpbIlbImbInbIobIpbIqbIrbAnbFCbIsbGUbAnbItbIubFCbIvbxmagubIxbAnbAnbIybIzbpQbpQbpQbpQbpQbIAbyXbyXbIBbFKbFLbFMbICbIDbIEbFPbFQbIFbIGbHgbIHbHgbHgbHgbIIbAGbIJbDkbIKbIKbAJbALbILbIMbINbIObIObIObIObIPbIQbIRbISbITbIUbFXbIVbIWbIXbIYbIZbJabJbbJcaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbDAbDBbJdbJebJebEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDFbGibGibGibDFbJfbJgbJhbJibJjbDIbJkbJlbJmbJnbJobJobJpbJobJobJqbJrbJsbJtaaabJubJvbJwbJxbJybGBbJzbJAbJBbJCbFnbJDbJEbJFbFpbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbxsbJVbJWbJXbJYbJZbxmbKabFCbKbbxmbKcbGUbAnbAnbKdbKebpQbKfbKgbKhbKibjmbyXbsNbKjbKkbKkbKkbKkbKlbKmbKnbFQbHfbKobHgbHgbHgbHgbHgbKpbAGbKqbDkbKrbKrbAJbKsbKtbAMbKubIQbIQbKvbKwbKxbKybKzbKAbKBbKCbIwbKEbKFbKGbytbKIbKJbJbbKKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbDBbKLbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwbqwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabEXbKMbKNbKObEXbKPbFbbFcbzLbzLbKQbKQbKQbzLbzLbFlbFlbFlbFlbKRbFlbFlbKSbJtaaabJubKTbKUbKVbKWbKXbKYbKZbKWbKWbLabLbbLcbLdbFpbFpbFpbFpbFpbFpbLebFpbFpbLfbLgbLhbLibLjbLkbLjbxsbLlbLmbLnbLobLpbxmbLqbLrbLsbxmbLtbLubLvbLwbLxbLybpQbLzbhKbjnbLAbjmbLBbsPbLCbLDbLEbLFbLGbpQbFObFPbFQbFQbLHbHgbHgbHgbLIbFQbFQbAGbLJbLKbKrbKrbAJbLLbKtbAMbHrbLMbLNbLObLPbLQbLRbLSbIQbLTbLUbFXbLVbLWbLXbHDbLYbLZbMabMbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbDBbEVbEVbEVbEVbEVbEVbMcbEVbMdbEVbEVbEVbEVbEVbDBbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMebDEbMfbDEbMgaaaaafaaaaaabzLbMhbMibMjbzLaaaaaaaaabFlbMkbMlbHMbFlbKSbJtaaabJubMmbMnbMobMpbGBbMqbMrbMsbMtbFnbMubMvbMwbMxbMybMybMybMybMzbMAbMBbMBbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbMJbMMbMKbMJbMJbMLbMMbMJbMJbMMbMJbMJbMLbMJbMNbMObpQbrnbpQbMPbyXbMQbpQbpQbpQbpQbpQbpQbMRbFPbFQbMSbMTbMUbMVbMWbMXbMYbMSbAJbMZbNabChbAJbAJbNbbKtbNcbHDbHDbFXbFXbFXbFXbGbbFXbNdbIQbNebFXbNfbHCbgBbHDbNgbNhbNibHDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbNjbNjbNjbNjbNjbNjbNkbEVbNlbNjbMdbEVbEVbEVbEVbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabFlbNmbNnbNobFlbKSbNpaaabNqbHRbNrbNsbNtbGBbGBbNubNvbNwbNxbNybNzbNAbNBbNBbNBbNBbNBbNCbNDbNEbNFbNGbNHbNIbNJbNKbNLbNMbNNbNObNPbNQbNQbNObNQbNQbNPbNQbNQbNQbNQbNQbNQbNPbNRbrnbNSbNTbNUbNVbNWbNXajIaklakmbObbOcbOdbFsbFObFPbFQbOebOfbOgbOhbOibOjbOkbOlbAJbAJbOmbAJbAJbOnbOobKtbnnbOpaafbOqbOrbOsbOtbOubOtbOvbOwbOxbFXbOybGcbOzbHDbOAbOBbOBbOCaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabODbETbETbETbETbETbETbETbOEbEWbEVbEVbEVbEVbOFbEWbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbFlbFlbFlbFlbFlbOGbFlaaaaaaaaaaaabFnbOHbOIbOJbOKbFnbOLbFnbOMbONbOObOPbOPbOQbORbOSbOTbOUbOVbOWbOWbOWbOXbOYbOWbOWbOZbOVbPabOWbOWbOWbOXbOWbFsbFsbFsbFsbFsbFsbFsbFsbFsbFPbrnbPbbPcbPdbPebPfbyXaknakBakCbPjbPkbPlbFsbFObPmbPnbPobPpbPqbPrbPsbPtbPtbPubPvbPwbPxbnnbPybnnbOobKtbnnbPzaafbOqbPAbPAbPBbPCbPDbPEbPFbPGbFXbPHbGcbzybHDbHDbHDbHDbHDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbJebJebJebJebJebJebPIbEVbJdbJebPJbEVbEVbEVbEVbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbFlbFlbFlbFlbFlbOGbFlaaaaaaaaaaaabFnbOHbOIbOJbOKbFnbOLbFnbOMbONbOObOPbOPbOQbORbOSbOTbOUbOVbOWbOWbOWbOXbOYbOWbOWbOZbOVbPabOWbOWbOWbOXbOWbFsbFsbFsbFsbFsbFsbFsbFsbFsbFPbrnbPbbPcbPdbPebPfbyXaknakBakCbPjbPkbPlbFsbFObPmbuUbPobPpbPqbPrbPsbPtbPtbPubPvbPwbPxbnnbPybnnbOobKtbnnbPzaafbOqbPAbPAbPBbPCbPDbPEbPFbPGbFXbPHbGcbzybHDbHDbHDbHDbHDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbJebJebJebJebJebJebPIbEVbJdbJebPJbEVbEVbEVbEVbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabPKbPLbKSbFlbFlbFlbFlbFlbFnbFnbFnbFnbFnbFnbFnbFnbPMbPNbPObPPbPQbPRbPSbPSbPTbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbQebQfbQgbQhbQibQjbQkaafaaaaaaaaaaaaaaaaaabFsbQlbFPbrnbMObpQbrnbpQbMObQmbrnbpQbpQbpQbpQbpQbFsbFObQnbFQbQobQobQpbQqbQrbQsbQqbQtbQubQvbQwbQxbnnbQybOobKtbQzbQAaafbOqbPAbQBbOtbQCbOtbQDbQEbQFbFXbPHbGcbQGbQHbgBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbDBbEVbEVbEVbEVbEVbEVbMcbEVbPJbEVbEVbEVbEVbEVbDBbDBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbQIbQJbQKbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQSbQUbQPbQVbQWbQXbQYbQZbRabRbbRbbRcbRdbPVbRebPXbPYbRfbQabRgbRhbRibRjbRkbRlbRkbRmbRnbRoaafbRpbRpbRpbRpbRpaaabFsbRqbRrbNObNPbNQbNObRsbRtbRubRvbRsbNQbNQbNQbNQbNQbRwbRxbFQbRybRzbRAbRBbRCbRDbREbFQbFQbqkbRFbqkbqkbqkbRGbKtbRHbqkbFXbFXbFXbFXbFXbRIbFXbFXbFXbFXbFXbPHbGcbRJbQHbgBaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbDBbKLbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbQIbQJbQKbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQSbQUbQPbQVbQWbQXbQYbQZbRabRbbRbbRcbRdbPVbRebPXbPYbRfbQabRgbRhbRibRjbRkbRlbRkbRmbRnbRoaafbRpbRpbRpbRpbRpaaabFsbRqbRrbNObNPbNQbNObRsbRtbRubRvbRsbNQbNQbNQbNQbNQbRwbRxbFQbRybRzbRAbRBbRCbRDbREbFQbFQbqkbRFbqkbqkbqkbpubimbptbqkbFXbFXbFXbFXbFXbRIbFXbFXbFXbFXbFXbPHbGcbRJbQHbgBaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabDBbDBbKLbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRKaaaaafaafbRLbRLbRLbRLbRLbRLbRLbRLbRMbRNbQPbRObQQbQQbQSbRPbQUbQPbRQbRRbQXbRSbRTbPSbRUbPSbRVbRWbRXbRYbRZbSabRkbQabSbbRhbScbSdbSebSfbSgbShbSibSjbSkbSlbSmbSnbSobRpaaabFsbSpbSqbSrbSsbStbSubSvbSwbSxbSybSvbSvbSzbSAbSvbSvbSBbFPbFQbFQbFQbFQbFQbFQbSCbFQbFQbSDbSEbSFbSGbSHbqkbRFbSIbSJbqkbSKbSLbSMbSNbSObPHbzybzybSPbzybzybPHbGcbSQbgBbgBbgBaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbDAbDBbNlbNjbNjbEVbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSRbSSbSTbSUbSUbSUbSVbSWbSXbSYbSZbTabTbbRLbTcbRNbQPbTdbQQbQRbQQbQSbTebQPbTfbRRbQXbQYbTgbPSbPSbPSbThbTibTjbTkbTlbRkbTmbTnbRkbTobScbSdbTpbTqbTqbTrbTsbTtaafbTubTvbSobTwbRpaafbFsbTxbTybFsaaaaafaaabTzbTAbTBbTCbTzaafaafaaaaafbFsbTDbTEbNQbNQbNQbNQbNQbNQbNObNQbNQbNQbNQbNPbTFbNQbRsbTGbTHbTIbTJbTKbTKbTKbTKbTLbTMbTKbTKbTKbTKbTKbTNbTObTPbTQbTRbgBbgBbgBbgBaaaaafaaaaaaaaaamUamUamUaafaaaaaaaafaaaaaaaafaaaaaabHEbDBbGebDBbDBbEVbEVbEVbEVbEVbEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTSbTSbTSbTSbTSbTTbTUbTVbTWbTWbTXbRLbTYbTZbUabUbbUcbUdbQQbQQbUebQPbUfbUgbUhbUibUibUjbUkbPSbUlbUmbUnbUobUpbRkbQabRkbUqbUrbUsbUtbUubUvbUwbUxbUybUzbUAbSlbUBbSobSobRpaafbFsbSGbSGbFsaaaaafaaabUCbUDbUEbUFbUCaafaafaaaaafbFsbUGbUHbUIbUJbJObUKbUKbULbUMbUNbUObSvbSvbSzbSAbSvbSvbUPbUQbURbUSbUSbUTbUUbUUbUVbUSbUSbUTbUUbUUbUVbUSbUWbzybUXbUYbUZbVabVbbVcbVdbVebVebVebVebVebVebVebVebVebVebVebVebVebVebVebVebVfbVgbVgbVhbDBbDBbEVbEVbVibEVbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbVjbVkbVlbVmbVlbVnbVobVpbVqbVqbVrbRLbVsbHMbQPbVtbQQbVubQQbQQbQQbVvbTfbRRbQXbVwbOPbVxbVybVzbVAbVBbPVbVCbVDbRkbQabRkbVEbVybVFbVGbVHbVIbVJbVKbVJbVLaafbRpbRpbRpbRpbRpaafbFsbFsbVMbFsaafaafaafbVNbVObVPbVQbVNaafaaaaaaaafbFsbFsbFsbFsbFsbVRbFsbFsbVSbVTbVUbFsbFsaaaaaaaaaaaabVVbVWbVXbVYbVVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabgBbVZbWabWbbgBbgBbgBbgBaaaaafaaaaaaaaaamUamUamUaafaaaaaaaafaaaaaaaafaafaafbWcbWdbWebGfbDAbDBbDBbEVbEWbEVbDBbDBaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbVjbWfbWgbWhbWibTVbWjbTVbWkbTVbWlbWmbWnbWobQPbWpbQQbVubQQbQQbWqbQPbWrbWsbQXbWtbOPbPSbWubWvbRZbWwbPVbWxbUqbWybWzbWAbWBbWCbWDbWEbWFbWGbSebWHbWIbWJbSkbSlbWKbWLbWLbRpaafaafbSGbWMbSGaaaaafaaabWNbWObWPbWQbWNaafaaaaaaaafaaaaaaaaabFsbWRbWSbWTbFsaaaaafaaaaaaaafaaaaaaaaaaaabWUbWVbWWbWXbWUaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabWYbWYbWZbXabWYaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbXbbDybDybDzbDAbDAbDBbDBbDBbDBbDCaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbVjbWfbWgbWhbWibTVbWjbTVbWkbTVbWlbWmbWnbWobQPbWpbQQbVubQQbQQbWqbQPbWrbWsbQXbWtbOPbPSbWubWvbRZbWwbPVbWxbUqbWybWzbWAbWBbWCbWDbWEbWFbWGbSebWHbWIbWJbSkbSlbWKbWLbWLbRpaafaafbSGbWMbSGaaaaafaaabWNbWObWPbWQbWNaafaaaaaaaafaaaaaaaaabFsbWRbWSbWTbFsaaaaafaaaaaaaafaaaaaaaaaaaabWUbWVbWXbWWbWUaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabWYbWYbWZbXabWYaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbXbbDybDybDzbDAbDAbDBbDBbDBbDBbDCaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbVjbXcbXdbXebXdbXfbXgbXhbXibXjbXkbRLbKSbHMbQPbXlbQQbXmbXnbXobXpbQPbXqbRRbQXbXrbXsbXtbXubRnbXvbXwbXxbRnbXybXzbXAbRnbXBbXCbXDbXEbXFbRkbXGbXHbXIbTtaafbTubXJbXKbXLbRpaafaaaaaaaaaaaaaaaaaaaaabXMbTzbXNbXObXMaafaafaafaafaafaafaaabFsbXPbXQbSGbFsaaaaafaaaaaaaafaaaaaaaaaaaabXRbXSbXTbXUbXRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabWYbXVbXWbXXbWYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafbTSbTSbTSbTSbTSbRLbRLbRLbRLbRLbRLbRLbKSbHMbQPbQPbQPbQPbQPbQPbQPbQPbXqbRRbQXbXYbXZbYabYbbYcbYdbYebYfbYgbYhcprbQabRkbYjbYkbYlbYmbYnbRkbXGbYobYpbYqbUAbSlbYrbWLbWLbRpaafaaaaaaaaaaafaafaafaaabTzbYsbYtbYubTzbTzbTzbTzbTzbTzbTzaafbFsbFsbFsbFsbFsaaaaafaaaaaaaafaaaaaaaaaaaabYvbYwbYxbYybYvaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaabWYbYzbYAbYBbWYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbHMbFlbFlbFlbFlbYCbHMbHMbYDbYEbYEbYEbYEbYFbYGbYGbYHbYIbYIbYIbYIbYIbYIbYIbQObFlbYJbRRbQXbYKbYLbYMbOXbOWbYNbYObYPbYObYQbYRbQabRkbScbYSbYTbYUbYVbRkbXGbXHbYWbTtaafbRpbRpbRpbRpbRpaafaaabTzbTzbTzbTzbTzbTzbTzbYXbYYbYZbZabZbbZcbZdbZebZbbTzaafaafaafaafaafaafaafbZfaafaafaafaafaafaafaafbZgbVVbZhbZibZgaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabWYbZjbZkbZlbWYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10089,7 +10113,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalwaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaabJtcaXccSccTccUccVccWccWccWccWccXccYccZccjcdaccjccjcdbccjcdccddcdecdfccobQXcbicdgcpmbPTcdicdjcdkbPTcdjcdlcdmcdnbRkbVEbRkbScbYScdocdpcdqcdrcdsbWJbSkbSlcdtcducdubRpaafaaabXMcaNcdvcdwbTzcdxcdyccIcdzcdAcdBcdCcaQcdDcdEcdFbTzaaaaaaaaaaafaaaaaaaaabVVccKccKccKcdGcdHcbNcdIcdJcdKcdLcdMcdNbVVaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacdOaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaacdPcdQcdRaaacdPcdQcdRaaacdPcdQcdRaafcdSaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaabJtcaXccScdTccjcdbcdUccjccjccjccjccjcdTcdTccjccjccjccjcdVcdWcddcdXcddcdYcdZcdgcdgcplbPTcebceccedbPTceebOVcefcegcehceibWAbUscejcekbSebUubXHcelbTtaafbTucemcenceobRpaafaafaafaafaafaafbTzcepbVObVQceqcerbVNccEcesbVNcesccEbTzaaaaaaaaaaafaaaaaaaaabVVcbPcbPcbPcbPcetbXSceucevcewcexceycezbVVaaaaaaaaaaaaaaaceAceAceAceBaafaafaafaafcdOaafaafaafaafaafalXceAceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaacdPceCcdRaaacdPceCcdRaaacdPceCcdRaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafbJtcaXceDcdTceEccjceFceGceHceHcdaccjcdTceIccjccjccjccjceJceKceLceMbJEceNceOcePceQceRbPTcebcdjceSbPTceTbOVbVEbRkbRkcejbRnceUbXvceVceWbQiceXceYbYqbUAbSlceZcducdubRpaafaaaaaaaafaaaaaabTzcfabVObVQbVOcfbbVNbVObVQbVNbVQcfcbTzaaaaaaaaaaafaaaaaaaaabVVcbIcbJcbKcfdcfecbNcffcfgcfhcfibXScfjbVVaaaaaaaaaaaaaaaceAaaaaafaaaaafaaaaaaaaacfkaaaaafaafaaaaaaaaaaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalvaafcdPceCcdRaaacdPceCcdRaafcdPceCcdRaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabNpcaXcakcflccjcfmcfncfocfpcfqcfpcfrcfpcfscftccfcfucdTcdTcdWbLdcfvcfwcfxcfycfzaqBcfBcfCcfDcfEcfFcfGcfHbOVcfIbRkbRkcfJbRkbRkbRkbRmbXCcfJbXHbYWbTtaafbRpbRpbRpbRpbRpaafaaaaaaaafaaaaaabTzcfKcfLcfMcfNcfOcfPcfQcfRcfPcfRcfQbTzaafaafaafaafaafaafaafbVVccKccKccKcfSccNbXScfTcfUcfVcfWbXScfXbVVbVVbVVbVVaaaaaaceAaaacfYcfYcfYcfYcfYaafcfZaafcfYcfYcfYcfYcfYaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalvaafcdPceCcdRaaacdPceCcdRaafcdPceCcdRaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaabNpcaXcakcflccjcfmcfncfocfpcfqcfpcfrcfpcfscftccfcfucdTcdTcdWbLdcfvcfwcfxcfycfzagzcfBcfCcfDcfEcfFcfGcfHbOVcfIbRkbRkcfJbRkbRkbRkbRmbXCcfJbXHbYWbTtaafbRpbRpbRpbRpbRpaafaaaaaaaafaaaaaabTzcfKcfLcfMcfNcfOcfPcfQcfRcfPcfRcfQbTzaafaafaafaafaafaafaafbVVccKccKccKcfSccNbXScfTcfUcfVcfWbXScfXbVVbVVbVVbVVaaaaaaceAaaacfYcfYcfYcfYcfYaafcfZaafcfYcfYcfYcfYcfYaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacdPceCcdRaafcdPceCcdRaaacdPceCcdRaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabFlcaXcakcgacgbcgbcgccakcakcakcakcakcakcakcakcakcakcakcakcakbFlcgdbFlcgebFlbOPcgfcggcghcgicgjcgkcglcgmbOVcgncgocgpcgqcgrcgscgrcgqcgtcgqcgucejcgvaafaafaafaafaafaafaafaaaaaaaaaaaaaaabTzbTzbTzcgwcgxbTzbTzcgybTzbTzbTzcgybXMaaaaaaaaaaaaaaaaaaaaabVVccKccKccKcfdcgzcbNcgAcgBcgCcgDcgEcgEcgFcgGcgHbVVaafaafceAaafcgIcgJcgJcgJcgJcgKcfZcgLcgMcgMcgMcgMcgNaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvaafaaacdPceCcdRaafcdPceCcdRaaacdPceCcdRaafaaaaaaaaaaaaaafaafcgOcgPcgPcgPcgPbFlbFlcaXcakcgQcgRcgRcgScgTcgUcgVcgVcgVcgVcgVcgVcgWcgVcgVcgXcgXcgVcgYcgZchachbbOPchcchdchechfchgchhbPSchibYNbRYchjchkchlchmchnchochpbRkchqchrchsbRhaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaabTzcaNchtbTzaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabVVcbPcbPcbPcbPchubXScfTchvchwchxbXSbXSchybXSchzbVVaaaaaaceAaafchAchAchAchAchAaaacfZaaachAchAchAchAchAaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaafaaaaafaafchBaafaafaafchBaafaaaaafchBaafaaaaaaaaaaaaaaachCchDchEchFchGchHchIchJcaichKcakcakchLchMcakcakbOGchNchNchNchNchNchNchOchNchNchNchPchPchQchRchSchSchTchUchdchebPSbPSbPSbPScpqchWchXchYchZciacibciccibciacibcidcibcidcieaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaacifaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabVVcbIcbJcbKcigcfecbNcihbXUciicijcijcikcilcimcinbVVaaaaaaceAaaaaafaaaaafaafaafaaacfZaaaaafaaaaafaaaaafaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10098,17 +10122,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvaafaafcdPcjMcdRaaacdPcjMcdRaaacdPcjMcdRaafaaaaaaaaaaaaaafaafcjNcgPcgPcgPcgPbFlbZxcanbHMcjObHMbHMbHMcjPbRNchNclScjmcjmcjmcjmcjRcjmcjmclRcjqcjUcjVcjWcjXcjYcjZckackbckcckdckeckfbPSckgbOPbRpckhckickjbRpckkcklckmbRpcknckockpbRpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZgbVVckqckrckrckscktckucktckvckwckxckyckzcbNckAckBaaaaaaceAaafchAchAchAchAchAaaacfZaafchAchAchAchAchAaaaceAaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdPcjMcdRaafcdPcjMcdRaaacdPcjMcdRaaaaaaaaaaafaaaaafaafaafaaaaaaaaaaaabFlckCckDckDckEbFlbFlbFlbFlclYcncclZcjmcjmckGcjmcjRcjmcjmclWckIckJckKckLckMckNckIckObPScheckPclUclTbPSbPSbOPbRpckSckTckSbRpckUckVckUbRpckWckXckYbRpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacifaaabVVckZclaclbclccldclacleclfcldclaclgbVVaaaaaaceBaaaaafaaaaafaaaaafaaaclhaaaaafaaaaafaafaafaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFWaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafcdPcjMcdRaaacdPcjMcdRaaacdPcjMcdRaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafclibNmcljbFlbHMcmhcjmcjmcjmcjmcjmcjRcjmcjmcmbckIckIcmacloclpclqclrclscltcmncmlcmkclxbOPclybOPbRpckSclzckSbRpckUclAckUbRpckYclBckYbRpaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclCaafbVVclDclEclFcbPclGclHclIcbPclJclKclLbVVaaaaaaceAaaacfYcfYcfYcfYcfYaafcdOaafcfYcfYcfYcfYcfYaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafcdPcjMcdRaaacdPcjMcdRaafcdPcjMcdRaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafclMbHMbHMbKRcmKchNcmFcmHcmjcmicjmcjRcjmcjmcjmcjmcmLcmQcjmcjmcjmcmvclVcmoclXamdamJamscmDcmcbOPbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabVVcmdccKccKcbPcmdccKccKcbPcmdccKccKbVVaafaafceAaafcgIcgJcgJcgJcgJcmecmfcmecgMcgMcgMcgMcgNaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalXaafcdPcmgcdRaaacdPcmgcdRaaacdPcmgcdRaafalvaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQIbNobNnchNchNchNchNchNchNcmYcnbcndcnacmmcmmcmmcmZcmpcmqcmrcmmcmmcmpcmscmtanfanlcngcnfcmcbOPcmycmzcmAcmAcmBaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVVcmCccKccKcbPcmCccKccKcbPcmCccKccKbVVaaaaaaceAaafchAchAchAchAchAaaacdOaaachAchAchAchAchAaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalvaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbFlbZvbZuchNcnzcmEcnAcmGchNcnXcjmcjRcmPcjmcjmcnYcmIcmJcjTcnicnmcmMcmNcmOcmIcnnapBanWcdgcmRclycmccmScmTcmUcmVaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVVcmWccKccKcbPcmWccKccKcbPcmWccKccKbVVaaeaaaceAaaaaaaaafaafaafaaaaaacdOaafaaaaaaaafaafaaaaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwalXalvalvalvalvalwalvalvalwcmXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachNcoacoacnwcnwcnxcmPcjmcjRcmPcjmcokcolcnkcnlcpgcoTcoDcnpcnqcmwcjRcmPcmPaqwcdgcdgbOPcmRcntcmAcmAcnuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZgbVVbVVbVVbVVbVVbVVbVVbVVcnvcnvcnvbZgaaaaaaceAceAceAceAceAaaaaaaaaacdOaaaaaaaaaceAceAceAceBceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaafcdPcjMcdRaaacdPcjMcdRaafcdPcjMcdRaafaafaafaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafclMbHMbHMbKRcmKchNcmFcmHcmjcmicjmcjRcjmcjmcjmcjmcmLcmQcjmcjmcjmcmvclVcmoclXcmucmxcjrcmDcmcbOPbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpbRpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabVVcmdccKccKcbPcmdccKccKcbPcmdccKccKbVVaafaafceAaafcgIcgJcgJcgJcgJcmecmfcmecgMcgMcgMcgMcgNaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalXaafcdPcmgcdRaaacdPcmgcdRaaacdPcmgcdRaafalvaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQIbNobNnchNchNchNchNchNchNcmYcnbcndcnacmmcmmcmmcmZcmpcmqcmrcmmcmmcmpcmscmtcnecnhcngcnfcmcbOPcmycmzcmAcmAcmBaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVVcmCccKccKcbPcmCccKccKcbPcmCccKccKbVVaaaaaaceAaafchAchAchAchAchAaaacdOaaachAchAchAchAchAaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaafaaaaaaaaaaafaafaafaaaaaaaafaafaaaalvaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbFlbZvbZuchNcnzcmEcnAcmGchNcnXcjmcjRcmPcjmcjmcnYcmIcmJcjTcnicnmcmMcmNcmOcmIcnncnscnocdgcmRclycmccmScmTcmUcmVaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVVcmWccKccKcbPcmWccKccKcbPcmWccKccKbVVaaeaaaceAaaaaaaaafaafaafaaaaaacdOaafaaaaaaaafaafaaaaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwalXalvalvalvalvalwalvalvalwcmXaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachNcoacoacnwcnwcnxcmPcjmcjRcmPcjmcokcolcnkcnlcpgcoTcoDcnpcnqcmwcjRcmPcmPcnjcdgcdgbOPcmRcntcmAcmAcnuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZgbVVbVVbVVbVVbVVbVVbVVbVVcnvcnvcnvbZgaaaaaaceAceAceAceAceAaaaaaaaaacdOaaaaaaaaaceAceAceAceBceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaachNcnwcnwcnwcnwcnxcnybYicdhcpkceacnBcnBcnCcnDcnEcnFcnGcnHcnCcnIcnJcnKcnMcjmcjmcnNcnOchNchNchNcmIcnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnQcnQcnQaaaaaaaaaaaaaaaaaaaaaaaaaaaceAaafcnRaafceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaachNcnScnTcnUcnVchNcnWcjQcjScpbciIcobcocchNcodcoecofcjmcogchNcohcoicojalralqalfalbconcoocopcoqcorcosaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceAaaaaafaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafchNcotcotcotcnVchNcoucovchNcowcoxcoxcoxchNcoycozcoAcoBcoCchNcoxcoxcoxcowchNalsclXcoEchNchNchNchNcoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceAceAceAceAceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaafaaachNcotcotcnVcnVchNcoGcoHchNcoIcoJcoKcoLcoMcoNcoOcoPcoQcoCcoRcoJcoJcoJcoSchNaltcoUcoEaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagchNchNchNchNchNchNcnwcoVchNchNcoWcoXcoYcoZcpacpbcpccpbcpdcpecoYcoXcpfchNchNalKcphcpiaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaagaagaafaaaaafaagchNchNcpjchNclvckRckRclucllclmclmclmclmclmcllclkckRckRdfQchNalMchNchNaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaaaaaaaaaafchNcpoclwclNclOaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaadhtclPalRcptchNaafaafaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaachNcnScnTcnUcnVchNcnWcjQcjScpbciIcobcocchNcodcoecofcjmcogchNcohcoicojakWakPakGakFconcoocopcoqcorcosaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceAaaaaafaaaceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafchNcotcotcotcnVchNcoucovchNcowcoxcoxcoxchNcoycozcoAcoBcoCchNcoxcoxcoxcowchNalbclXcoEchNchNchNchNcoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceAceAceAceAceAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaafaaachNcotcotcnVcnVchNcoGcoHchNcoIcoJcoKcoLcoMcoNcoOcoPcoQcoCcoRcoJcoJcoJcoSchNalfcoUcoEaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagchNchNchNchNchNchNcnwcoVchNchNcoWcoXcoYcoZcpacpbcpccpbcpdcpecoYcoXcpfchNchNalqcphcpiaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaafaagaagaafaaaaafaagchNchNcpjchNclvckRckRclucllclmclmclmclmclmcllclkckRckRdfQchNalrchNchNaaaaafaafaaaaafaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaafaaaaaaaaaaafchNcpoclwclNclOaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaadhtclPalscptchNaafaafaaaaaaaaaaagaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaachNcpGcnPcnPaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacnPcnPcpGchNaaaaafaaaaafaafaafaafaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachNcpucpvcnPaafaafaafcpwaaaaaaaaaaaacpwaaaaaacpwaafaafaafcnPcpxcpychNaaaaaaaaaaaaaaaaafaaaaaeaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachNcpzcnPcpAaaaaaaaafaaaaaaaaaaaaaaacpBaaaaaaaaaaafaaaaaacnPcnPcpzchNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10237,17 +10261,17 @@ cqhcqYcrdcrccrbcqScracqRcqQcqPcqXcqUcqZcqTcqVcqWcracqScqXcrdcrccqRcqUcrbcqTcqPcq cqecrbcqPcqZcqRcqVcrdcracqXcqScqTcqQcqWcrccqUcqYcrdcqVcqTcqPcqZcracqQcqRcrccqScqlcqKcpZcrdcqUcrbcwAcuPcvicuRcvkcuTcqWcrccqRcqYcqTcracqVcuPcuScuNcvhcuRcvvcqPcqYcqQcqncqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcwBcwBcwBcwBcwBcxwcyAcxIcyBcxwcyCcxtcxtcxtcyDcyEcyicyFcyGcyHcyicwkcyucyIcyIcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwFcyJcyJcvPcvPcyKcvPcvPcyJcyJcwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cqmcqkcqgcqicqncqbcqdcqacqmcqfcqjcqecqlcpZcqhcqccqdcqbcqjcqgcqicqacqecqncpZcqfcqccqKcqicqPcqQcqRcupcsJcsmcuuctkcsActqctgctZctEcsUcuccsmcsJctqcssctScuuctgcqScrbcqXcqacqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcwBcwBcwBcwBcwBcxwcxIcxIcxIcxwcxYcxZcxZcxZcyacwkcyicyFcyLcyHcyicwkcwkcwkcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwFcvRcyMcwUcvXcwVcyNcvOcwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crccracqVcqYcrdcqQcqScqPcrccqUcqZcqTcrbcqWcqXcqRcqScqQcqZcqVcqYcqPcqTcrdcqWcqUcqRcqKcqlcqScqXcracqVcrccqQcqUcqYcqTcrbcqWcrdcqRcqZcqPcqQcrccrbcqXcracqUcqWcqVcqRcqTcqdcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxvcxwcxwcxwcxwcxwcxIcxIcxIcxwcyhcyOcyOcyOcyOcyPcyicyicyicyicyicyQcyRcyScwkcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvMcyxcwncyTcwncyUcvMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqZcrdcqUcrbcqPcqXcqVcqScqZcqQcqWcrccqRcqYcqTcracqVcqXcqWcqUcrbcqScrccqPcqYcqQcracqKcqccqVcqTcrdcqUcqZcqXcqQcrbcrccqRcqYcqPcracqWcqScqXcqZcqRcqTcrdcqQcqYcqUcracrccqgcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcyVcxwcxIcxIcxIcxwcyEcyPcyWcxZcyacwkcyicyicyicyicyicwkcyXcyXcyYcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvMcyZczaczbczcczdcvMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqWcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqZcracrbcrccrdcqUcqTcqYcqQcqRcqVcqZcqScrbcqXcrdcqKcqkcqUcrccqPcqQcqWcqTcqXcqRcqZcracrbcqScrdcqYcqVcqTcqWcracrccqPcqXcrbcqQcrdcqZcqfcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIczeczfcxwcxIcxIcxIcxwcxwczgczhcziczjcwkcwkcwkcwkcwkczkcwkczlcyXcyYcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwFczmcznczncznczocwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqZcrdcqUcrbcqPcqXcqVcqScqZcqQcqWcrccqRcqYcqTcracqVcqXcqWcqUcrbcqScrccqPcqYcqQcracqKcqccqVcqTcrdcqUcqZcqXcqQcrbcrccqRcqYcqPcracqWcqScqXcqZcqRcqTcrdcqQcqYcqUcracrccqgcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcyVcxwcxIcxIcxIcxwcyEchVcyWcxZcyacwkcyicyicyicyicyicwkcyXcyXcyYcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvMcyZczaczbczcczdcvMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqWcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqZcracrbcrccrdcqUcqTcqYcqQcqRcqVcqZcqScrbcqXcrdcqKcqkcqUcrccqPcqQcqWcqTcqXcqRcqZcracrbcqScrdcqYcqVcqTcqWcracrccqPcqXcrbcqQcrdcqZcqfcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIczeczfcxwcxIcxIcxIcxwcxwcfAczhcziczjcwkcwkcwkcwkcwkczkcwkczlcyXcyYcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwFczmcznczncznczocwHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cqYcqScqXcracqVcrccqQcqUcqYcqTcrbcqWcrdcqRcqZcqPcqQcrccrbcqXcracqUcqWcqVcqRcqTcqPcqKcqncqQcqZcqScqXcqYcrccqTcracqWcrdcqRcqVcqPcrbcqUcrccqYcrdcqZcqScqTcqRcqXcqPcqWcqbcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkczpcwBcxwcygcxIczeczqcxwcxIcxIcxIcxwczrcxIcxIcxwczscztczjcwkczuczvczwcwkcwkcwkcwkcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crbcqVcqTcrdcqUcqZcqXcqQcrbcrccqRcqYcqPcracqWcqScqXcqZcqRcqTcrdcqQcqYcqUcracrccqScqKcqacqXcqWcqVcqTcrbcqZcrccrdcqYcqPcracqUcqScqRcqQcqZcrbcqPcqWcqVcrccracqTcqScqYcqhcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcxIczxcxIcxIcxIczycxIcxIcxIcxwcxNcwBcxXczzczAczvczBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqRcqUcrccqPcqQcqWcqTcqXcqRcqZcracrbcqScrdcqYcqVcqTcqWcracrccqPcqXcrbcqQcrdcqZcqVcqKcqdcqmcqlcqbcqjcqkcqicpZcqdcqccqgcqacqhcqfcqncqecqicqkcqgcqlcqbcpZcqacqjcqfcqccqecqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcxIczCcxIcxIcxIczDcxIcxIczEcxwczFcwBcxXcyhczuczGczBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crbcqVcqTcrdcqUcqZcqXcqQcrbcrccqRcqYcqPcracqWcqScqXcqZcqRcqTcrdcqQcqYcqUcracrccqScqKcqacqXcqWcqVcqTcrbcqZcrccrdcqYcqPcracqUcqScqRcqQcqZcrbcqPcqWcqVcrccracqTcqScqYcqhcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcxIczxcxIcxIckHckQcxIcxIckFcxwcxNcwBcxXczzczAczvczBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqRcqUcrccqPcqQcqWcqTcqXcqRcqZcracrbcqScrdcqYcqVcqTcqWcracrccqPcqXcrbcqQcrdcqZcqVcqKcqdcqmcqlcqbcqjcqkcqicpZcqdcqccqgcqacqhcqfcqncqecqicqkcqgcqlcqbcpZcqacqjcqfcqccqecqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcwBcxwcygcxIcxIcxIczCcxIcxIcxIczDcxIclQclncxwczFcwBcxXcyhczuczGczBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cracqQcqZcqScqXcqYcrccqTcracqWcrdcqRcqVcqPcrbcqUcrccqYcrdcqZcqScqTcqRcqXcqPcqWcqUcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxvcxwcxwcxwcxwcxwcxwczHcxIcxIcxwcxwcxwcxwcxwcxwcxAcxXcyEczuczvczBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKcqKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczIczJczKczLczMcxwcxIcxIcxIcxwczNczOczPczQczRcxwczScwkczuczvczTcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczUczUczUczUczUczVcxIcxIcxIczWcxIcxIcxIcxIczXcxwczScwkcwkcwkcwkcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczIczJczUczUczUczYcxIcxIcxIczZcxIcxIcxIcxIczXcxwcxNcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczUczUczUcAacAbcxwcAccAdcAecxwcAfcxwcAgcxwcxwcxwcAhcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczUczUczUcxwcxwcxwcAicAjczUcxwcxwcxwcxIcxIcxIcxwcxNcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczUczUczUcxwcxwcxwczUcAjczUcxwcxwcxwcxIcxIcxIcxwcxNcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwczIczJcAkcxwcwBcxwcAlcAlcAlcxwcwBcxwcxMcAmcAncxwcxNcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcxwcAlcAlcAlcxwcwBcyocAocApcAqcyqcwBcxwcAlcAlcAlcxwcxNcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwkcwBcyocAocApcAqcyqcwBcwBcwBcwBcwBcwBcwBcyocAocApcAqcyqcwBcwBcwkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10320,7 +10344,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcETcETcETcETcETcETcETcETcFacFPcFccFjcETcGRcGScGScGTcFicETcETcGUcGVcGWcGXcGYcGZcGUcHacEjcHbcDDcEecEecFncDDcDDcHccHdcEecHecHfcDDcDDcEdcEecEecDDaaaaaaaaaaaaaaacDDcHgcHhcDDcExcHicExcExcHjcHkcHlcHlcHlcHmcDDcEjcEjcEAcEAcEjcEjcHnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFzcFzcFzcFzcFzcFzcFzcFzcFzcFzcFzcFzcFAcHocFCcFAcFAcFAcFAcFDcHocHpcHqcFGcFjcETcETcHrcHrcETcETcETaaacGUcHscHtcHucHvcHwcGUcHacEjcHbcDDcEecEecFncDDcDDcEHcEIcEIcEIcEKcDDcDDcEdcEecEecDDaaaaaaaaaaaaaaacDDcHhcHhcDDcHxcHxcHxcExcHjcHlcHlcHlcHlcHycDDcEjcHzcEzcEzcHAcEjcHBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcsHcETcETcETcETcETcETcETcETcETcETcETcETcETcHCcHDcHDcHCaaaaaaaaacGUcHEcHucHucHucHucGUcHacEjcHbcDDcEecEecFVcDVcDVcDVcDVcDVcDVcDVcDVcDVcGecEecEecDDaaaaaaaaaaaaaaacDDcHFcHhcDDcHxcHGcHxcExcHjcHjcHjcHjcHjcHjcDDcEjcHzcEzcEzcHAcEjcHBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHHcHIcHIcHIcHIcHJcHJcHIcHIcHKaaacGUcHucHucHucHucHucGUcHLcEjcHMcDDcDDcHNcDDcDDcDDcDDcDDcHOcDDcDDcDDcDDcDDcDDcDDcDDaaaaaaaaaaaaaaacDDcHPcHhcDDcEXcExcExcExcHjaaaaaaaaaaaaaaacDDcEjcHzcEzcEzcHAcEjcHBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHHcHIcHIcHIcHIcHJcHJcHIcHIcHKaaacGUcHucHucHucHucnrcGUcHLcEjcHMcDDcDDcHNcDDcDDcDDcDDcDDcHOcDDcDDcDDcDDcDDcDDcDDcDDaaaaaaaaaaaaaaacDDcHPcHhcDDcEXcExcExcExcHjaaaaaaaaaaaaaaacDDcEjcHzcEzcEzcHAcEjcHBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHQcHRcHScHTcHUcHTcHTcHVcHWcHIcHKcGUcHucHXcHYcHZcIacGUcIbcEjcEjcEjcEjcEjcEjcIccDDcDDcIdcIdcIdcDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDDcDDcDDcDDcDDcDDcDDcDDcHjaaaaaaaaaaaaaaacIecEjcHzcEzcEzcHAcEjcHBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHQcHRcHScHTcHTcHTcHTcHTcHTcIfcIgcGUcHucIhcIicIjcIicGUcIkcEjcIlcImcIncIocEjcIpcDDcDDcDDcIqcDDcDDcDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIrcEjcEjcIscIscEjcEjcIraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacHQcHRcHScItcItcItcItcItcItcHIcIucGUcHucHucHucHucHucGUcIvcEjcIwcIxcIycIzcEjcIAcDDcDUcGecEecFVcIBcDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDDcICcEjcEjcEjcEjcIDcDDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/sound/voice/Serithi/Shuttlehere.ogg b/sound/voice/Serithi/Shuttlehere.ogg new file mode 100644 index 00000000000..095d0eb433d Binary files /dev/null and b/sound/voice/Serithi/Shuttlehere.ogg differ diff --git a/sound/voice/Serithi/pretenddemoc.ogg b/sound/voice/Serithi/pretenddemoc.ogg new file mode 100644 index 00000000000..2265aeae4c0 Binary files /dev/null and b/sound/voice/Serithi/pretenddemoc.ogg differ diff --git a/sound/voice/Serithi/weneedvote.ogg b/sound/voice/Serithi/weneedvote.ogg new file mode 100644 index 00000000000..4bc18b70a6e Binary files /dev/null and b/sound/voice/Serithi/weneedvote.ogg differ