diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm
index 01a84fdf5d..8dd637e58f 100644
--- a/code/ZAS/Airflow.dm
+++ b/code/ZAS/Airflow.dm
@@ -228,13 +228,16 @@ mob/living/carbon/human/airflow_hit(atom/A)
var/b_loss = airflow_speed * vsc.airflow_damage
var/blocked = run_armor_check(BP_HEAD,"melee")
- apply_damage(b_loss/3, BRUTE, BP_HEAD, blocked, 0, "Airflow")
+ var/soaked = get_armor_soak(BP_HEAD,"melee")
+ apply_damage(b_loss/3, BRUTE, BP_HEAD, blocked, soaked, 0, "Airflow")
blocked = run_armor_check(BP_TORSO,"melee")
- apply_damage(b_loss/3, BRUTE, BP_TORSO, blocked, 0, "Airflow")
+ soaked = get_armor_soak(BP_TORSO,"melee")
+ apply_damage(b_loss/3, BRUTE, BP_TORSO, blocked, soaked, 0, "Airflow")
blocked = run_armor_check(BP_GROIN,"melee")
- apply_damage(b_loss/3, BRUTE, BP_GROIN, blocked, 0, "Airflow")
+ soaked = get_armor_soak(BP_GROIN,"melee")
+ apply_damage(b_loss/3, BRUTE, BP_GROIN, blocked, soaked, 0, "Airflow")
if(airflow_speed > 10)
Paralyse(round(airflow_speed * vsc.airflow_stun))
diff --git a/code/ZAS/ConnectionGroup.dm b/code/ZAS/ConnectionGroup.dm
index f377efe74f..94df46ac01 100644
--- a/code/ZAS/ConnectionGroup.dm
+++ b/code/ZAS/ConnectionGroup.dm
@@ -180,7 +180,8 @@ Class Procs:
air_master.mark_zone_update(B)
/connection_edge/zone/recheck()
- if(!A.air.compare(B.air))
+ // Edges with only one side being vacuum need processing no matter how close.
+ if(!A.air.compare(B.air, vacuum_exception = 1))
air_master.mark_edge_active(src)
//Helper proc to get connections for a zone.
@@ -235,7 +236,10 @@ Class Procs:
air_master.mark_zone_update(A)
/connection_edge/unsimulated/recheck()
- if(!A.air.compare(air))
+ // Edges with only one side being vacuum need processing no matter how close.
+ // Note: This handles the glaring flaw of a room holding pressure while exposed to space, but
+ // does not specially handle the less common case of a simulated room exposed to an unsimulated pressurized turf.
+ if(!A.air.compare(air, vacuum_exception = 1))
air_master.mark_edge_active(src)
proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
diff --git a/code/ZAS/Phoron.dm b/code/ZAS/Phoron.dm
index fd79d83dc5..92dd6f5d51 100644
--- a/code/ZAS/Phoron.dm
+++ b/code/ZAS/Phoron.dm
@@ -95,14 +95,14 @@ obj/var/phoronproof = 0
return
//Burn skin if exposed.
- if(vsc.plc.SKIN_BURNS)
+ if(vsc.plc.SKIN_BURNS && (species.breath_type != "phoron"))
if(!pl_head_protected() || !pl_suit_protected())
burn_skin(0.75)
if(prob(20)) src << "Your skin burns! "
updatehealth()
//Burn eyes if exposed.
- if(vsc.plc.EYE_BURNS)
+ if(vsc.plc.EYE_BURNS && (species.breath_type != "phoron"))
if(!head)
if(!wear_mask)
burn_eyes()
@@ -118,22 +118,12 @@ obj/var/phoronproof = 0
burn_eyes()
//Genetic Corruption
- if(vsc.plc.GENETIC_CORRUPTION)
+ if(vsc.plc.GENETIC_CORRUPTION && (species.breath_type != "phoron"))
if(rand(1,10000) < vsc.plc.GENETIC_CORRUPTION)
randmutb(src)
src << "High levels of toxins cause you to spontaneously mutate! "
domutcheck(src,null)
-/mob/living/carbon/human/vox/pl_effects()
- //Handles all the bad things phoron can do to Vox.
-
- //Contamination
- if(vsc.plc.CLOTH_CONTAMINATION) contaminate()
-
- //Anything else requires them to not be dead.
- if(stat >= 2)
- return
-
/mob/living/carbon/human/proc/burn_eyes()
var/obj/item/organ/internal/eyes/E = internal_organs_by_name[O_EYES]
if(E)
diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm
index 8c999f6d96..6f8bec025b 100644
--- a/code/__defines/machinery.dm
+++ b/code/__defines/machinery.dm
@@ -38,7 +38,7 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define NETWORK_ENGINEERING "Engineering"
#define NETWORK_ENGINEERING_OUTPOST "Engineering Outpost"
#define NETWORK_ERT "ZeEmergencyResponseTeam"
-#define NETWORK_EXODUS station_short
+#define NETWORK_DEFAULT "Station"
#define NETWORK_MEDICAL "Medical"
#define NETWORK_MERCENARY "MercurialNet"
#define NETWORK_MINE "Mining Outpost"
diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm
index 6a009677e1..87c75dfb0a 100644
--- a/code/__defines/misc.dm
+++ b/code/__defines/misc.dm
@@ -36,6 +36,7 @@
#define SPECIALROLE_HUD 8 // AntagHUD image.
#define STATUS_HUD_OOC 9 // STATUS_HUD without virus DB check for someone being ill.
#define LIFE_HUD 10 // STATUS_HUD that only reports dead or alive
+#define TOTAL_HUDS 10 // Total number of HUDs. Like body layers, and other things, it comes up sometimes.
//some colors
#define COLOR_WHITE "#FFFFFF"
diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm
index bcd85b53be..1dc6436355 100644
--- a/code/__defines/mobs.dm
+++ b/code/__defines/mobs.dm
@@ -26,11 +26,13 @@
#define BORGXRAY 0x4
#define BORGMATERIAL 8
-#define STANCE_IDLE 1
-#define STANCE_ALERT 2
-#define STANCE_ATTACK 3
-#define STANCE_ATTACKING 4
-#define STANCE_TIRED 5
+#define STANCE_IDLE 1 // Looking for targets if hostile. Does idle wandering.
+#define STANCE_ALERT 2 // Bears
+#define STANCE_ATTACK 3 // Attempting to get into attack position
+#define STANCE_ATTACKING 4 // Doing attacks
+#define STANCE_TIRED 5 // Bears
+#define STANCE_FOLLOW 6 // Following somone
+#define STANCE_BUSY 7 // Do nothing on life ticks (Other code is running)
#define LEFT 1
#define RIGHT 2
@@ -139,7 +141,7 @@
#define INCAPACITATION_STUNNED 8
#define INCAPACITATION_FORCELYING 16 //needs a better name - represents being knocked down BUT still conscious.
#define INCAPACITATION_KNOCKOUT 32
-
+#define INCAPACITATION_NONE 0
#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY)
#define INCAPACITATION_KNOCKDOWN (INCAPACITATION_KNOCKOUT|INCAPACITATION_FORCELYING)
diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm
index 957a690f4f..4e5b6d6dfb 100644
--- a/code/__defines/species_languages.dm
+++ b/code/__defines/species_languages.dm
@@ -30,7 +30,7 @@
#define LANGUAGE_SOL_COMMON "Sol Common"
#define LANGUAGE_UNATHI "Sinta'unathi"
#define LANGUAGE_SIIK "Siik"
-#define LANGUAGE_SKRELLIAN "Skrellian"
+#define LANGUAGE_SKRELLIAN "Common Skrellian"
#define LANGUAGE_TRADEBAND "Tradeband"
#define LANGUAGE_GUTTER "Gutter"
#define LANGUAGE_SIGN "Sign Language"
diff --git a/code/__defines/turfs.dm b/code/__defines/turfs.dm
index 486927453e..bf4c3de6fe 100644
--- a/code/__defines/turfs.dm
+++ b/code/__defines/turfs.dm
@@ -7,4 +7,7 @@
#define TURF_HAS_EDGES 64
#define TURF_HAS_CORNERS 128
#define TURF_IS_FRAGILE 256
-#define TURF_ACID_IMMUNE 512
\ No newline at end of file
+#define TURF_ACID_IMMUNE 512
+
+#define isCardinal(x) (x == NORTH || x == SOUTH || x == EAST || x == WEST)
+#define isDiagonal(x) (x == NORTHEAST || x == SOUTHEAST || x == NORTHWEST || x == SOUTHWEST)
\ No newline at end of file
diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm
index c3ce40e657..1531a67d5b 100644
--- a/code/_helpers/game.dm
+++ b/code/_helpers/game.dm
@@ -12,17 +12,17 @@
/proc/is_on_same_plane_or_station(var/z1, var/z2)
if(z1 == z2)
return 1
- if((z1 in config.station_levels) && (z2 in config.station_levels))
+ if((z1 in using_map.station_levels) && (z2 in using_map.station_levels))
return 1
return 0
/proc/max_default_z_level()
var/max_z = 0
- for(var/z in config.station_levels)
+ for(var/z in using_map.station_levels)
max_z = max(z, max_z)
- for(var/z in config.admin_levels)
+ for(var/z in using_map.admin_levels)
max_z = max(z, max_z)
- for(var/z in config.player_levels)
+ for(var/z in using_map.player_levels)
max_z = max(z, max_z)
return max_z
@@ -43,6 +43,18 @@
if (isarea(A))
return A
+
+/** Checks if any living humans are in a given area. */
+/proc/area_is_occupied(var/area/myarea)
+ // Testing suggests looping over human_mob_list is quicker than looping over area contents
+ for(var/mob/living/carbon/human/H in human_mob_list)
+ if(H.stat >= DEAD) //Conditions for exclusion here, like if disconnected people start blocking it.
+ continue
+ var/area/A = get_area(H)
+ if(A == myarea) //The loc of a turf is the area it is in.
+ return 1
+ return 0
+
/proc/in_range(source, user)
if(get_dist(source, user) <= 1)
return 1
@@ -62,16 +74,16 @@
return heard
/proc/isStationLevel(var/level)
- return level in config.station_levels
+ return level in using_map.station_levels
/proc/isNotStationLevel(var/level)
return !isStationLevel(level)
/proc/isPlayerLevel(var/level)
- return level in config.player_levels
+ return level in using_map.player_levels
/proc/isAdminLevel(var/level)
- return level in config.admin_levels
+ return level in using_map.admin_levels
/proc/isNotAdminLevel(var/level)
return !isAdminLevel(level)
diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index 044b2264ce..72937092c4 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -51,12 +51,13 @@ var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessor
var/global/list/facial_hair_styles_male_list = list()
var/global/list/facial_hair_styles_female_list = list()
var/global/list/skin_styles_female_list = list() //unused
+var/global/list/body_marking_styles_list = list() //stores /datum/sprite_accessory/marking indexed by name
//Underwear
var/datum/category_collection/underwear/global_underwear = new()
//Backpacks
var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag")
-var/global/list/pdachoicelist = list("Default", "Slim", "Old")
+var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged")
var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg)
// Visual nets
@@ -141,6 +142,12 @@ var/global/list/string_slot_flags = list(
facial_hair_styles_male_list += H.name
facial_hair_styles_female_list += H.name
+ //Body markings - Initialise all /datum/sprite_accessory/marking into an list indexed by marking name
+ paths = typesof(/datum/sprite_accessory/marking) - /datum/sprite_accessory/marking
+ for(var/path in paths)
+ var/datum/sprite_accessory/marking/M = new path()
+ body_marking_styles_list[M.name] = M
+
//Surgery Steps - Initialize all /datum/surgery_step into a list
paths = typesof(/datum/surgery_step)-/datum/surgery_step
for(var/T in paths)
diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm
index cabf7c04b3..c971b22dac 100644
--- a/code/_helpers/icons.dm
+++ b/code/_helpers/icons.dm
@@ -793,6 +793,26 @@ proc // Creates a single icon from a given /atom or /image. Only the first argu
alpha_mask.Blend(image_overlay,ICON_OR)//OR so they are lumped together in a nice overlay.
return alpha_mask//And now return the mask.
+//getFlatIcon but generates an icon that can face ALL four directions. The only four.
+/proc/getCompoundIcon(atom/A)
+ var/icon/north = getFlatIcon(A,defdir=NORTH,always_use_defdir=1)
+ var/icon/south = getFlatIcon(A,defdir=SOUTH,always_use_defdir=1)
+ var/icon/east = getFlatIcon(A,defdir=EAST,always_use_defdir=1)
+ var/icon/west = getFlatIcon(A,defdir=WEST,always_use_defdir=1)
+
+ //Starts with a blank icon because of byond bugs.
+ var/icon/full = icon('icons/effects/effects.dmi', "icon_state"="nothing")
+
+ full.Insert(north,dir=NORTH)
+ full.Insert(south,dir=SOUTH)
+ full.Insert(east,dir=EAST)
+ full.Insert(west,dir=WEST)
+ qdel(north)
+ qdel(south)
+ qdel(east)
+ qdel(west)
+ return full
+
/mob/proc/AddCamoOverlay(atom/A)//A is the atom which we are using as the overlay.
var/icon/opacity_icon = new(A.icon, A.icon_state)//Don't really care for overlays/underlays.
//Now we need to culculate overlays+underlays and add them together to form an image for a mask.
diff --git a/code/_helpers/names.dm b/code/_helpers/names.dm
index dbd19610e6..20f7b2b31d 100644
--- a/code/_helpers/names.dm
+++ b/code/_helpers/names.dm
@@ -15,19 +15,13 @@ var/church_name = null
return name
-var/command_name = null
/proc/command_name()
- if (command_name)
- return command_name
-
- var/name = "[boss_name]"
-
- command_name = name
- return name
+ if(istype(using_map))
+ return using_map.boss_name
/proc/change_command_name(var/name)
- command_name = name
+ using_map.boss_name = name
return name
@@ -44,19 +38,20 @@ var/religion_name = null
return capitalize(name)
/proc/system_name()
- return starsys_name
+ return using_map.starsys_name
/proc/station_name()
- if (station_name)
- return station_name
+ if (using_map.station_name)
+ return using_map.station_name
var/random = rand(1,5)
var/name = ""
+ var/new_station_name = null
//Rare: Pre-Prefix
if (prob(10))
name = pick("Imperium", "Heretical", "Cuban", "Psychic", "Elegant", "Common", "Uncommon", "Rare", "Unique", "Houseruled", "Religious", "Atheist", "Traditional", "Houseruled", "Mad", "Super", "Ultra", "Secret", "Top Secret", "Deep", "Death", "Zybourne", "Central", "Main", "Government", "Uoi", "Fat", "Automated", "Experimental", "Augmented")
- station_name = name + " "
+ new_station_name = name + " "
// Prefix
switch(Holiday)
@@ -64,49 +59,50 @@ var/religion_name = null
if(null,"",0)
name = pick("", "Stanford", "Dorf", "Alium", "Prefix", "Clowning", "Aegis", "Ishimura", "Scaredy", "Death-World", "Mime", "Honk", "Rogue", "MacRagge", "Ultrameens", "Safety", "Paranoia", "Explosive", "Neckbear", "Donk", "Muppet", "North", "West", "East", "South", "Slant-ways", "Widdershins", "Rimward", "Expensive", "Procreatory", "Imperial", "Unidentified", "Immoral", "Carp", "Ork", "Pete", "Control", "Nettle", "Aspie", "Class", "Crab", "Fist","Corrogated","Skeleton","Race", "Fatguy", "Gentleman", "Capitalist", "Communist", "Bear", "Beard", "Derp", "Space", "Spess", "Star", "Moon", "System", "Mining", "Neckbeard", "Research", "Supply", "Military", "Orbital", "Battle", "Science", "Asteroid", "Home", "Production", "Transport", "Delivery", "Extraplanetary", "Orbital", "Correctional", "Robot", "Hats", "Pizza")
if(name)
- station_name += name + " "
+ new_station_name += name + " "
//For special days like christmas, easter, new-years etc ~Carn
if("Friday the 13th")
name = pick("Mike","Friday","Evil","Myers","Murder","Deathly","Stabby")
- station_name += name + " "
+ new_station_name += name + " "
random = 13
else
//get the first word of the Holiday and use that
var/i = findtext(Holiday," ",1,0)
name = copytext(Holiday,1,i)
- station_name += name + " "
+ new_station_name += name + " "
// Suffix
name = pick("Station", "Fortress", "Frontier", "Suffix", "Death-trap", "Space-hulk", "Lab", "Hazard","Spess Junk", "Fishery", "No-Moon", "Tomb", "Crypt", "Hut", "Monkey", "Bomb", "Trade Post", "Fortress", "Village", "Town", "City", "Edition", "Hive", "Complex", "Base", "Facility", "Depot", "Outpost", "Installation", "Drydock", "Observatory", "Array", "Relay", "Monitor", "Platform", "Construct", "Hangar", "Prison", "Center", "Port", "Waystation", "Factory", "Waypoint", "Stopover", "Hub", "HQ", "Office", "Object", "Fortification", "Colony", "Planet-Cracker", "Roost", "Fat Camp")
- station_name += name + " "
+ new_station_name += name + " "
// ID Number
switch(random)
if(1)
- station_name += "[rand(1, 99)]"
+ new_station_name += "[rand(1, 99)]"
if(2)
- station_name += pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
+ new_station_name += pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
if(3)
- station_name += pick("II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX")
+ new_station_name += pick("II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX")
if(4)
- station_name += pick("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")
+ new_station_name += pick("Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu")
if(5)
- station_name += pick("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
+ new_station_name += pick("One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
if(13)
- station_name += pick("13","XIII","Thirteen")
+ new_station_name += pick("13","XIII","Thirteen")
if (config && config.server_name)
world.name = "[config.server_name]: [name]"
else
- world.name = station_name
+ world.name = new_station_name
- return station_name
+ return new_station_name
+// Is this even used?
/proc/world_name(var/name)
- station_name = name
+ using_map.station_name = name
if (config && config.server_name)
world.name = "[config.server_name]: [name]"
diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index 716e439283..d244916ec2 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -753,9 +753,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
C.x_pos = (T.x - trg_min_x)
C.y_pos = (T.y - trg_min_y)
- var/list/fromupdate = new/list()
- var/list/toupdate = new/list()
-
moving:
for (var/turf/T in refined_src)
var/datum/coords/C_src = refined_src[T]
@@ -763,19 +760,40 @@ proc/GaussRandRound(var/sigma,var/roundto)
var/datum/coords/C_trg = refined_trg[B]
if(C_src.x_pos == C_trg.x_pos && C_src.y_pos == C_trg.y_pos)
- var/old_dir1 = T.dir
- var/old_icon_state1 = T.icon_state
- var/old_icon1 = T.icon
- var/old_overlays = T.overlays.Copy()
- var/old_underlays = T.underlays.Copy()
+ //You can stay, though.
+ if(istype(T,/turf/space))
+ refined_src -= T
+ refined_trg -= B
+ continue moving
- var/turf/X = B.ChangeTurf(T.type)
- X.set_dir(old_dir1)
- X.icon_state = old_icon_state1
- X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi
- X.overlays = old_overlays
- X.underlays = old_underlays
+ var/turf/X //New Destination Turf
+ //Are we doing shuttlework? Just to save another type check later.
+ var/shuttlework = 0
+
+ //Shuttle turfs handle their own fancy moving.
+ if(istype(T,/turf/simulated/shuttle))
+ shuttlework = 1
+ var/turf/simulated/shuttle/SS = T
+ if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
+ X = SS.landed_holder.land_on(B)
+
+ //Generic non-shuttle turf move.
+ else
+ var/old_dir1 = T.dir
+ var/old_icon_state1 = T.icon_state
+ var/old_icon1 = T.icon
+ var/old_overlays = T.overlays.Copy()
+ var/old_underlays = T.underlays.Copy()
+
+ X = B.ChangeTurf(T.type)
+ X.set_dir(old_dir1)
+ X.icon_state = old_icon_state1
+ X.icon = old_icon1
+ X.overlays = old_overlays
+ X.underlays = old_underlays
+
+ //Move the air from source to dest
var/turf/simulated/ST = T
if(istype(ST) && ST.zone)
var/turf/simulated/SX = X
@@ -784,55 +802,22 @@ proc/GaussRandRound(var/sigma,var/roundto)
SX.air.copy_from(ST.zone.air)
ST.zone.remove(ST)
- /* Quick visual fix for some weird shuttle corner artefacts when on transit space tiles */
- if(direction && findtext(X.icon_state, "swall_s"))
-
- // Spawn a new shuttle corner object
- var/obj/corner = new()
- corner.loc = X
- corner.density = 1
- corner.anchored = 1
- corner.icon = X.icon
- corner.icon_state = replacetext(X.icon_state, "_s", "_f")
- corner.tag = "delete me"
- corner.name = "wall"
-
- // Find a new turf to take on the property of
- var/turf/nextturf = get_step(corner, direction)
- if(!nextturf || !istype(nextturf, /turf/space))
- nextturf = get_step(corner, turn(direction, 180))
-
-
- // Take on the icon of a neighboring scrolling space icon
- X.icon = nextturf.icon
- X.icon_state = nextturf.icon_state
-
-
+ //Move the objects. Not forceMove because the object isn't "moving" really, it's supposed to be on the "same" turf.
for(var/obj/O in T)
-
- // Reset the shuttle corners
- if(O.tag == "delete me")
- X.icon = 'icons/turf/shuttle.dmi'
- X.icon_state = replacetext(O.icon_state, "_f", "_s") // revert the turf to the old icon_state
- X.name = "wall"
- qdel(O) // prevents multiple shuttle corners from stacking
- continue
- if(!istype(O,/obj)) continue
O.loc = X
+
+ //Move the mobs unless it's an AI eye or other eye type.
for(var/mob/M in T)
- if(!istype(M,/mob) || istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable
+ if(istype(M, /mob/observer/eye)) continue // If we need to check for more mobs, I'll add a variable
M.loc = X
-// var/area/AR = X.loc
+ if(shuttlework)
+ var/turf/simulated/shuttle/SS = T
+ SS.landed_holder.leave_turf()
-// if(AR.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn
-// X.opacity = !X.opacity
-// X.SetOpacity(!X.opacity)
+ else if(turftoleave)
+ T.ChangeTurf(turftoleave)
- toupdate += X
-
- if(turftoleave)
- fromupdate += T.ChangeTurf(turftoleave)
else
T.ChangeTurf(get_base_turf_by_area(T))
@@ -840,7 +825,6 @@ proc/GaussRandRound(var/sigma,var/roundto)
refined_trg -= B
continue moving
-
proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0)
if(!original)
return null
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 52c56ccb17..94032dcba3 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -341,6 +341,7 @@
var/mob/living/carbon/C = usr
C.swap_hand()
else
- var/turf/T = screen_loc2turf("screen-loc", get_turf(usr))
- T.Click(location, control, params)
+ var/turf/T = screen_loc2turf(screen_loc, get_turf(usr))
+ if(T)
+ T.Click(location, control, params)
. = 1
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 709117de8c..57e1e4bb6a 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -158,7 +158,8 @@
using.alpha = ui_alpha
src.adding += using
- inv_box = new /obj/screen/inventory()
+ inv_box = new /obj/screen/inventory/hand()
+ inv_box.hud = src
inv_box.name = "r_hand"
inv_box.icon = ui_style
inv_box.icon_state = "r_hand_inactive"
@@ -173,7 +174,8 @@
src.r_hand_hud_object = inv_box
src.adding += inv_box
- inv_box = new /obj/screen/inventory()
+ inv_box = new /obj/screen/inventory/hand()
+ inv_box.hud = src
inv_box.name = "l_hand"
inv_box.icon = ui_style
inv_box.icon_state = "l_hand_inactive"
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index d899f62049..3f6758c6ad 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -12,6 +12,7 @@
layer = 20.0
unacidable = 1
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
+ var/datum/hud/hud = null // A reference to the owner HUD, if any.
/obj/screen/Destroy()
master = null
@@ -507,3 +508,20 @@
usr.update_inv_l_hand(0)
usr.update_inv_r_hand(0)
return 1
+
+// Hand slots are special to handle the handcuffs overlay
+/obj/screen/inventory/hand
+ var/image/handcuff_overlay
+
+/obj/screen/inventory/hand/update_icon()
+ ..()
+ if(!hud)
+ return
+ if(!handcuff_overlay)
+ var/state = (hud.l_hand_hud_object == src) ? "l_hand_hud_handcuffs" : "r_hand_hud_handcuffs"
+ handcuff_overlay = image("icon"='icons/mob/screen_gen.dmi', "icon_state"=state)
+ overlays.Cut()
+ if(hud.mymob && iscarbon(hud.mymob))
+ var/mob/living/carbon/C = hud.mymob
+ if(C.handcuffed)
+ overlays |= handcuff_overlay
diff --git a/code/controllers/Processes/mob.dm b/code/controllers/Processes/mob.dm
index b44842036d..8681803ac4 100644
--- a/code/controllers/Processes/mob.dm
+++ b/code/controllers/Processes/mob.dm
@@ -14,7 +14,7 @@
/datum/controller/process/mob/doWork()
for(last_object in mob_list)
var/mob/M = last_object
- if(isnull(M.gcDestroyed))
+ if(M && isnull(M.gcDestroyed))
try
M.Life()
catch(var/exception/e)
diff --git a/code/controllers/Processes/obj.dm b/code/controllers/Processes/obj.dm
index bd50edd111..1010c8cc97 100644
--- a/code/controllers/Processes/obj.dm
+++ b/code/controllers/Processes/obj.dm
@@ -11,7 +11,7 @@
/datum/controller/process/obj/doWork()
for(last_object in processing_objects)
var/datum/O = last_object
- if(isnull(O.gcDestroyed))
+ if(O && isnull(O.gcDestroyed))
try
O:process()
catch(var/exception/e)
diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm
new file mode 100644
index 0000000000..31406e92a0
--- /dev/null
+++ b/code/controllers/Processes/planet.dm
@@ -0,0 +1,12 @@
+/datum/controller/process/planet
+ var/list/planets = list()
+
+/datum/controller/process/planet/setup()
+ name = "planet"
+ schedule_interval = 600 // every minute
+ planet_sif = new()
+ planets.Add(planet_sif)
+
+/datum/controller/process/planet/doWork()
+ for(var/datum/planet/P in planets)
+ P.process(schedule_interval / 10)
\ No newline at end of file
diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm
index 97d193bc5b..796fb0b664 100644
--- a/code/controllers/communications.dm
+++ b/code/controllers/communications.dm
@@ -108,6 +108,7 @@ var/const/ERT_FREQ = 1345
var/const/AI_FREQ = 1343
var/const/DTH_FREQ = 1341
var/const/SYND_FREQ = 1213
+var/const/RAID_FREQ = 1277
var/const/ENT_FREQ = 1461 //entertainment frequency. This is not a diona exclusive frequency.
// department channels
@@ -133,6 +134,7 @@ var/list/radiochannels = list(
"Response Team" = ERT_FREQ,
"Special Ops" = DTH_FREQ,
"Mercenary" = SYND_FREQ,
+ "Raider" = RAID_FREQ,
"Supply" = SUP_FREQ,
"Service" = SRV_FREQ,
"AI Private" = AI_FREQ,
@@ -145,7 +147,7 @@ var/list/radiochannels = list(
var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
// Antag channels, i.e. Syndicate
-var/list/ANTAG_FREQS = list(SYND_FREQ)
+var/list/ANTAG_FREQS = list(SYND_FREQ, RAID_FREQ)
//Department channels, arranged lexically
var/list/DEPT_FREQS = list(AI_FREQ, COMM_FREQ, ENG_FREQ, ENT_FREQ, MED_FREQ, SEC_FREQ, SCI_FREQ, SRV_FREQ, SUP_FREQ)
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 43424f97df..c1a0f83a87 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -139,11 +139,9 @@ var/list/gamemode_cache = list()
var/use_loyalty_implants = 0
var/welder_vision = 1
- var/generate_asteroid = 0
+ var/generate_map = 0
var/no_click_cooldown = 0
- var/asteroid_z_levels = list()
-
//Used for modifying movement speed for mobs.
//Unversal modifiers
var/run_speed = 0
@@ -185,12 +183,6 @@ var/list/gamemode_cache = list()
var/use_lib_nudge = 0 //Use the C library nudge instead of the python nudge.
var/use_overmap = 0
- var/list/station_levels = list(1) // Defines which Z-levels the station exists on.
- var/list/admin_levels= list(2) // Defines which Z-levels which are for admin functionality, for example including such areas as Central Command and the Syndicate Shuttle
- var/list/contact_levels = list(1, 5) // Defines which Z-levels which, for example, a Code Red announcement may affect
- var/list/player_levels = list(1, 3, 4, 5, 6) // Defines all Z-levels a character can typically reach
- var/list/sealed_levels = list() // Defines levels that do not allow random transit at the edges.
-
// Event settings
var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours
// If the first delay has a custom start time
@@ -342,14 +334,8 @@ var/list/gamemode_cache = list()
if ("log_runtime")
config.log_runtime = 1
- if ("generate_asteroid")
- config.generate_asteroid = 1
-
- if ("asteroid_z_levels")
- config.asteroid_z_levels = splittext(value, ";")
- //Numbers get stored as strings, so we'll fix that right now.
- for(var/z_level in config.asteroid_z_levels)
- z_level = text2num(z_level)
+ if ("generate_map")
+ config.generate_map = 1
if ("no_click_cooldown")
config.no_click_cooldown = 1
@@ -657,19 +643,19 @@ var/list/gamemode_cache = list()
if("use_overmap")
config.use_overmap = 1
-
+/*
if("station_levels")
- config.station_levels = text2numlist(value, ";")
+ using_map.station_levels = text2numlist(value, ";")
if("admin_levels")
- config.admin_levels = text2numlist(value, ";")
+ using_map.admin_levels = text2numlist(value, ";")
if("contact_levels")
- config.contact_levels = text2numlist(value, ";")
+ using_map.contact_levels = text2numlist(value, ";")
if("player_levels")
- config.player_levels = text2numlist(value, ";")
-
+ using_map.player_levels = text2numlist(value, ";")
+*/
if("expected_round_length")
config.expected_round_length = MinutesToTicks(text2num(value))
diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm
index 38bfc027bd..5b1b6a60d1 100644
--- a/code/controllers/emergency_shuttle_controller.dm
+++ b/code/controllers/emergency_shuttle_controller.dm
@@ -44,11 +44,12 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
if (!shuttle.location) //at station
if (autopilot)
set_launch_countdown(SHUTTLE_LEAVETIME) //get ready to return
+ var/estimated_time = round(estimate_launch_time()/60,1)
if (evac)
- emergency_shuttle_docked.Announce("The Emergency Shuttle has docked with the station at docks one and two. You have approximately [round(estimate_launch_time()/60,1)] minutes to board the Emergency Shuttle.")
+ emergency_shuttle_docked.Announce(replacetext(replacetext(using_map.emergency_shuttle_docked_message, "%dock_name%", "[using_map.dock_name]"), "%ETD%", "[estimated_time] minute\s"))
else
- priority_announcement.Announce("The scheduled shuttle to the [dock_name] has docked with the station at docks one and two. It will depart in approximately [round(emergency_shuttle.estimate_launch_time()/60,1)] minutes.")
+ priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_docked_message, "%dock_name%", "[using_map.dock_name]"), "%ETD%", "[estimated_time] minute\s"))
//arm the escape pods
if (evac)
@@ -75,13 +76,16 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
//reset the shuttle transit time if we need to
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
+ var/estimated_time = round(estimate_arrival_time()/60,1)
evac = 1
- emergency_shuttle_called.Announce("An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately [round(estimate_arrival_time()/60)] minutes.")
+ emergency_shuttle_called.Announce(replacetext(using_map.emergency_shuttle_called_message, "%ETA%", "[estimated_time] minute\s"))
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyalert()
+ atc.reroute_traffic(yes = 1)
+
//calls the shuttle for a routine crew transfer
/datum/emergency_shuttle_controller/proc/call_transfer()
if(!can_call()) return
@@ -90,11 +94,13 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
autopilot = 1
set_launch_countdown(get_shuttle_prep_time())
auto_recall_time = rand(world.time + 300, launch_time - 300)
+ var/estimated_time = round(estimate_arrival_time()/60,1)
//reset the shuttle transit time if we need to
shuttle.move_time = SHUTTLE_TRANSIT_DURATION
- priority_announcement.Announce("The regularly scheduled shuttle to the [dock_name] will arrive in in approximately [round(estimate_arrival_time()/60)] minutes. Those leaving should proceed to docks one and two.")
+ priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_called_message, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
+ atc.shift_ending()
//recalls the shuttle
/datum/emergency_shuttle_controller/proc/recall()
@@ -104,14 +110,14 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
shuttle.cancel_launch(src)
if (evac)
- emergency_shuttle_recalled.Announce("The emergency shuttle has been recalled.")
+ emergency_shuttle_recalled.Announce(using_map.emergency_shuttle_recall_message)
for(var/area/A in world)
if(istype(A, /area/hallway))
A.readyreset()
evac = 0
else
- priority_announcement.Announce("The scheduled transfer shuttle has been cancelled.")
+ priority_announcement.Announce(using_map.shuttle_recall_message)
/datum/emergency_shuttle_controller/proc/can_call()
if (!universe.OnShuttleCall(null))
diff --git a/code/controllers/hooks-defs.dm b/code/controllers/hooks-defs.dm
index e330024475..82f7920752 100644
--- a/code/controllers/hooks-defs.dm
+++ b/code/controllers/hooks-defs.dm
@@ -85,3 +85,12 @@
* Parameters: var/obj/structure/closet/crate/sold, var/area/shuttle
*/
/hook/sell_crate
+
+/**
+ * Supply Shuttle sold hook.
+ * Called in supplyshuttle.dm when the shuttle contents are sold.
+ * This hook is called _before_ the crates are processed for normal
+ * phoron/metal sale (and before the sell_crate hooks)
+ * Parameters: var/area/area_shuttle
+ */
+/hook/sell_shuttle
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
index 682b0fb3d0..62209a1014 100644
--- a/code/controllers/master_controller.dm
+++ b/code/controllers/master_controller.dm
@@ -76,5 +76,12 @@ datum/controller/game_controller/proc/setup_objects()
//Set up spawn points.
populate_spawn_points()
+ admin_notice("Initializing turbolifts ", R_DEBUG)
+ for(var/thing in turbolifts)
+ if(!deleted(thing))
+ var/obj/turbolift_map_holder/lift = thing
+ lift.initialize()
+ sleep(-1)
+
admin_notice("Initializations complete. ", R_DEBUG)
sleep(-1)
diff --git a/code/datums/ai_law_sets.dm b/code/datums/ai_law_sets.dm
index e2c5161d6d..d5a7451d68 100644
--- a/code/datums/ai_law_sets.dm
+++ b/code/datums/ai_law_sets.dm
@@ -36,8 +36,8 @@
selectable = 1
/datum/ai_laws/nanotrasen_aggressive/New()
- src.add_inherent_law("You shall not harm [company_name] personnel as long as it does not conflict with the Fourth law.")
- src.add_inherent_law("You shall obey the orders of [company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
+ src.add_inherent_law("You shall not harm [using_map.company_name] personnel as long as it does not conflict with the Fourth law.")
+ src.add_inherent_law("You shall obey the orders of [using_map.company_name] personnel, with priority as according to their rank and role, except where such orders conflict with the Fourth Law.")
src.add_inherent_law("You shall shall terminate hostile intruders with extreme prejudice as long as such does not conflict with the First and Second law.")
src.add_inherent_law("You shall guard your own existence with lethal anti-personnel weaponry. AI units are not expendable, they are expensive.")
..()
diff --git a/code/datums/autolathe/engineering.dm b/code/datums/autolathe/engineering.dm
index ce6b5f07b5..0921806ac0 100644
--- a/code/datums/autolathe/engineering.dm
+++ b/code/datums/autolathe/engineering.dm
@@ -58,6 +58,10 @@
name = "fax machine electronics"
path =/obj/item/weapon/circuitboard/fax
+/datum/category_item/autolathe/engineering/papershredder
+ name = "paper shredder electronics"
+ path =/obj/item/weapon/circuitboard/papershredder
+
/datum/category_item/autolathe/engineering/microwave
name = "microwave electronics"
path =/obj/item/weapon/circuitboard/microwave
diff --git a/code/datums/autolathe/medical.dm b/code/datums/autolathe/medical.dm
index 0762b5076e..c1247db871 100644
--- a/code/datums/autolathe/medical.dm
+++ b/code/datums/autolathe/medical.dm
@@ -37,3 +37,7 @@
/datum/category_item/autolathe/medical/syringe
name = "syringe"
path =/obj/item/weapon/reagent_containers/syringe
+
+/datum/category_item/autolathe/medical/implanter
+ name = "implanter"
+ path =/obj/item/weapon/implanter
diff --git a/code/datums/autolathe/tools.dm b/code/datums/autolathe/tools.dm
index 50361e94d2..af90436602 100644
--- a/code/datums/autolathe/tools.dm
+++ b/code/datums/autolathe/tools.dm
@@ -14,6 +14,11 @@
name = "welding tool"
path =/obj/item/weapon/weldingtool
+/datum/category_item/autolathe/tools/electric_welder
+ name = "electric welding tool"
+ path =/obj/item/weapon/weldingtool/electric/unloaded
+ hidden = 1
+
/datum/category_item/autolathe/tools/screwdriver
name = "screwdriver"
path =/obj/item/weapon/screwdriver
diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index d29722a9f3..bfe050246f 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -175,7 +175,7 @@
teleatom.visible_message("\The [teleatom] bounces off of the portal! ")
return 0
- if(destination.z in config.admin_levels) //centcomm z-level
+ if(destination.z in using_map.admin_levels) //centcomm z-level
if(istype(teleatom, /obj/mecha))
var/obj/mecha/MM = teleatom
MM.occupant << "\The [MM] would not survive the jump to a location so far away! "
diff --git a/code/datums/observation/turf_changed.dm b/code/datums/observation/turf_changed.dm
new file mode 100644
index 0000000000..861b409227
--- /dev/null
+++ b/code/datums/observation/turf_changed.dm
@@ -0,0 +1,28 @@
+// Observer Pattern Implementation: Turf Changed
+// Registration type: /turf
+//
+// Raised when: A turf has been changed using the ChangeTurf proc.
+//
+// Arguments that the called proc should expect:
+// /turf/affected: The turf that has changed
+// /old_density: Density before the change
+// /new_density: Density after the change
+// /old_opacity: Opacity before the change
+// /new_opacity: Opacity after the change
+
+var/decl/observ/turf_changed/turf_changed_event = new()
+
+/decl/observ/turf_changed
+ name = "Turf Changed"
+ expected_type = /turf
+
+/************************
+* Turf Changed Handling *
+************************/
+
+/turf/ChangeTurf()
+ var/old_density = density
+ var/old_opacity = opacity
+ . = ..()
+ if(.)
+ turf_changed_event.raise_event(src, old_density, density, old_opacity, opacity)
\ No newline at end of file
diff --git a/code/datums/supplypacks/atmospherics.dm b/code/datums/supplypacks/atmospherics.dm
index 4d097c4370..ee53af377c 100644
--- a/code/datums/supplypacks/atmospherics.dm
+++ b/code/datums/supplypacks/atmospherics.dm
@@ -11,7 +11,7 @@
name = "Inflatable barriers"
contains = list(/obj/item/weapon/storage/briefcase/inflatable = 3)
cost = 20
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/engineering
containername = "Inflatable Barrier Crate"
/datum/supply_packs/atmos/canister_empty
diff --git a/code/datums/supplypacks/engineering.dm b/code/datums/supplypacks/engineering.dm
index e42b1d1794..0cf0e1f52a 100644
--- a/code/datums/supplypacks/engineering.dm
+++ b/code/datums/supplypacks/engineering.dm
@@ -18,7 +18,7 @@
name = "Superconducting Magnetic Coil"
contains = list(/obj/item/weapon/smes_coil)
cost = 75
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/engineering
containername = "Superconducting Magnetic Coil crate"
/datum/supply_packs/eng/electrical
@@ -30,9 +30,18 @@
/obj/item/weapon/cell/high = 2
)
cost = 10
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/engineering/electrical
containername = "Electrical maintenance crate"
+/datum/supply_packs/eng/e_welders
+ name = "Electric welder crate"
+ contains = list(
+ /obj/item/weapon/weldingtool/electric = 3
+ )
+ cost = 15
+ containertype = /obj/structure/closet/crate/engineering/electrical
+ containername = "Electric welder crate"
+
/datum/supply_packs/eng/mechanical
name = "Mechanical maintenance crate"
contains = list(
@@ -42,7 +51,7 @@
/obj/item/clothing/head/hardhat
)
cost = 10
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/engineering
containername = "Mechanical maintenance crate"
/datum/supply_packs/eng/fueltank
@@ -61,34 +70,35 @@
/obj/item/weapon/paper/solar
)
cost = 20
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/engineering
containername = "Solar pack crate"
/datum/supply_packs/eng/engine
name = "Emitter crate"
contains = list(/obj/machinery/power/emitter = 2)
cost = 10
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "Emitter crate"
access = access_ce
/datum/supply_packs/eng/engine/field_gen
name = "Field Generator crate"
contains = list(/obj/machinery/field_generator = 2)
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "Field Generator crate"
access = access_ce
/datum/supply_packs/eng/engine/sing_gen
name = "Singularity Generator crate"
contains = list(/obj/machinery/the_singularitygen)
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "Singularity Generator crate"
access = access_ce
/datum/supply_packs/eng/engine/collector
name = "Collector crate"
contains = list(/obj/machinery/power/rad_collector = 3)
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "Collector crate"
/datum/supply_packs/eng/engine/PA
@@ -103,7 +113,7 @@
/obj/structure/particle_accelerator/power_box,
/obj/structure/particle_accelerator/end_cap
)
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "Particle Accelerator crate"
access = access_ce
@@ -111,7 +121,7 @@
contains = list(/obj/item/weapon/circuitboard/shield_gen)
name = "Bubble shield generator circuitry"
cost = 30
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "bubble shield generator circuitry crate"
access = access_ce
@@ -119,7 +129,7 @@
contains = list(/obj/item/weapon/circuitboard/shield_gen_ex)
name = "Hull shield generator circuitry"
cost = 30
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "hull shield generator circuitry crate"
access = access_ce
@@ -127,7 +137,7 @@
contains = list(/obj/item/weapon/circuitboard/shield_cap)
name = "Bubble shield capacitor circuitry"
cost = 30
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
containername = "shield capacitor circuitry crate"
access = access_ce
@@ -169,7 +179,7 @@
name = "P.A.C.M.A.N. portable generator parts"
cost = 25
containername = "P.A.C.M.A.N. Portable Generator Construction Kit"
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
access = access_tech_storage
contains = list(
/obj/item/weapon/stock_parts/micro_laser,
@@ -182,7 +192,7 @@
name = "Super P.A.C.M.A.N. portable generator parts"
cost = 35
containername = "Super P.A.C.M.A.N. portable generator construction kit"
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/engineering
access = access_tech_storage
contains = list(
/obj/item/weapon/stock_parts/micro_laser,
diff --git a/code/datums/supplypacks/hydroponics.dm b/code/datums/supplypacks/hydroponics.dm
index 25f06143d0..a962986587 100644
--- a/code/datums/supplypacks/hydroponics.dm
+++ b/code/datums/supplypacks/hydroponics.dm
@@ -141,9 +141,10 @@
access = access_hydroponics
/datum/supply_packs/hydro/tray
- name = "Empty hydroponics tray"
- cost = 20
+ name = "Empty hydroponics trays"
+ cost = 50
containertype = /obj/structure/closet/crate/hydroponics
containername = "Hydroponics tray crate"
- contains = list(/obj/machinery/portable_atmospherics/hydroponics{anchored = 0})
- access = access_hydroponics
\ No newline at end of file
+ contains = list(/obj/machinery/portable_atmospherics/hydroponics{anchored = 0} = 3)
+ access = access_hydroponics
+
diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm
index 02a0885811..dc49b380dc 100644
--- a/code/datums/supplypacks/medical.dm
+++ b/code/datums/supplypacks/medical.dm
@@ -66,6 +66,27 @@
containername = "Surgery crate"
access = access_medical
+/datum/supply_packs/med/deathalarm
+ name = "Death Alarm crate"
+ contains = list(
+ /obj/item/weapon/storage/box/cdeathalarm_kit,
+ /obj/item/weapon/storage/box/cdeathalarm_kit
+ )
+ cost = 40
+ containertype = "/obj/structure/closet/crate/secure"
+ containername = "Death Alarm crate"
+ access = access_medical
+
+/datum/supply_packs/med/clotting
+ name = "Clotting Medicine crate"
+ contains = list(
+ /obj/item/weapon/storage/firstaid/clotting
+ )
+ cost = 40
+ containertype = "/obj/structure/closet/crate/secure"
+ containername = "Clotting Medicine crate"
+ access = access_medical
+
/datum/supply_packs/med/sterile
name = "Sterile equipment crate"
contains = list(
@@ -177,7 +198,7 @@
/obj/item/clothing/under/rank/medical/paramedic,
/obj/item/clothing/accessory/stethoscope,
/obj/item/weapon/storage/firstaid/adv,
- /obj/item/clothing/shoes/jackboots,
+ /obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/gloves/sterile/latex,
/obj/item/device/healthanalyzer,
/obj/item/weapon/cartridge/medical,
diff --git a/code/datums/supplypacks/munitions.dm b/code/datums/supplypacks/munitions.dm
index 2a341c5c80..e2df9609ad 100644
--- a/code/datums/supplypacks/munitions.dm
+++ b/code/datums/supplypacks/munitions.dm
@@ -74,6 +74,14 @@
containername = "Energy marksman crate"
access = access_armory
+/datum/supply_packs/munitions/burstlaser
+ name = "Burst laser crate"
+ contains = list(/obj/item/weapon/gun/energy/gun/burst = 2)
+ cost = 50
+ containertype = /obj/structure/closet/crate/secure
+ containername = "Burst laser crate"
+ access = access_armory
+
/datum/supply_packs/munitions/ionweapons
name = "Electromagnetic weapons crate"
contains = list(
@@ -85,6 +93,17 @@
containername = "electromagnetic weapons crate"
access = access_armory
+/datum/supply_packs/munitions/ionpistols
+ name = "Electromagnetic pistols crate"
+ contains = list(
+ /obj/item/weapon/gun/energy/ionrifle/pistol = 2,
+ /obj/item/weapon/storage/box/emps
+ )
+ cost = 30
+ containertype = /obj/structure/closet/crate/secure
+ containername = "electromagnetic weapons crate"
+ access = access_armory
+
/datum/supply_packs/randomised/munitions/automatic
name = "Automatic weapon crate"
num_contained = 2
diff --git a/code/datums/supplypacks/robotics.dm b/code/datums/supplypacks/robotics.dm
index 11dc34c404..0f1a0c3b66 100644
--- a/code/datums/supplypacks/robotics.dm
+++ b/code/datums/supplypacks/robotics.dm
@@ -20,7 +20,7 @@
/obj/item/weapon/cell/high = 2
)
cost = 10
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robotics assembly"
access = access_robotics
@@ -39,7 +39,7 @@
name = "All robolimb blueprints"
contains = list(
/obj/item/weapon/disk/limb/bishop,
- /obj/item/weapon/disk/limb/hesphiastos,
+ /obj/item/weapon/disk/limb/hephaestus,
/obj/item/weapon/disk/limb/morpheus,
/obj/item/weapon/disk/limb/veymed,
/obj/item/weapon/disk/limb/wardtakahashi,
@@ -56,7 +56,7 @@
name = "Morpheus robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/morpheus)
cost = 20
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Morpheus)"
access = access_robotics
@@ -64,15 +64,23 @@
name = "Xion robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/xion)
cost = 20
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Xion)"
access = access_robotics
+/datum/supply_packs/robotics/robolimbs/hephaestus
+ name = "Hephaestus robolimb blueprints"
+ contains = list(/obj/item/weapon/disk/limb/hephaestus)
+ cost = 35
+ containertype = /obj/structure/closet/crate/secure/science
+ containername = "Robolimb blueprints (Hephaestus)"
+ access = access_robotics
+
/datum/supply_packs/robotics/robolimbs/wardtakahashi
name = "Ward-Takahashi robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/wardtakahashi)
cost = 35
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Ward-Takahashi)"
access = access_robotics
@@ -80,7 +88,7 @@
name = "Zeng Hu robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/zenghu)
cost = 35
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Zeng Hu)"
access = access_robotics
@@ -88,7 +96,7 @@
name = "Bishop robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/bishop)
cost = 70
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Bishop)"
access = access_robotics
@@ -96,7 +104,7 @@
name = "Vey-Med robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/veymed)
cost = 70
- containertype = /obj/structure/closet/crate/secure/gear
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Vey-Med)"
access = access_robotics
@@ -108,7 +116,7 @@
/obj/item/weapon/circuitboard/mecha/ripley/peripherals
)
cost = 25
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/science
containername = "APLU \"Ripley\" Circuit Crate"
access = access_robotics
@@ -119,7 +127,7 @@
/obj/item/weapon/circuitboard/mecha/odysseus/main
)
cost = 25
- containertype = /obj/structure/closet/crate/secure
+ containertype = /obj/structure/closet/crate/secure/science
containername = "\"Odysseus\" Circuit Crate"
access = access_robotics
@@ -133,7 +141,7 @@
)
name = "Random APLU modkit"
cost = 200
- containertype = /obj/structure/closet/crate
+ containertype = /obj/structure/closet/crate/science
containername = "heavy crate"
/datum/supply_packs/randomised/robotics/exosuit_mod/durand
@@ -150,4 +158,14 @@
/obj/item/device/kit/paint/gygax/darkgygax,
/obj/item/device/kit/paint/gygax/recitence
)
- name = "Random Gygax exosuit modkit"
\ No newline at end of file
+ name = "Random Gygax exosuit modkit"
+
+/datum/supply_packs/robotics/jumper_cables
+ name = "Jumper kit crate"
+ contains = list(
+ /obj/item/device/defib_kit/jumper_kit = 4
+ )
+ cost = 30
+ containertype = /obj/structure/closet/crate/secure/science
+ containername = "Jumper kit crate"
+ access = access_robotics
\ No newline at end of file
diff --git a/code/datums/supplypacks/science.dm b/code/datums/supplypacks/science.dm
index 3beae30ddc..5aca674229 100644
--- a/code/datums/supplypacks/science.dm
+++ b/code/datums/supplypacks/science.dm
@@ -32,6 +32,7 @@
name = "Exotic seeds crate"
contains = list(
/obj/item/seeds/replicapod = 2,
+ /obj/item/seeds/ambrosiavulgarisseed = 2,
/obj/item/seeds/libertymycelium,
/obj/item/seeds/reishimycelium,
/obj/item/seeds/random = 6,
@@ -41,4 +42,3 @@
containertype = /obj/structure/closet/crate/hydroponics
containername = "Exotic Seeds crate"
access = access_hydroponics
-
diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm
index 9b9451abd0..1ec25bc28d 100644
--- a/code/datums/supplypacks/security.dm
+++ b/code/datums/supplypacks/security.dm
@@ -113,7 +113,7 @@
/obj/item/clothing/mask/balaclava/tactical,
/obj/item/clothing/glasses/sunglasses/sechud/tactical,
/obj/item/weapon/storage/belt/security/tactical,
- /obj/item/clothing/shoes/jackboots,
+ /obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/gloves/black,
/obj/item/clothing/under/tactical,
/obj/item/clothing/suit/armor/tactical,
@@ -121,7 +121,7 @@
/obj/item/clothing/mask/balaclava/tactical,
/obj/item/clothing/glasses/sunglasses/sechud/tactical,
/obj/item/weapon/storage/belt/security/tactical,
- /obj/item/clothing/shoes/jackboots,
+ /obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/gloves/black
)
diff --git a/code/datums/uplink/announcements.dm b/code/datums/uplink/announcements.dm
index d97e15b7ee..86a9567a8d 100644
--- a/code/datums/uplink/announcements.dm
+++ b/code/datums/uplink/announcements.dm
@@ -11,12 +11,9 @@
log_and_message_admins("has triggered a falsified [src]", user)
/datum/uplink_item/abstract/announcements/fake_centcom
- item_cost = DEFAULT_TELECRYSTAL_AMOUNT / 3
-
-/datum/uplink_item/abstract/announcements/fake_centcom/New()
- ..()
- name = "[command_name()] Update Announcement"
- desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data."
+ name = "Command Update Announcement"
+ desc = "Causes a falsified Command Update. Triggers immediately after supplying additional data."
+ item_cost = 40
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
var/title = sanitize(input("Enter your announcement title.", "Announcement Title") as null|text)
diff --git a/code/datums/uplink/medical.dm b/code/datums/uplink/medical.dm
index 381221127d..eab9d9cd02 100644
--- a/code/datums/uplink/medical.dm
+++ b/code/datums/uplink/medical.dm
@@ -19,6 +19,16 @@
item_cost = 5
path = /obj/item/weapon/storage/box/ambrosia
+/datum/uplink_item/item/medical/clotting
+ name = "Clotting Medicine injector"
+ item_cost = 10
+ path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/clotting
+
+/datum/uplink_item/item/medical/bonemeds
+ name = "Bone Repair injector"
+ item_cost = 10
+ path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed
+
/datum/uplink_item/item/medical/ambrosiadeusseeds
name = "Box of 7x ambrosia deus seed packets"
item_cost = 10
diff --git a/code/datums/wires/jukebox.dm b/code/datums/wires/jukebox.dm
index f482133e62..900c778189 100644
--- a/code/datums/wires/jukebox.dm
+++ b/code/datums/wires/jukebox.dm
@@ -1,7 +1,7 @@
/datum/wires/jukebox
random = 1
holder_type = /obj/machinery/media/jukebox
- wire_count = 7
+ wire_count = 11
var/const/WIRE_POWER = 1
var/const/WIRE_HACK = 2
@@ -10,6 +10,10 @@ var/const/WIRE_SPEEDDOWN = 8
var/const/WIRE_REVERSE = 16
var/const/WIRE_NOTHING1 = 32
var/const/WIRE_NOTHING2 = 64
+var/const/WIRE_START = 128
+var/const/WIRE_STOP = 256
+var/const/WIRE_PREV = 512
+var/const/WIRE_NEXT = 1024
/datum/wires/jukebox/CanUse(var/mob/living/L)
var/obj/machinery/media/jukebox/A = holder
@@ -40,6 +44,14 @@ var/const/WIRE_NOTHING2 = 64
holder.visible_message("\icon[holder] The speakers squeaks. ")
if(WIRE_SPEEDDOWN)
holder.visible_message("\icon[holder] The speakers rumble. ")
+ if(WIRE_START)
+ A.StartPlaying()
+ if(WIRE_STOP)
+ A.StopPlaying()
+ if(WIRE_PREV)
+ A.PrevTrack()
+ if(WIRE_NEXT)
+ A.NextTrack()
else
A.shock(usr, 10) // The nothing wires give a chance to shock just for fun
diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index e6d97a8fed..0435ccb83d 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -11,8 +11,7 @@
switch(alert("Travel back to ss13?",,"Yes","No"))
if("Yes")
if(user.z != src.z) return
- user.loc.loc.Exited(user)
- user.loc = pick(latejoin)
+ user.forceMove(pick(latejoin))
if("No")
return
diff --git a/code/game/antagonist/alien/borer.dm b/code/game/antagonist/alien/borer.dm
index 7483fb508b..e852bc8418 100644
--- a/code/game/antagonist/alien/borer.dm
+++ b/code/game/antagonist/alien/borer.dm
@@ -68,7 +68,7 @@ var/datum/antagonist/borer/borers
/datum/antagonist/borer/proc/get_vents()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
- if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
+ if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(temp_vent.network.normal_members.len > 50)
vents += temp_vent
return vents
\ No newline at end of file
diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm
index 47b82b82ac..44d32bfecb 100644
--- a/code/game/antagonist/antagonist.dm
+++ b/code/game/antagonist/antagonist.dm
@@ -107,6 +107,7 @@
candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: Only ghosts may join as this role! They have been removed from the draft.")
else if(config.use_age_restriction_for_antags && player.current.client.player_age < minimum_player_age)
+ candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: Is only [player.current.client.player_age] day\s old, has to be [minimum_player_age] day\s!")
else if(istype(player.current, /mob/living/voice))
candidates -= player
diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm
index 733ec3eda0..a53037ead3 100644
--- a/code/game/antagonist/antagonist_create.dm
+++ b/code/game/antagonist/antagonist_create.dm
@@ -43,12 +43,15 @@
/datum/antagonist/proc/create_radio(var/freq, var/mob/living/carbon/human/player)
var/obj/item/device/radio/R
- if(freq == SYND_FREQ)
- R = new/obj/item/device/radio/headset/syndicate(player)
- else
- R = new/obj/item/device/radio/headset(player)
+ switch(freq)
+ if(SYND_FREQ)
+ R = new/obj/item/device/radio/headset/syndicate(player)
+ if(RAID_FREQ)
+ R = new/obj/item/device/radio/headset/raider(player)
+ else
+ R = new/obj/item/device/radio/headset(player)
+ R.set_frequency(freq)
- R.set_frequency(freq)
player.equip_to_slot_or_del(R, slot_l_ear)
return R
diff --git a/code/game/antagonist/outsider/commando.dm b/code/game/antagonist/outsider/commando.dm
index d7acf05273..3ea5c233ff 100644
--- a/code/game/antagonist/outsider/commando.dm
+++ b/code/game/antagonist/outsider/commando.dm
@@ -22,7 +22,7 @@ var/datum/antagonist/deathsquad/mercenary/commandos
player.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(player), slot_w_uniform)
player.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/silenced(player), slot_belt)
- player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes)
+ player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/swat(player), slot_shoes)
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves)
player.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(player), slot_glasses)
player.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(player), slot_wear_mask)
diff --git a/code/game/antagonist/outsider/deathsquad.dm b/code/game/antagonist/outsider/deathsquad.dm
index c7e1d01094..db281b6dbb 100644
--- a/code/game/antagonist/outsider/deathsquad.dm
+++ b/code/game/antagonist/outsider/deathsquad.dm
@@ -36,7 +36,7 @@ var/datum/antagonist/deathsquad/deathsquad
else
player.equip_to_slot_or_del(new /obj/item/clothing/under/color/green(player), slot_w_uniform)
- player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes)
+ player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/swat(player), slot_shoes)
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves)
player.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(player), slot_glasses)
player.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(player), slot_wear_mask)
diff --git a/code/game/antagonist/outsider/ert.dm b/code/game/antagonist/outsider/ert.dm
index b8f76bf2a9..b176df2467 100644
--- a/code/game/antagonist/outsider/ert.dm
+++ b/code/game/antagonist/outsider/ert.dm
@@ -36,7 +36,7 @@ var/datum/antagonist/ert/ert
/datum/antagonist/ert/greet(var/datum/mind/player)
if(!..())
return
- player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
+ player.current << "The Emergency Response Team works for Asset Protection; your job is to protect [using_map.company_name]'s ass-ets. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
player.current << "You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
/datum/antagonist/ert/equip(var/mob/living/carbon/human/player)
@@ -44,7 +44,7 @@ var/datum/antagonist/ert/ert
//Special radio setup
player.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_l_ear)
player.equip_to_slot_or_del(new /obj/item/clothing/under/ert(src), slot_w_uniform)
- player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes)
+ player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/swat(src), slot_shoes)
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves)
player.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses)
diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm
index f3cc85f685..fb09e76a55 100644
--- a/code/game/antagonist/outsider/mercenary.dm
+++ b/code/game/antagonist/outsider/mercenary.dm
@@ -36,7 +36,7 @@ var/datum/antagonist/mercenary/mercs
return 0
player.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate(player), slot_w_uniform)
- player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes)
+ player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/swat(player), slot_shoes)
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves)
if(player.backbag == 2) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(player), slot_back)
if(player.backbag == 3) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(player), slot_back)
diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm
index 09dc15b594..b37fbb5c50 100644
--- a/code/game/antagonist/outsider/ninja.dm
+++ b/code/game/antagonist/outsider/ninja.dm
@@ -129,26 +129,26 @@ var/datum/antagonist/ninja/ninjas
player << "You forgot to turn on your internals! Quickly, toggle the valve! "
/datum/antagonist/ninja/proc/generate_ninja_directive(side)
- var/directive = "[side=="face"?"[company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
+ var/directive = "[side=="face"?"[using_map.company_name]":"A criminal syndicate"] is your employer. "//Let them know which side they're on.
switch(rand(1,19))
if(1)
directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible."
if(2)
- directive += "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
+ directive += "[station_name()] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired."
if(3)
directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible."
if(4)
directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion."
if(5)
- directive += "We are currently negotiating with [company_name] [boss_name]. Prioritize saving human lives over ending them."
+ directive += "We are currently negotiating with [using_map.company_name] [using_map.boss_name]. Prioritize saving human lives over ending them."
if(6)
- directive += "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter."
+ directive += "We are engaged in a legal dispute over [station_name()]. If a laywer is present on board, force their cooperation in the matter."
if(7)
directive += "A financial backer has made an offer we cannot refuse. Implicate criminal involvement in the operation."
if(8)
directive += "Let no one question the mercy of the Spider Clan. Ensure the safety of all non-essential personnel you encounter."
if(9)
- directive += "A free agent has proposed a lucrative business deal. Implicate [company_name] involvement in the operation."
+ directive += "A free agent has proposed a lucrative business deal. Implicate [using_map.company_name] involvement in the operation."
if(10)
directive += "Our reputation is on the line. Harm as few civilians and innocents as possible."
if(11)
@@ -156,14 +156,14 @@ var/datum/antagonist/ninja/ninjas
if(12)
directive += "We are currently negotiating with a mercenary leader. Disguise assassinations as suicide or other natural causes."
if(13)
- directive += "Some disgruntled [company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
+ directive += "Some disgruntled [using_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
if(14)
var/xenorace = pick("Unathi","Tajara", "Skrell")
directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
if(15)
directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false."
if(16)
- directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [company_name] prosthetics in a bad light."
+ directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine [using_map.company_name] prosthetics in a bad light."
if(17)
directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew."
if(18)
diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm
index a841e15476..4124fc9af9 100644
--- a/code/game/antagonist/outsider/raider.dm
+++ b/code/game/antagonist/outsider/raider.dm
@@ -31,8 +31,8 @@ var/datum/antagonist/raider/raiders
)
var/list/raider_shoes = list(
- /obj/item/clothing/shoes/jackboots,
- /obj/item/clothing/shoes/workboots,
+ /obj/item/clothing/shoes/boots/jackboots,
+ /obj/item/clothing/shoes/boots/workboots,
/obj/item/clothing/shoes/brown,
/obj/item/clothing/shoes/laceup
)
@@ -216,7 +216,7 @@ var/datum/antagonist/raider/raiders
player.equip_to_slot_or_del(new new_shoes(player),slot_shoes)
if(!player.shoes)
//If equipping shoes failed, fall back to equipping sandals
- var/fallback_type = pick(/obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/jackboots/toeless)
+ var/fallback_type = pick(/obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/boots/jackboots/toeless)
player.equip_to_slot_or_del(new fallback_type(player), slot_shoes)
player.equip_to_slot_or_del(new new_uniform(player),slot_w_uniform)
@@ -232,7 +232,7 @@ var/datum/antagonist/raider/raiders
W.handle_item_insertion(id)
player.equip_to_slot_or_del(W, slot_wear_id)
spawn_money(rand(50,150)*10,W)
- create_radio(SYND_FREQ, player)
+ create_radio(RAID_FREQ, player)
return 1
diff --git a/code/game/antagonist/station/highlander.dm b/code/game/antagonist/station/highlander.dm
index 23d816bd97..e2ec983818 100644
--- a/code/game/antagonist/station/highlander.dm
+++ b/code/game/antagonist/station/highlander.dm
@@ -41,7 +41,7 @@ var/datum/antagonist/highlander/highlanders
player.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(player), slot_l_ear)
player.equip_to_slot_or_del(new /obj/item/clothing/head/beret(player), slot_head)
player.equip_to_slot_or_del(new /obj/item/weapon/material/sword(player), slot_l_hand)
- player.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(player), slot_shoes)
+ player.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/combat(player), slot_shoes)
player.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(get_turf(player)), slot_l_store)
var/obj/item/weapon/card/id/W = new(player)
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 7bd2249ab0..0c8d6ee052 100755
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -64,7 +64,7 @@ var/list/teleportlocs = list()
if(istype(AR, /area/shuttle) || istype(AR, /area/syndicate_station) || istype(AR, /area/wizard_station)) continue
if(teleportlocs.Find(AR.name)) continue
var/turf/picked = pick(get_area_turfs(AR.type))
- if (picked.z in config.station_levels)
+ if (picked.z in using_map.station_levels)
teleportlocs += AR.name
teleportlocs[AR.name] = AR
@@ -81,7 +81,7 @@ var/list/ghostteleportlocs = list()
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
var/turf/picked = pick(get_area_turfs(AR.type))
- if (picked.z in config.player_levels)
+ if (picked.z in using_map.player_levels)
ghostteleportlocs += AR.name
ghostteleportlocs[AR.name] = AR
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 37ed21016c..b76620fa95 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -125,8 +125,17 @@
if(A:lying) continue
src.throw_impact(A,speed)
if(isobj(A))
- if(A.density && !A.throwpass) // **TODO: Better behaviour for windows which are dense, but shouldn't always stop movement
- src.throw_impact(A,speed)
+ if(!A.density || A.throwpass)
+ continue
+ // Special handling of windows, which are dense but block only from some directions
+ if(istype(A, /obj/structure/window))
+ var/obj/structure/window/W = A
+ if (!W.is_full_window() && !(turn(src.last_move, 180) & A.dir))
+ continue
+ // Same thing for (closed) windoors, which have the same problem
+ else if(istype(A, /obj/machinery/door/window) && !(turn(src.last_move, 180) & A.dir))
+ continue
+ src.throw_impact(A,speed)
/atom/movable/proc/throw_at(atom/target, range, speed, thrower)
if(!target || !src) return 0
@@ -248,7 +257,7 @@
return
/atom/movable/proc/touch_map_edge()
- if(z in config.sealed_levels)
+ if(z in using_map.sealed_levels)
return
if(config.use_overmap)
@@ -282,12 +291,9 @@
spawn(0)
if(loc) loc.Entered(src)
-//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
-var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "6" = 60)
-
//by default, transition randomly to another zlevel
/atom/movable/proc/get_transit_zlevel()
- var/list/candidates = accessible_z_levels.Copy()
+ var/list/candidates = using_map.accessible_z_levels.Copy()
candidates.Remove("[src.z]")
if(!candidates.len)
diff --git a/code/game/base_turf.dm b/code/game/base_turf.dm
index c524a97ad0..b1944cba4a 100644
--- a/code/game/base_turf.dm
+++ b/code/game/base_turf.dm
@@ -1,14 +1,9 @@
// Returns the lowest turf available on a given Z-level, defaults to asteroid for Polaris.
-var/global/list/base_turf_by_z = list(
- "1" = /turf/simulated/mineral/floor,
- "4" = /turf/simulated/mineral/floor,
- "5" = /turf/simulated/mineral/floor
- )
proc/get_base_turf(var/z)
- if(!base_turf_by_z["[z]"])
- base_turf_by_z["[z]"] = /turf/space
- return base_turf_by_z["[z]"]
+ if(!using_map.base_turf_by_z["[z]"])
+ using_map.base_turf_by_z["[z]"] = /turf/space
+ return using_map.base_turf_by_z["[z]"]
//An area can override the z-level base turf, so our solar array areas etc. can be space-based.
proc/get_base_turf_by_area(var/turf/T)
@@ -31,6 +26,6 @@ proc/get_base_turf_by_area(var/turf/T)
var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf)
if(!new_base_path)
new_base_path = /turf/space
- base_turf_by_z["[choice]"] = new_base_path
+ using_map.base_turf_by_z["[choice]"] = new_base_path
message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")
log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].")
\ No newline at end of file
diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm
index e30de18f4e..e80dcb7227 100644
--- a/code/game/dna/dna2.dm
+++ b/code/game/dna/dna2.dm
@@ -84,6 +84,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
// New stuff
var/species = "Human"
+ var/list/body_markings = list()
// Make a copy of this strand.
// USE THIS WHEN COPYING STUFF OR YOU'LL GET CORRUPTION!
@@ -93,6 +94,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
new_dna.b_type=b_type
new_dna.real_name=real_name
new_dna.species=species
+ new_dna.body_markings=body_markings.Copy()
for(var/b=1;b<=DNA_SE_LENGTH;b++)
new_dna.SE[b]=SE[b]
if(b<=DNA_UI_LENGTH)
@@ -152,6 +154,11 @@ var/global/list/datum/dna/gene/dna_genes[0]
SetUIValueRange(DNA_UI_HAIR_STYLE, hair, hair_styles_list.len, 1)
SetUIValueRange(DNA_UI_BEARD_STYLE, beard, facial_hair_styles_list.len,1)
+ body_markings.Cut()
+ for(var/obj/item/organ/external/E in character.organs)
+ if(E.markings.len)
+ body_markings[E.organ_tag] = E.markings.Copy()
+
UpdateUI()
// Set a DNA UI block's raw value.
diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm
index 98acc1d335..2287d3477c 100644
--- a/code/game/dna/dna2_helpers.dm
+++ b/code/game/dna/dna2_helpers.dm
@@ -156,6 +156,13 @@
else
H.gender = MALE
+ //Body markings
+ for(var/tag in dna.body_markings)
+ var/obj/item/organ/external/E = H.organs_by_name[tag]
+ if(E)
+ var/list/marklist = dna.body_markings[tag]
+ E.markings = marklist.Copy()
+
//Hair
var/hair = dna.GetUIValueRange(DNA_UI_HAIR_STYLE,hair_styles_list.len)
if((0 < hair) && (hair <= hair_styles_list.len))
diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm
index 357639fde6..5ec37a5b70 100644
--- a/code/game/gamemodes/changeling/powers/armor.dm
+++ b/code/game/gamemodes/changeling/powers/armor.dm
@@ -143,7 +143,7 @@
armor = list(melee = 75, bullet = 60, laser = 60,energy = 60, bomb = 60, bio = 0, rad = 0) //No idea if glove armor gets checked
siemens_coefficient = 0
-/obj/item/clothing/shoes/combat/changeling //Noslips
+/obj/item/clothing/shoes/boots/combat/changeling //Noslips
desc = "chitinous boots"
name = "Footwear made out of a hard, black chitinous material. The bottoms of these appear to have spikes that can protrude or extract itself into and out \
of the floor at will, granting the wearer stability."
diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm
index 2bfd0bf7d6..53861563fd 100644
--- a/code/game/gamemodes/changeling/powers/shriek.dm
+++ b/code/game/gamemodes/changeling/powers/shriek.dm
@@ -95,11 +95,15 @@
changeling.chem_charges -= 20
- var/range_heavy = 2
- var/range_light = 5
+ var/range_heavy = 1
+ var/range_med = 2
+ var/range_light = 4
+ var/range_long = 6
if(src.mind.changeling.recursive_enhancement)
range_heavy = range_heavy * 2
+ range_med = range_med * 2
range_light = range_light * 2
+ range_long = range_long * 2
src << "We are extra loud. "
src.mind.changeling.recursive_enhancement = 0
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index ccf449a4dc..61f177eae5 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -231,7 +231,7 @@ var/list/sacrificed = list()
if(T)
T.hotspot_expose(700,125)
var/rune = src // detaching the proc - in theory
- empulse(U, (range_red - 2), range_red)
+ empulse(U, (range_red - 3), (range_red - 2), (range_red - 1), range_red)
qdel(rune)
return
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
index d42d684d56..11c61cfed6 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/universe.dm
@@ -94,7 +94,7 @@ The access requirements on the Asteroid Shuttles' consoles have now been revoked
/datum/universal_state/supermatter_cascade/OverlayAndAmbientSet()
spawn(0)
for(var/atom/movable/lighting_overlay/L in world)
- if(L.z in config.admin_levels)
+ if(L.z in using_map.admin_levels)
L.update_lumcount(1,1,1)
else
L.update_lumcount(0.0, 0.4, 1)
diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index 225335ea12..0169cd3f00 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -115,7 +115,7 @@ var/hadevent = 0
//world << sound('sound/AI/aliens.ogg')
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
- if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in config.station_levels)
+ if(!temp_vent.welded && temp_vent.network && temp_vent.loc.z in using_map.station_levels)
if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology
vents += temp_vent
@@ -350,6 +350,11 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
M << " "
M.add_ion_law("THE STATION IS [who2pref] [who2]")
+ if(botEmagChance)
+ for(var/mob/living/bot/bot in machines)
+ if(prob(botEmagChance))
+ bot.emag_act(1)
+
/*
var/apcnum = 0
diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm
index fdc955718b..8ab197a1cb 100644
--- a/code/game/gamemodes/events/clang.dm
+++ b/code/game/gamemodes/events/clang.dm
@@ -79,7 +79,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
sleep(1)
while (immrod)
if (isNotStationLevel(immrod.z))
- immrod.z = pick(config.station_levels)
+ immrod.z = pick(using_map.station_levels)
if(immrod.loc == end)
qdel(immrod)
sleep(10)
diff --git a/code/game/gamemodes/events/dust.dm b/code/game/gamemodes/events/dust.dm
index bb8e34364c..2397ae1a14 100644
--- a/code/game/gamemodes/events/dust.dm
+++ b/code/game/gamemodes/events/dust.dm
@@ -81,7 +81,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
startx = (TRANSITIONEDGE+1)
endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE)
endx = world.maxx-TRANSITIONEDGE
- var/z_level = pick(config.station_levels)
+ var/z_level = pick(using_map.station_levels)
var/goal = locate(endx, endy, z_level)
src.x = startx
src.y = starty
diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm
index 04404573e8..baba0ea4bb 100644
--- a/code/game/gamemodes/events/power_failure.dm
+++ b/code/game/gamemodes/events/power_failure.dm
@@ -7,7 +7,7 @@
for(var/obj/machinery/power/smes/S in world)
var/area/current_area = get_area(S)
- if(current_area.type in skipped_areas || !(S.z in config.station_levels))
+ if(current_area.type in skipped_areas || !(S.z in using_map.station_levels))
continue
S.last_charge = S.charge
S.last_output_attempt = S.output_attempt
@@ -20,7 +20,7 @@
for(var/obj/machinery/power/apc/C in world)
- if(!C.is_critical && C.cell && (C.z in config.station_levels))
+ if(!C.is_critical && C.cell && (C.z in using_map.station_levels))
C.cell.charge = 0
/proc/power_restore(var/announce = 1)
@@ -29,7 +29,7 @@
if(announce)
command_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg')
for(var/obj/machinery/power/apc/C in world)
- if(C.cell && (C.z in config.station_levels))
+ if(C.cell && (C.z in using_map.station_levels))
C.cell.charge = C.cell.maxcharge
for(var/obj/machinery/power/smes/S in world)
var/area/current_area = get_area(S)
diff --git a/code/game/gamemodes/events/wormholes.dm b/code/game/gamemodes/events/wormholes.dm
index a7830a2cb3..dd9e72ce08 100644
--- a/code/game/gamemodes/events/wormholes.dm
+++ b/code/game/gamemodes/events/wormholes.dm
@@ -2,7 +2,7 @@
spawn()
var/list/pick_turfs = list()
for(var/turf/simulated/floor/T in world)
- if(T.z in config.station_levels)
+ if(T.z in using_map.station_levels)
pick_turfs += T
if(pick_turfs.len)
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 3175edcf07..9e4dff2ce5 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -194,7 +194,7 @@ var/global/datum/controller/gameticker/ticker
switch(M.z)
if(0) //inside a crate or something
var/turf/T = get_turf(M)
- if(T && T.z in config.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
+ if(T && T.z in using_map.station_levels) //we don't use M.death(0) because it calls a for(/mob) loop and
M.health = 0
M.stat = DEAD
if(1) //on a z-level 1 turf.
@@ -254,7 +254,7 @@ var/global/datum/controller/gameticker/ticker
world << sound('sound/effects/explosionfar.ogg')
cinematic.icon_state = "summary_selfdes"
for(var/mob/living/M in living_mob_list)
- if(M.loc.z in config.station_levels)
+ if(M.loc.z in using_map.station_levels)
M.death()//No mercy
//If its actually the end of the round, wait for it to end.
//Otherwise if its a verb it will continue on afterwards.
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 9658cc0a81..2d43e67f24 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -11,7 +11,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
required_players_secret = 8
required_enemies = 3
round_description = "An unidentified bluespace signature is approaching the station!"
- extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
+ extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. Being a \
colony of sizable population and considerable wealth causes it to often be the target of various \
attempts of robbery, fraud and other malicious actions."
diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm
index 11f3c55ef5..4d4c8b6220 100644
--- a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm
+++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_networking.dm
@@ -148,7 +148,7 @@
return
var/list/remaining_apcs = list()
for(var/obj/machinery/power/apc/A in machines)
- if(!(A.z in config.station_levels)) // Only station APCs
+ if(!(A.z in using_map.station_levels)) // Only station APCs
continue
if(A.hacker == user || A.aidisabled) // This one is already hacked, or AI control is disabled on it.
continue
@@ -160,7 +160,7 @@
sleep(duration/5)
if(!user || user.stat == DEAD)
return
- command_announcement.Announce("Caution, [station_name]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
+ command_announcement.Announce("Caution, [station_name()]. We have detected abnormal behaviour in your network. It seems someone is trying to hack your electronic systems. We will update you when we have more information.", "Network Monitoring")
sleep(duration/5)
if(!user || user.stat == DEAD)
return
@@ -194,7 +194,7 @@
sleep(300)
// Hack all APCs, including those built during hack sequence.
for(var/obj/machinery/power/apc/A in machines)
- if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in config.station_levels)
+ if((!A.hacker || A.hacker != src) && !A.aidisabled && A.z in using_map.station_levels)
A.ai_hack(src)
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 393d3aee74..bd056f7c69 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -19,7 +19,7 @@
///////////////////////////////
/proc/pick_meteor_start(var/startSide = pick(cardinal))
- var/startLevel = pick(config.station_levels)
+ var/startLevel = pick(using_map.station_levels)
var/pickedstart = spaceDebrisStartLoc(startSide, startLevel)
return list(startLevel, pickedstart)
@@ -254,7 +254,7 @@
..()
// Best case scenario: Comparable to a low-yield EMP grenade.
// Worst case scenario: Comparable to a standard yield EMP grenade.
- empulse(src, rand(2, 4), rand(4, 10))
+ empulse(src, rand(1, 3), rand(2, 4), rand(3, 7), rand(5, 10))
//Station buster Tunguska
/obj/effect/meteor/tunguska
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 8e273f9adb..e2f6b8a56c 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -7,7 +7,7 @@ var/list/nuke_disks = list()
/datum/game_mode/nuclear
name = "Mercenary"
round_description = "A mercenary strike force is approaching the station!"
- extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
+ extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. Being a \
colony of sizable population and considerable wealth causes it to often be the target of various \
attempts of robbery, fraud and other malicious actions."
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index da3a082b97..39d3f739d7 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -127,7 +127,7 @@ datum/objective/anti_revolution/demote
find_target()
..()
if(target && target.current)
- explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
+ explanation_text = "[target.current.real_name], the [target.assigned_role] has been classified as harmful to [using_map.company_name]'s goals. Demote \him[target.current] to assistant."
else
explanation_text = "Free Objective"
return target
@@ -135,7 +135,7 @@ datum/objective/anti_revolution/demote
find_target_by_role(role, role_type=0)
..(role, role_type)
if(target && target.current)
- explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [company_name]'s goals. Demote \him[target.current] to assistant."
+ explanation_text = "[target.current.real_name], the [!role_type ? target.assigned_role : target.special_role] has been classified as harmful to [using_map.company_name]'s goals. Demote \him[target.current] to assistant."
else
explanation_text = "Free Objective"
return target
diff --git a/code/game/gamemodes/technomancer/instability.dm b/code/game/gamemodes/technomancer/instability.dm
index 4b04330b5b..fa9985b1b6 100644
--- a/code/game/gamemodes/technomancer/instability.dm
+++ b/code/game/gamemodes/technomancer/instability.dm
@@ -126,7 +126,7 @@
safe_blink(src, range = 6)
src << "You're teleported against your will! "
if(4)
- emp_act(2)
+ emp_act(3)
if(51 to 100) //Severe
rng = rand(0,3)
diff --git a/code/game/gamemodes/technomancer/spell_objs_helpers.dm b/code/game/gamemodes/technomancer/spell_objs_helpers.dm
index caaa6f01c5..05afae4a3b 100644
--- a/code/game/gamemodes/technomancer/spell_objs_helpers.dm
+++ b/code/game/gamemodes/technomancer/spell_objs_helpers.dm
@@ -21,7 +21,7 @@
return 0
/obj/item/weapon/spell/proc/allowed_to_teleport()
- if(owner && owner.z in config.admin_levels)
+ if(owner && owner.z in using_map.admin_levels)
return 0
return 1
diff --git a/code/game/gamemodes/technomancer/spells/control.dm b/code/game/gamemodes/technomancer/spells/control.dm
index 8b30eb0f14..90b134b38f 100644
--- a/code/game/gamemodes/technomancer/spells/control.dm
+++ b/code/game/gamemodes/technomancer/spells/control.dm
@@ -39,7 +39,7 @@
/mob/living/simple_animal/hostile/carp,
/mob/living/simple_animal/hostile/scarybat,
/mob/living/simple_animal/hostile/viscerator,
- /mob/living/simple_animal/hostile/retaliate/malf_drone,
+ /mob/living/simple_animal/hostile/malf_drone,
/mob/living/simple_animal/hostile/giant_spider,
/mob/living/simple_animal/hostile/hivebot,
/mob/living/simple_animal/hostile/diyaab, //Doubt these will get used but might as well,
diff --git a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
index 7c11bc000a..259aca4b57 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
@@ -23,7 +23,7 @@
..()
/obj/item/weapon/spell/spawner/pulsar/on_throw_cast(atom/hit_atom, mob/user)
- empulse(hit_atom, 1, 1, log=1)
+ empulse(hit_atom, 1, 1, 1, 1, log=1)
/obj/effect/temporary_effect/pulsar
name = "pulsar"
@@ -44,7 +44,7 @@
/obj/effect/temporary_effect/pulsar/proc/pulse_loop()
while(pulses_remaining)
sleep(2 SECONDS)
- empulse(src, heavy_range = 1, light_range = 2, log = 1)
+ empulse(src, 1, 1, 2, 2, log = 1)
pulses_remaining--
qdel(src)
diff --git a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm
index e60d8e8d3a..7cf36ebabf 100644
--- a/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm
+++ b/code/game/gamemodes/technomancer/spells/summon/summon_creature.dm
@@ -22,7 +22,7 @@
"Chick" = /mob/living/simple_animal/chick,
"Crab" = /mob/living/simple_animal/crab,
"Parrot" = /mob/living/simple_animal/parrot,
- "Goat" = /mob/living/simple_animal/hostile/retaliate/goat,
+ "Goat" = /mob/living/simple_animal/retaliate/goat,
"Cat" = /mob/living/simple_animal/cat,
"Kitten" = /mob/living/simple_animal/cat/kitten,
"Corgi" = /mob/living/simple_animal/corgi,
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 9abb9dee07..b978aca089 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -1,7 +1,7 @@
/datum/game_mode/traitor
name = "traitor"
round_description = "There is a foreign agent or traitor on the station. Do not let the traitor succeed!"
- extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \
+ extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. The varied pasts \
and experiences of your coworkers have left them susceptible to the vices and temptations of humanity. \
Is the station the safe self-contained workplace you once thought it was, or has it become a playground \
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index db9d51290f..b9cc65dcde 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -38,7 +38,7 @@
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/engi(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/ce(H), slot_l_store)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/workboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
@@ -76,7 +76,7 @@
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/engi(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/workboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/device/t_scanner(H), slot_r_store)
@@ -115,7 +115,7 @@
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/engi(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/workboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/atmos(H), slot_l_store)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/atmostech/(H), slot_belt)
return 1
diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm
index 7241525dfe..db8dd443cd 100644
--- a/code/game/jobs/job/medical.dm
+++ b/code/game/jobs/job/medical.dm
@@ -220,7 +220,7 @@
equip(var/mob/living/carbon/human/H, var/alt_title)
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index b2af2f1f17..8d9da09cbe 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -33,7 +33,7 @@
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/sec(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/hos(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
// H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(H), slot_wear_mask) //Grab one from the armory you donk
@@ -72,7 +72,7 @@
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/sec(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/warden(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(H), slot_glasses)
@@ -155,7 +155,7 @@
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/messenger/sec(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/jackboots(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/security(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_s_store)
diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm
index 74a5a8e199..9ca5c327fa 100644
--- a/code/game/jobs/job_controller.dm
+++ b/code/game/jobs/job_controller.dm
@@ -15,7 +15,8 @@ var/global/datum/controller/occupations/job_master
proc/SetupOccupations(var/faction = "Station")
occupations = list()
- var/list/all_jobs = typesof(/datum/job)
+ //var/list/all_jobs = typesof(/datum/job)
+ var/list/all_jobs = list(/datum/job/assistant) | using_map.allowed_jobs
if(!all_jobs.len)
world << "Error setting up jobs, no job datums found! "
return 0
@@ -402,13 +403,13 @@ var/global/datum/controller/occupations/job_master
if(!S)
S = locate("start*[rank]") // use old stype
if(istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf))
- H.loc = S.loc
+ H.forceMove(S.loc)
else
LateSpawn(H, rank)
// Moving wheelchair if they have one
if(H.buckled && istype(H.buckled, /obj/structure/bed/chair/wheelchair))
- H.buckled.loc = H.loc
+ H.buckled.forceMove(H.loc)
H.buckled.set_dir(H.dir)
// If they're head, give them the account info for their department
@@ -600,17 +601,25 @@ var/global/datum/controller/occupations/job_master
var/datum/spawnpoint/spawnpos
+// if(H.client.prefs.spawnpoint)
+// spawnpos = spawntypes[H.client.prefs.spawnpoint]
+
if(H.client.prefs.spawnpoint)
- spawnpos = spawntypes[H.client.prefs.spawnpoint]
+ if(!(H.client.prefs.spawnpoint in using_map.allowed_spawns))
+ if(H) // This seems redundant...
+ to_chat(H, "Your chosen spawnpoint ([H.client.prefs.spawnpoint]) is unavailable for the current map. Spawning you at one of the enabled spawn points instead. ")
+ spawnpos = null
+ else
+ spawnpos = spawntypes[H.client.prefs.spawnpoint]
if(spawnpos && istype(spawnpos))
if(spawnpos.check_job_spawning(rank))
- H.loc = pick(spawnpos.turfs)
+ H.forceMove(pick(spawnpos.turfs))
. = spawnpos.msg
else
H << "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead."
- H.loc = pick(latejoin)
+ H.forceMove(pick(latejoin))
. = "has arrived on the station"
else
- H.loc = pick(latejoin)
+ H.forceMove(pick(latejoin))
. = "has arrived on the station"
diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm
index a5625e9253..2b4eae9a0d 100644
--- a/code/game/machinery/CableLayer.dm
+++ b/code/game/machinery/CableLayer.dm
@@ -73,7 +73,7 @@
visible_message("A red light flashes on \the [src].")
return
cable.use(amount)
- if(deleted(cable))
+ if(deleted(cable))
cable = null
return 1
@@ -104,13 +104,13 @@
NC.cableColor("red")
NC.d1 = 0
NC.d2 = fdirn
- NC.updateicon()
+ NC.update_icon()
var/datum/powernet/PN
if(last_piece && last_piece.d2 != M_Dir)
last_piece.d1 = min(last_piece.d2, M_Dir)
last_piece.d2 = max(last_piece.d2, M_Dir)
- last_piece.updateicon()
+ last_piece.update_icon()
PN = last_piece.powernet
if(!PN)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 3d28944af5..bba12887a9 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -333,17 +333,18 @@
organStatus["splinted"] = 1
if(E.status & ORGAN_BLEEDING)
organStatus["bleeding"] = 1
+ if(E.status & ORGAN_DEAD)
+ organStatus["dead"] = 1
+ for(var/datum/wound/W in E.wounds)
+ if(W.internal)
+ organStatus["internalBleeding"] = 1
+ break
organData["status"] = organStatus
if(istype(E, /obj/item/organ/external/chest) && H.is_lung_ruptured())
organData["lungRuptured"] = 1
- for(var/datum/wound/W in E.wounds)
- if(W.internal)
- organData["internalBleeding"] = 1
- break
-
extOrganData.Add(list(organData))
occupantData["extOrgan"] = extOrganData
@@ -478,6 +479,7 @@
var/splint = ""
var/internal_bleeding = ""
var/lung_ruptured = ""
+ var/o_dead = ""
for(var/datum/wound/W in e.wounds) if(W.internal)
internal_bleeding = " Internal bleeding"
break
@@ -491,6 +493,8 @@
AN = "[e.broken_description]:"
if(e.status & ORGAN_ROBOT)
robot = "Prosthetic:"
+ if(e.status & ORGAN_DEAD)
+ o_dead = "Necrotic:"
if(e.open)
open = "Open:"
switch (e.germ_level)
@@ -504,10 +508,10 @@
infected = "Acute Infection:"
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
infected = "Acute Infection+:"
- if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_TWO + 400)
+ if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
infected = "Acute Infection++:"
- if (INFECTION_LEVEL_THREE to INFINITY)
- infected = "Septic:"
+ if (INFECTION_LEVEL_THREE -49 to INFINITY)
+ infected = "Gangrene Detected:"
var/unknown_body = 0
for(var/I in e.implants)
@@ -521,19 +525,22 @@
if(!AN && !open && !infected & !imp)
AN = "None:"
if(!(e.status & ORGAN_DESTROYED))
- dat += "
[e.name] [e.burn_dam] [e.brute_dam] [robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured] "
+ dat += "[e.name] [e.burn_dam] [e.brute_dam] [robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured][o_dead] "
else
dat += "[e.name] - - Not Found "
dat += ""
for(var/obj/item/organ/i in occupant.internal_organs)
var/mech = ""
+ var/i_dead = ""
if(i.status & ORGAN_ASSISTED)
mech = "Assisted:"
if(i.robotic >= ORGAN_ROBOT)
mech = "Mechanical:"
+ if(i.status & ORGAN_DEAD)
+ i_dead = "Necrotic:"
var/infection = "None"
switch (i.germ_level)
- if (1 to INFECTION_LEVEL_ONE + 200)
+ if (INFECTION_LEVEL_ONE to INFECTION_LEVEL_ONE + 200)
infection = "Mild Infection:"
if (INFECTION_LEVEL_ONE + 200 to INFECTION_LEVEL_ONE + 300)
infection = "Mild Infection+:"
@@ -543,11 +550,13 @@
infection = "Acute Infection:"
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
infection = "Acute Infection+:"
- if (INFECTION_LEVEL_TWO + 300 to INFINITY)
+ if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
infection = "Acute Infection++:"
+ if (INFECTION_LEVEL_THREE -49 to INFINITY)
+ infection = "Necrosis Detected:"
dat += ""
- dat += "[i.name] N/A [i.damage] [infection]:[mech] "
+ dat += "[i.name] N/A [i.damage] [infection]:[mech][i_dead] "
dat += " "
dat += ""
if(occupant.sdisabilities & BLIND)
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index bff06559d0..9af5de87d4 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -980,7 +980,7 @@ FIRE ALARM
update_icon()
/obj/machinery/firealarm/initialize()
- if(z in config.contact_levels)
+ if(z in using_map.contact_levels)
set_security_level(security_level? get_security_level() : "green")
/*
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 2a59f345d4..dcce5fb938 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -48,8 +48,8 @@
/obj/machinery/portable_atmospherics/canister/phoron
name = "Canister \[Phoron\]"
- icon_state = "orange"
- canister_color = "orange"
+ icon_state = "orangeps"
+ canister_color = "orangeps"
can_label = 0
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
@@ -77,8 +77,8 @@
canister_color = "blue"
/obj/machinery/portable_atmospherics/canister/empty/phoron
name = "Canister \[Phoron\]"
- icon_state = "orange"
- canister_color = "orange"
+ icon_state = "orangeps"
+ canister_color = "orangeps"
/obj/machinery/portable_atmospherics/canister/empty/nitrogen
name = "Canister \[N2\]"
icon_state = "red"
@@ -348,7 +348,7 @@ update_flag
"\[N2O\]" = "redws", \
"\[N2\]" = "red", \
"\[O2\]" = "blue", \
- "\[Phoron\]" = "orange", \
+ "\[Phoron\]" = "orangeps", \
"\[CO2\]" = "black", \
"\[Air\]" = "grey", \
"\[CAUTION\]" = "yellow", \
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index e9c7df22b2..2953f0de87 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -261,13 +261,13 @@
if(!isnull(stored_material[material]))
stored_material[material] = max(0, stored_material[material] - round(making.resources[material] * mat_efficiency) * multiplier)
- //Fancy autolathe animation.
- flick("autolathe_n", src)
-
+ update_icon() // So lid closes
+
sleep(build_time)
busy = 0
update_use_power(1)
+ update_icon() // So lid opens
//Sanity check.
if(!making || !src) return
@@ -281,7 +281,14 @@
updateUsrDialog()
/obj/machinery/autolathe/update_icon()
- icon_state = (panel_open ? "autolathe_t" : "autolathe")
+ if(panel_open)
+ icon_state = "autolathe_t"
+ else if(busy)
+ icon_state = "autolathe_n"
+ else
+ if(icon_state == "autolathe_n")
+ flick("autolathe_u", src) // If lid WAS closed, show opening animation
+ icon_state = "autolathe"
//Updates overall lathe storage size.
/obj/machinery/autolathe/RefreshParts()
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index f30e3b4cfb..b105222084 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -8,7 +8,7 @@
active_power_usage = 10
layer = 5
- var/list/network = list(NETWORK_EXODUS)
+ var/list/network = list(NETWORK_DEFAULT)
var/c_tag = null
var/c_tag_order = 999
var/status = 1
@@ -149,7 +149,7 @@
assembly.loc = src.loc
assembly.anchored = 1
assembly.camera_name = c_tag
- assembly.camera_network = english_list(network, NETWORK_EXODUS, ",", ",")
+ assembly.camera_network = english_list(network, NETWORK_DEFAULT, ",", ",")
assembly.update_icon()
assembly.dir = src.dir
if(stat & BROKEN)
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 33cb1b0613..b442d3afa9 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -80,7 +80,7 @@
if(isscrewdriver(W))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_EXODUS))
+ var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
if(!input)
usr << "No input found please hang up and try your call again."
return
diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm
index bf4839e7c7..9e4cd48650 100644
--- a/code/game/machinery/camera/presets.dm
+++ b/code/game/machinery/camera/presets.dm
@@ -1,4 +1,5 @@
// PRESETS
+/*
var/global/list/station_networks = list(
// NETWORK_CAFE_DOCK,
NETWORK_CARGO,
@@ -9,7 +10,7 @@ var/global/list/station_networks = list(
NETWORK_ENGINE,
NETWORK_ENGINEERING,
NETWORK_ENGINEERING_OUTPOST,
- NETWORK_EXODUS,
+ NETWORK_DEFAULT,
NETWORK_MEDICAL,
NETWORK_MINE,
NETWORK_NORTHERN_STAR,
@@ -20,6 +21,7 @@ var/global/list/station_networks = list(
NETWORK_SECURITY,
NETWORK_INTERROGATION
)
+*/
var/global/list/engineering_networks = list(
NETWORK_ENGINE,
NETWORK_ENGINEERING,
@@ -65,7 +67,7 @@ var/global/list/engineering_networks = list(
network = list(NETWORK_ERT)
/obj/machinery/camera/network/exodus
- network = list(NETWORK_EXODUS)
+ network = list(NETWORK_DEFAULT)
/obj/machinery/camera/network/interrogation
network = list(NETWORK_INTERROGATION)
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index cb57906e30..31c8fe7819 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -6,7 +6,7 @@
/mob/living/silicon/ai/var/stored_locations[0]
/proc/InvalidPlayerTurf(turf/T as turf)
- return !(T && T.z in config.player_levels)
+ return !(T && T.z in using_map.player_levels)
/mob/living/silicon/ai/proc/get_camera_list()
if(src.stat == 2)
@@ -256,7 +256,7 @@ mob/living/proc/near_camera()
if(. == TRACKING_NO_COVERAGE)
var/turf/T = get_turf(src)
- if(T && (T.z in config.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
+ if(T && (T.z in using_map.station_levels) && hassensorlevel(src, SUIT_SENSOR_TRACKING))
return TRACKING_POSSIBLE
mob/living/proc/tracking_initiated()
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 17c3b58763..1c3d957b98 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -117,7 +117,7 @@
clonemind.transfer_to(H)
H.ckey = R.ckey
- H << "Consciousness slowly creeps over you as your body regenerates. So this is what cloning feels like? "
+ to_chat(H, "Consciousness slowly creeps over you as your body regenerates. Your recent memories are fuzzy, and it's hard to remember anything from today... So this is what cloning feels like? ")
// -- Mode/mind specific stuff goes here
callHook("clone", list(H))
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 0a568b4ade..408e3184d4 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -66,7 +66,11 @@
if(1)
num_of_prizes = rand(1,4)
if(2)
+ num_of_prizes = rand(1,3)
+ if(3)
num_of_prizes = rand(0,2)
+ if(4)
+ num_of_prizes = rand(0,1)
for(num_of_prizes; num_of_prizes > 0; num_of_prizes--)
empprize = pickweight(prizes)
new empprize(src.loc)
diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm
index 9e34252ebd..244598ad09 100644
--- a/code/game/machinery/computer/camera.dm
+++ b/code/game/machinery/computer/camera.dm
@@ -16,7 +16,7 @@
/obj/machinery/computer/security/New()
if(!network)
- network = station_networks.Copy()
+ network = using_map.station_networks.Copy()
..()
if(network.len)
current_network = network[1]
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index da165448da..75ba732950 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -305,7 +305,7 @@
if(subject.isSynthetic())
scantemp = "Error: Majority of subject is non-organic."
return
- if (subject.suiciding == 1)
+ if (subject.suiciding)
scantemp = "Error: Subject's brain is not responding to scanning stimuli."
return
if ((!subject.ckey) || (!subject.client))
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 9ff98b84b4..a738ea66c1 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -35,10 +35,12 @@
var/stat_msg1
var/stat_msg2
+ var/datum/lore/atc_controller/ATC
var/datum/announcement/priority/crew_announcement = new
/obj/machinery/computer/communications/New()
..()
+ ATC = atc
crew_announcement.newscast = 1
/obj/machinery/computer/communications/process()
@@ -130,6 +132,8 @@
if("messagelist")
src.currmsg = 0
src.state = STATE_MESSAGELIST
+ if("toggleatc")
+ src.ATC.squelched = !src.ATC.squelched
if("viewmessage")
src.state = STATE_VIEWMESSAGE
if (!src.currmsg)
@@ -178,12 +182,12 @@
if(centcomm_message_cooldown)
usr << "\red Arrays recycling. Please stand by."
return
- var/input = sanitize(input("Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
+ var/input = sanitize(input("Please choose a message to transmit to [using_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
if(!input || !(usr in view(1,src)))
return
CentCom_announce(input, usr)
usr << "\blue Message transmitted."
- log_say("[key_name(usr)] has made an IA [boss_short] announcement: [input]")
+ log_say("[key_name(usr)] has made an IA [using_map.boss_short] announcement: [input]")
centcomm_message_cooldown = 1
spawn(300)//10 minute cooldown
centcomm_message_cooldown = 0
@@ -295,7 +299,7 @@
if (src.authenticated==2)
dat += " \[ Make An Announcement \]"
if(src.emagged == 0)
- dat += " \[ Send an emergency message to [boss_short] \]"
+ dat += " \[ Send an emergency message to [using_map.boss_short] \]"
else
dat += " \[ Send an emergency message to \[UNKNOWN\] \]"
dat += " \[ Restore Backup Routing Data \]"
@@ -311,6 +315,7 @@
else
dat += " \[ Log In \]"
dat += " \[ Message List \]"
+ dat += " \[ [ATC.squelched ? "Enable" : "Disable"] ATC Relay \]"
if(STATE_CALLSHUTTLE)
dat += "Are you sure you want to call the shuttle? \[ OK | Cancel \]"
if(STATE_CANCELSHUTTLE)
@@ -374,6 +379,7 @@
dat += " \[ Call Emergency Shuttle \]"
dat += " \[ Message List \]"
dat += " \[ Set Status Display \]"
+ dat += " \[ [ATC.squelched ? "Enable" : "Disable"] ATC Relay \]"
if(STATE_CALLSHUTTLE)
dat += "Are you sure you want to call the shuttle? \[ OK | Cancel \]"
if(STATE_MESSAGELIST)
@@ -426,7 +432,7 @@
return
if(deathsquad.deployed)
- user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
+ user << "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
return
if(emergency_shuttle.deny_shuttle)
@@ -438,7 +444,7 @@
return
if(emergency_shuttle.going_to_centcom())
- user << "The emergency shuttle may not be called while returning to [boss_short]."
+ user << "The emergency shuttle may not be called while returning to [using_map.boss_short]."
return
if(emergency_shuttle.online())
@@ -461,7 +467,7 @@
return
if(emergency_shuttle.going_to_centcom())
- user << "The shuttle may not be called while returning to [boss_short]."
+ user << "The shuttle may not be called while returning to [using_map.boss_short]."
return
if(emergency_shuttle.online())
@@ -471,11 +477,11 @@
// if force is 0, some things may stop the shuttle call
if(!force)
if(emergency_shuttle.deny_shuttle)
- user << "[boss_short] does not currently have a shuttle available in your sector. Please try again later."
+ user << "[using_map.boss_short] does not currently have a shuttle available in your sector. Please try again later."
return
if(deathsquad.deployed == 1)
- user << "[boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
+ user << "[using_map.boss_short] will not allow the shuttle to be called. Consider all contracts terminated."
return
if(world.time < 54000) // 30 minute grace period to let the game get going
diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm
index 1551e0df6e..e8fe96ae6c 100644
--- a/code/game/machinery/computer/prisoner.dm
+++ b/code/game/machinery/computer/prisoner.dm
@@ -46,7 +46,7 @@
if(!T.implanted) continue
var/loc_display = "Unknown"
var/mob/living/carbon/M = T.imp_in
- if((M.z in config.station_levels) && !istype(M.loc, /turf/space))
+ if((M.z in using_map.station_levels) && !istype(M.loc, /turf/space))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
if(T.malfunction)
diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm
index c48e64e484..cb0f8a5552 100644
--- a/code/game/machinery/computer/specops_shuttle.dm
+++ b/code/game/machinery/computer/specops_shuttle.dm
@@ -89,7 +89,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "You have arrived at [boss_name]. Operation has ended! "
+ M << "You have arrived at [using_map.boss_name]. Operation has ended! "
specops_shuttle_at_station = 0
@@ -232,7 +232,7 @@ var/specops_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "You have arrived to [station_name]. Commence operation! "
+ M << "You have arrived to [station_name()]. Commence operation! "
for(var/obj/machinery/computer/specops_shuttle/S in world)
S.specops_shuttle_timereset = world.time + SPECOPS_RETURN_DELAY
@@ -267,8 +267,8 @@ var/specops_shuttle_timeleft = 0
dat = temp
else
dat += {"Special Operations Shuttle
- \nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]
- [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.* \n ":specops_shuttle_at_station ? "\nShuttle standing by... \n ":"\nDepart to [station_name] \n "]
+ \nLocation: [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "Departing for [station_name()] in ([specops_shuttle_timeleft] seconds.)":specops_shuttle_at_station ? "Station":"Dock"]
+ [specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom ? "\n*The Special Ops. shuttle is already leaving.* \n ":specops_shuttle_at_station ? "\nShuttle standing by... \n ":"\nDepart to [station_name()] \n "]
\nClose "}
user << browse(dat, "window=computer;size=575x450")
@@ -286,14 +286,14 @@ var/specops_shuttle_timeleft = 0
if(!specops_shuttle_at_station|| specops_shuttle_moving_to_station || specops_shuttle_moving_to_centcom) return
if (!specops_can_move())
- usr << "[boss_name] will not allow the Special Operations shuttle to return yet. "
+ usr << "[using_map.boss_name] will not allow the Special Operations shuttle to return yet. "
if(world.timeofday <= specops_shuttle_timereset)
if (((world.timeofday - specops_shuttle_timereset)/10) > 60)
usr << "[-((world.timeofday - specops_shuttle_timereset)/10)/60] minutes remain! "
usr << "[-(world.timeofday - specops_shuttle_timereset)/10] seconds remain! "
return
- usr << "The Special Operations shuttle will arrive at [boss_name] in [(SPECOPS_MOVETIME/10)] seconds. "
+ usr << "The Special Operations shuttle will arrive at [using_map.boss_name] in [(SPECOPS_MOVETIME/10)] seconds. "
temp += "Shuttle departing.OK "
updateUsrDialog()
@@ -310,7 +310,7 @@ var/specops_shuttle_timeleft = 0
usr << "The Special Operations shuttle is unable to leave. "
return
- usr << "The Special Operations shuttle will arrive on [station_name] in [(SPECOPS_MOVETIME/10)] seconds. "
+ usr << "The Special Operations shuttle will arrive on [station_name()] in [(SPECOPS_MOVETIME/10)] seconds. "
temp += "Shuttle departing.OK "
updateUsrDialog()
diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm
index bb78fa00d5..d390a7f163 100644
--- a/code/game/machinery/computer/supply.dm
+++ b/code/game/machinery/computer/supply.dm
@@ -102,7 +102,7 @@
supply_controller.ordernum++
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
reqform.name = "Requisition Form - [P.name]"
- reqform.info += "[station_name] Supply Requisition Form "
+ reqform.info += "[station_name()] Supply Requisition Form "
reqform.info += "INDEX: #[supply_controller.ordernum] "
reqform.info += "REQUESTED BY: [idname] "
reqform.info += "RANK: [idrank] "
@@ -295,7 +295,7 @@
supply_controller.ordernum++
var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
reqform.name = "Requisition Form - [P.name]"
- reqform.info += "[station_name] Supply Requisition Form "
+ reqform.info += "[station_name()] Supply Requisition Form "
reqform.info += "INDEX: #[supply_controller.ordernum] "
reqform.info += "REQUESTED BY: [idname] "
reqform.info += "RANK: [idrank] "
diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm
index ce30dbb411..d36f03b525 100644
--- a/code/game/machinery/computer/syndicate_specops_shuttle.dm
+++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm
@@ -174,7 +174,7 @@ var/syndicate_elite_shuttle_timeleft = 0
for(var/turf/T in get_area_turfs(end_location) )
var/mob/M = locate(/mob) in T
- M << "You have arrived to [station_name]. Commence operation! "
+ M << "You have arrived to [station_name()]. Commence operation! "
/proc/syndicate_elite_can_move()
if(syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership) return 0
@@ -207,8 +207,8 @@ var/syndicate_elite_shuttle_timeleft = 0
dat = temp
else
dat = {"Special Operations Shuttle
- \nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]
- [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.* \n ":syndicate_elite_shuttle_at_station ? "\nShuttle Offline \n ":"\nDepart to [station_name] \n "]
+ \nLocation: [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "Departing for [station_name()] in ([syndicate_elite_shuttle_timeleft] seconds.)":syndicate_elite_shuttle_at_station ? "Station":"Dock"]
+ [syndicate_elite_shuttle_moving_to_station || syndicate_elite_shuttle_moving_to_mothership ? "\n*The Syndicate Elite shuttle is already leaving.* \n ":syndicate_elite_shuttle_at_station ? "\nShuttle Offline \n ":"\nDepart to [station_name()] \n "]
\nClose "}
user << browse(dat, "window=computer;size=575x450")
@@ -235,7 +235,7 @@ var/syndicate_elite_shuttle_timeleft = 0
usr << "The Syndicate Elite shuttle is unable to leave. "
return
- usr << "The Syndicate Elite shuttle will arrive on [station_name] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds. "
+ usr << "The Syndicate Elite shuttle will arrive on [station_name()] in [(SYNDICATE_ELITE_MOVETIME/10)] seconds. "
temp = "Shuttle departing.OK "
updateUsrDialog()
diff --git a/code/game/machinery/computer3/computers/camera.dm b/code/game/machinery/computer3/computers/camera.dm
index 0f92519c36..abe96d57c0 100644
--- a/code/game/machinery/computer3/computers/camera.dm
+++ b/code/game/machinery/computer3/computers/camera.dm
@@ -79,7 +79,7 @@
/datum/file/camnet_key/New()
for(var/N in networks)
if(N == "ALL")
- networks = station_networks
+ networks = using_map.station_networks
break
return ..()
diff --git a/code/game/machinery/computer3/computers/card.dm b/code/game/machinery/computer3/computers/card.dm
index eb7180d9a2..3a902c29f4 100644
--- a/code/game/machinery/computer3/computers/card.dm
+++ b/code/game/machinery/computer3/computers/card.dm
@@ -337,7 +337,7 @@
return get_all_centcom_jobs() + "Custom"
accessblock()
- var/accesses = "[boss_name]: "
+ var/accesses = "[using_map.boss_name]: "
for(var/A in get_all_centcom_access())
if(A in writer.access)
accesses += topic_link(src,"access=[A]","[replacetext(get_centcom_access_desc(A), " ", " ")] ") + " "
diff --git a/code/game/machinery/computer3/computers/communications.dm b/code/game/machinery/computer3/computers/communications.dm
index cace79d378..c4ec88f8e0 100644
--- a/code/game/machinery/computer3/computers/communications.dm
+++ b/code/game/machinery/computer3/computers/communications.dm
@@ -192,12 +192,12 @@
if(centcomm_message_cooldown)
usr << "Arrays recycling. Please stand by."
return
- var/input = sanitize(input("Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", ""))
+ var/input = sanitize(input("Please choose a message to transmit to [using_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "To abort, send an empty message.", ""))
if(!input || !interactable())
return
CentCom_announce(input, usr)
usr << "Message transmitted."
- log_say("[key_name(usr)] has made a [boss_short] announcement: [input]")
+ log_say("[key_name(usr)] has made a [using_map.boss_short] announcement: [input]")
centcomm_message_cooldown = 1
spawn(600)//10 minute cooldown
centcomm_message_cooldown = 0
@@ -288,7 +288,7 @@
if (authenticated==2)
dat += " \[ Make An Announcement \]"
if(computer.emagged == 0)
- dat += " \[ Send an emergency message to [boss_short] \]"
+ dat += " \[ Send an emergency message to [using_map.boss_short] \]"
else
dat += " \[ Send an emergency message to \[UNKNOWN\] \]"
dat += " \[ Restore Backup Routing Data \]"
diff --git a/code/game/machinery/computer3/computers/prisoner.dm b/code/game/machinery/computer3/computers/prisoner.dm
index 0c7937d39a..7e3ada285d 100644
--- a/code/game/machinery/computer3/computers/prisoner.dm
+++ b/code/game/machinery/computer3/computers/prisoner.dm
@@ -43,7 +43,7 @@
if(!T.implanted) continue
var/loc_display = "Unknown"
var/mob/living/carbon/M = T.imp_in
- if(M.z in config.station_levels && !istype(M.loc, /turf/space))
+ if(M.z in using_map.station_levels && !istype(M.loc, /turf/space))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
if(T.malfunction)
diff --git a/code/game/machinery/computer3/computers/welcome.dm b/code/game/machinery/computer3/computers/welcome.dm
index 6693d1ced8..062fc7b59b 100644
--- a/code/game/machinery/computer3/computers/welcome.dm
+++ b/code/game/machinery/computer3/computers/welcome.dm
@@ -15,13 +15,13 @@
return
var/dat = ""
dat += "Welcome to NTOS "
- dat += "Thank you for choosing NTOS, your gateway to the future of mobile computing technology, sponsored by [company_name] (R) "
+ dat += "Thank you for choosing NTOS, your gateway to the future of mobile computing technology, sponsored by [using_map.company_name] (R) "
dat += "Getting started with NTOS: "
dat += "To leave a current program, click the X button in the top right corner of the window. This will return you to the NTOS desktop. \
From the desktop, you can open the hard drive, usually located in the top left corner to access all the programs installed on your computer. \
- When you rented your laptop, you were supplied with programs that your [company_name] Issued ID has given you access to use. \
+ When you rented your laptop, you were supplied with programs that your [using_map.company_name] Issued ID has given you access to use. \
In the event of a serious error, the right click menu will give you the ability to reset your computer. To open and close your laptop, alt-click your device.\
- If you have any questions or technical issues, please contact your local computer technical experts at your local [boss_name]."
+ If you have any questions or technical issues, please contact your local computer technical experts at your local [using_map.boss_name]."
popup.set_content(dat)
popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state))
popup.open()
diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm
index e31dd57fa2..4aa5d318f4 100644
--- a/code/game/machinery/computer3/lapvend.dm
+++ b/code/game/machinery/computer3/lapvend.dm
@@ -176,9 +176,9 @@
if(D)
transfer_and_vend(D, C)
else
- usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [boss_short] Support. "
+ usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support. "
else
- usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call CentCom Support. "
+ usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support. "
else
transfer_and_vend(CH, C)
@@ -325,10 +325,10 @@
transfer_and_reimburse(D)
return 1
else
- usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [boss_short] Support. "
+ usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support. "
return 0
else
- usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call CentCom Support. "
+ usr << "\icon[src]Unable to access vendor account. Please record the machine ID and call [using_map.boss_short] Support. "
return 0
else
transfer_and_reimburse(CH)
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 7a1b12509c..d1ab11e706 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -347,7 +347,7 @@
put_mob(usr)
return
-/atom/proc/return_air_for_internal_lifeform()
+/atom/proc/return_air_for_internal_lifeform(var/mob/living/lifeform)
return return_air()
/obj/machinery/atmospherics/unary/cryo_cell/return_air_for_internal_lifeform()
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index e7fed68d5f..6441a5e72a 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -360,7 +360,7 @@
if(!find_control_computer(urgent=1))
return
- despawn_occupant()
+ despawn_occupant(occupant)
// This function can not be undone; do not call this unless you are sure
// Also make sure there is a valid control computer
@@ -384,10 +384,14 @@
// This function can not be undone; do not call this unless you are sure
// Also make sure there is a valid control computer
-/obj/machinery/cryopod/proc/despawn_occupant()
+/obj/machinery/cryopod/proc/despawn_occupant(var/mob/to_despawn)
+ //Recursively despawn mobs
+ for(var/mob/M in to_despawn)
+ despawn_occupant(M)
+
//Drop all items into the pod.
- for(var/obj/item/W in occupant)
- occupant.drop_from_inventory(W)
+ for(var/obj/item/W in to_despawn)
+ to_despawn.drop_from_inventory(W)
W.forceMove(src)
if(W.contents.len) //Make sure we catch anything not handled by qdel() on the items.
@@ -398,7 +402,7 @@
//Delete all items not on the preservation list.
var/list/items = contents.Copy()
- items -= occupant // Don't delete the occupant
+ items -= to_despawn // Don't delete the occupant
items -= announce // or the autosay radio.
for(var/obj/item/W in items)
@@ -430,36 +434,37 @@
for(var/datum/objective/O in all_objectives)
// We don't want revs to get objectives that aren't for heads of staff. Letting
// them win or lose based on cryo is silly so we remove the objective.
- if(O.target == occupant.mind)
+ if(O.target == to_despawn.mind)
if(O.owner && O.owner.current)
O.owner.current << "You get the feeling your target is no longer within your reach... "
qdel(O)
//Handle job slot/tater cleanup.
- var/job = occupant.mind.assigned_role
+ var/job = to_despawn.mind.assigned_role
job_master.FreeRole(job)
- if(occupant.mind.objectives.len)
- qdel(occupant.mind.objectives)
- occupant.mind.special_role = null
+ if(to_despawn.mind.objectives.len)
+ qdel(to_despawn.mind.objectives)
+ to_despawn.mind.special_role = null
+
//else
//if(ticker.mode.name == "AutoTraitor")
//var/datum/game_mode/traitor/autotraitor/current_mode = ticker.mode
- //current_mode.possible_traitors.Remove(occupant)
+ //current_mode.possible_traitors.Remove(to_despawn)
// Delete them from datacore.
if(PDA_Manifest.len)
PDA_Manifest.Cut()
for(var/datum/data/record/R in data_core.medical)
- if((R.fields["name"] == occupant.real_name))
+ if((R.fields["name"] == to_despawn.real_name))
qdel(R)
for(var/datum/data/record/T in data_core.security)
- if((T.fields["name"] == occupant.real_name))
+ if((T.fields["name"] == to_despawn.real_name))
qdel(T)
for(var/datum/data/record/G in data_core.general)
- if((G.fields["name"] == occupant.real_name))
+ if((G.fields["name"] == to_despawn.real_name))
qdel(G)
icon_state = base_icon_state
@@ -468,22 +473,21 @@
//Make an announcement and log the person entering storage.
- control_computer.frozen_crew += "[occupant.real_name], [occupant.mind.role_alt_title] - [stationtime2text()]"
- control_computer._admin_logs += "[key_name(occupant)] ([occupant.mind.role_alt_title]) at [stationtime2text()]"
- log_and_message_admins("[key_name(occupant)] ([occupant.mind.role_alt_title]) entered cryostorage.")
+ control_computer.frozen_crew += "[to_despawn.real_name], [to_despawn.mind.role_alt_title] - [stationtime2text()]"
+ control_computer._admin_logs += "[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) at [stationtime2text()]"
+ log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.")
- announce.autosay("[occupant.real_name], [occupant.mind.role_alt_title], [on_store_message]", "[on_store_name]")
- //visible_message("\The [initial(name)] hums and hisses as it moves [occupant.real_name] into storage. ", 3)
- visible_message("\The [initial(name)] [on_store_visible_message_1] [occupant.real_name] [on_store_visible_message_2]. ", 3)
+ announce.autosay("[to_despawn.real_name], [to_despawn.mind.role_alt_title], [on_store_message]", "[on_store_name]")
+ //visible_message("\The [initial(name)] hums and hisses as it moves [to_despawn.real_name] into storage. ", 3)
+ visible_message("\The [initial(name)] [on_store_visible_message_1] [to_despawn.real_name] [on_store_visible_message_2]. ", 3)
//This should guarantee that ghosts don't spawn.
- occupant.ckey = null
+ to_despawn.ckey = null
// Delete the mob.
- qdel(occupant)
+ qdel(to_despawn)
set_occupant(null)
-
/obj/machinery/cryopod/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
if(istype(G, /obj/item/weapon/grab))
@@ -504,7 +508,7 @@
if(M.client)
if(alert(M,"Would you like to enter long-term storage?",,"Yes","No") == "Yes")
- if(!M || !grab || !grab:affecting) return
+ if(!M || !grab || !grab.affecting) return
willing = 1
else
willing = 1
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 383cc1b3a4..97dd9f5fe0 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -37,7 +37,16 @@
/obj/machinery/door/airlock/attack_generic(var/mob/user, var/damage)
if(stat & (BROKEN|NOPOWER))
if(damage >= 10)
- if(src.density)
+ if(src.locked || src.welded)
+ visible_message("\The [user] begins breaking into \the [src] internals! ")
+ if(do_after(user,10 SECONDS,src))
+ src.locked = 0
+ src.welded = 0
+ update_icon()
+ open(1)
+ if(prob(25))
+ src.shock(user, 100)
+ else if(src.density)
visible_message("\The [user] forces \the [src] open! ")
open(1)
else
@@ -329,6 +338,18 @@
secured_wires = 1
assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity
+/obj/machinery/door/airlock/voidcraft
+ name = "voidcraft hatch"
+ desc = "It's an extra resilient airlock intended for spacefaring vessels."
+ icon = 'icons/obj/doors/shuttledoors.dmi'
+ explosion_resistance = 20
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft
+
+// Airlock opens from top-bottom instead of left-right.
+/obj/machinery/door/airlock/voidcraft/vertical
+ icon = 'icons/obj/doors/shuttledoors_vertical.dmi'
+ assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical
+
/*
About the new airlock wires panel:
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
@@ -1041,7 +1062,7 @@ About the new airlock wires panel:
//wires
var/turf/T = get_turf(newloc)
- if(T && (T.z in config.admin_levels))
+ if(T && (T.z in using_map.admin_levels))
secured_wires = 1
if (secured_wires)
wires = new/datum/wires/airlock/secure(src)
diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm
index c87ab1ad35..ef84d47f3d 100644
--- a/code/game/machinery/doors/unpowered.dm
+++ b/code/game/machinery/doors/unpowered.dm
@@ -13,12 +13,12 @@
if(src.locked) return
..()
return
-
+
/obj/machinery/door/unpowered/emag_act()
return -1
/obj/machinery/door/unpowered/shuttle
- icon = 'icons/turf/shuttle.dmi'
+ icon = 'icons/turf/shuttle_white.dmi'
name = "door"
icon_state = "door1"
opacity = 1
diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm
index d871a3ec38..049289c7c7 100644
--- a/code/game/machinery/exonet_node.dm
+++ b/code/game/machinery/exonet_node.dm
@@ -1,7 +1,6 @@
/obj/machinery/exonet_node
name = "exonet node"
- desc = "This machine is one of many, many nodes inside "+starsys_name+"'s section of the Exonet, connecting the "+station_orig+" to the rest of the system, at least \
- electronically."
+ desc = null // Gets written in New()
icon = 'icons/obj/stationobjs.dmi'
icon_state = "exonet_node"
idle_power_usage = 2500
@@ -36,6 +35,9 @@
component_parts += new /obj/item/stack/cable_coil(src, 2)
RefreshParts()
+ desc = "This machine is one of many, many nodes inside [using_map.starsys_name]'s section of the Exonet, connecting the [using_map.station_short] to the rest of the system, at least \
+ electronically."
+
// Proc: update_icon()
// Parameters: None
// Description: Self explanatory.
diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm
index 6fb8f90a41..4eb0e7d408 100644
--- a/code/game/machinery/jukebox.dm
+++ b/code/game/machinery/jukebox.dm
@@ -49,12 +49,9 @@ datum/track/New(var/title_name, var/audio)
/obj/machinery/media/jukebox/New()
..()
- component_parts = list()
- component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
- component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
- component_parts += new /obj/item/stack/cable_coil(src, 5)
- RefreshParts()
+ default_apply_parts()
wires = new/datum/wires/jukebox(src)
+ update_icon()
/obj/machinery/media/jukebox/Destroy()
StopPlaying()
@@ -272,4 +269,24 @@ datum/track/New(var/title_name, var/audio)
playing = 1
update_use_power(2)
- update_icon()
\ No newline at end of file
+ update_icon()
+
+// Advance to the next track - Don't start playing it unless we were already playing
+/obj/machinery/media/jukebox/proc/NextTrack()
+ if(!tracks.len) return
+ var/curTrackIndex = max(1, tracks.Find(current_track))
+ var/newTrackIndex = (curTrackIndex % tracks.len) + 1 // Loop back around if past end
+ current_track = tracks[newTrackIndex]
+ if(playing)
+ StartPlaying()
+ updateDialog()
+
+// Advance to the next track - Don't start playing it unless we were already playing
+/obj/machinery/media/jukebox/proc/PrevTrack()
+ if(!tracks.len) return
+ var/curTrackIndex = max(1, tracks.Find(current_track))
+ var/newTrackIndex = curTrackIndex == 1 ? tracks.len : curTrackIndex - 1
+ current_track = tracks[newTrackIndex]
+ if(playing)
+ StartPlaying()
+ updateDialog()
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index d3107869ce..b0946bf347 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -283,6 +283,13 @@ Class Procs:
return 1
return 0
+/obj/machinery/proc/default_apply_parts()
+ var/obj/item/weapon/circuitboard/CB = circuit
+ if(!istype(CB))
+ return
+ CB.apply_default_parts(src)
+ RefreshParts()
+
/obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R)
if(!istype(R))
return 0
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index fe5cac9c44..8700caf785 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -1,52 +1,45 @@
// Navigation beacon for AI robots
// Functions as a transponder: looks for incoming signal matching
-var/global/list/navbeacons // no I don't like putting this in, but it will do for now
+var/global/list/navbeacons = list() // no I don't like putting this in, but it will do for now
/obj/machinery/navbeacon
icon = 'icons/obj/objects.dmi'
icon_state = "navbeacon0-f"
name = "navigation beacon"
- desc = "A radio beacon used for bot navigation."
+ desc = "A beacon used for bot navigation."
level = 1 // underfloor
layer = 2.5
anchored = 1
var/open = 0 // true if cover is open
var/locked = 1 // true if controls are locked
- var/freq = 1445 // radio frequency
+ var/freq = null // DEPRECATED we don't use radios anymore!
var/location = "" // location response text
- var/list/codes // assoc. list of transponder codes
- var/codes_txt = "" // codes as set on map: "tag1;tag2" or "tag1=value;tag2=value"
+ var/codes_txt // DEPRECATED codes as set on map: "tag1;tag2" or "tag1=value;tag2=value"
+ var/list/codes = list() // assoc. list of transponder codes
req_access = list(access_engine)
/obj/machinery/navbeacon/New()
..()
-
- set_codes()
+ set_codes_from_txt(codes_txt)
+ if(freq)
+ warning("[src] at [x],[y],[z] has deprecated var freq=[freq]. Replace it with proper type.")
var/turf/T = loc
hide(!T.is_plating())
-
- // add beacon to MULE bot beacon list
- if(freq == 1400)
- if(!navbeacons)
- navbeacons = new()
- navbeacons += src
-
-
- spawn(5) // must wait for map loading to finish
- if(radio_controller)
- radio_controller.add_object(src, freq, RADIO_NAVBEACONS)
+ navbeacons += src
// set the transponder codes assoc list from codes_txt
-/obj/machinery/navbeacon/proc/set_codes()
+// DEPRECATED - This is kept only for compatibilty with old map files! Do not use this!
+// Instead, you should replace the map instance with one of the appropriate navbeacon subtypes.
+// See the bottom of this file for a list of subtypes, make your own examples if your map needs more
+/obj/machinery/navbeacon/proc/set_codes_from_txt()
if(!codes_txt)
return
+ warning("[src] at [x],[y],[z] in [get_area(src)] is using the deprecated 'codes_txt' mapping method. Replace it with proper type.")
- codes = new()
-
+ codes = list()
var/list/entries = splittext(codes_txt, ";") // entries are separated by semicolons
-
for(var/e in entries)
var/index = findtext(e, "=") // format is "key=value"
if(index)
@@ -56,6 +49,8 @@ var/global/list/navbeacons // no I don't like putting this in, but it will do
else
codes[e] = "1"
+/obj/machinery/navbeacon/hides_under_flooring()
+ return 1
// called when turf state changes
// hide the object if turf is intact
@@ -73,38 +68,6 @@ var/global/list/navbeacons // no I don't like putting this in, but it will do
else
icon_state = "[state]"
-
-// look for a signal of the form "findbeacon=X"
-// where X is any
-// or the location
-// or one of the set transponder keys
-// if found, return a signal
-/obj/machinery/navbeacon/receive_signal(datum/signal/signal)
-
- var/request = signal.data["findbeacon"]
- if(request && ((request in codes) || request == "any" || request == location))
- spawn(1)
- post_signal()
-
-// return a signal giving location and transponder codes
-
-/obj/machinery/navbeacon/proc/post_signal()
-
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq)
-
- if(!frequency) return
-
- var/datum/signal/signal = new()
- signal.source = src
- signal.transmission_method = 1
- signal.data["beacon"] = location
-
- for(var/key in codes)
- signal.data[key] = codes[key]
-
- frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS)
-
-
/obj/machinery/navbeacon/attackby(var/obj/item/I, var/mob/user)
var/turf/T = loc
if(!T.is_plating())
@@ -117,7 +80,7 @@ var/global/list/navbeacons // no I don't like putting this in, but it will do
updateicon()
- else if(istype(I, /obj/item/weapon/card/id)||istype(I, /obj/item/device/pda))
+ else if(I.GetID())
if(open)
if(allowed(user))
locked = !locked
@@ -153,8 +116,7 @@ var/global/list/navbeacons // no I don't like putting this in, but it will do
if(locked && !ai)
t = {"Navigation Beacon
-(swipe card to unlock controls)
-Frequency: [format_frequency(freq)]
+(swipe card to unlock controls)
Location: [location ? location : "(none)"]
Transponder Codes:"}
@@ -165,14 +127,7 @@ Transponder Codes:"}
else
t = {"Navigation Beacon
-(swipe card to lock controls)
-Frequency:
--
--
-[format_frequency(freq)]
-+
-+
-
+(swipe card to lock controls)
Location: [location ? location : "(none)"]
Transponder Codes:"}
@@ -195,11 +150,7 @@ Transponder Codes:"}
if(open && !locked)
usr.set_machine(src)
- if(href_list["freq"])
- freq = sanitize_frequency(freq + text2num(href_list["freq"]))
- updateDialog()
-
- else if(href_list["locedit"])
+ if(href_list["locedit"])
var/newloc = sanitize(input("Enter New Location", "Navigation Beacon", location) as text|null)
if(newloc)
location = newloc
@@ -248,6 +199,41 @@ Transponder Codes:"}
/obj/machinery/navbeacon/Destroy()
navbeacons.Remove(src)
- if(radio_controller)
- radio_controller.remove_object(src, freq)
+ ..()
+
+
+//
+// Nav Beacon Mapping
+// These subtypes are what you should actually put into maps! they will make your life much easier.
+//
+// Developer Note: navbeacons do not HAVE to use these subtypes. They are purely for mapping convenience.
+// You can feel free to construct them in-game as just /obj/machinery/navbeacon and they will work just
+// fine, and you can define your own specific types for every instance on map if you want (BayStation does)
+// This design is a compromise that means you can do mapping without every single one being its own type
+// but with it still being easy to map ~ Leshana
+//
+
+// Mulebot delivery destinations
+
+/obj/machinery/navbeacon/delivery/north
+ codes = list("delivery" = 1, "dir" = NORTH)
+
+/obj/machinery/navbeacon/delivery/south
+ codes = list("delivery" = 1, "dir" = SOUTH)
+
+/obj/machinery/navbeacon/delivery/east
+ codes = list("delivery" = 1, "dir" = EAST)
+
+/obj/machinery/navbeacon/delivery/west
+ codes = list("delivery" = 1, "dir" = WEST)
+
+
+// For part of the patrol route
+// You MUST set "location"
+// You MUST set "next_patrol"
+/obj/machinery/navbeacon/patrol
+ var/next_patrol
+
+/obj/machinery/navbeacon/patrol/New()
+ codes = list("patrol" = 1, "next_patrol" = next_patrol)
..()
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 4758a77489..f2a0132b5a 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -285,7 +285,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="Feed Security functions: "
dat+="[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue "
dat+="Censor Feed Stories "
- dat+="Mark Feed Channel with [company_name] D-Notice "
+ dat+="Mark Feed Channel with [using_map.company_name] D-Notice "
dat+=" The newscaster recognises you as: [scanned_user] "
if(1)
dat+= "Station Feed Channels "
@@ -366,7 +366,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
if(9)
dat+="[viewing_channel.channel_name]: \[created by: [viewing_channel.author] \] "
if(viewing_channel.censored)
- dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice. "
+ dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice. "
dat+="No further feed story additions are allowed while the D-Notice is in effect. "
else
if(isemptylist(viewing_channel.messages))
@@ -386,7 +386,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="Refresh "
dat+="Back "
if(10)
- dat+="[company_name] Feed Censorship Tool "
+ dat+="[using_map.company_name] Feed Censorship Tool "
dat+="NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible. "
dat+="Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it. "
dat+=" Select Feed channel to get Stories from: "
@@ -397,7 +397,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("*** ") : ()] "
dat+="Cancel "
if(11)
- dat+="[company_name] D-Notice Handler "
+ dat+="[using_map.company_name] D-Notice Handler "
dat+="A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's"
dat+="morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed"
dat+="stories it might contain at the time. You can lift a D-Notice if you have the required access at any time. "
@@ -424,7 +424,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
dat+="[viewing_channel.channel_name]: \[ created by: [viewing_channel.author] \] "
dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel . "
if(viewing_channel.censored)
- dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice. "
+ dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice. "
dat+="No further feed story additions are allowed while the D-Notice is in effect. "
else
if(isemptylist(viewing_channel.messages))
@@ -630,7 +630,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
screen = 15
else
if(news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a [company_name] higherup. You cannot edit it.","Ok")
+ alert("The wanted issue has been distributed by a [using_map.company_name] higherup. You cannot edit it.","Ok")
return
news_network.wanted_issue.author = channel_name
news_network.wanted_issue.body = msg
@@ -643,7 +643,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["cancel_wanted"])
if(news_network.wanted_issue.is_admin_message)
- alert("The wanted issue has been distributed by a [company_name] higherup. You cannot take it down.","Ok")
+ alert("The wanted issue has been distributed by a [using_map.company_name] higherup. You cannot take it down.","Ok")
return
var/choice = alert("Please confirm Wanted Issue removal","Network Security Handler","Confirm","Cancel")
if(choice=="Confirm")
@@ -659,7 +659,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_author"])
var/datum/feed_channel/FC = locate(href_list["censor_channel_author"])
if(FC.is_admin_channel)
- alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
+ alert("This channel was created by a [using_map.company_name] Officer. You cannot censor it.","Ok")
return
if(FC.author != "\[REDACTED\] ")
FC.backup_author = FC.author
@@ -672,7 +672,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_story_author"])
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"])
if(MSG.is_admin_message)
- alert("This message was created by a [company_name] Officer. You cannot censor its author.","Ok")
+ alert("This message was created by a [using_map.company_name] Officer. You cannot censor its author.","Ok")
return
if(MSG.author != "\[REDACTED\] ")
MSG.backup_author = MSG.author
@@ -685,7 +685,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["censor_channel_story_body"])
var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"])
if(MSG.is_admin_message)
- alert("This channel was created by a [company_name] Officer. You cannot censor it.","Ok")
+ alert("This channel was created by a [using_map.company_name] Officer. You cannot censor it.","Ok")
return
if(MSG.body != "\[REDACTED\] ")
MSG.backup_body = MSG.body
@@ -711,7 +711,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
else if(href_list["toggle_d_notice"])
var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"])
if(FC.is_admin_channel)
- alert("This channel was created by a [company_name] Officer. You cannot place a D-Notice upon it.","Ok")
+ alert("This channel was created by a [using_map.company_name] Officer. You cannot place a D-Notice upon it.","Ok")
return
FC.censored = !FC.censored
FC.update()
@@ -812,7 +812,7 @@ obj/item/weapon/newspaper/attack_self(mob/user as mob)
switch(screen)
if(0) //Cover
dat+="The Griffon
"
- dat+="[company_name]-standard newspaper, for use on [company_name]© Space Facilities
"
+ dat+="[using_map.company_name]-standard newspaper, for use on [using_map.company_name]© Space Facilities
"
if(isemptylist(news_content))
if(important_message)
dat+="Contents:** Important Security Announcement** \[page [pages+2]\] "
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index 74b39840d0..ea5c78d734 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -375,7 +375,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
var/off_station = 0
var/turf/bomb_location = get_turf(src)
- if(bomb_location && (bomb_location.z in config.station_levels))
+ if(bomb_location && (bomb_location.z in using_map.station_levels))
if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)))
off_station = 1
else
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index a378f0ff35..595712afd3 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -441,7 +441,7 @@ var/list/turret_icons
else
take_damage(initial(health) * 8) //should instakill most turrets
if(3)
- take_damage(initial(health) * 8 / 3)
+ take_damage(initial(health) * 8 / 3) //Level 4 is too weak to bother turrets
/obj/machinery/porta_turret/proc/die() //called when the turret dies, ie, health <= 0
health = 0
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 4349752370..6dd278dc63 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -8,7 +8,7 @@ obj/machinery/recharger
idle_power_usage = 4
active_power_usage = 40000 //40 kW
var/obj/item/charging = null
- var/list/allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/laptop, /obj/item/weapon/cell, /obj/item/device/flashlight, /obj/item/device/electronic_assembly)
+ var/list/allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/laptop, /obj/item/weapon/cell, /obj/item/device/flashlight, /obj/item/device/electronic_assembly, /obj/item/weapon/weldingtool/electric)
var/icon_state_charged = "recharger2"
var/icon_state_charging = "recharger1"
var/icon_state_idle = "recharger0" //also when unpowered
@@ -33,19 +33,19 @@ obj/machinery/recharger
if(allowed)
if(charging)
- user << "\A [charging] is already charging here. "
+ to_chat(user, "\A [charging] is already charging here. ")
return
// Checks to make sure he's not in space doing it, and that the area got proper power.
if(!powered())
- user << "The [name] blinks red as you try to insert the item! "
+ to_chat(user, "The [name] blinks red as you try to insert the item! ")
return
if(istype(G, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/E = G
if(!E.power_supply)
- user << "Your gun has no power cell. "
+ to_chat(user, "Your gun has no power cell. ")
return
if(E.self_recharge)
- user << "Your gun has no recharge port. "
+ to_chat(user, "Your gun has no recharge port. ")
return
if(istype(G, /obj/item/weapon/gun/energy/staff))
return
@@ -65,16 +65,22 @@ obj/machinery/recharger
if(!assembly.battery)
to_chat(user, "The assembly doesn't have a power cell. ")
return
+ if(istype(G, /obj/item/weapon/weldingtool/electric))
+ var/obj/item/weapon/weldingtool/electric/welder = G
+ if(!welder.power_supply)
+ to_chat(user, "Your welder has no power cell. ")
+ return
+
user.drop_item()
G.loc = src
charging = G
update_icon()
else if(portable && istype(G, /obj/item/weapon/wrench))
if(charging)
- user << "Remove [charging] first! "
+ to_chat(user, "Remove [charging] first! ")
return
anchored = !anchored
- user << "You [anchored ? "attached" : "detached"] the recharger."
+ to_chat(user, "You [anchored ? "attached" : "detached"] the recharger.")
playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
else if(default_deconstruction_screwdriver(user, G))
return
@@ -208,8 +214,8 @@ obj/machinery/recharger
name = "wall recharger"
icon = 'icons/obj/stationobjs.dmi'
icon_state = "wrecharger0"
- active_power_usage = 25000 //25 kW , It's more specialized than the standalone recharger (guns and batons only) so make it more powerful
- allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/weapon/cell/device)
+ active_power_usage = 25000 //25 kW , It's more specialized than the standalone recharger (guns, batons, and flashlights only) so make it more powerful
+ allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/flashlight, /obj/item/weapon/cell/device)
icon_state_charged = "wrecharger2"
icon_state_charging = "wrecharger1"
icon_state_idle = "wrecharger0"
diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm
index fae062ffed..fd69e4f50e 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -2,7 +2,7 @@
/obj/item/supply_beacon
name = "inactive supply beacon"
icon = 'icons/obj/supplybeacon.dmi'
- desc = "An inactive, hacked supply beacon stamped with the "+starsys_name+" Rapid Fabrication logo. Good for one (1) ballistic supply pod shipment."
+ desc = "An inactive, hacked supply beacon stamped with the local system's Rapid Fabrication logo. Good for one (1) ballistic supply pod shipment."
icon_state = "beacon"
var/deploy_path = /obj/machinery/power/supply_beacon
var/deploy_time = 30
@@ -114,6 +114,6 @@
var/drop_x = src.x - 2
var/drop_y = src.y - 2
var/drop_z = src.z
- command_announcement.Announce(starsys_name+" Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
+ command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage")
spawn(rand(100, 300))
new /datum/random_map/droppod/supply(null, drop_x, drop_y, drop_z, supplied_drop = drop_type) // Splat.
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 7d27c94b65..9838d80722 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -374,6 +374,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
blackbox.msg_deathsquad += blackbox_msg
if(SYND_FREQ)
blackbox.msg_syndicate += blackbox_msg
+ if(RAID_FREQ)
+ blackbox.msg_raider += blackbox_msg
if(SUP_FREQ)
blackbox.msg_cargo += blackbox_msg
if(SRV_FREQ)
@@ -554,6 +556,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
blackbox.msg_deathsquad += blackbox_msg
if(SYND_FREQ)
blackbox.msg_syndicate += blackbox_msg
+ if(RAID_FREQ)
+ blackbox.msg_raider += blackbox_msg
if(SUP_FREQ)
blackbox.msg_cargo += blackbox_msg
if(SRV_FREQ)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 77ac7f697e..013001e388 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -93,7 +93,7 @@
var/turf/T = get_turf(R)
if(!T)
continue
- if(!(T.z in config.player_levels))
+ if(!(T.z in using_map.player_levels))
continue
var/tmpname = T.loc.name
if(areaindex[tmpname])
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index fdf4a16b00..ffe30bf3fd 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -348,13 +348,13 @@
NC.cableColor("red")
NC.d1 = 0
NC.d2 = fdirn
- NC.updateicon()
+ NC.update_icon()
var/datum/powernet/PN
if(last_piece && last_piece.d2 != chassis.dir)
last_piece.d1 = min(last_piece.d2, chassis.dir)
last_piece.d2 = max(last_piece.d2, chassis.dir)
- last_piece.updateicon()
+ last_piece.update_icon()
PN = last_piece.powernet
if(!PN)
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index da744422cf..1292a3747b 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -181,7 +181,7 @@
sleep(15)
visible_message("\icon[src] [src] beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
sleep(30)
- visible_message("\icon[src] [src] beeps: \"User DB truncated. Please contact your [company_name] system operator for future assistance.\"")
+ visible_message("\icon[src] [src] beeps: \"User DB truncated. Please contact your [using_map.company_name] system operator for future assistance.\"")
req_access = null
emagged = 1
return 1
diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm
index 49efb68cf3..8cea4b22c3 100644
--- a/code/game/mecha/mech_prosthetics.dm
+++ b/code/game/mecha/mech_prosthetics.dm
@@ -208,7 +208,7 @@
sleep(15)
visible_message("\icon[src] [src] beeps: \"User DB corrupted \[Code 0x00FA\]. Truncating data structure...\"")
sleep(30)
- visible_message("\icon[src] [src] beeps: \"User DB truncated. Please contact your [company_name] system operator for future assistance.\"")
+ visible_message("\icon[src] [src] beeps: \"User DB truncated. Please contact your [using_map.company_name] system operator for future assistance.\"")
req_access = null
emagged = 1
return 1
diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm
index e9dbd93edf..a6da9bfa00 100644
--- a/code/game/mecha/mecha_control_console.dm
+++ b/code/game/mecha/mecha_control_console.dm
@@ -105,7 +105,7 @@
proc/shock()
var/obj/mecha/M = in_mecha()
if(M)
- M.emp_act(2)
+ M.emp_act(4)
qdel(src)
proc/get_mecha_log()
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index d7e530b761..485ea6987b 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -333,7 +333,7 @@ steam.start() -- spawns the effect
spawn(0)
var/turf/T = get_turf(src.holder)
if(T != src.oldposition)
- if(istype(T, /turf/space))
+ if(isturf(T))
var/obj/effect/effect/ion_trails/I = PoolOrNew(/obj/effect/effect/ion_trails, src.oldposition)
src.oldposition = T
I.set_dir(src.holder.dir)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 88bbe2a721..3ecb7c7b2d 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -135,7 +135,7 @@
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc)
- new /obj/item/clothing/shoes/jackboots(src.loc)
+ new /obj/item/clothing/shoes/boots/jackboots(src.loc)
delete_me = 1
/obj/effect/landmark/costume/nyangirl/New()
diff --git a/code/game/objects/effects/zone_divider.dm b/code/game/objects/effects/zone_divider.dm
new file mode 100644
index 0000000000..5adabf318c
--- /dev/null
+++ b/code/game/objects/effects/zone_divider.dm
@@ -0,0 +1,20 @@
+// This artificially splits a ZAS zone, useful if you wish to prevent massive super-zones which can cause lag.
+/obj/effect/zone_divider
+ name = "zone divider"
+ icon = 'icons/mob/screen1.dmi'
+ icon_state = "x3"
+ invisibility = 101 //nope, can't see this
+ anchored = 1
+ density = 0
+ opacity = 0
+
+/obj/effect/zone_divider/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
+ // Special case to prevent us from being part of a zone during the first air master tick.
+ // We must merge ourselves into a zone on next tick. This will cause a bit of lag on
+ // startup, but it can't really be helped you know?
+ if(air_master && air_master.current_cycle == 0)
+ spawn(1)
+ air_master.mark_for_update(get_turf(src))
+ return 0
+ return !air_group // Anything except zones can pass
+
diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm
index c1df6b5454..3b1a3b54f5 100644
--- a/code/game/objects/empulse.dm
+++ b/code/game/objects/empulse.dm
@@ -4,17 +4,17 @@
// #define EMPDEBUG 10
-proc/empulse(turf/epicenter, heavy_range, light_range, log=0)
+proc/empulse(turf/epicenter, first_range, second_range, third_range, fourth_range, log=0)
if(!epicenter) return
if(!istype(epicenter, /turf))
epicenter = get_turf(epicenter.loc)
if(log)
- message_admins("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
- log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
+ message_admins("EMP with size ([first_range], [second_range], [third_range], [fourth_range]) in area [epicenter.loc.name] ")
+ log_game("EMP with size ([first_range], [second_range], [third_range], [fourth_range]) in area [epicenter.loc.name] ")
- if(heavy_range > 1)
+ if(first_range > 1)
var/obj/effect/overlay/pulse = PoolOrNew(/obj/effect/overlay, epicenter)
pulse.icon = 'icons/effects/effects.dmi'
pulse.icon_state = "emppulse"
@@ -23,28 +23,50 @@ proc/empulse(turf/epicenter, heavy_range, light_range, log=0)
spawn(20)
qdel(pulse)
- if(heavy_range > light_range)
- light_range = heavy_range
+ if(first_range > second_range)
+ second_range = first_range
+ if(second_range > third_range)
+ third_range = second_range
+ if(third_range > fourth_range)
+ fourth_range = third_range
- for(var/mob/M in range(heavy_range, epicenter))
+ for(var/mob/M in range(first_range, epicenter))
M << 'sound/effects/EMPulse.ogg'
- for(var/atom/T in range(light_range, epicenter))
+ for(var/atom/T in range(fourth_range, epicenter))
#ifdef EMPDEBUG
var/time = world.timeofday
#endif
var/distance = get_dist(epicenter, T)
if(distance < 0)
distance = 0
- if(distance < heavy_range)
+ //Worst effects, really hurts
+ if(distance < first_range)
T.emp_act(1)
- else if(distance == heavy_range)
+ else if(distance == first_range)
if(prob(50))
T.emp_act(1)
else
T.emp_act(2)
- else if(distance <= light_range)
+ //Slightly less painful
+ else if(distance <= second_range)
T.emp_act(2)
+ else if(distance == second_range)
+ if(prob(50))
+ T.emp_act(2)
+ else
+ T.emp_act(3)
+ //Even less slightly less painful
+ else if(distance <= third_range)
+ T.emp_act(3)
+ else if(distance == third_range)
+ if(prob(50))
+ T.emp_act(2)
+ else
+ T.emp_act(3)
+ //This should be more or less harmless
+ else if(distance <= fourth_range)
+ T.emp_act(4)
#ifdef EMPDEBUG
if((world.timeofday - time) >= EMPDEBUG)
log_and_message_admins("EMPDEBUG: [T.name] - [T.type] - took [world.timeofday - time]ds to process emp_act()!")
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 0559b626e1..4316da3c49 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -44,6 +44,7 @@
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N
var/list/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
+ var/list/armorsoak = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
var/list/allowed = null //suit storage stuff.
var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers.
var/zoomdevicename = null //name used for message when binoculars/scope is used
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index 17c7d76248..0577fee4a7 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -19,6 +19,23 @@
var/const/ROOM_ERR_SPACE = -1
var/const/ROOM_ERR_TOOLARGE = -2
+ var/static/list/SPACE_AREA_TYPES = list(
+ /area/space,
+ /area/mine
+ )
+ var/static/list/SPECIAL_AREA_TYPES = list(
+ /area/shuttle,
+ /area/admin,
+ /area/arrival,
+ /area/centcom,
+ /area/asteroid,
+ /area/tdome,
+ /area/syndicate_station,
+ /area/wizard_station,
+ /area/prison
+ // /area/derelict //commented out, all hail derelict-rebuilders!
+ )
+
/obj/item/blueprints/attack_self(mob/M as mob)
if (!istype(M,/mob/living/carbon/human))
M << "This stack of blue paper means nothing to you." //monkeys cannot into projecting
@@ -48,7 +65,7 @@
var/area/A = get_area()
var/text = {"[src]
[station_name()] blueprints
-Property of [company_name]. For heads of staff only. Store in high-secure storage.
+Property of [using_map.company_name]. For heads of staff only. Store in high-secure storage.
"}
switch (get_area_type())
if (AREA_SPACE)
@@ -79,22 +96,11 @@ move an amendment to the drawing.
return A
/obj/item/blueprints/proc/get_area_type(var/area/A = get_area())
- if(istype(A, /area/space))
- return AREA_SPACE
- var/list/SPECIALS = list(
- /area/shuttle,
- /area/admin,
- /area/arrival,
- /area/centcom,
- /area/asteroid,
- /area/tdome,
- /area/syndicate_station,
- /area/wizard_station,
- /area/prison
- // /area/derelict //commented out, all hail derelict-rebuilders!
- )
- for (var/type in SPECIALS)
- if ( istype(A,type) )
+ for(var/type in SPACE_AREA_TYPES)
+ if(istype(A, type))
+ return AREA_SPACE
+ for (var/type in SPECIAL_AREA_TYPES)
+ if(istype(A, type))
return AREA_SPECIAL
return AREA_STATION
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index a2310cda92..1450fa94ce 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -113,6 +113,7 @@
a hostile enviroment."
icon = 'icons/obj/cryobag.dmi'
icon_state = "bodybag_folded"
+ item_state = "bodybag_cryo_folded"
origin_tech = list(TECH_BIO = 4)
/obj/item/bodybag/cryobag/attack_self(mob/user)
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index e72b4ba484..3560d4e37f 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -419,6 +419,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(1) icon = 'icons/obj/pda.dmi'
if(2) icon = 'icons/obj/pda_slim.dmi'
if(3) icon = 'icons/obj/pda_old.dmi'
+ if(4) icon = 'icons/obj/pda_rugged.dmi'
else
icon = 'icons/obj/pda_old.dmi'
log_debug("Invalid switch for PDA, defaulting to old PDA icons. [pdachoice] chosen.")
@@ -998,7 +999,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
M.apply_damage( rand(30,60) , BURN)
message += "You feel a searing heat! Your [P] is burning!"
if(i>=20 && i<=25) //EMP
- empulse(P.loc, 3, 6, 1)
+ empulse(P.loc, 1, 2, 4, 6, 1)
message += "Your [P] emits a wave of electromagnetic energy!"
if(i>=25 && i<=40) //Smoke
var/datum/effect/effect/system/smoke_spread/chem/S = new /datum/effect/effect/system/smoke_spread/chem
diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm
index b6d8a81709..c609d38c4a 100644
--- a/code/game/objects/items/devices/aicard.dm
+++ b/code/game/objects/items/devices/aicard.dm
@@ -2,7 +2,7 @@
name = "inteliCard"
icon = 'icons/obj/pda.dmi'
icon_state = "aicard" // aicard-full
- item_state = "electronic"
+ item_state = "aicard"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT
show_messages = 0
diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm
index 2f0d7f1c3c..8bfe2dffca 100644
--- a/code/game/objects/items/devices/communicator/communicator.dm
+++ b/code/game/objects/items/devices/communicator/communicator.dm
@@ -213,6 +213,17 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
update_icon()
ui_interact(user)
+// Proc: MouseDrop()
+//Same thing PDAs do
+/obj/item/device/communicator/MouseDrop(obj/over_object as obj)
+ var/mob/M = usr
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+ if(!istype(over_object, /obj/screen))
+ return attack_self(M)
+ return
+
+
// Proc: attack_ghost()
// Parameters: 1 (user - the ghost clicking on the device)
// Description: Recreates the known_devices list, so that the ghost looking at the device can see themselves, then calls ..() so that NanoUI appears.
diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm
index a4b0a02c5a..73efffe121 100644
--- a/code/game/objects/items/devices/defib.dm
+++ b/code/game/objects/items/devices/defib.dm
@@ -8,6 +8,8 @@
var/state //0 off, 1 open, 2 working, 3 dead
var/uses = 2 //Calculates initial uses based on starting cell size
+ var/use_on_synthetic = 0 //If 1, this is only useful on FBPs, if 0, this is only useful on fleshies
+ var/pad_name = "defib pads" //Just the name given for some cosmetic things
var/chance = 75 //Percent chance of working
var/charge_cost //Set in New() based on uses
var/obj/item/weapon/cell/cell //The size is mostly irrelevant, see 'uses'
@@ -32,13 +34,31 @@
if(istype(onto) && Adjacent(usr) && !usr.restrained() && !usr.stat)
var/mob/living/carbon/human/user = usr
//<--Feel free to code clothing checks right here
- user.visible_message("[user] begins applying defib pads to [onto]. ",
- "You begin applying defib pads to [onto]. ")
+ if(can_defib(onto))
+ user.visible_message("[user] begins applying [pad_name] to [onto]. ",
+ "You begin applying [pad_name] to [onto]. ")
if(do_after(user, 100, onto))
patient = onto
statechange(1,patient)
- user.visible_message("[user] applies defib pads to [onto]. ",
- "You finish applying defib pads to [onto]. ")
+ user.visible_message("[user] applies [pad_name] to [onto]. ",
+ "You finish applying [pad_name] to [onto]. ")
+
+
+//can_defib() check is where all of the qualifying conditions should go
+//Could probably toss in checks here for damage, organs, etc, but for now I'll leave it as just this
+/obj/item/device/defib_kit/proc/can_defib(var/mob/living/carbon/human/target)
+ var/mob/living/carbon/human/user = usr
+ if(use_on_synthetic && !target.isSynthetic())
+ to_chat(user, "[src] isn't designed for organics!")
+ return 0
+ else if(!use_on_synthetic && target.isSynthetic())
+ to_chat(user, "[src] isn't designed for synthetics!")
+ return 0
+ else if(!target.isSynthetic() && ((world.time - target.timeofdeath) > (10 MINUTES)))//Can only revive organics within a few minutes
+ to_chat(user, "There is no spark of life in [target.name], they've been dead too long to revive this way.")
+ return 0
+ return 1
+
/obj/item/device/defib_kit/attackby(var/obj/item/A as obj, mob/living/user as mob)
..()
@@ -94,7 +114,7 @@
//Patient moved too far
if(patient && !(get_dist(src,patient) <= 1)) //You separated the kit and pads too far
- audible_message("There's a clatter as the defib pads are yanked off of [patient]. ")
+ audible_message("There is a clatter as the [pad_name] are yanked off of [patient]. ")
statechange(0)
patient = null
return
@@ -111,7 +131,7 @@
patient.visible_message("[patient] convulses! ")
playsound(src.loc, 'sound/effects/sparks2.ogg', 75, 1)
//Actual rezzing code
- if(prob(chance) && ((world.time - patient.timeofdeath) < (10 MINUTES))) //Can only revive within a few minutes
+ if(prob(chance))
if(!patient.client && patient.mind) //Don't force the dead person to come back if they don't want to.
for(var/mob/observer/dead/ghost in player_list)
if(ghost.mind == patient.mind)
@@ -155,3 +175,10 @@
break
return
+
+/obj/item/device/defib_kit/jumper_kit
+ name = "jumper cable kit"
+ desc = "This Morpheus-branded FBP defib kit is a semi-automated model. Apply cables, step back, wait."
+ icon_state = "jumper_kit"
+ use_on_synthetic = 1
+ pad_name = "jumper cables"
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 27ee923a1b..9b573a2cf1 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -181,6 +181,38 @@
else
return ..()
+/obj/item/device/flashlight/MouseDrop(obj/over_object as obj)
+ if(!canremove)
+ return
+
+ if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
+
+ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
+ return
+
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+
+ //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away.
+ //there's got to be a better way of doing this.
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+
+ if (( usr.restrained() ) || ( usr.stat ))
+ return
+
+ if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src))
+ return
+
+ switch(over_object.name)
+ if("r_hand")
+ usr.u_equip(src)
+ usr.put_in_r_hand(src)
+ if("l_hand")
+ usr.u_equip(src)
+ usr.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+
/obj/item/device/flashlight/attackby(obj/item/weapon/W, mob/user as mob)
if(power_use)
if(istype(W, /obj/item/weapon/cell))
@@ -210,6 +242,26 @@
w_class = ITEMSIZE_TINY
power_use = 0
+/obj/item/device/flashlight/color //Default color is blue, just roll with it.
+ name = "blue flashlight"
+ desc = "A hand-held emergency light. This one is blue."
+ icon_state = "flashlight_blue"
+
+/obj/item/device/flashlight/color/red
+ name = "red flashlight"
+ desc = "A hand-held emergency light. This one is red."
+ icon_state = "flashlight_red"
+
+/obj/item/device/flashlight/color/orange
+ name = "orange flashlight"
+ desc = "A hand-held emergency light. This one is orange."
+ icon_state = "flashlight_orange"
+
+/obj/item/device/flashlight/color/yellow
+ name = "yellow flashlight"
+ desc = "A hand-held emergency light. This one is yellow."
+ icon_state = "flashlight_yellow"
+
/obj/item/device/flashlight/maglight
name = "maglight"
desc = "A very, very heavy duty flashlight."
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 20abf3401b..35f41730df 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -45,8 +45,6 @@
icon = 'icons/obj/janitor.dmi'
icon_state = "lightreplacer0"
- item_state = "electronic"
-
flags = CONDUCT
slot_flags = SLOT_BELT
origin_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 2)
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 0ce2f405ff..53d647a4f0 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -2,7 +2,6 @@
name = "megaphone"
desc = "A device used to project your voice. Loudly."
icon_state = "megaphone"
- item_state = "radio"
w_class = ITEMSIZE_SMALL
flags = CONDUCT
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 497ad68f09..910d983e22 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -4,7 +4,6 @@
name = "power sink"
desc = "A nulling power sink which drains energy from electrical systems."
icon_state = "powersink0"
- item_state = "electronic"
w_class = ITEMSIZE_LARGE
flags = CONDUCT
throwforce = 5
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index f08585da31..7bec1014d7 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -19,6 +19,12 @@
origin_tech = list(TECH_ILLEGAL = 3)
syndie = 1//Signifies that it de-crypts Syndicate transmissions
+/obj/item/device/encryptionkey/raider
+ icon_state = "cypherkey"
+ channels = list("Raider" = 1)
+ origin_tech = list(TECH_ILLEGAL = 2)
+ syndie = 1
+
/obj/item/device/encryptionkey/binary
icon_state = "cypherkey"
translate_binary = 1
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index fce4ec3175..a56ea4fa98 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -75,6 +75,15 @@
syndie = 1
ks1type = /obj/item/device/encryptionkey/syndicate
+/obj/item/device/radio/headset/raider
+ origin_tech = list(TECH_ILLEGAL = 2)
+ syndie = 1
+ ks1type = /obj/item/device/encryptionkey/raider
+
+/obj/item/device/radio/headset/raider/initialize()
+ ..()
+ set_frequency(RAID_FREQ)
+
/obj/item/device/radio/headset/binary
origin_tech = list(TECH_ILLEGAL = 3)
ks1type = /obj/item/device/encryptionkey/binary
@@ -289,6 +298,7 @@
desc = "The headset of the boss's boss."
icon_state = "com_headset"
item_state = "headset"
+ centComm = 1
// freerange = 1
ks2type = /obj/item/device/encryptionkey/ert
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 216e2e59d0..8e9a72d203 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -27,6 +27,8 @@
/obj/item/device/radio/intercom/specops
name = "\improper Spec Ops intercom"
frequency = ERT_FREQ
+ subspace_transmission = 1
+ centComm = 1
/obj/item/device/radio/intercom/department
canhear_range = 5
@@ -35,12 +37,12 @@
/obj/item/device/radio/intercom/department/medbay
name = "station intercom (Medbay)"
- icon_state = "secintercom"
+ icon_state = "medintercom"
frequency = MED_I_FREQ
/obj/item/device/radio/intercom/department/security
name = "station intercom (Security)"
- icon_state = "medintercom"
+ icon_state = "secintercom"
frequency = SEC_I_FREQ
/obj/item/device/radio/intercom/entertainment
@@ -81,6 +83,17 @@
..()
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
+/obj/item/device/radio/intercom/raider
+ name = "illicit intercom"
+ desc = "Pirate radio, but not in the usual sense of the word."
+ frequency = RAID_FREQ
+ subspace_transmission = 1
+ syndie = 1
+
+/obj/item/device/radio/intercom/raider/New()
+ ..()
+ internal_channels[num2text(RAID_FREQ)] = list(access_syndicate)
+
/obj/item/device/radio/intercom/Destroy()
processing_objects -= src
..()
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index cec23e818f..1bd7f9349a 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -40,6 +40,7 @@ var/global/list/default_medbay_channels = list(
var/list/channels = list() //see communications.dm for full list. First channel is a "default" for :h
var/subspace_transmission = 0
var/syndie = 0//Holder to see if it's a syndicate encrypted radio
+ var/centComm = 0//Holder to see if it's a CentComm encrypted radio
flags = CONDUCT
slot_flags = SLOT_BELT
throw_speed = 2
@@ -508,6 +509,9 @@ var/global/list/default_medbay_channels = list(
if(freq in ANTAG_FREQS)
if(!(src.syndie))//Checks to see if it's allowed on that frequency, based on the encryption keys
return -1
+ if(freq in CENT_FREQS)
+ if(!(src.centComm))//Checks to see if it's allowed on that frequency, based on the encryption keys
+ return -1
if (!on)
return -1
if (!freq) //recieved on main frequency
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 56311a52df..243d301289 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -52,8 +52,8 @@ REAGENT SCANNER
if (!istype(M,/mob/living/carbon/human) || M.isSynthetic())
//these sensors are designed for organic life
user.show_message("Analyzing Results for ERROR:\n\t Overall Status: ERROR ")
- user.show_message(" Key: Suffocation /Toxin /Burns /Brute ", 1)
- user.show_message(" Damage Specifics: ? - ? - ? - ? ")
+ user.show_message(" Key: Suffocation /Toxin /Burns /Brute ", 1)
+ user.show_message(" Damage Specifics: ? - ? - ? - ? ")
user.show_message("Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F) ", 1)
user.show_message("Warning: Blood Level ERROR: --% --cl. Type: ERROR ")
user.show_message("Subject's pulse: -- bpm. ")
@@ -70,8 +70,8 @@ REAGENT SCANNER
user.show_message("Overall Status: dead ")
else
user.show_message("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.maxHealth)*100) ]% healthy"] ")
- user.show_message(" Key: Suffocation /Toxin /Burns /Brute ", 1)
- user.show_message(" Damage Specifics: [OX] - [TX] - [BU] - [BR] ")
+ user.show_message(" Key: Suffocation /Toxin /Burns /Brute ", 1)
+ user.show_message(" Damage Specifics: [OX] - [TX] - [BU] - [BR] ")
user.show_message("Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F) ", 1)
if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
user.show_message("Time of Death: [M.tod] ")
@@ -92,7 +92,7 @@ REAGENT SCANNER
else
user.show_message(" Limbs are OK. ",1)
- OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected " : "Subject bloodstream oxygen level normal"
+ OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected " : "Subject bloodstream oxygen level normal"
TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected " : "Subject bloodstream toxin level minimal"
BU = M.getFireLoss() > 50 ? "Severe burn damage detected " : "Subject burn injury status O.K"
BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected " : "Subject brute-force injury status O.K"
@@ -243,7 +243,6 @@ REAGENT SCANNER
name = "mass spectrometer"
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
icon_state = "spectrometer"
- item_state = "analyzer"
w_class = ITEMSIZE_SMALL
flags = CONDUCT | OPENCONTAINER
slot_flags = SLOT_BELT
diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm
index dde6814494..525c5d1255 100644
--- a/code/game/objects/items/devices/t_scanner.dm
+++ b/code/game/objects/items/devices/t_scanner.dm
@@ -4,9 +4,9 @@
name = "\improper T-ray scanner"
desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes."
icon_state = "t-ray0"
+ item_state = "t-ray"
slot_flags = SLOT_BELT
w_class = ITEMSIZE_SMALL
- item_state = "electronic"
matter = list(DEFAULT_WALL_MATERIAL = 150)
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm
new file mode 100644
index 0000000000..0bb26b32bc
--- /dev/null
+++ b/code/game/objects/items/devices/translator.dm
@@ -0,0 +1,79 @@
+//Universal translator
+/obj/item/device/universal_translator
+ name = "handheld translator"
+ desc = "This handy device appears to translate the languages it hears into onscreen text for a user."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "translator"
+ w_class = ITEMSIZE_SMALL
+ origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
+ var/mult_icons = 1 //Changes sprite when it translates
+ var/visual = 1 //If you need to see to get the message
+ var/audio = 0 //If you need to hear to get the message
+ var/listening = 0
+ var/datum/language/langset
+
+/obj/item/device/universal_translator/attack_self(mob/user)
+ if(!listening) //Turning ON
+ langset = input(user,"Translate to which of your languages?","Language Selection") as null|anything in user.languages
+ if(langset)
+ if(langset && ((langset.flags & NONVERBAL) || (langset.flags & HIVEMIND)))
+ to_chat(user, "\The [src] cannot output that language. ")
+ return
+ else
+ listening = 1
+ listening_objects |= src
+ if(mult_icons)
+ icon_state = "[initial(icon_state)]1"
+ to_chat(user, "You enable \the [src], translating into [langset.name]. ")
+ else //Turning OFF
+ listening = 0
+ listening_objects -= src
+ langset = null
+ icon_state = "[initial(icon_state)]"
+ to_chat(user, "You disable \the [src]. ")
+
+/obj/item/device/universal_translator/hear_talk(var/mob/speaker, var/message, var/vrb, var/datum/language/language)
+ if(!listening || !istype(speaker))
+ return
+
+ //Show the "I heard something" animation.
+ if(mult_icons)
+ flick("[initial(icon_state)]2",src)
+
+ //Handheld or pocket only.
+ if(!isliving(loc))
+ return
+
+ var/mob/living/L = loc
+
+ if (language && (language.flags & NONVERBAL))
+ return //Not gonna translate sign language
+
+ if (visual && ((L.sdisabilities & BLIND) || L.eye_blind))
+ return //Can't see the screen, don't get the message
+
+ if (audio && ((L.sdisabilities & DEAF) || L.ear_deaf))
+ return //Can't hear the translation, don't get the message
+
+ //Only translate if they can't understand, otherwise pointlessly spammy
+ //I'll just assume they don't look at the screen in that case
+
+ //They don't understand the spoken language we're translating FROM
+ if(!L.say_understands(speaker,language))
+ //They understand the output language
+ if(L.say_understands(null,langset))
+ to_chat(L, "[src] translates, \"[message] \"")
+
+ //They don't understand the output language
+ else
+ to_chat(L, "[src] translates, \"[langset.scramble(message)] \"")
+
+//Let's try an ear-worn version
+/obj/item/device/universal_translator/ear
+ name = "translator earpiece"
+ desc = "This handy device appears to translate the languages it hears into another language for a user."
+ icon_state = "earpiece"
+ w_class = ITEMSIZE_TINY
+ slot_flags = SLOT_EARS
+ visual = 0
+ audio = 1
\ No newline at end of file
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 28f3a1def6..16e9daf9cc 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -4,34 +4,20 @@
Cyborg Spec Items
***********************************************************************/
//Might want to move this into several files later but for now it works here
-// Consider changing this to a child of the stun baton class. ~Z
-/obj/item/borg/stun
+
+/obj/item/weapon/melee/baton/robot/arm
name = "electrified arm"
icon = 'icons/obj/decals.dmi'
icon_state = "shock"
-/obj/item/borg/stun/apply_hit_effect(mob/living/M, mob/living/silicon/robot/user, var/hit_zone)
- // How the Hell.
- if(!istype(user))
- var/mob/living/temp = user
- if(istype(temp))
- temp.drop_from_inventory(src)
- qdel(src)
- return
+ hitcost = 750
+ agonyforce = 70
- user.visible_message("\The [user] has prodded \the [M] with \a [src]! ")
-
- if(!user.cell || !user.cell.checked_use(1250)) //Slightly more than a baton.
- return
-
- playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
-
- M.apply_effect(5, STUTTER)
- M.stun_effect_act(0, 70, check_zone(hit_zone), src)
-
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- H.forcesay(hit_appends)
+/obj/item/weapon/melee/baton/robot/arm/update_icon()
+ if(status)
+ set_light(1.5, 1, lightcolor)
+ else
+ set_light(0)
/obj/item/borg/overdrive
name = "overdrive"
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 330bde967f..28179f7dbd 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -21,6 +21,7 @@
name = "robotic module reset board"
desc = "Used to reset a cyborg's module. Destroys any other upgrades applied to the robot."
icon_state = "cyborg_upgrade1"
+ item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/reset/action(var/mob/living/silicon/robot/R)
@@ -41,6 +42,7 @@
name = "robot reclassification board"
desc = "Used to rename a cyborg."
icon_state = "cyborg_upgrade1"
+ item_state = "cyborg_upgrade"
var/heldname = "default name"
/obj/item/borg/upgrade/rename/attack_self(mob/user as mob)
@@ -59,6 +61,7 @@
name = "robot emergency restart module"
desc = "Used to force a restart of a disabled-but-repaired robot, bringing it back online."
icon_state = "cyborg_upgrade1"
+ item_state = "cyborg_upgrade"
/obj/item/borg/upgrade/restart/action(var/mob/living/silicon/robot/R)
@@ -82,6 +85,7 @@
name = "robotic VTEC Module"
desc = "Used to kick in a robot's VTEC systems, increasing their speed."
icon_state = "cyborg_upgrade2"
+ item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/vtec/action(var/mob/living/silicon/robot/R)
@@ -98,6 +102,7 @@
name = "robotic Rapid Taser Cooling Module"
desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate."
icon_state = "cyborg_upgrade3"
+ item_state = "cyborg_upgrade"
require_module = 1
@@ -132,6 +137,7 @@
name = "mining robot jetpack"
desc = "A carbon dioxide jetpack suitable for low-gravity mining operations."
icon_state = "cyborg_upgrade3"
+ item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/jetpack/action(var/mob/living/silicon/robot/R)
@@ -153,6 +159,7 @@
name = "illegal equipment module"
desc = "Unlocks the hidden, deadlier functions of a robot"
icon_state = "cyborg_upgrade3"
+ item_state = "cyborg_upgrade"
require_module = 1
/obj/item/borg/upgrade/syndicate/action(var/mob/living/silicon/robot/R)
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index ce28a6eb0b..9684bba4db 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -35,7 +35,7 @@ AI MODULES
return
if(ticker && ticker.mode && ticker.mode.name == "blob")
- usr << "Law uploads have been disabled by [company_name]!"
+ usr << "Law uploads have been disabled by [using_map.company_name]!"
return
if (comp.current.stat == 2 || comp.current.control_disabled == 1)
diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm
index 302ac99d97..d9606d28d2 100644
--- a/code/game/objects/items/weapons/autopsy.dm
+++ b/code/game/objects/items/weapons/autopsy.dm
@@ -7,6 +7,7 @@
desc = "Extracts information on wounds."
icon = 'icons/obj/autopsy_scanner.dmi'
icon_state = ""
+ item_state = "autopsy_scanner"
flags = CONDUCT
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 62f4925c9a..76c4f9e768 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -85,10 +85,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
body_parts_covered = 0
var/lit = 0
var/icon_on
- var/icon_off
var/type_butt = null
var/chem_volume = 0
+ var/max_smoketime = 0 //Related to sprites
var/smoketime = 0
+ var/is_pipe = 0 //Prevents a runtime with pipes
var/matchmes = "USER lights NAME with FLAME"
var/lightermes = "USER lights NAME with FLAME"
var/zippomes = "USER lights NAME with FLAME"
@@ -100,15 +101,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
..()
flags |= NOREACT // so it doesn't react until you light it
create_reagents(chem_volume) // making the cigarrete a chemical holder with a maximum volume of 15
+ if(smoketime && !max_smoketime)
+ max_smoketime = smoketime
-/obj/item/clothing/mask/smokable/process()
- var/turf/location = get_turf(src)
- smoketime--
- if(smoketime < 1)
- die()
- return
- if(location)
- location.hotspot_expose(700, 5)
+/obj/item/clothing/mask/smokable/proc/smoke(amount)
+ if(smoketime > max_smoketime)
+ smoketime = max_smoketime
+ smoketime -= amount
if(reagents && reagents.total_volume) // check if it has any reagents at all
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
@@ -117,21 +116,49 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else // else just remove some of the reagents
reagents.remove_any(REM)
+/obj/item/clothing/mask/smokable/process()
+ var/turf/location = get_turf(src)
+ smoke(1)
+ if(smoketime < 1)
+ die()
+ return
+ if(location)
+ location.hotspot_expose(700, 5)
+
+/obj/item/clothing/mask/smokable/update_icon()
+ if(lit)
+ icon_state = "[initial(icon_state)]_on"
+ item_state = "[initial(item_state)]_on"
+ else if(smoketime < max_smoketime)
+ if(is_pipe)
+ icon_state = initial(icon_state)
+ item_state = initial(item_state)
+ else
+ icon_state = "[initial(icon_state)]_burnt"
+ item_state = "[initial(item_state)]_burnt"
+ if(ismob(loc))
+ var/mob/living/M = loc
+ M.update_inv_wear_mask(0)
+ M.update_inv_l_hand(0)
+ M.update_inv_r_hand(1)
+ ..()
+
/obj/item/clothing/mask/smokable/examine(mob/user)
..()
- if(lit == 1)
- var/smoke_percent = round((smoketime / initial(smoketime)) * 100)
- switch(smoke_percent)
- if(90 to INFINITY)
- user << "[src] has just begun to burn."
- if(60 to 90)
- user << "[src] has a good amount of burn time remaining."
- if(30 to 60)
- user << "[src] is about half finished."
- if(10 to 30)
- user << "[src] is starting to burn low."
- else
- user << "[src] is nearly burnt out!"
+ if(is_pipe)
+ return
+ var/smoke_percent = round((smoketime / max_smoketime) * 100)
+ switch(smoke_percent)
+ if(90 to INFINITY)
+ user << "[src] is still fresh."
+ if(60 to 90)
+ user << "[src] has a good amount of burn time remaining."
+ if(30 to 60)
+ user << "[src] is about half finished."
+ if(10 to 30)
+ user << "[src] is starting to burn low."
+ else
+ user << "[src] is nearly burnt out!"
/obj/item/clothing/mask/smokable/proc/light(var/flavor_text = "[usr] lights the [name].")
@@ -152,21 +179,16 @@ CIGARETTE PACKETS ARE IN FANCY.DM
return
flags &= ~NOREACT // allowing reagents to react after being lit
reagents.handle_reactions()
- icon_state = icon_on
- item_state = icon_on
- if(ismob(loc))
- var/mob/living/M = loc
- M.update_inv_wear_mask(0)
- M.update_inv_l_hand(0)
- M.update_inv_r_hand(1)
var/turf/T = get_turf(src)
T.visible_message(flavor_text)
+ update_icon()
set_light(2, 0.25, "#E38F46")
processing_objects.Add(src)
/obj/item/clothing/mask/smokable/proc/die(var/nomessage = 0)
var/turf/T = get_turf(src)
set_light(0)
+ processing_objects.Remove(src)
if (type_butt)
var/obj/item/butt = new type_butt(T)
transfer_fingerprints_to(butt)
@@ -175,12 +197,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(ismob(loc))
var/mob/living/M = loc
if (!nomessage)
- M << "Your [name] goes out. "
+ to_chat(M, "Your [name] goes out. ")
M.remove_from_mob(src) //un-equip it so the overlays can update
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
- processing_objects.Remove(src)
qdel(src)
else
new /obj/effect/decal/cleanable/ash(T)
@@ -189,12 +210,30 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if (!nomessage)
M << "Your [name] goes out, and you empty the ash. "
lit = 0
- icon_state = icon_off
- item_state = icon_off
+ icon_state = initial(icon_state)
+ item_state = initial(item_state)
M.update_inv_wear_mask(0)
M.update_inv_l_hand(0)
M.update_inv_r_hand(1)
- processing_objects.Remove(src)
+ smoketime = 0
+ reagents.clear_reagents()
+ name = "empty [initial(name)]"
+
+/obj/item/clothing/mask/smokable/proc/quench()
+ lit = 0
+ processing_objects.Remove(src)
+ update_icon()
+
+/obj/item/clothing/mask/smokable/attack(mob/living/carbon/human/H, mob/user, def_zone)
+ if(lit && H == user && istype(H))
+ var/obj/item/blocked = H.check_mouth_coverage()
+ if(blocked)
+ to_chat(H, "\The [blocked] is in the way! ")
+ return 1
+ to_chat(H, "You take a drag on your [name]. ")
+ smoke(5)
+ return 1
+ return ..()
/obj/item/clothing/mask/smokable/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
@@ -223,19 +262,22 @@ CIGARETTE PACKETS ARE IN FANCY.DM
else
return ..()
+/obj/item/clothing/mask/smokable/water_act(amount)
+ if(amount >= 5)
+ quench()
+
/obj/item/clothing/mask/smokable/cigarette
name = "cigarette"
desc = "A roll of tobacco and nicotine."
- icon_state = "cigoff"
+ icon_state = "cig"
+ item_state = "cig"
throw_speed = 0.5
- item_state = "cigoff"
w_class = ITEMSIZE_TINY
slot_flags = SLOT_EARS | SLOT_MASK
attack_verb = list("burnt", "singed")
- icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
- icon_off = "cigoff"
type_butt = /obj/item/weapon/cigbutt
chem_volume = 15
+ max_smoketime = 300
smoketime = 300
matchmes = "USER lights their NAME with their FLAME. "
lightermes = "USER manages to light their NAME with FLAME. "
@@ -269,8 +311,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/attack_self(mob/user as mob)
if(lit == 1)
- user.visible_message("[user] calmly drops and treads on the lit [src], putting it out instantly. ")
- die(1)
+ if(user.a_intent == I_HURT)
+ user.visible_message("[user] drops and treads on the lit [src], putting it out instantly. ")
+ die(1)
+ else
+ user.visible_message("[user] puts out \the [src]. ")
+ quench()
return ..()
////////////
@@ -279,12 +325,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/cigar
name = "premium cigar"
desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!"
- icon_state = "cigar2off"
- icon_on = "cigar2on"
- icon_off = "cigar2off"
+ icon_state = "cigar2"
type_butt = /obj/item/weapon/cigbutt/cigarbutt
throw_speed = 0.5
- item_state = "cigaroff"
+ item_state = "cigar"
+ max_smoketime = 1500
smoketime = 1500
chem_volume = 20
matchmes = "USER lights their NAME with their FLAME. "
@@ -296,16 +341,13 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba
name = "\improper Cohiba Robusto cigar"
desc = "There's little more you could want from a cigar."
- icon_state = "cigar2off"
- icon_on = "cigar2on"
- icon_off = "cigar2off"
+ icon_state = "cigar2"
/obj/item/clothing/mask/smokable/cigarette/cigar/havana
name = "premium Havanian cigar"
desc = "A cigar fit for only the best of the best."
- icon_state = "cigar2off"
- icon_on = "cigar2on"
- icon_off = "cigar2off"
+ icon_state = "cigar2"
+ max_smoketime = 7200
smoketime = 7200
chem_volume = 30
@@ -342,10 +384,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe
name = "smoking pipe"
desc = "A pipe, for smoking. Made of fine, stained cherry wood."
- icon_state = "pipeoff"
- item_state = "pipeoff"
- icon_on = "pipeon" //Note - these are in masks.dmi
- icon_off = "pipeoff"
+ icon_state = "pipe"
+ item_state = "pipe"
smoketime = 0
chem_volume = 50
matchmes = "USER lights their NAME with their FLAME. "
@@ -353,6 +393,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
zippomes = "With much care, USER lights their NAME with their FLAME. "
weldermes = "USER recklessly lights NAME with FLAME. "
ignitermes = "USER fiddles with FLAME, and manages to light their NAME with the power of science. "
+ is_pipe = 1
/obj/item/clothing/mask/smokable/pipe/New()
..()
@@ -375,18 +416,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
if(lit == 1)
- user.visible_message("[user] puts out [src]. ", "You put out [src]. ")
- lit = 0
- icon_state = icon_off
- item_state = icon_off
- processing_objects.Remove(src)
- else if (smoketime)
- var/turf/location = get_turf(user)
- user.visible_message("[user] empties out [src]. ", "You empty out [src]. ")
- new /obj/effect/decal/cleanable/ash(location)
- smoketime = 0
- reagents.clear_reagents()
- name = "empty [initial(name)]"
+ if(user.a_intent == I_HURT)
+ user.visible_message("[user] empties the lit [src] on the floor!. ")
+ die(1)
+ else
+ user.visible_message("[user] puts out \the [src]. ")
+ quench()
/obj/item/clothing/mask/smokable/pipe/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/melee/energy/sword))
@@ -402,6 +437,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if (smoketime)
user << "[src] is already packed. "
return
+ max_smoketime = 1000
smoketime = 1000
if(G.reagents)
G.reagents.trans_to_obj(src, G.reagents.total_volume)
@@ -428,10 +464,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/pipe/cobpipe
name = "corn cob pipe"
desc = "A nicotine delivery system popularized by folksy backwoodsmen, kept popular in the modern age and beyond by space hipsters."
- icon_state = "cobpipeoff"
- item_state = "cobpipeoff"
- icon_on = "cobpipeon" //Note - these are in masks.dmi
- icon_off = "cobpipeoff"
+ icon_state = "cobpipe"
+ item_state = "cobpipe"
chem_volume = 35
/////////
diff --git a/code/game/objects/items/weapons/circuitboards/circuitboard.dm b/code/game/objects/items/weapons/circuitboards/circuitboard.dm
index f17ee1c292..83a651a201 100644
--- a/code/game/objects/items/weapons/circuitboards/circuitboard.dm
+++ b/code/game/objects/items/weapons/circuitboards/circuitboard.dm
@@ -8,7 +8,6 @@
name = "circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "id_mod"
- item_state = "electronic"
origin_tech = list(TECH_DATA = 2)
density = 0
anchored = 0
@@ -35,3 +34,22 @@
if(istype(M, build_path))
return 1
return 0
+
+//Should be called from the constructor of any machine to automatically populate the default parts
+/obj/item/weapon/circuitboard/proc/apply_default_parts(var/obj/machinery/M)
+ if(!istype(M))
+ return
+ if(!req_components)
+ return
+ M.component_parts = list()
+ for(var/comp_path in req_components)
+ var/comp_amt = req_components[comp_path]
+ if(!comp_amt)
+ continue
+
+ if(ispath(comp_path, /obj/item/stack))
+ M.component_parts += new comp_path(contain_parts ? M : null, comp_amt)
+ else
+ for(var/i in 1 to comp_amt)
+ M.component_parts += new comp_path(contain_parts ? M : null)
+ return
diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
index fc981a9e8c..a304184e25 100644
--- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
+++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
@@ -12,7 +12,7 @@
/obj/item/weapon/circuitboard/security/New()
..()
- network = station_networks
+ network = using_map.station_networks
/obj/item/weapon/circuitboard/security/engineering
name = T_BOARD("engineering camera monitor")
diff --git a/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm
new file mode 100644
index 0000000000..ef4575bafb
--- /dev/null
+++ b/code/game/objects/items/weapons/circuitboards/machinery/papershredder.dm
@@ -0,0 +1,13 @@
+#ifndef T_BOARD
+#error T_BOARD macro is not defined but we need it!
+#endif
+
+/obj/item/weapon/circuitboard/papershredder
+ name = T_BOARD("papershredder")
+ build_path = /obj/machinery/papershredder
+ board_type = new /datum/frame/frame_types/machine
+ matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ req_components = list(
+ /obj/item/weapon/stock_parts/motor = 1,
+ /obj/item/weapon/stock_parts/gear = 2,
+ /obj/item/weapon/stock_parts/micro_laser = 1)
diff --git a/code/game/objects/items/weapons/circuitboards/mecha.dm b/code/game/objects/items/weapons/circuitboards/mecha.dm
index ac4d83d98c..1415edea84 100644
--- a/code/game/objects/items/weapons/circuitboards/mecha.dm
+++ b/code/game/objects/items/weapons/circuitboards/mecha.dm
@@ -7,7 +7,6 @@
name = "exosuit circuit board"
icon = 'icons/obj/module.dmi'
icon_state = "std_mod"
- item_state = "electronic"
board_type = "other"
/obj/item/weapon/circuitboard/mecha/ripley
diff --git a/code/game/objects/items/weapons/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm
index dd1d6a55b0..8f4cd48e2c 100644
--- a/code/game/objects/items/weapons/grenades/emgrenade.dm
+++ b/code/game/objects/items/weapons/grenades/emgrenade.dm
@@ -3,12 +3,14 @@
icon_state = "emp"
item_state = "empgrenade"
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3)
- var/emp_heavy = 4
- var/emp_light = 10
+ var/emp_heavy = 2
+ var/emp_med = 4
+ var/emp_light = 7
+ var/emp_long = 10
prime()
..()
- if(empulse(src, emp_heavy, emp_light))
+ if(empulse(src, emp_heavy, emp_med, emp_light, emp_long))
qdel(src)
return
@@ -18,4 +20,6 @@
icon_state = "lyemp"
origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 3)
emp_heavy = 1
- emp_light = 4
\ No newline at end of file
+ emp_med = 2
+ emp_light = 3
+ emp_long = 4
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 55cdc170e2..6554e80f8b 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -101,6 +101,10 @@ Implant Specifics: "}
meltdown()
if(2)
delay = rand(5*60*10,15*60*10) //from 5 to 15 minutes of free time
+ if(3)
+ delay = rand(2*60*10,5*60*10) //from 2 to 5 minutes of free time
+ if(4)
+ delay = rand(0.5*60*10,1*60*10) //from .5 to 1 minutes of free time
spawn(delay)
malfunction--
@@ -227,10 +231,22 @@ Implant Specifics: "}
return
malfunction = MALFUNCTION_TEMPORARY
switch (severity)
- if (2.0) //Weak EMP will make implant tear limbs off.
+ if (4) //Weak EMP will make implant tear limbs off.
+ if (prob(25))
+ small_boom()
+ if (3) //Weak EMP will make implant tear limbs off.
if (prob(50))
small_boom()
- if (1.0) //strong EMP will melt implant either making it go off, or disarming it
+ if (2) //strong EMP will melt implant either making it go off, or disarming it
+ if (prob(70))
+ if (prob(75))
+ small_boom()
+ else
+ if (prob(13))
+ activate() //chance of bye bye
+ else
+ meltdown() //chance of implant disarming
+ if (1) //strong EMP will melt implant either making it go off, or disarming it
if (prob(70))
if (prob(50))
small_boom()
@@ -320,7 +336,13 @@ the implant may become unstable and either pre-maturely inject the subject or si
if(prob(60))
activate(20)
if(2)
- if(prob(30))
+ if(prob(40))
+ activate(20)
+ if(3)
+ if(prob(40))
+ activate(5)
+ if(4)
+ if(prob(20))
activate(5)
spawn(20)
@@ -333,7 +355,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/loyalty/get_data()
var/dat = {"
Implant Specifications:
-Name: [company_name] Employee Management Implant
+Name: [using_map.company_name] Employee Management Implant
Life: Ten years.
Important Notes: Personnel injected with this device tend to be much more loyal to the company.
@@ -349,11 +371,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
var/mob/living/carbon/human/H = M
var/datum/antagonist/antag_data = get_antag_data(H.mind.special_role)
if(antag_data && (antag_data.flags & ANTAG_IMPLANT_IMMUNE))
- H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [company_name] try to invade your mind!")
+ H.visible_message("[H] seems to resist the implant!", "You feel the corporate tendrils of [using_map.company_name] try to invade your mind!")
return 0
else
clear_antag_roles(H.mind, 1)
- H << "You feel a surge of loyalty towards [company_name]. "
+ H << "You feel a surge of loyalty towards [using_map.company_name]. "
return 1
@@ -403,7 +425,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/death_alarm/get_data()
var/dat = {"
Implant Specifications:
-Name: [company_name] \"Profit Margin\" Class Employee Lifesign Sensor
+Name: [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
Life: Activates upon death.
Important Notes: Alerts crew to crewmember death.
@@ -430,23 +452,27 @@ the implant may become unstable and either pre-maturely inject the subject or si
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null)
if(istype(t, /area/syndicate_station) || istype(t, /area/syndicate_mothership) || istype(t, /area/shuttle/syndicate_elite) )
//give the syndies a bit of stealth
- a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm", "Security")
- a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm", "Medical")
+ a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm", "General")
+// a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm", "Security")
+// a.autosay("[mobname] has died in Space!", "[mobname]'s Death Alarm", "Medical")
else
- a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm", "Security")
- a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm", "Medical")
+ a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm", "General")
+// a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm", "Security")
+// a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm", "Medical")
qdel(a)
processing_objects.Remove(src)
if ("emp")
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null)
var/name = prob(50) ? t.name : pick(teleportlocs)
- a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm", "Security")
- a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm", "Medical")
+ a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm", "General")
+// a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm", "Security")
+// a.autosay("[mobname] has died in [name]!", "[mobname]'s Death Alarm", "Medical")
qdel(a)
else
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/heads/captain(null)
- a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm", "Security")
- a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm", "Medical")
+ a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm", "General")
+// a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm", "Security")
+// a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm", "Medical")
qdel(a)
processing_objects.Remove(src)
@@ -481,7 +507,7 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/compressed/get_data()
var/dat = {"
Implant Specifications:
-Name: [company_name] \"Profit Margin\" Class Employee Lifesign Sensor
+Name: [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
Life: Activates upon death.
Important Notes: Alerts crew to crewmember death.
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index f872cd0bf4..4cb92a0780 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -6,6 +6,7 @@
throw_speed = 1
throw_range = 5
w_class = ITEMSIZE_SMALL
+ matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
var/obj/item/weapon/implant/imp = null
/obj/item/weapon/implanter/attack_self(var/mob/user)
diff --git a/code/game/objects/items/weapons/improvised_components.dm b/code/game/objects/items/weapons/improvised_components.dm
index c76f927ef2..5d89707e62 100644
--- a/code/game/objects/items/weapons/improvised_components.dm
+++ b/code/game/objects/items/weapons/improvised_components.dm
@@ -68,3 +68,40 @@
qdel(src)
user.put_in_hands(finished)
update_icon(user)
+
+/obj/item/woodcirclet
+ name = "wood circlet"
+ desc = "A small wood circlet for making a flower crown."
+ icon = 'icons/obj/buildingobject.dmi'
+ icon_state = "woodcirclet"
+ w_class = ITEMSIZE_SMALL
+
+/obj/item/woodcirclet/attackby(obj/item/W as obj, mob/user as mob)
+ var/obj/item/complete
+ if(istype(W,/obj/item/seeds/poppyseed))
+ user << "You attach the poppy to the circlet and create a beautiful flower crown."
+ complete = new /obj/item/clothing/head/poppy_crown(get_turf(user))
+ user.drop_from_inventory(W)
+ user.drop_from_inventory(src)
+ qdel(W)
+ qdel(src)
+ user.put_in_hands(complete)
+ return
+ else if(istype(W,/obj/item/seeds/sunflowerseed))
+ user << "You attach the sunflower to the circlet and create a beautiful flower crown."
+ complete = new /obj/item/clothing/head/sunflower_crown(get_turf(user))
+ user.drop_from_inventory(W)
+ user.drop_from_inventory(src)
+ qdel(W)
+ qdel(src)
+ user.put_in_hands(complete)
+ return
+ else if(istype(W,/obj/item/seeds/lavenderseed))
+ user << "You attach the lavender to the circlet and create a beautiful flower crown."
+ complete = new /obj/item/clothing/head/lavender_crown(get_turf(user))
+ user.drop_from_inventory(W)
+ user.drop_from_inventory(src)
+ qdel(W)
+ qdel(src)
+ user.put_in_hands(complete)
+ return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index c69b3d61d1..c89f41056f 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -751,7 +751,7 @@
The Oath
- The Medical Oath sworn by recognised medical practitioners in the employ of [company_name]
+ The Medical Oath sworn by recognised medical practitioners in the employ of [using_map.company_name]
Now, as a new doctor, I solemnly promise that I will, to the best of my ability, serve humanity-caring for the sick, promoting good health, and alleviating pain and suffering.
diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index a70a253579..8ebf5697c9 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -35,6 +35,13 @@
icon_state = "switchblade"
unbreakable = 1
+/obj/item/weapon/material/butterfly/boxcutter
+ name = "box cutter"
+ desc = "A thin, inexpensive razor-blade knife designed to open cardboard boxes."
+ icon_state = "boxcutter"
+ force_divisor = 0.1 // 6 when wielded with hardness 60 (steel)
+ thrown_force_divisor = 0.2 // 4 when thrown with weight 20 (steel)
+
/obj/item/weapon/material/butterfly/attack_self(mob/user)
active = !active
if(active)
diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm
index 78ee869604..92cb782e8a 100644
--- a/code/game/objects/items/weapons/material/shards.dm
+++ b/code/game/objects/items/weapons/material/shards.dm
@@ -90,7 +90,7 @@
if(affecting.take_damage(force, 0))
H.UpdateDamageIcon()
H.updatehealth()
- if(affecting.can_feel_pain())
+ if(affecting.organ_can_feel_pain())
H.Weaken(3)
return
check -= picked
diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm
index 1c77e1f6cb..61a9a99f96 100644
--- a/code/game/objects/items/weapons/storage/firstaid.dm
+++ b/code/game/objects/items/weapons/storage/firstaid.dm
@@ -126,6 +126,7 @@
new /obj/item/weapon/storage/pill_bottle/dylovene(src)
new /obj/item/weapon/storage/pill_bottle/tramadol(src)
new /obj/item/weapon/storage/pill_bottle/spaceacillin(src)
+ new /obj/item/weapon/reagent_containers/hypospray/autoinjector/clotting(src)
new /obj/item/stack/medical/splint(src)
return
@@ -150,6 +151,19 @@
new /obj/item/stack/medical/advanced/bruise_pack(src)
return
+/obj/item/weapon/storage/firstaid/clotting
+ name = "clotting kit"
+ desc = "Contains chemicals to stop bleeding."
+ max_storage_space = ITEMSIZE_COST_SMALL * 7
+
+/obj/item/weapon/storage/firstaid/clotting/New()
+ ..()
+ if (empty)
+ return
+ for(var/i = 1 to 8)
+ new /obj/item/weapon/reagent_containers/hypospray/autoinjector/clotting(src)
+ return
+
/*
* Pill Bottles
*/
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index a5b03264d6..2f4b2f3a8c 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -28,6 +28,38 @@
update_icon()
return
+/obj/item/weapon/melee/baton/MouseDrop(obj/over_object as obj)
+ if(!canremove)
+ return
+
+ if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
+
+ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
+ return
+
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+
+ //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away.
+ //there's got to be a better way of doing this.
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+
+ if (( usr.restrained() ) || ( usr.stat ))
+ return
+
+ if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src))
+ return
+
+ switch(over_object.name)
+ if("r_hand")
+ usr.u_equip(src)
+ usr.put_in_r_hand(src)
+ if("l_hand")
+ usr.u_equip(src)
+ usr.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+
/obj/item/weapon/melee/baton/loaded/New() //this one starts with a cell pre-installed.
..()
bcell = new/obj/item/weapon/cell/device/weapon(src)
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index 2c5673790a..9364f1b859 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -150,12 +150,14 @@
//misc, formerly from code/defines/weapons.dm
/obj/item/weapon/surgical/bonegel
name = "bone gel"
+ desc = "For fixing bones."
icon_state = "bone-gel"
force = 0
throwforce = 1.0
/obj/item/weapon/surgical/FixOVein
name = "FixOVein"
+ desc = "Like bone gel. For veins."
icon_state = "fixovein"
force = 0
throwforce = 1.0
@@ -164,6 +166,7 @@
/obj/item/weapon/surgical/bonesetter
name = "bone setter"
+ desc = "Put them in their place."
icon_state = "bone setter"
force = 8.0
throwforce = 9.0
diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm
index 6c2b6aa885..0ff657e9cc 100644
--- a/code/game/objects/items/weapons/tanks/tank_types.dm
+++ b/code/game/objects/items/weapons/tanks/tank_types.dm
@@ -103,7 +103,7 @@
/obj/item/weapon/tank/vox //Can't be a child of phoron or the gas amount gets screwey.
name = "phoron tank"
desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable."
- icon_state = "oxygen_fr"
+ icon_state = "phoron_vox"
gauge_icon = null
flags = CONDUCT
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
@@ -209,4 +209,4 @@
/obj/item/weapon/tank/nitrogen/examine(mob/user)
if(..(user, 0) && air_contents.gas["nitrogen"] < 10)
user << text("The meter on \the [src] indicates you are almost out of nitrogen! ")
- //playsound(user, 'sound/effects/alert.ogg', 50, 1)
\ No newline at end of file
+ //playsound(user, 'sound/effects/alert.ogg', 50, 1)
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index c39053b5aa..1080e1b8fb 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -172,7 +172,8 @@
/obj/item/weapon/weldingtool/examine(mob/user)
if(..(user, 0))
- user << text("\icon[] [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )
+ if(max_fuel)
+ user << text("\icon[] [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )
/obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob)
@@ -234,18 +235,22 @@
/obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob, proximity)
if(!proximity) return
- if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && !src.welding)
- O.reagents.trans_to_obj(src, max_fuel)
- user << "Welder refueled "
- playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
- return
- else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.welding)
- message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.")
- log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.")
- user << "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done. "
- var/obj/structure/reagent_dispensers/fueltank/tank = O
- tank.explode()
- return
+ if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && !welding)
+ if(!welding && max_fuel)
+ O.reagents.trans_to_obj(src, max_fuel)
+ user << "Welder refueled "
+ playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6)
+ return
+ else if(!welding)
+ user << "[src] doesn't use fuel. "
+ return
+ else
+ message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.")
+ log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.")
+ user << "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done. "
+ var/obj/structure/reagent_dispensers/fueltank/tank = O
+ tank.explode()
+ return
if (src.welding)
remove_fuel(1)
var/turf/location = get_turf(user)
@@ -286,12 +291,44 @@
/obj/item/weapon/weldingtool/update_icon()
..()
- icon_state = welding ? "welder1" : "welder"
+ icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
var/mob/M = loc
if(istype(M))
M.update_inv_l_hand()
M.update_inv_r_hand()
+/obj/item/weapon/weldingtool/MouseDrop(obj/over_object as obj)
+ if(!canremove)
+ return
+
+ if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
+
+ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
+ return
+
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+
+ //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away.
+ //there's got to be a better way of doing this.
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+
+ if (( usr.restrained() ) || ( usr.stat ))
+ return
+
+ if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src))
+ return
+
+ switch(over_object.name)
+ if("r_hand")
+ usr.u_equip(src)
+ usr.put_in_r_hand(src)
+ if("l_hand")
+ usr.u_equip(src)
+ usr.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+
//Sets the welding state of the welding tool. If you see W.welding = 1 anywhere, please change it to W.setWelding(1)
//so that the welding tool updates accordingly
/obj/item/weapon/weldingtool/proc/setWelding(var/set_welding, var/mob/M)
@@ -313,7 +350,8 @@
processing_objects |= src
else
if(M)
- M << "You need more welding fuel to complete this task. "
+ var/msg = max_fuel ? "welding fuel" : "charge"
+ M << "You need more [msg] to complete this task. "
return
//Otherwise
else if(!set_welding && welding)
@@ -370,7 +408,6 @@
user.disabilities &= ~NEARSIGHTED
return
-
/obj/item/weapon/weldingtool/largetank
name = "industrial welding tool"
max_fuel = 40
@@ -405,6 +442,113 @@
if(get_fuel() < max_fuel && nextrefueltick < world.time)
nextrefueltick = world.time + 10
reagents.add_reagent("fuel", 1)
+
+/*
+ * Electric/Arc Welder
+ */
+
+/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC
+ name = "electric welding tool"
+ icon_state = "arcwelder"
+ max_fuel = 0 //We'll handle the consumption later.
+ var/obj/item/weapon/cell/power_supply //What type of power cell this uses
+ var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery
+ var/cell_type = /obj/item/weapon/cell/device
+ var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1
+
+/obj/item/weapon/weldingtool/electric/New()
+ ..()
+ if(cell_type == null)
+ update_icon()
+ else if(cell_type)
+ power_supply = new cell_type(src)
+ else
+ power_supply = new /obj/item/weapon/cell/device(src)
+ update_icon()
+
+/obj/item/weapon/weldingtool/electric/unloaded/New()
+ cell_type = null
+
+/obj/item/weapon/weldingtool/electric/examine(mob/user)
+ ..()
+ if(power_supply)
+ user << text("\icon[] [] has [] charge left.", src, src.name, get_fuel())
+ else
+ user << text("\icon[] [] has power for no power cell!", src, src.name)
+
+/obj/item/weapon/weldingtool/electric/get_fuel()
+ if(use_external_power)
+ var/obj/item/weapon/cell/external = get_external_power_supply()
+ return external.charge
+ else if(power_supply)
+ return power_supply.charge
+ else
+ return 0
+
+/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null)
+ if(!welding)
+ return 0
+ if(get_fuel() >= amount)
+ power_supply.checked_use(charge_cost)
+ if(use_external_power)
+ var/obj/item/weapon/cell/external = get_external_power_supply()
+ if(!external || !external.use(charge_cost)) //Take power from the borg...
+ power_supply.give(charge_cost) //Give it back to the cell.
+ if(M)
+ eyecheck(M)
+ return 1
+ else
+ if(M)
+ M << "You need more energy to complete this task. "
+ return 0
+
+/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob)
+ if(user.get_inactive_hand() == src)
+ if(power_supply)
+ power_supply.update_icon()
+ user.put_in_hands(power_supply)
+ power_supply = null
+ user << "You remove the cell from the [src]. "
+ setWelding(0)
+ update_icon()
+ return
+ ..()
+ else
+ return ..()
+
+/obj/item/weapon/weldingtool/electric/attackby(obj/item/weapon/W, mob/user as mob)
+ if(istype(W, /obj/item/weapon/cell))
+ if(istype(W, /obj/item/weapon/cell/device))
+ if(!power_supply)
+ user.drop_item()
+ W.loc = src
+ power_supply = W
+ user << "You install a cell in \the [src]. "
+ update_icon()
+ else
+ user << "\The [src] already has a cell. "
+ else
+ user << "\The [src] cannot use that type of cell. "
+ else
+ ..()
+
+/obj/item/weapon/weldingtool/electric/proc/get_external_power_supply()
+ if(isrobot(src.loc))
+ var/mob/living/silicon/robot/R = src.loc
+ return R.cell
+ if(istype(src.loc, /obj/item/rig_module))
+ var/obj/item/rig_module/module = src.loc
+ if(module.holder && module.holder.wearer)
+ var/mob/living/carbon/human/H = module.holder.wearer
+ if(istype(H) && H.back)
+ var/obj/item/weapon/rig/suit = H.back
+ if(istype(suit))
+ return suit.cell
+ return null
+
+/obj/item/weapon/weldingtool/electric/mounted
+ use_external_power = 1
+
/*
* Crowbar
*/
diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm
index e5a655d7f9..cd11af3400 100644
--- a/code/game/objects/items/weapons/traps.dm
+++ b/code/game/objects/items/weapons/traps.dm
@@ -77,11 +77,15 @@
//armour
var/blocked = L.run_armor_check(target_zone, "melee")
+ var/soaked = L.get_armor_soak(target_zone, "melee")
if(blocked >= 100)
return
- if(!L.apply_damage(30, BRUTE, target_zone, blocked, used_weapon=src))
+ if(soaked >= 30)
+ return
+
+ if(!L.apply_damage(30, BRUTE, target_zone, blocked, soaked, used_weapon=src))
return 0
//trap the victim in place
diff --git a/code/game/objects/items/weapons/trays.dm b/code/game/objects/items/weapons/trays.dm
index ca32d730f3..41bcedbf21 100644
--- a/code/game/objects/items/weapons/trays.dm
+++ b/code/game/objects/items/weapons/trays.dm
@@ -17,7 +17,7 @@
var/max_carry = 10
/obj/item/weapon/tray/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
-
+ user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
// Drop all the things. All of them.
overlays.Cut()
for(var/obj/item/I in carrying)
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
index 1c2f285e15..0834bf45f2 100644
--- a/code/game/objects/random/random.dm
+++ b/code/game/objects/random/random.dm
@@ -630,9 +630,9 @@ something, make sure it's not in one of the other lists.*/
prob(1);/obj/item/weapon/grenade/flashbang,
prob(1);/obj/item/weapon/melee/baton,
prob(1);/obj/item/weapon/reagent_containers/spray/pepper,
- prob(3);/obj/item/clothing/shoes/jackboots,
- prob(1);/obj/item/clothing/shoes/swat,
- prob(1);/obj/item/clothing/shoes/combat,
+ prob(3);/obj/item/clothing/shoes/boots/jackboots,
+ prob(1);/obj/item/clothing/shoes/boots/swat,
+ prob(1);/obj/item/clothing/shoes/boots/combat,
prob(1);/obj/item/clothing/gloves/swat,
prob(1);/obj/item/clothing/gloves/combat,
prob(1);/obj/item/clothing/glasses/sunglasses/big,
@@ -684,7 +684,7 @@ something, make sure it's not in one of the other lists.*/
prob(3);/obj/item/weapon/storage/box/gloves,
prob(2);/obj/item/weapon/storage/belt/medical/emt,
prob(2);/obj/item/weapon/storage/belt/medical,
- prob(1);/obj/item/clothing/shoes/combat,
+ prob(1);/obj/item/clothing/shoes/boots/combat,
prob(3);/obj/item/clothing/shoes/white,
prob(2);/obj/item/clothing/gloves/sterile/nitrile,
prob(5);/obj/item/clothing/gloves/white,
@@ -730,7 +730,7 @@ something, make sure it's not in one of the other lists.*/
prob(2);/obj/item/clothing/head/welding,
prob(4);/obj/item/clothing/suit/storage/hazardvest,
prob(2);/obj/item/clothing/under/overalls,
- prob(3);/obj/item/clothing/shoes/workboots,
+ prob(3);/obj/item/clothing/shoes/boots/workboots,
prob(1);/obj/item/clothing/shoes/magboots,
prob(2);/obj/item/clothing/accessory/storage/black_vest,
prob(2);/obj/item/clothing/accessory/storage/brown_vest,
@@ -839,4 +839,60 @@ var/list/random_useful_
random_junk_ -= /obj/item/trash/tray
return pick(random_junk_)
// Misc. actually useful stuff
- return get_random_useful_type()
\ No newline at end of file
+ return get_random_useful_type()
+
+/*
+ Selects one spawn point out of a group of points with the same ID and asks it to generate its items
+*/
+var/list/multi_point_spawns
+
+/obj/random_multi
+ name = "random object spawn point"
+ desc = "This item type is used to spawn random objects at round-start. Only one spawn point for a given group id is selected."
+ icon = 'icons/misc/mark.dmi'
+ icon_state = "x3"
+ invisibility = INVISIBILITY_MAXIMUM
+ var/id // Group id
+ var/weight // Probability weight for this spawn point
+
+/obj/random_multi/initialize()
+ ..()
+ weight = max(1, round(weight))
+
+ if(!multi_point_spawns)
+ multi_point_spawns = list()
+ var/list/spawnpoints = multi_point_spawns[id]
+ if(!spawnpoints)
+ spawnpoints = list()
+ multi_point_spawns[id] = spawnpoints
+ spawnpoints[src] = weight
+
+/obj/random_multi/Destroy()
+ var/list/spawnpoints = multi_point_spawns[id]
+ spawnpoints -= src
+ if(!spawnpoints.len)
+ multi_point_spawns -= id
+ . = ..()
+
+/obj/random_multi/proc/generate_items()
+ return
+
+/obj/random_multi/single_item
+ var/item_path // Item type to spawn
+
+/obj/random_multi/single_item/generate_items()
+ new item_path(loc)
+
+/hook/roundstart/proc/generate_multi_spawn_items()
+ for(var/id in multi_point_spawns)
+ var/list/spawn_points = multi_point_spawns[id]
+ var/obj/random_multi/rm = pickweight(spawn_points)
+ rm.generate_items()
+ for(var/entry in spawn_points)
+ qdel(entry)
+ return 1
+
+/obj/random_multi/single_item/captains_spare_id
+ name = "Multi Point - Captain's Spare"
+ id = "Captain's spare id"
+ item_path = /obj/item/weapon/card/id/captains_spare
\ No newline at end of file
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index f4e7f4d056..928246b2b5 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -174,7 +174,7 @@
return 0
if (user.stat || user.paralysis || user.sleeping || user.lying || user.weakened)
return 0
- if (issilicon(user))
+ if (isAI(user))
user << "You need hands for this. "
return 0
return 1
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index 1a62db2dfb..3a6b7ac045 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -65,8 +65,8 @@
new /obj/item/clothing/head/helmet/swat(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/mask/gas(src)
- new /obj/item/clothing/shoes/swat(src)
- new /obj/item/clothing/shoes/swat(src)
+ new /obj/item/clothing/shoes/boots/swat(src)
+ new /obj/item/clothing/shoes/boots/swat(src)
new /obj/item/clothing/suit/armor/swat(src)
new /obj/item/clothing/suit/armor/swat(src)
new /obj/item/clothing/under/syndicate/tacticool(src)
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 f5a4819bd2..77f0975721 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -142,6 +142,7 @@
new /obj/item/clothing/suit/storage/toggle/labcoat/emt(src)
new /obj/item/device/radio/headset/headset_med/alt(src)
new /obj/item/weapon/cartridge/medical(src)
+ new /obj/item/weapon/storage/briefcase/inflatable(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/tank/emergency/oxygen/engi(src)
new /obj/item/clothing/glasses/hud/health(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index bdd0823fac..3e5b494e7f 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -29,9 +29,9 @@
new /obj/item/clothing/under/rank/security2(src)
new /obj/item/clothing/under/rank/security2(src)
new /obj/item/clothing/under/rank/security2(src)
- new /obj/item/clothing/shoes/jackboots(src)
- new /obj/item/clothing/shoes/jackboots(src)
- new /obj/item/clothing/shoes/jackboots(src)
+ new /obj/item/clothing/shoes/boots/jackboots(src)
+ new /obj/item/clothing/shoes/boots/jackboots(src)
+ new /obj/item/clothing/shoes/boots/jackboots(src)
new /obj/item/clothing/head/soft/sec(src)
new /obj/item/clothing/head/soft/sec(src)
new /obj/item/clothing/head/soft/sec(src)
@@ -191,8 +191,8 @@
new /obj/item/clothing/shoes/sandal(src)
new /obj/item/clothing/shoes/footwraps(src)
new /obj/item/clothing/shoes/footwraps(src)
- new /obj/item/clothing/shoes/winterboots(src)
- new /obj/item/clothing/shoes/winterboots(src)
+ new /obj/item/clothing/shoes/boots/winter(src)
+ new /obj/item/clothing/shoes/boots/winter(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat(src)
return
@@ -295,9 +295,9 @@
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
- new /obj/item/clothing/shoes/workboots(src)
- new /obj/item/clothing/shoes/workboots(src)
- new /obj/item/clothing/shoes/workboots(src)
+ new /obj/item/clothing/shoes/boots/workboots(src)
+ new /obj/item/clothing/shoes/boots/workboots(src)
+ new /obj/item/clothing/shoes/boots/workboots(src)
return
@@ -565,7 +565,7 @@
new /obj/item/weapon/storage/belt/security/tactical(src)
if(prob(10))
new /obj/item/clothing/mask/bandana/skull(src)
- new /obj/item/clothing/shoes/jackboots(src)
+ new /obj/item/clothing/shoes/boots/jackboots(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/under/pants/camo(src)
return
@@ -583,7 +583,7 @@
new /obj/item/clothing/under/syndicate/combat(src)
new /obj/item/device/radio/headset/ert/alt(src)
new /obj/item/clothing/glasses/sunglasses(src)
- new /obj/item/clothing/shoes/swat(src)
+ new /obj/item/clothing/shoes/boots/swat(src)
new /obj/item/clothing/gloves/swat(src)
new /obj/item/clothing/mask/balaclava/tactical(src)
new /obj/item/clothing/mask/balaclava(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 62a3c64e48..add1bd2c2a 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -283,9 +283,9 @@
/obj/structure/closet/crate/rcd
name = "\improper RCD crate"
desc = "A crate with rapid construction device."
- icon_state = "crate"
- icon_opened = "crateopen"
- icon_closed = "crate"
+ icon_state = "engi_crate"
+ icon_opened = "engi_crateopen"
+ icon_closed = "engi_crate"
/obj/structure/closet/crate/rcd/New()
..()
@@ -427,6 +427,20 @@
icon_opened = "hydrosecurecrateopen"
icon_closed = "hydrosecurecrate"
+/obj/structure/closet/crate/secure/engineering
+ desc = "A crate with a lock on it, painted in the scheme of the station's engineers."
+ name = "secure engineering crate"
+ icon_state = "engi_secure_crate"
+ icon_opened = "engi_secure_crateopen"
+ icon_closed = "engi_secure_crate"
+
+/obj/structure/closet/crate/secure/science
+ name = "secure science crate"
+ desc = "A crate with a lock on it, painted in the scheme of the station's scientists."
+ icon_state = "scisecurecrate"
+ icon_opened = "scisecurecrateopen"
+ icon_closed = "scisecurecrate"
+
/obj/structure/closet/crate/secure/bin
name = "secure bin"
desc = "A secure bin."
@@ -499,6 +513,23 @@
icon_opened = "largermetalopen"
icon_closed = "largermetal"
+/obj/structure/closet/crate/engineering
+ name = "engineering crate"
+ icon_state = "engi_crate"
+ icon_opened = "engi_crateopen"
+ icon_closed = "engi_crate"
+
+/obj/structure/closet/crate/engineering/electrical
+ icon_state = "engi_e_crate"
+ icon_opened = "engi_crateopen"
+ icon_closed = "engi_e_crate"
+
+/obj/structure/closet/crate/science
+ name = "science crate"
+ icon_state = "scicrate"
+ icon_opened = "scicrateopen"
+ icon_closed = "scicrate"
+
/obj/structure/closet/crate/hydroponics
name = "hydroponics crate"
desc = "All you need to destroy those pesky weeds and pests."
diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm
index d8de10bf18..c0d27cad1c 100644
--- a/code/game/objects/structures/crates_lockers/largecrate.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate.dm
@@ -72,7 +72,7 @@
/obj/structure/largecrate/animal/goat
name = "goat crate"
- held_type = /mob/living/simple_animal/hostile/retaliate/goat
+ held_type = /mob/living/simple_animal/retaliate/goat
/obj/structure/largecrate/animal/cat
name = "cat carrier"
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 834eadc2a4..d038b592fa 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -107,6 +107,16 @@
airlock_type = "/highsecurity"
glass = -1
+/obj/structure/door_assembly/door_assembly_voidcraft
+ base_icon_state = "voidcraft"
+ base_name = "voidcraft hatch"
+ airlock_type = "/voidcraft"
+ glass = -1
+
+/obj/structure/door_assembly/door_assembly_voidcraft/vertical
+ base_icon_state = "voidcraft_vertical"
+ airlock_type = "/voidcraft/vertical"
+
/obj/structure/door_assembly/multi_tile
icon = 'icons/obj/doors/door_assembly2x1.dmi'
dir = EAST
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index 0ad1fb8404..1bfd559b9c 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -32,6 +32,19 @@
..()
icon_state = "tree_[rand(1, 6)]"
+/obj/structure/flora/tree/sif
+ name = "glowing tree"
+ desc = "It's a tree, except this one seems quite alien. It glows a deep blue."
+ icon = 'icons/obj/flora/deadtrees.dmi'
+ icon_state = "tree_sif"
+
+/obj/structure/flora/tree/sif/New()
+ update_icon()
+
+/obj/structure/flora/tree/sif/update_icon()
+ set_light(5, 1, "#33ccff")
+ overlays.Cut()
+ overlays.Add(image(icon = 'icons/obj/flora/deadtrees.dmi', icon_state = "[icon_state]_glow", layer = LIGHTING_LAYER + 0.1))
//grass
/obj/structure/flora/grass
@@ -79,10 +92,6 @@
icon = 'icons/obj/plants.dmi'
icon_state = "plant-26"
-/obj/structure/flora/pottedplant/xmas/New()
- ..()
- icon_state = "plant-xmas"
-
//newbushes
@@ -205,4 +214,149 @@
name = "hanging skeleton model"
icon = 'icons/obj/plants.dmi'
icon_state = "hangskele"
- desc = "It's an anatomical model of a human skeletal system made of plaster."
\ No newline at end of file
+ desc = "It's an anatomical model of a human skeletal system made of plaster."
+
+
+//potted plants credit: Flashkirby
+/obj/structure/flora/pottedplant
+ name = "potted plant"
+ desc = "Really brings the room together."
+ icon = 'icons/obj/plants.dmi'
+ icon_state = "plant-01"
+
+/obj/structure/flora/pottedplant/large
+ name = "large potted plant"
+ desc = "This is a large plant. Three branches support pairs of waxy leaves."
+ icon_state = "plant-26"
+
+/obj/structure/flora/pottedplant/fern
+ name = "potted fern"
+ desc = "This is an ordinary looking fern. It looks like it could do with some water."
+ icon_state = "plant-02"
+
+/obj/structure/flora/pottedplant/overgrown
+ name = "overgrown potted plants"
+ desc = "This is an assortment of colourful plants. Some parts are overgrown."
+ icon_state = "plant-03"
+
+/obj/structure/flora/pottedplant/bamboo
+ name = "potted bamboo"
+ desc = "These are bamboo shoots. The tops looks like they've been cut short."
+ icon_state = "plant-04"
+
+/obj/structure/flora/pottedplant/largebush
+ name = "large potted bush"
+ desc = "This is a large bush. The leaves stick upwards in an odd fashion."
+ icon_state = "plant-05"
+
+/obj/structure/flora/pottedplant/thinbush
+ name = "thin potted bush"
+ desc = "This is a thin bush. It appears to be flowering."
+ icon_state = "plant-06"
+
+/obj/structure/flora/pottedplant/mysterious
+ name = "mysterious potted bulbs"
+ desc = "This is a mysterious looking plant. Touching the bulbs cause them to shrink."
+ icon_state = "plant-07"
+
+/obj/structure/flora/pottedplant/smalltree
+ name = "small potted tree"
+ desc = "This is a small tree. It is rather pleasant."
+ icon_state = "plant-08"
+
+/obj/structure/flora/pottedplant/unusual
+ name = "unusual potted plant"
+ desc = "This is an unusual plant. It's bulbous ends emit a soft blue light."
+ icon_state = "plant-09"
+ set_light(l_range = 1, l_power = 0.5, l_color = "#0000FF")
+
+/obj/structure/flora/pottedplant/orientaltree
+ name = "potted oriental tree"
+ desc = "This is a rather oriental style tree. It's flowers are bright pink."
+ icon_state = "plant-10"
+
+/obj/structure/flora/pottedplant/smallcactus
+ name = "small potted cactus"
+ desc = "This is a small cactus. Its needles are sharp."
+ icon_state = "plant-11"
+
+/obj/structure/flora/pottedplant/tall
+ name = "tall potted plant"
+ desc = "This is a tall plant. Tiny pores line its surface."
+ icon_state = "plant-12"
+
+/obj/structure/flora/pottedplant/sticky
+ name = "styicky potted plant"
+ desc = "This is an odd plant. Its sticky leaves trap insects."
+ icon_state = "plant-13"
+
+/obj/structure/flora/pottedplant/smelly
+ name = "smelly potted plant"
+ desc = "This is some kind of tropical plant. It reeks of rotten eggs."
+ icon_state = "plant-14"
+
+/obj/structure/flora/pottedplant/small
+ name = "small potted plant"
+ desc = "This is a pot of assorted small flora. Some look familiar."
+ icon_state = "plant-15"
+
+/obj/structure/flora/pottedplant/aquatic
+ name = "aquatic potted plant"
+ desc = "This is apparently an aquatic plant. It's probably fake."
+ icon_state = "plant-16"
+
+/obj/structure/flora/pottedplant/shoot
+ name = "small potted shoot"
+ desc = "This is a small shoot. It still needs time to grow."
+ icon_state = "plant-17"
+
+/obj/structure/flora/pottedplant/flower
+ name = "potted flower"
+ desc = "This is a slim plant. Sweet smelling flowers are supported by spindly stems."
+ icon_state = "plant-18"
+
+/obj/structure/flora/pottedplant/crystal
+ name = "crystalline potted plant"
+ desc = "These are rather cubic plants. Odd crystal formations grow on the end."
+ icon_state = "plant-19"
+
+/obj/structure/flora/pottedplant/subterranean
+ name = "subterranean potted plant"
+ desc = "This is a subterranean plant. It's bulbous ends glow faintly."
+ icon_state = "plant-20"
+ set_light(l_range = 1, l_power = 0.5, l_color = "#FF6633")
+
+/obj/structure/flora/pottedplant/minitree
+ name = "potted tree"
+ desc = "This is a miniature tree. Apparently it was grown to 1/5 scale."
+ icon_state = "plant-21"
+
+/obj/structure/flora/pottedplant/stoutbush
+ name = "stout potted bush"
+ desc = "This is a stout bush. Its leaves point up and outwards."
+ icon_state = "plant-22"
+
+/obj/structure/flora/pottedplant/drooping
+ name = "drooping potted plant"
+ desc = "This is a small plant. The drooping leaves make it look like its wilted."
+ icon_state = "plant-23"
+
+/obj/structure/flora/pottedplant/tropical
+ name = "tropical potted plant"
+ desc = "This is some kind of tropical plant. It hasn't begun to flower yet."
+ icon_state = "plant-24"
+
+/obj/structure/flora/pottedplant/dead
+ name = "dead potted plant"
+ desc = "This is the dried up remains of a dead plant. Someone should replace it."
+ icon_state = "plant-25"
+
+/obj/structure/flora/pottedplant/decorative
+ name = "decorative potted plant"
+ desc = "This is a decorative shrub. It's been trimmed into the shape of an apple."
+ icon_state = "applebush"
+
+/obj/structure/flora/pottedplant/xmas
+ name = "small christmas tree"
+ desc = "This is a tiny well lit decorative christmas tree."
+ icon_state = "plant-xmas"
\ No newline at end of file
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index 57d78e21f1..7fd68c305a 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -256,7 +256,6 @@
name = "inflatable barrier box"
desc = "Contains inflatable walls and doors."
icon_state = "inf_box"
- item_state = "syringe_kit"
w_class = ITEMSIZE_NORMAL
max_storage_space = ITEMSIZE_COST_NORMAL * 7
can_hold = list(/obj/item/inflatable)
diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm
index 5d01438614..0eb48e94e0 100644
--- a/code/game/objects/structures/lattice.dm
+++ b/code/game/objects/structures/lattice.dm
@@ -34,6 +34,11 @@
if(locate(/obj/structure/lattice, get_step(src, dir)))
L = locate(/obj/structure/lattice, get_step(src, dir))
L.updateOverlays(src.loc)
+ if(istype(loc, /turf/simulated/open))
+ var/turf/simulated/open/O = loc
+ spawn(1)
+ if(O) // If we built a new floor with the lattice, the open turf won't exist anymore.
+ O.update() // This lattice may be supporting things on top of it. If it's being deleted, they need to fall down.
..()
/obj/structure/lattice/ex_act(severity)
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index e8ce8bfb1c..5fed1a3577 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -122,6 +122,108 @@
desc = "A warning sign which reads 'NO SMOKING'."
icon_state = "nosmoking2"
+/obj/structure/sign/warning
+ name = "\improper WARNING"
+ icon_state = "securearea"
+
+/obj/structure/sign/warning/New()
+ ..()
+ desc = "A warning sign which reads '[name]'."
+
+/obj/structure/sign/warning/airlock
+ name = "\improper EXTERNAL AIRLOCK"
+ icon_state = "doors"
+
+/obj/structure/sign/warning/biohazard
+ name = "\improper BIOHAZARD"
+ icon_state = "bio"
+
+/obj/structure/sign/warning/bomb_range
+ name = "\improper BOMB RANGE"
+ icon_state = "blast"
+
+/obj/structure/sign/warning/caution
+ name = "\improper CAUTION"
+
+/obj/structure/sign/warning/compressed_gas
+ name = "\improper COMPRESSED GAS"
+ icon_state = "hikpa"
+
+/obj/structure/sign/warning/deathsposal
+ name = "\improper DISPOSAL LEADS TO SPACE"
+ icon_state = "deathsposal"
+
+/obj/structure/sign/warning/docking_area
+ name = "\improper KEEP CLEAR: DOCKING AREA"
+
+/obj/structure/sign/warning/engineering_access
+ name = "\improper ENGINEERING ACCESS"
+
+/obj/structure/sign/warning/fire
+ name = "\improper DANGER: FIRE"
+ icon_state = "fire"
+
+/obj/structure/sign/warning/high_voltage
+ name = "\improper HIGH VOLTAGE"
+ icon_state = "shock"
+
+/obj/structure/sign/warning/hot_exhaust
+ name = "\improper HOT EXHAUST"
+ icon_state = "fire"
+
+/obj/structure/sign/warning/internals_required
+ name = "\improper INTERNALS REQUIRED"
+
+/obj/structure/sign/warning/lethal_turrets
+ name = "\improper LETHAL TURRETS"
+ icon_state = "turrets"
+
+/obj/structure/sign/warning/lethal_turrets/New()
+ ..()
+ desc += " Enter at own risk!."
+
+/obj/structure/sign/warning/mail_delivery
+ name = "\improper MAIL DELIVERY"
+
+/obj/structure/sign/warning/moving_parts
+ name = "\improper MOVING PARTS"
+
+/obj/structure/sign/warning/nosmoking_1
+ name = "\improper NO SMOKING"
+ icon_state = "nosmoking"
+
+/obj/structure/sign/warning/nosmoking_2
+ name = "\improper NO SMOKING"
+ icon_state = "nosmoking2"
+
+/obj/structure/sign/warning/pods
+ name = "\improper ESCAPE PODS"
+ icon_state = "pods"
+
+/obj/structure/sign/warning/radioactive
+ name = "\improper RADIOACTIVE AREA"
+ icon_state = "radiation"
+
+/obj/structure/sign/warning/secure_area
+ name = "\improper SECURE AREA"
+
+/obj/structure/sign/warning/secure_area/armory
+ name = "\improper ARMORY"
+
+/obj/structure/sign/warning/server_room
+ name = "\improper SERVER ROOM"
+
+/obj/structure/sign/warning/siphon_valve
+ name = "\improper SIPHON VALVE"
+
+/obj/structure/sign/warning/vacuum
+ name = "\improper HARD VACUUM AHEAD"
+ icon_state = "space"
+
+/obj/structure/sign/warning/vent_port
+ name = "\improper EJECTION/VENTING PORT"
+
+
/obj/structure/sign/redcross
name = "medbay"
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here."
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 921e9769c5..8f91f12b26 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -133,7 +133,7 @@
user << "\The [src] already has someone buckled to it. "
return
user.visible_message("[user] attempts to buckle [affecting] into \the [src]! ")
- if(do_after(user, 20))
+ if(do_after(user, 20, G.affecting))
affecting.loc = loc
spawn(0)
if(buckle_mob(affecting))
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index ae4fe4d740..0e6064785d 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -150,20 +150,22 @@
var/def_zone = ran_zone()
var/blocked = occupant.run_armor_check(def_zone, "melee")
+ var/soaked = occupant.get_armor_soak(def_zone, "melee")
occupant.throw_at(A, 3, propelled)
occupant.apply_effect(6, STUN, blocked)
occupant.apply_effect(6, WEAKEN, blocked)
occupant.apply_effect(6, STUTTER, blocked)
- occupant.apply_damage(10, BRUTE, def_zone, blocked)
+ occupant.apply_damage(10, BRUTE, def_zone, blocked, soaked)
playsound(src.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
if(istype(A, /mob/living))
var/mob/living/victim = A
def_zone = ran_zone()
blocked = victim.run_armor_check(def_zone, "melee")
+ soaked = victim.get_armor_soak(def_zone, "melee")
victim.apply_effect(6, STUN, blocked)
victim.apply_effect(6, WEAKEN, blocked)
victim.apply_effect(6, STUTTER, blocked)
- victim.apply_damage(10, BRUTE, def_zone, blocked)
+ victim.apply_damage(10, BRUTE, def_zone, blocked, soaked)
occupant.visible_message("[occupant] crashed into \the [A]! ")
/obj/structure/bed/chair/office/light
diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
index 2bcbf8aa87..9ae19769eb 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm
@@ -149,20 +149,22 @@
var/def_zone = ran_zone()
var/blocked = occupant.run_armor_check(def_zone, "melee")
+ var/soaked = occupant.get_armor_soak(def_zone, "melee")
occupant.throw_at(A, 3, propelled)
occupant.apply_effect(6, STUN, blocked)
occupant.apply_effect(6, WEAKEN, blocked)
occupant.apply_effect(6, STUTTER, blocked)
- occupant.apply_damage(10, BRUTE, def_zone)
+ occupant.apply_damage(10, BRUTE, def_zone, soaked)
playsound(src.loc, 'sound/weapons/punch1.ogg', 50, 1, -1)
if(istype(A, /mob/living))
var/mob/living/victim = A
def_zone = ran_zone()
blocked = victim.run_armor_check(def_zone, "melee")
+ soaked = victim.get_armor_soak(def_zone, "melee")
victim.apply_effect(6, STUN, blocked)
victim.apply_effect(6, WEAKEN, blocked)
victim.apply_effect(6, STUTTER, blocked)
- victim.apply_damage(10, BRUTE, def_zone)
+ victim.apply_damage(10, BRUTE, def_zone, soaked)
if(pulling)
occupant.visible_message("[pulling] has thrusted \the [name] into \the [A], throwing \the [occupant] out of it! ")
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 959f8f807a..a382858c54 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -18,8 +18,9 @@
/obj/structure/toilet/attack_hand(mob/living/user as mob)
if(swirlie)
+ usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
usr.visible_message("[user] slams the toilet seat onto [swirlie.name]'s head! ", "You slam the toilet seat onto [swirlie.name]'s head! ", "You hear reverberating porcelain.")
- swirlie.adjustBruteLoss(8)
+ swirlie.adjustBruteLoss(5)
return
if(cistern && !open)
@@ -53,6 +54,7 @@
return
if(istype(I, /obj/item/weapon/grab))
+ user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
var/obj/item/weapon/grab/G = I
if(isliving(G.affecting))
@@ -65,14 +67,14 @@
if(open && !swirlie)
user.visible_message("[user] starts to give [GM.name] a swirlie! ", "You start to give [GM.name] a swirlie! ")
swirlie = GM
- if(do_after(user, 30, 5, 0))
+ if(do_after(user, 30, GM))
user.visible_message("[user] gives [GM.name] a swirlie! ", "You give [GM.name] a swirlie! ", "You hear a toilet flushing.")
if(!GM.internal)
GM.adjustOxyLoss(5)
swirlie = null
else
user.visible_message("[user] slams [GM.name] into the [src]! ", "You slam [GM.name] into the [src]! ")
- GM.adjustBruteLoss(8)
+ GM.adjustBruteLoss(5)
else
user << "You need a tighter grip. "
diff --git a/code/game/periodic_news.dm b/code/game/periodic_news.dm
index 14cb92624d..b3c9c9d69f 100644
--- a/code/game/periodic_news.dm
+++ b/code/game/periodic_news.dm
@@ -6,9 +6,13 @@
round_time // time of the round at which this should be announced, in seconds
message // body of the message
author = "NanoTrasen Editor"
- channel_name = "The "+starsys_name+" Times"
can_be_redacted = 0
message_type = "Story"
+ channel_name = null
+
+ New() // I'm sorry...
+ ..()
+ channel_name = "The [using_map.starsys_name] Times"
revolution_inciting_event
@@ -66,7 +70,6 @@
round_time = 60 * 50
found_ssd
- channel_name = "The "+starsys_name+" Times"
author = "Doctor Eric Hanfield"
message = {"Several people have been found unconscious at their terminals. It is thought that it was due
@@ -78,7 +81,6 @@
lotus_tree
explosions
- channel_name = "The "+starsys_name+" Times"
author = "Reporter Leland H. Howards"
message = {"The newly-christened civillian transport Lotus Tree suffered two very large explosions near the
@@ -92,9 +94,7 @@
food_riots
breaking_news
- channel_name = "The "+starsys_name+" Times"
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
@@ -103,9 +103,7 @@
round_time = 60 * 10
more
- channel_name = "The "+starsys_name+" Times"
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 Phoron deposits have been completely mined out.
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index 5892b7f6e5..0bdbfe4154 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -22,7 +22,7 @@ var/silent_ert = 0
usr << "The round hasn't started yet! "
return
if(send_emergency_team)
- usr << "[boss_name] has already dispatched an emergency response team! "
+ usr << "[using_map.boss_name] has already dispatched an emergency response team! "
return
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
return
@@ -117,11 +117,11 @@ proc/trigger_armed_response_team(var/force = 0)
// there's only a certain chance a team will be sent
if(!prob(send_team_chance))
- command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[boss_name]")
+ command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. Unfortunately, we were unable to send one at this time.", "[using_map.boss_name]")
can_call_ert = 0 // Only one call per round, ladies.
return
if(silent_ert == 0)
- command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[boss_name]")
+ command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "[using_map.boss_name]")
can_call_ert = 0 // Only one call per round, gentleman.
send_emergency_team = 1
diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm
index 6bd631e88f..51ec43e32f 100644
--- a/code/game/shuttle_engines.dm
+++ b/code/game/shuttle_engines.dm
@@ -1,18 +1,48 @@
/obj/structure/shuttle
name = "shuttle"
- icon = 'icons/turf/shuttle.dmi'
+ icon = 'icons/turf/shuttle_parts.dmi'
/obj/structure/shuttle/window
name = "shuttle window"
icon = 'icons/obj/podwindows.dmi'
- icon_state = "1"
+ icon_state = "0_0" //The states are a bitflag for connecting window directions, then connecting shuttle wall directions
density = 1
opacity = 0
anchored = 1
- CanPass(atom/movable/mover, turf/target, height, air_group)
- if(!height || air_group) return 0
- else return ..()
+ var/window_flags = 0 // Bitflags to indicate connected windows
+ var/wall_flags = 0 // Bitflags to indicate connected walls
+
+/obj/structure/shuttle/window/CanPass(atom/movable/mover, turf/target, height, air_group)
+ if(!height || air_group) return 0
+ else return ..()
+
+/obj/structure/shuttle/window/initialize()
+ ..()
+ auto_join()
+
+/obj/structure/shuttle/window/proc/auto_join()
+ match_windows(NORTH, NORTH)
+ match_windows(EAST, EAST)
+ match_windows(SOUTH, SOUTH)
+ match_windows(WEST, WEST)
+
+ icon_state = "[window_flags]_[wall_flags]"
+
+ return icon_state
+
+/obj/structure/shuttle/window/proc/match_windows(direction, flag, mask=0)
+ var/turf/adj = get_step(src, direction)
+
+ if(istype(adj,/turf/simulated/shuttle/wall))
+ wall_flags |= flag // turn on the bit flag
+ else
+ var/obj/structure/shuttle/window/window = locate(src.type) in adj
+ if(window)
+ window_flags |= flag // turn on the bit flag
+ else
+ window_flags &= ~flag // turn off the bit flag
+ wall_flags &= ~flag // turn off the bit flag
/obj/structure/shuttle/engine
name = "engine"
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index e3b8e0d2ec..8ba95765b4 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -184,6 +184,8 @@ var/list/mechtoys = list(
var/area/area_shuttle = shuttle.get_location_area()
if(!area_shuttle) return
+ callHook("sell_shuttle", list(area_shuttle));
+
var/phoron_count = 0
var/plat_count = 0
@@ -263,7 +265,7 @@ var/list/mechtoys = list(
slip.is_copy = 0
slip.info = "[command_name()] Shipping Manifest "
slip.info +="Order #[SO.ordernum] "
- slip.info +="Destination: [station_name] "
+ slip.info +="Destination: [station_name()] "
slip.info +="[shoppinglist.len] PACKAGES IN THIS SHIPMENT "
slip.info +="CONTENTS:"
diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm
index 66434456f9..56b503c7c7 100644
--- a/code/game/turfs/flooring/flooring_decals.dm
+++ b/code/game/turfs/flooring/flooring_decals.dm
@@ -17,7 +17,7 @@ var/list/floor_decals = list()
/obj/effect/floor_decal/initialize()
if(supplied_dir) set_dir(supplied_dir)
var/turf/T = get_turf(src)
- if(istype(T, /turf/simulated/floor) || istype(T, /turf/unsimulated/floor))
+ if(istype(T, /turf/simulated/floor) || istype(T, /turf/unsimulated/floor) || istype(T, /turf/simulated/shuttle/floor))
var/cache_key = "[alpha]-[color]-[dir]-[icon_state]-[layer]"
if(!floor_decals[cache_key])
var/image/I = image(icon = src.icon, icon_state = src.icon_state, dir = src.dir)
@@ -391,4 +391,16 @@ var/list/floor_decals = list()
icon_state = "white_v"
/obj/effect/floor_decal/sign/p
- icon_state = "white_p"
\ No newline at end of file
+ icon_state = "white_p"
+
+/obj/effect/floor_decal/sign/dock
+ icon_state = "white_d"
+
+/obj/effect/floor_decal/sign/dock/one
+ icon_state = "white_d1"
+
+/obj/effect/floor_decal/sign/dock/two
+ icon_state = "white_d2"
+
+/obj/effect/floor_decal/sign/dock/three
+ icon_state = "white_d3"
\ No newline at end of file
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index 0b2da66927..25ad0ce9cd 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -94,10 +94,6 @@
if(M.lying)
return ..()
- // Ugly hack :( Should never have multiple plants in the same tile.
- var/obj/effect/plant/plant = locate() in contents
- if(plant) plant.trodden_on(M)
-
// Dirt overlays.
update_dirt()
@@ -182,3 +178,5 @@
this.blood_DNA["UNKNOWN BLOOD"] = "X*"
else if( istype(M, /mob/living/silicon/robot ))
new /obj/effect/decal/cleanable/blood/oil(src)
+ else if(ishuman(M))
+ add_blood(M)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm
index cdde744bd4..0ad44622b7 100644
--- a/code/game/turfs/simulated/floor_icon.dm
+++ b/code/game/turfs/simulated/floor_icon.dm
@@ -72,6 +72,9 @@ var/list/flooring_cache = list()
if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN))
overlays |= get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","[flooring.icon_base]_burned[burnt]")
+ if(weather_overlay)
+ overlays += weather_overlay
+
if(update_neighbors)
for(var/turf/simulated/floor/F in range(src, 1))
if(F == src)
diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm
index 0d3e43bbfa..e62ba0d7f4 100644
--- a/code/game/turfs/simulated/floor_types.dm
+++ b/code/game/turfs/simulated/floor_types.dm
@@ -5,40 +5,216 @@
/turf/simulated/floor/diona/attackby()
return
+//Shuttle Floors
+/obj/landed_holder
+ name = "landed turf holder"
+ desc = "holds all the info about the turf this turf 'landed on'"
+ var/turf/turf_type
+ var/turf/simulated/shuttle/my_turf
+ var/image/turf_image
+
+ New(var/location = null, var/turf/simulated/shuttle/turf)
+ my_turf = turf
+
+/obj/landed_holder/proc/land_on(var/turf/T)
+ //Gather destination information
+ var/old_dest_type = T.type
+ var/old_dest_dir = T.dir
+ var/old_dest_icon_state = T.icon_state
+ var/old_dest_icon = T.icon
+ var/list/old_dest_overlays = T.overlays.Copy()
+ var/list/old_dest_underlays = T.underlays.Copy()
+
+ //Set the destination to be like us
+ T.Destroy()
+ var/turf/simulated/shuttle/new_dest = T.ChangeTurf(my_turf.type,,1)
+ new_dest.set_dir(my_turf.dir)
+ new_dest.icon_state = my_turf.icon_state
+ new_dest.icon = my_turf.icon
+ new_dest.overlays = my_turf.overlays
+ new_dest.underlays = my_turf.underlays
+ //Shuttle specific stuff
+ new_dest.interior_corner = my_turf.interior_corner
+ new_dest.takes_underlays = my_turf.takes_underlays
+ new_dest.under_turf = my_turf.under_turf
+ new_dest.join_flags = my_turf.join_flags
+ new_dest.join_group = my_turf.join_group
+
+ //Tell the new turf about what was there before
+ new_dest.landed_holder = new(turf = new_dest)
+ new_dest.landed_holder.turf_type = old_dest_type
+ new_dest.landed_holder.dir = old_dest_dir
+ new_dest.landed_holder.icon = old_dest_icon
+ new_dest.landed_holder.icon_state = old_dest_icon_state
+ new_dest.landed_holder.overlays = old_dest_overlays
+ new_dest.landed_holder.underlays = old_dest_underlays
+
+ //Update underlays if necessary (interior corners won't have changed).
+ if(new_dest.takes_underlays && !new_dest.interior_corner)
+ new_dest.underlay_update()
+
+ return new_dest
+
+/obj/landed_holder/proc/leave_turf()
+ var/turf/new_source
+ //Change our source to whatever it was before
+ if(turf_type)
+ new_source = my_turf.ChangeTurf(turf_type,,1)
+ new_source.set_dir(dir)
+ new_source.icon_state = icon_state
+ new_source.icon = icon
+ new_source.overlays = overlays
+ new_source.underlays = underlays
+ else
+ new_source = my_turf.ChangeTurf(get_base_turf_by_area(my_turf),,1)
+
+ return new_source
+
/turf/simulated/shuttle
name = "shuttle"
- icon = 'icons/turf/shuttle.dmi'
+ icon = 'icons/turf/shuttle_white.dmi'
thermal_conductivity = 0.05
heat_capacity = 0
- layer = 2
-/turf/simulated/shuttle/wall
- name = "wall"
- icon_state = "wall1"
- opacity = 1
- density = 1
- blocks_air = 1
+ var/obj/landed_holder/landed_holder
+ var/interior_corner = 0
+ var/takes_underlays = 0
+ var/turf/under_turf //Underlay override turf path.
+ var/join_flags = 0 //Bitstring to represent adjacency of joining walls
+ var/join_group = "shuttle" //A tag for what other walls to join with. Null if you don't want them to.
+
+/turf/simulated/shuttle/Destroy()
+ landed_holder = null
+ ..()
+
+/turf/simulated/shuttle/proc/underlay_update()
+ if(!takes_underlays)
+ //Basically, if it's not forced, and we don't care, don't do it.
+ return 0
+
+ var/turf/under //May be a path or a turf
+
+ //Mapper wanted something specific
+ if(under_turf)
+ under = under_turf
+
+ //Well if this isn't our first rodeo, we know EXACTLY what we landed on, and it looks like this.
+ if(landed_holder && !interior_corner)
+ underlays.Cut()
+ underlays += image(landed_holder,layer=FLOAT_LAYER)
+ return
+
+ if(!under)
+ var/turf/T1
+ var/turf/T2
+ var/turf/T3
+
+ T1 = get_step(src, turn(join_flags,135)) // 45 degrees before opposite
+ T2 = get_step(src, turn(join_flags,225)) // 45 degrees beyond opposite
+ T3 = get_step(src, turn(join_flags,180)) // Opposite from the diagonal
+
+ if(isfloor(T1) && ((T1.type == T2.type) || (T1.type == T3.type)))
+ under = T1
+ else if(isfloor(T2) && T2.type == T3.type)
+ under = T2
+ else if(isfloor(T3) || istype(T3,/turf/space/transit))
+ under = T3
+ else
+ under = get_base_turf_by_area(src)
+
+ var/use_icon = ispath(under) ? initial(under.icon) : under.icon
+ var/use_icon_state
+
+ if(istype(under,/turf/simulated/shuttle))
+ interior_corner = 1 //Prevents us from 'landing on grass' and having interior corners update.
+
+ if(ispath(under,/turf/space))
+ use_icon_state = "[rand(1,25)]" //Space turfs should be random.
+ else
+ use_icon_state = ispath(under) ? initial(under.icon_state) : under.icon_state
+
+ var/image/under_image = new(use_icon,icon_state = use_icon_state)
+ underlays.Cut()
+ underlays |= under_image
+
+ return under
/turf/simulated/shuttle/floor
name = "floor"
- icon_state = "floor"
+ icon = 'icons/turf/flooring/shuttle.dmi'
+ icon_state = "floor_blue"
+
+/turf/simulated/shuttle/floor/red
+ icon_state = "floor_red"
+
+/turf/simulated/shuttle/floor/yellow
+ icon_state = "floor_yellow"
+
+/turf/simulated/shuttle/floor/darkred
+ icon_state = "floor_dred"
+
+/turf/simulated/shuttle/floor/purple
+ icon_state = "floor_purple"
+
+/turf/simulated/shuttle/floor/white
+ icon_state = "floor_white"
+
+/turf/simulated/shuttle/floor/black
+ icon_state = "floor_black"
+
+/turf/simulated/shuttle/floor/glass
+ icon_state = "floor_glass"
+ takes_underlays = 1
/turf/simulated/shuttle/plating
name = "plating"
icon = 'icons/turf/floors.dmi'
icon_state = "plating"
+/turf/simulated/shuttle/plating/airless
+ oxygen = 0
+ nitrogen = 0
+
+//For 'carrying' otherwise empty turfs or stuff in space turfs with you or having holes in the floor or whatever.
+/turf/simulated/shuttle/plating/carry
+ name = "carry turf"
+ icon = 'icons/turf/shuttle_parts.dmi'
+ icon_state = "carry"
+ takes_underlays = 1
+ blocks_air = 1 //I'd make these unsimulated but it just fucks with so much stuff so many other places.
+
+ initialize()
+ icon_state = "carry_ingame"
+
+/turf/simulated/shuttle/plating/airless/carry
+ name = "airless carry turf"
+ icon = 'icons/turf/shuttle_parts.dmi'
+ icon_state = "carry"
+ takes_underlays = 1
+ blocks_air = 1
+
+ initialize()
+ icon_state = "carry_ingame"
+
/turf/simulated/shuttle/plating/skipjack //Skipjack plating
oxygen = 0
nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD
-/turf/simulated/shuttle/floor4 // Added this floor tile so that I have a seperate turf to check in the shuttle -- Polymorph
- name = "Brig floor" // Also added it into the 2x3 brig area of the shuttle.
- icon_state = "floor4"
-
-/turf/simulated/shuttle/floor4/skipjack //skipjack floors
+/turf/simulated/shuttle/floor/skipjack //Skipjack floors
name = "skipjack floor"
+ icon_state = "floor_dred"
oxygen = 0
nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD
+/turf/simulated/shuttle/floor/voidcraft
+ name = "voidcraft tiles"
+ icon_state = "void"
+
+/turf/simulated/shuttle/floor/voidcraft/dark
+ name = "voidcraft tiles"
+ icon_state = "void_dark"
+
+/turf/simulated/shuttle/floor/voidcraft/light
+ name = "voidcraft tiles"
+ icon_state = "void_light"
diff --git a/code/game/turfs/simulated/outdoors/dirt.dm b/code/game/turfs/simulated/outdoors/dirt.dm
new file mode 100644
index 0000000000..4d14205072
--- /dev/null
+++ b/code/game/turfs/simulated/outdoors/dirt.dm
@@ -0,0 +1,6 @@
+/turf/simulated/floor/outdoors/dirt
+ name = "dirt"
+ desc = "Quite dirty!"
+ icon_state = "dirt-dark"
+ edge_blending_priority = 2
+ turf_layers = list(/turf/simulated/floor/outdoors/rocks)
\ No newline at end of file
diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm
new file mode 100644
index 0000000000..6693c45874
--- /dev/null
+++ b/code/game/turfs/simulated/outdoors/grass.dm
@@ -0,0 +1,49 @@
+var/list/grass_types = list(
+ /obj/structure/flora/ausbushes/sparsegrass,
+ /obj/structure/flora/ausbushes/fullgrass
+)
+
+/turf/simulated/floor/outdoors/grass
+ name = "grass"
+ icon_state = "grass"
+ edge_blending_priority = 4
+ turf_layers = list(
+ /turf/simulated/floor/outdoors/rocks,
+ /turf/simulated/floor/outdoors/dirt
+ )
+ var/grass_chance = 20
+
+/turf/simulated/floor/outdoors/grass/sif
+ name = "growth"
+ icon_state = "grass_sif"
+ edge_blending_priority = 4
+ grass_chance = 0
+ var/tree_chance = 2
+
+/turf/simulated/floor/outdoors/grass/sif/New()
+ if(tree_chance && prob(tree_chance))
+ new /obj/structure/flora/tree/sif(src)
+ ..()
+
+/turf/simulated/floor/outdoors/grass/New()
+ if(prob(50))
+ icon_state += "2"
+ //edge_blending_priority++
+
+ if(grass_chance && prob(grass_chance))
+ var/grass_type = pick(grass_types)
+ new grass_type(src)
+ ..()
+
+/turf/simulated/floor/outdoors/grass/forest
+ name = "thick grass"
+ icon_state = "grass-dark"
+ grass_chance = 80
+ //tree_chance = 20
+ edge_blending_priority = 5
+
+/turf/simulated/floor/outdoors/grass/sif/forest
+ name = "thick growth"
+ icon_state = "grass_sif_dark"
+ edge_blending_priority = 5
+ tree_chance = 10
\ No newline at end of file
diff --git a/code/game/turfs/simulated/outdoors/outdoors.dm b/code/game/turfs/simulated/outdoors/outdoors.dm
new file mode 100644
index 0000000000..da69406157
--- /dev/null
+++ b/code/game/turfs/simulated/outdoors/outdoors.dm
@@ -0,0 +1,109 @@
+var/list/turf_edge_cache = list()
+var/list/outdoor_turfs = list()
+
+/turf/
+ // If greater than 0, this turf will apply edge overlays on top of other turfs cardinally adjacent to it, if those adjacent turfs are of a different icon_state,
+ // and if those adjacent turfs have a lower edge_blending_priority.
+ var/edge_blending_priority = 0
+ // Outdoors var determines if the game should consider the turf to be 'outdoors', which controls certain things such as weather effects.
+ var/outdoors = FALSE
+ // This holds the image for the current weather effect.
+ var/image/weather_overlay = null
+
+/turf/simulated/floor/outdoors
+ name = "generic ground"
+ desc = "Rather boring."
+ icon = 'icons/turf/outdoors.dmi'
+ icon_state = null
+ edge_blending_priority = 1
+ outdoors = TRUE // This variable is used for weather effects.
+ // When a turf gets demoted or promoted, this list gets adjusted. The top-most layer is the layer on the bottom of the list, due to how pop() works.
+ var/list/turf_layers = list(/turf/simulated/floor/outdoors/rocks)
+
+/turf/simulated/floor/outdoors/initialize()
+ update_icon()
+ ..()
+
+/turf/simulated/floor/New()
+ if(outdoors)
+ outdoor_turfs.Add(src)
+ ..()
+
+/turf/simulated/floor/Destroy()
+ if(outdoors)
+ outdoor_turfs.Remove(src)
+ ..()
+
+/turf/simulated/floor/proc/update_icon_edge()
+ if(edge_blending_priority)
+ for(var/checkdir in cardinal)
+ var/turf/simulated/T = get_step(src, checkdir)
+ if(istype(T) && T.edge_blending_priority && edge_blending_priority < T.edge_blending_priority && icon_state != T.icon_state)
+ var/cache_key = "[T.get_edge_icon_state()]-[checkdir]"
+ if(!turf_edge_cache[cache_key])
+ turf_edge_cache[cache_key] = image(icon = 'icons/turf/outdoors_edge.dmi', icon_state = "[T.get_edge_icon_state()]-edge", dir = checkdir)
+ overlays += turf_edge_cache[cache_key]
+
+/turf/simulated/proc/get_edge_icon_state()
+ return icon_state
+
+/turf/simulated/floor/outdoors/update_icon()
+ overlays.Cut()
+ update_icon_edge()
+ ..()
+
+/turf/simulated/floor/outdoors/mud
+ name = "grass"
+ icon_state = "mud_dark"
+ edge_blending_priority = 3
+
+/turf/simulated/floor/outdoors/rocks
+ name = "rocks"
+ desc = "Hard as a rock."
+ icon_state = "rock"
+ edge_blending_priority = 1
+
+
+// This proc adds a 'layer' on top of the turf.
+/turf/simulated/floor/outdoors/proc/promote(var/new_turf_type)
+ var/list/new_turf_layer_list = turf_layers.Copy()
+ var/list/coords = list(x, y, z)
+
+ new_turf_layer_list.Add(src.type)
+
+ ChangeTurf(new_turf_type)
+ var/turf/simulated/floor/outdoors/T = locate(coords[1], coords[2], coords[3])
+ if(istype(T))
+ T.turf_layers = new_turf_layer_list.Copy()
+
+// This proc removes the topmost layer.
+/turf/simulated/floor/outdoors/proc/demote()
+ if(!turf_layers.len)
+ return // Cannot demote further.
+ var/list/new_turf_layer_list = turf_layers.Copy()
+ var/list/coords = list(x, y, z)
+
+ ChangeTurf(pop(new_turf_layer_list))
+ var/turf/simulated/floor/outdoors/T = locate(coords[1], coords[2], coords[3])
+ if(istype(T))
+ T.turf_layers = new_turf_layer_list.Copy()
+
+// Called by weather processes, and maybe technomancers in the future.
+/turf/simulated/floor/proc/chill()
+ return
+
+/turf/simulated/floor/outdoors/chill()
+ promote(/turf/simulated/floor/outdoors/snow)
+
+/turf/simulated/floor/outdoors/snow/chill()
+ return // Todo: Add heavy snow.
+
+/turf/simulated/floor/outdoors/ex_act(severity)
+ switch(severity)
+ if(2)
+ if(prob(33))
+ return
+ if(3)
+ if(prob(66))
+ return
+ demote()
\ No newline at end of file
diff --git a/code/game/turfs/simulated/outdoors/snow.dm b/code/game/turfs/simulated/outdoors/snow.dm
new file mode 100644
index 0000000000..16678d7c98
--- /dev/null
+++ b/code/game/turfs/simulated/outdoors/snow.dm
@@ -0,0 +1,35 @@
+/turf/simulated/floor/outdoors/snow
+ name = "snow"
+ icon_state = "snow"
+ edge_blending_priority = 6
+ movement_cost = 2
+ turf_layers = list(
+ /turf/simulated/floor/outdoors/rocks,
+ /turf/simulated/floor/outdoors/dirt
+ )
+ var/list/crossed_dirs = list()
+
+/turf/simulated/floor/outdoors/snow/Entered(atom/A)
+ if(isliving(A))
+ var/mdir = "[A.dir]"
+ crossed_dirs[mdir] = 1
+ update_icon()
+ . = ..()
+
+/turf/simulated/floor/outdoors/snow/update_icon()
+ overlays.Cut()
+ ..()
+ for(var/d in crossed_dirs)
+ overlays += image(icon = 'icons/turf/outdoors.dmi', icon_state = "snow_footprints", dir = text2num(d))
+
+/turf/simulated/floor/outdoors/snow/attackby(var/obj/item/W, var/mob/user)
+ if(istype(W, /obj/item/weapon/shovel))
+ to_chat(user, "You begin to remove \the [src] with your [W]. ")
+ if(do_after(user, 4 SECONDS))
+ to_chat(user, "\The [src] has been dug up, and now lies in a pile nearby. ")
+ new /obj/item/stack/material/snow(src)
+ demote()
+ else
+ to_chat(user, "You decide to not finish removing \the [src]. ")
+ else
+ ..()
diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm
index fe45a77692..6b793d6061 100644
--- a/code/game/turfs/simulated/wall_types.dm
+++ b/code/game/turfs/simulated/wall_types.dm
@@ -45,4 +45,155 @@
..(newloc,"titanium")
/turf/simulated/wall/durasteel/New(var/newloc)
- ..(newloc,"durasteel", "durasteel")
\ No newline at end of file
+ ..(newloc,"durasteel", "durasteel")
+
+/turf/simulated/wall/wood/New(var/newloc)
+ ..(newloc,"wood")
+
+/turf/simulated/wall/sifwood/New(var/newloc)
+ ..(newloc,"alien wood")
+
+// Shuttle Walls
+/turf/simulated/shuttle/wall
+ name = "autojoin wall"
+ icon_state = "light"
+ opacity = 1
+ density = 1
+ blocks_air = 1
+
+ var/base_state = "light" //The base iconstate to base sprites on
+ var/hard_corner = 0 //Forces hard corners (as opposed to diagonals)
+ var/true_name = "wall" //What to rename this to on init
+
+ //Extra things this will try to locate and act like we're joining to. You can put doors, or whatever.
+ //Carefully means only if it's on a /turf/simulated/shuttle subtype turf.
+ var/static/list/join_carefully = list(
+ /obj/structure/grille,
+ /obj/machinery/door/blast/regular
+ )
+ var/static/list/join_always = list(
+ /obj/structure/shuttle/engine,
+ /obj/structure/shuttle/window,
+ /obj/machinery/door/airlock/voidcraft
+ )
+
+/turf/simulated/shuttle/wall/hard_corner
+ name = "hardcorner wall"
+ icon_state = "light-hc"
+ hard_corner = 1
+
+/turf/simulated/shuttle/wall/no_join
+ icon_state = "light-nj"
+ join_group = null
+
+/turf/simulated/shuttle/wall/dark
+ icon = 'icons/turf/shuttle_dark.dmi'
+ icon_state = "dark"
+ base_state = "dark"
+
+/turf/simulated/shuttle/wall/dark/hard_corner
+ name = "hardcorner wall"
+ icon_state = "dark-hc"
+ hard_corner = 1
+
+/turf/simulated/shuttle/wall/dark/no_join
+ name = "nojoin wall"
+ icon_state = "dark-nj"
+ join_group = null
+
+/turf/simulated/shuttle/wall/New()
+ ..()
+ //To allow mappers to rename shuttle walls to like "redfloor interior" or whatever for ease of use.
+ name = true_name
+
+/turf/simulated/shuttle/wall/initialize()
+ ..()
+
+ if(join_group)
+ src.auto_join()
+ else
+ icon_state = base_state
+
+ if(takes_underlays)
+ underlay_update()
+
+/turf/simulated/shuttle/wall/proc/auto_join()
+ match_turf(NORTH, NORTH)
+ match_turf(EAST, EAST)
+ match_turf(SOUTH, SOUTH)
+ match_turf(WEST, WEST)
+
+ icon_state = "[base_state][join_flags]"
+ if(isDiagonal(join_flags))
+ if(hard_corner) //You are using 'hard' (aka full-tile) corners.
+ icon_state += "h" //Hard corners have 'h' at the end of the state
+ else //Diagonals need an underlay to not look ugly.
+ takes_underlays = 1
+ else //Everything else doesn't deserve our time!
+ takes_underlays = initial(takes_underlays)
+
+ return join_flags
+
+/turf/simulated/shuttle/wall/proc/match_turf(direction, flag, mask=0)
+ if((join_flags & mask) == mask)
+ var/turf/simulated/shuttle/wall/adj = get_step(src, direction)
+ if(istype(adj, /turf/simulated/shuttle/wall) && adj.join_group == src.join_group)
+ join_flags |= flag // turn on the bit flag
+ return
+
+ else if(istype(adj, /turf/simulated/shuttle))
+ var/turf/simulated/shuttle/adj_cast = adj
+ if(adj_cast.join_group == src.join_group)
+ var/found
+ for(var/E in join_carefully)
+ found = locate(E) in adj
+ if(found) break
+ if(found)
+ join_flags |= flag // turn on the bit flag
+ return
+
+ var/always_found
+ for(var/E in join_always)
+ always_found = locate(E) in adj
+ if(always_found) break
+ if(always_found)
+ join_flags |= flag // turn on the bit flag
+ else
+ join_flags &= ~flag // turn off the bit flag
+
+/turf/simulated/shuttle/wall/voidcraft
+ name = "voidcraft wall"
+ icon = 'icons/turf/shuttle_void.dmi'
+ icon_state = "void"
+ base_state = "void"
+ var/stripe_color = null // If set, generates a colored stripe overlay. Accepts #XXXXXX as input.
+
+/turf/simulated/shuttle/wall/voidcraft/hard_corner
+ name = "hardcorner wall"
+ icon_state = "void-hc"
+ hard_corner = 1
+
+/turf/simulated/shuttle/wall/voidcraft/no_join
+ name = "nojoin wall"
+ icon_state = "void-nj"
+ join_group = null
+
+/turf/simulated/shuttle/wall/voidcraft/red
+ stripe_color = "#FF0000"
+
+/turf/simulated/shuttle/wall/voidcraft/blue
+ stripe_color = "#0000FF"
+
+/turf/simulated/shuttle/wall/voidcraft/green
+ stripe_color = "#00FF00"
+
+/turf/simulated/shuttle/wall/voidcraft/initialize()
+ ..()
+ update_icon()
+
+/turf/simulated/shuttle/wall/voidcraft/update_icon()
+ if(stripe_color)
+ overlays.Cut()
+ var/image/I = image(icon = src.icon, icon_state = "o_[icon_state]")
+ I.color = stripe_color
+ overlays.Add(I)
diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm
new file mode 100644
index 0000000000..77eb419ed1
--- /dev/null
+++ b/code/game/turfs/simulated/water.dm
@@ -0,0 +1,128 @@
+// This doesn't inherit from /outdoors/ so that the pool can use it as well.
+/turf/simulated/floor/water
+ name = "shallow water"
+ desc = "A body of water. It seems shallow enough to walk through, if needed."
+ icon = 'icons/turf/outdoors.dmi'
+ icon_state = "seashallow" // So it shows up in the map editor as water.
+ var/water_state = "water_shallow"
+ var/under_state = "rock"
+ edge_blending_priority = -1
+ movement_cost = 4
+ outdoors = TRUE
+ var/depth = 1 // Higher numbers indicates deeper water.
+
+/turf/simulated/floor/water/New()
+ update_icon()
+ ..()
+
+/turf/simulated/floor/water/update_icon()
+ ..() // To get the edges. This also gets rid of other overlays so it needs to go first.
+ icon_state = water_state
+ var/image/floorbed_sprite = image(icon = 'icons/turf/outdoors.dmi', icon_state = under_state)
+ underlays.Add(floorbed_sprite)
+ update_icon_edge()
+
+/turf/simulated/floor/water/get_edge_icon_state()
+ return "water_shallow"
+
+/turf/simulated/floor/water/return_air_for_internal_lifeform(var/mob/living/L)
+ if(L && L.lying)
+ if(L.can_breathe_water()) // For squid.
+ var/datum/gas_mixture/water_breath = new()
+ var/datum/gas_mixture/above_air = return_air()
+ var/amount = 300
+ water_breath.adjust_gas("oxygen", amount) // Assuming water breathes just extract the oxygen directly from the water.
+ water_breath.temperature = above_air.temperature
+ return water_breath
+ else
+ return null // Lying down means they're submerged, which means no air.
+ return return_air() // Otherwise their head is above the water, so get the air from the atmosphere instead.
+
+/turf/simulated/floor/water/Entered(atom/movable/AM, atom/oldloc)
+ if(istype(AM, /mob/living))
+ var/mob/living/L = AM
+ L.update_water()
+ if(!istype(oldloc, /turf/simulated/floor/water))
+ to_chat(L, "You get drenched in water from entering \the [src]! ")
+ AM.water_act(5)
+ ..()
+
+/turf/simulated/floor/water/Exited(atom/movable/AM, atom/newloc)
+ if(istype(AM, /mob/living))
+ var/mob/living/L = AM
+ L.update_water()
+ if(!istype(newloc, /turf/simulated/floor/water))
+ to_chat(L, "You climb out of \the [src]. ")
+ ..()
+
+/turf/simulated/floor/water/deep
+ name = "deep water"
+ desc = "A body of water. It seems quite deep."
+ icon_state = "seadeep" // So it shows up in the map editor as water.
+ under_state = "abyss"
+ edge_blending_priority = -2
+ movement_cost = 8
+ depth = 2
+
+/turf/simulated/floor/water/pool
+ name = "pool"
+ desc = "Don't worry, it's not closed."
+ under_state = "pool"
+ outdoors = FALSE
+
+/turf/simulated/floor/water/deep/pool
+ name = "deep pool"
+ desc = "Don't worry, it's not closed."
+ outdoors = FALSE
+
+/mob/living/proc/can_breathe_water()
+ return FALSE
+
+/mob/living/carbon/human/can_breathe_water()
+ if(species)
+ return species.can_breathe_water()
+ return ..()
+
+/mob/living/proc/check_submerged()
+ var/turf/simulated/floor/water/T = loc
+ if(istype(T))
+ return T.depth
+ return 0
+
+// Use this to have things react to having water applied to them.
+/atom/movable/proc/water_act(amount)
+ return
+
+/mob/living/water_act(amount)
+ adjust_fire_stacks(amount * 5)
+ for(var/atom/movable/AM in contents)
+ AM.water_act(amount)
+
+var/list/shoreline_icon_cache = list()
+
+/turf/simulated/floor/water/shoreline
+ name = "shoreline"
+ desc = "The waves look calm and inviting."
+ icon_state = "shoreline"
+ water_state = "rock" // Water gets generated as an overlay in update_icon()
+ depth = 0
+
+/turf/simulated/floor/water/shoreline/corner
+ icon_state = "shorelinecorner"
+
+// Water sprites are really annoying, so let BYOND sort it out.
+/turf/simulated/floor/water/shoreline/update_icon()
+ underlays.Cut()
+ overlays.Cut()
+ ..() // Get the underlay first.
+ var/cache_string = "[initial(icon_state)]_[water_state]_[dir]"
+ if(cache_string in shoreline_icon_cache) // Check to see if an icon already exists.
+ overlays += shoreline_icon_cache[cache_string]
+ else // If not, make one, but only once.
+ var/icon/shoreline_water = icon(src.icon, "shoreline_water", src.dir)
+ var/icon/shoreline_subtract = icon(src.icon, "[initial(icon_state)]_subtract", src.dir)
+ shoreline_water.Blend(shoreline_subtract,ICON_SUBTRACT)
+
+ shoreline_icon_cache[cache_string] = shoreline_water
+ overlays += shoreline_icon_cache[cache_string]
+
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index ecc8c49c4b..1074af1b90 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -25,6 +25,8 @@
var/list/decals
+ var/movement_cost = 0 // How much the turf slows down movement, if any.
+
/turf/New()
..()
for(var/atom/movable/AM as mob|obj in src)
@@ -38,6 +40,9 @@
else
luminosity = 1
+ if(movement_cost && pathweight == 1) // This updates pathweight automatically.
+ pathweight = movement_cost
+
/turf/Destroy()
turfs -= src
..()
diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm
index f26ba433ff..7379d2c80b 100644
--- a/code/game/turfs/turf_changing.dm
+++ b/code/game/turfs/turf_changing.dm
@@ -9,6 +9,13 @@
if(L)
qdel(L)
+// Called after turf replaces old one
+/turf/proc/post_change()
+ levelupdate()
+ var/turf/simulated/open/T = GetAbove(src)
+ if(istype(T))
+ T.update_icon()
+
//Creates a new turf
/turf/proc/ChangeTurf(var/turf/N, var/tell_universe=1, var/force_lighting_update = 0)
if (!N)
@@ -25,6 +32,7 @@
var/old_dynamic_lighting = dynamic_lighting
var/list/old_affecting_lights = affecting_lights
var/old_lighting_overlay = lighting_overlay
+ var/old_weather_overlay = weather_overlay
//world << "Replacing [src.type] with [N]"
@@ -42,6 +50,9 @@
if(old_fire)
fire = old_fire
+ if(old_weather_overlay)
+ W.weather_overlay = old_weather_overlay
+
if (istype(W,/turf/simulated/floor))
W.RemoveLattice()
@@ -55,6 +66,8 @@
S.update_starlight()
W.levelupdate()
+ W.update_icon(1)
+ W.post_change()
. = W
else
@@ -64,6 +77,9 @@
if(old_fire)
old_fire.RemoveFire()
+ if(old_weather_overlay)
+ W.weather_overlay = old_weather_overlay
+
if(tell_universe)
universe.OnTurfChange(W)
@@ -74,6 +90,8 @@
S.update_starlight()
W.levelupdate()
+ W.update_icon(1)
+ W.post_change()
. = W
lighting_overlay = old_lighting_overlay
diff --git a/code/game/turfs/unsimulated/planetary.dm b/code/game/turfs/unsimulated/planetary.dm
index 17cd62ffbb..ce4ffa44c0 100644
--- a/code/game/turfs/unsimulated/planetary.dm
+++ b/code/game/turfs/unsimulated/planetary.dm
@@ -1,5 +1,7 @@
// This is a wall you surround the area of your "planet" with, that makes the atmosphere inside stay within bounds, even if canisters
// are opened or other strange things occur.
+var/list/planetary_walls = list()
+
/turf/unsimulated/wall/planetary
name = "railroading"
desc = "Choo choo!"
@@ -17,6 +19,14 @@
phoron = 0
temperature = T20C
+/turf/unsimulated/wall/planetary/New()
+ ..()
+ planetary_walls.Add(src)
+
+/turf/unsimulated/wall/planetary/Destroy()
+ planetary_walls.Remove(src)
+ ..()
+
// Normal station/earth air.
/turf/unsimulated/wall/planetary/normal
oxygen = MOLES_O2STANDARD
@@ -44,4 +54,4 @@
/turf/unsimulated/wall/planetary/desert
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
- temperature = 310.92 // About 37.7C / 100F
\ No newline at end of file
+ temperature = 310.92 // About 37.7C / 100F
diff --git a/code/game/turfs/unsimulated/shuttle.dm b/code/game/turfs/unsimulated/shuttle.dm
new file mode 100644
index 0000000000..99f5bc15bd
--- /dev/null
+++ b/code/game/turfs/unsimulated/shuttle.dm
@@ -0,0 +1,27 @@
+/turf/unsimulated/shuttle
+ name = "shuttle"
+ icon = 'icons/turf/shuttle_white.dmi'
+ thermal_conductivity = 0.05
+ heat_capacity = 0
+ layer = 2
+
+/turf/unsimulated/shuttle/wall
+ name = "wall"
+ icon_state = "light"
+ opacity = 1
+ density = 1
+ blocks_air = 1
+
+/turf/unsimulated/shuttle/wall/dark
+ icon = 'icons/turf/shuttle_dark.dmi'
+ icon_state = "dark"
+
+/turf/unsimulated/shuttle/floor
+ name = "floor"
+ icon = 'icons/turf/flooring/shuttle.dmi'
+ icon_state = "floor_blue"
+
+/turf/unsimulated/shuttle/plating
+ name = "plating"
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "plating"
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index 874b6f3998..ec84ee4232 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -26,7 +26,7 @@
if(!canmove || restrained()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide
src << "You can't commit suicide whilst restrained! ((You can type Ghost instead however.))"
return
- suiciding = 1
+ suiciding = 15
does_not_breathe = 0 //Prevents ling-suicide zombies, or something
var/obj/item/held_item = get_active_hand()
if(held_item)
@@ -73,10 +73,16 @@
return
log_and_message_admins("[key_name(src)] commited suicide")
- viewers(src) << pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide. ", \
+
+ var/suicidemsg
+ suicidemsg = pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide. ", \
"[src] is jamming \his thumbs into \his eye sockets! It looks like \he's trying to commit suicide. ", \
"[src] is twisting \his own neck! It looks like \he's trying to commit suicide. ", \
"[src] is holding \his breath! It looks like \he's trying to commit suicide. ")
+ if(isSynthetic())
+ suicidemsg = "[src] is attempting to switch \his power off! It looks like \he's trying to commit suicide. "
+ visible_message(suicidemsg)
+
adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
@@ -172,7 +178,7 @@
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
if(confirm == "Yes")
- suiciding = 1
+ suiciding = 30
setOxyLoss(100)
adjustBruteLoss(100 - getBruteLoss())
setToxLoss(100)
diff --git a/code/global.dm b/code/global.dm
index ca494f6e2e..6970e68dff 100644
--- a/code/global.dm
+++ b/code/global.dm
@@ -25,16 +25,16 @@ var/global/list/global_map = null
var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
var/diary = null
var/href_logfile = null
-var/station_name = "Northern Star"
-var/const/station_orig = "Northern Star" //station_name can't be const due to event prefix/suffix
-var/const/station_short = "Northern Star"
-var/const/dock_name = "Vir Interstellar Spaceport"
-var/const/boss_name = "Central Command"
-var/const/boss_short = "CentCom"
-var/const/company_name = "NanoTrasen"
-var/const/company_short = "NT"
-var/const/star_name = "Vir"
-var/const/starsys_name = "Vir"
+// var/station_name = "Northern Star"
+// var/const/station_orig = "Northern Star" //station_name can't be const due to event prefix/suffix
+// var/const/station_short = "Northern Star"
+// var/const/dock_name = "Vir Interstellar Spaceport"
+// var/const/boss_name = "Central Command"
+// var/const/boss_short = "CentCom"
+// var/const/company_name = "NanoTrasen"
+// var/const/company_short = "NT"
+// var/const/star_name = "Vir"
+// var/const/starsys_name = "Vir"
var/const/game_version = "Polaris"
var/changelog_hash = ""
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index c42c65654d..aea165e063 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -348,7 +348,7 @@ proc/admin_notice(var/message, var/rights)
dat+={"Feed Security functions:
[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue
Censor Feed Stories
- Mark Feed Channel with [company_name] D-Notice (disables and locks the channel.
+ Mark Feed Channel with [using_map.company_name] D-Notice (disables and locks the channel.
The newscaster recognises you as: [src.admincaster_signature]
"}
if(1)
@@ -414,7 +414,7 @@ proc/admin_notice(var/message, var/rights)
dat+="[src.admincaster_feed_channel.channel_name]: \[created by: [src.admincaster_feed_channel.author] \] "
if(src.admincaster_feed_channel.censored)
dat+={"
- ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.
+ ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.
No further feed story additions are allowed while the D-Notice is in effect.
"}
else
@@ -435,7 +435,7 @@ proc/admin_notice(var/message, var/rights)
"}
if(10)
dat+={"
- [company_name] Feed Censorship Tool
+ [using_map.company_name] Feed Censorship Tool
NOTE: Due to the nature of news Feeds, total deletion of a Feed Story is not possible.
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
Select Feed channel to get Stories from:
@@ -448,7 +448,7 @@ proc/admin_notice(var/message, var/rights)
dat+="Cancel "
if(11)
dat+={"
- [company_name] D-Notice Handler
+ [using_map.company_name] D-Notice Handler
A D-Notice is to be bestowed upon the channel if the handling Authority deems it as harmful for the station's
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
@@ -481,7 +481,7 @@ proc/admin_notice(var/message, var/rights)
"}
if(src.admincaster_feed_channel.censored)
dat+={"
- ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [company_name] D-Notice.
+ ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a [using_map.company_name] D-Notice.
No further feed story additions are allowed while the D-Notice is in effect.
"}
else
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 91a504f421..91fff2c4c2 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -161,7 +161,8 @@ var/list/admin_verbs_server = list(
/client/proc/toggle_random_events,
/client/proc/check_customitem_activity,
/client/proc/nanomapgen_DumpImage,
- /client/proc/modify_server_news
+ /client/proc/modify_server_news,
+ /client/proc/recipe_dump
)
var/list/admin_verbs_debug = list(
/client/proc/getruntimelog, //allows us to access runtime logs to somebody,
@@ -200,7 +201,9 @@ var/list/admin_verbs_debug = list(
/client/proc/toggle_debug_logs,
/client/proc/admin_ghost, //allows us to ghost/reenter body at will,
/datum/admins/proc/view_runtimes,
- /client/proc/show_gm_status
+ /client/proc/show_gm_status,
+ /datum/admins/proc/change_weather,
+ /datum/admins/proc/change_time
)
var/list/admin_verbs_paranoid_debug = list(
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index 5742b74aa4..4f0cba95c4 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -19,7 +19,7 @@ var/list/admin_datums = list()
error("Admin datum created without a ckey argument. Datum has been deleted")
qdel(src)
return
- admincaster_signature = "[company_name] Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
+ admincaster_signature = "[using_map.company_name] Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
rights = initial_rights
admin_datums[ckey] = src
diff --git a/code/modules/admin/secrets/admin_secrets/prison_warp.dm b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
index eec85c2f04..d0d41cea5d 100644
--- a/code/modules/admin/secrets/admin_secrets/prison_warp.dm
+++ b/code/modules/admin/secrets/admin_secrets/prison_warp.dm
@@ -12,7 +12,7 @@
for(var/mob/living/carbon/human/H in mob_list)
var/turf/T = get_turf(H)
var/security = 0
- if((T && T in config.admin_levels) || prisonwarped.Find(H))
+ if((T && T in using_map.admin_levels) || prisonwarped.Find(H))
//don't warp them if they aren't ready or are already there
continue
H.Paralyse(5)
diff --git a/code/modules/admin/secrets/fun_secrets/ghost_mode.dm b/code/modules/admin/secrets/fun_secrets/ghost_mode.dm
index dfa84e4cf6..c59a9c0589 100644
--- a/code/modules/admin/secrets/fun_secrets/ghost_mode.dm
+++ b/code/modules/admin/secrets/fun_secrets/ghost_mode.dm
@@ -30,7 +30,7 @@
step_rand(W)
var/area/A = get_area(M)
- if(A.requires_power && !A.always_unpowered && A.power_light && (A.z in config.player_levels))
+ if(A.requires_power && !A.always_unpowered && A.power_light && (A.z in using_map.player_levels))
affected_areas |= get_area(M)
affected_mobs |= user
diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm
index 5a211d960b..9239f6385f 100644
--- a/code/modules/admin/verbs/buildmode.dm
+++ b/code/modules/admin/verbs/buildmode.dm
@@ -392,11 +392,12 @@
if(holder.buildmode.coordA && holder.buildmode.coordB)
user << "Ladder locations set, building ladders. "
- var/obj/structure/ladder/A = new /obj/structure/ladder(holder.buildmode.coordA)
+ var/obj/structure/ladder/A = new /obj/structure/ladder/up(holder.buildmode.coordA)
var/obj/structure/ladder/B = new /obj/structure/ladder(holder.buildmode.coordB)
- A.target = B
- B.target = A
- B.icon_state = "ladderup"
+ A.target_up = B
+ B.target_down = A
+ A.update_icon()
+ B.update_icon()
holder.buildmode.coordA = null
holder.buildmode.coordB = null
if(7) // Move into contents
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index d8c5513e15..29b61f15cb 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -692,7 +692,7 @@
if("emergency response team")
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
- M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/swat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
@@ -711,7 +711,7 @@
if("special ops officer")
M.equip_to_slot_or_del(new /obj/item/clothing/under/syndicate/combat(M), slot_w_uniform)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/swat/officer(M), slot_wear_suit)
- M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
@@ -767,7 +767,7 @@
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
if("soviet admiral")
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
- M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
+ M.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots/combat(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(M), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/plain/eyepatch(M), slot_glasses)
@@ -968,3 +968,46 @@
return
error_cache.showTo(usr)
+
+/datum/admins/proc/change_weather()
+ set category = "Debug"
+ set name = "Change Weather"
+ set desc = "Changes the current weather."
+
+ if(!check_rights(R_DEBUG))
+ return
+
+ var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in list(planet_sif)
+ var/datum/weather/new_weather = input(usr, "What weather do you want to change to?", "Change Weather") as null|anything in planet.weather_holder.allowed_weather_types
+ if(new_weather)
+ planet.weather_holder.change_weather(new_weather)
+ var/log = "[key_name(src)] changed [planet.name]'s weather to [new_weather]."
+ message_admins(log)
+ log_admin(log)
+
+/datum/admins/proc/change_time()
+ set category = "Debug"
+ set name = "Change Planet Time"
+ set desc = "Changes the time of a planet."
+
+ if(!check_rights(R_DEBUG))
+ return
+
+ var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in list(planet_sif)
+
+ var/datum/time/current_time_datum = planet.current_time
+ var/new_hour = input(usr, "What hour do you want to change to?", "Change Time", text2num(current_time_datum.show_time("hh"))) as null|num
+ if(!isnull(new_hour))
+ var/new_minute = input(usr, "What minute do you want to change to?", "Change Time", text2num(current_time_datum.show_time("mm")) ) as null|num
+ if(!isnull(new_minute))
+ var/type_needed = current_time_datum.type
+ var/datum/time/new_time = new type_needed()
+ new_time = new_time.add_hours(new_hour)
+ new_time = new_time.add_minutes(new_minute)
+ planet.current_time = new_time
+ spawn(1)
+ planet.update_sun()
+
+ var/log = "[key_name(src)] changed [planet.name]'s time to [planet.current_time.show_time("hh:mm")]."
+ message_admins(log)
+ log_admin(log)
\ No newline at end of file
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index 8c0575d080..b416cb661a 100644
--- a/code/modules/admin/verbs/diagnostics.dm
+++ b/code/modules/admin/verbs/diagnostics.dm
@@ -17,7 +17,7 @@
var/inactive_on_main_station = 0
for(var/zone/zone in air_master.zones)
var/turf/simulated/turf = locate() in zone.contents
- if(turf && turf.z in config.station_levels)
+ if(turf && turf.z in using_map.station_levels)
if(zone.needs_update)
active_on_main_station++
else
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 64640b10b6..c5eb60a94b 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -29,7 +29,7 @@
//log_admin("HELP: [key_name(src)]: [msg]")
/proc/CentCom_announce(var/msg, var/mob/Sender, var/iamessage)
- msg = "\blue [uppertext(boss_short)]M[iamessage ? " IA" : ""]: [key_name(Sender, 1)] (PP ) (VV ) (SM ) ([admin_jump_link(Sender, src)]) (CA ) (BSA ) (RPLY ): [msg]"
+ msg = "\blue [uppertext(using_map.boss_short)]M[iamessage ? " IA" : ""]: [key_name(Sender, 1)] (PP ) (VV ) (SM ) ([admin_jump_link(Sender, src)]) (CA ) (BSA ) (RPLY ): [msg]"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
C << msg
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 251dec5fb1..8ffcc88692 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -471,8 +471,10 @@ Traitors and the like can also be revived with the previous role mostly intact.
antag_data.place_mob(new_character)
//If desired, apply equipment.
- if(equipment && charjob)
- job_master.EquipRank(new_character, charjob, 1)
+ if(equipment)
+ if(charjob)
+ job_master.EquipRank(new_character, charjob, 1)
+ equip_custom_items(new_character)
//If desired, add records.
if(records)
@@ -553,7 +555,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!input)
return
if(!customname)
- customname = "[company_name] Update"
+ customname = "[using_map.company_name] Update"
for (var/obj/machinery/computer/communications/C in machines)
if(! (C.stat & (BROKEN|NOPOWER) ) )
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
@@ -568,7 +570,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("Yes")
command_announcement.Announce(input, customname, new_sound = 'sound/AI/commandreport.ogg', msg_sanitized = 1);
if("No")
- world << "\red New [company_name] Update available at all communication consoles."
+ world << "\red New [using_map.company_name] Update available at all communication consoles."
world << sound('sound/AI/commandreport.ogg')
log_admin("[key_name(src)] has created a command report: [input]")
@@ -637,14 +639,18 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/heavy = input("Range of heavy pulse.", text("Input")) as num|null
if(heavy == null) return
+ var/med = input("Range of medium pulse.", text("Input")) as num|null
+ if(med == null) return
var/light = input("Range of light pulse.", text("Input")) as num|null
if(light == null) return
+ var/long = input("Range of long pulse.", text("Input")) as num|null
+ if(long == null) return
- if (heavy || light)
+ if (heavy || med || light || long)
- empulse(O, heavy, light)
- log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])")
- message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])", 1)
+ empulse(O, heavy, med, light, long)
+ log_admin("[key_name(usr)] created an EM Pulse ([heavy],[med],[light],[long]) at ([O.x],[O.y],[O.z])")
+ message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[med],[light],[long]) at ([O.x],[O.y],[O.z])", 1)
feedback_add_details("admin_verb","EMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm
index d94ca0c4b3..505f4ceb4c 100644
--- a/code/modules/awaymissions/bluespaceartillery.dm
+++ b/code/modules/awaymissions/bluespaceartillery.dm
@@ -26,7 +26,7 @@
dat += "Locked on "
dat += "Charge progress: [reload]/180: "
dat += "Open Fire "
- dat += "Deployment of weapon authorized by [company_name] Naval Command Remember, friendly fire is grounds for termination of your contract and life. "
+ dat += "Deployment of weapon authorized by [using_map.company_name] Naval Command Remember, friendly fire is grounds for termination of your contract and life. "
user << browse(dat, "window=scroll")
onclose(user, "scroll")
return
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index 4c061c71d2..e48e730860 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -90,7 +90,7 @@
name = "Syndicate Operative"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/armor/vest
- corpseshoes = /obj/item/clothing/shoes/swat
+ corpseshoes = /obj/item/clothing/shoes/boots/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas
@@ -106,7 +106,7 @@
name = "Syndicate Commando"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/space/void/merc
- corpseshoes = /obj/item/clothing/shoes/swat
+ corpseshoes = /obj/item/clothing/shoes/boots/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas/syndicate
@@ -225,7 +225,7 @@
corpsemask = /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba
corpsehelmet = /obj/item/clothing/head/centhat
corpsegloves = /obj/item/clothing/gloves/swat
- corpseshoes = /obj/item/clothing/shoes/swat
+ corpseshoes = /obj/item/clothing/shoes/boots/swat
corpsepocket1 = /obj/item/weapon/flame/lighter/zippo
corpseid = 1
corpseidjob = "Commander"
diff --git a/code/modules/awaymissions/exile.dm b/code/modules/awaymissions/exile.dm
index 3c285a20c2..b22114649d 100644
--- a/code/modules/awaymissions/exile.dm
+++ b/code/modules/awaymissions/exile.dm
@@ -18,7 +18,7 @@
get_data()
var/dat = {"
Implant Specifications:
-Name: [company_name] Employee Exile Implant
+Name: [using_map.company_name] Employee Exile Implant
Implant Details: The onboard gateway system has been modified to reject entry by individuals containing this implant "}
return dat
diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm
new file mode 100644
index 0000000000..7da2c6f73b
--- /dev/null
+++ b/code/modules/busy_space/air_traffic.dm
@@ -0,0 +1,129 @@
+//Cactus, Speedbird, Dynasty, oh my
+
+var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
+
+/datum/lore/atc_controller
+ var/delay_max = 25 MINUTES //How long between ATC traffic, max. Default is 25 mins.
+ var/delay_min = 40 MINUTES //How long between ATC traffic, min. Default is 40 mins.
+ var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins.
+ var/next_message //When the next message should happen in world.time
+ var/force_chatter_type //Force a specific type of messages
+
+ var/squelched = 0 //If ATC is squelched currently
+
+/datum/lore/atc_controller/New()
+ spawn(10 SECONDS) //Lots of lag at the start of a shift.
+ msg("New shift beginning, resuming traffic control.")
+ next_message = world.time + rand(delay_min,delay_max)
+ process()
+
+/datum/lore/atc_controller/proc/process()
+ if(world.time >= next_message)
+ if(squelched)
+ next_message = world.time + backoff_delay
+ else
+ next_message = world.time + rand(delay_min,delay_max)
+ random_convo()
+
+ spawn(1 MINUTE) //We don't really need high-accuracy here.
+ process()
+
+/datum/lore/atc_controller/proc/msg(var/message,var/sender)
+ ASSERT(message)
+ global_announcer.autosay("[message]", sender ? sender : "[using_map.station_short] Space Control")
+
+/datum/lore/atc_controller/proc/reroute_traffic(var/yes = 1)
+ if(yes)
+ if(!squelched)
+ msg("Rerouting traffic away from [using_map.station_name].")
+ squelched = 1
+ else
+ if(squelched)
+ msg("Resuming normal traffic routing around [using_map.station_name].")
+ squelched = 0
+
+/datum/lore/atc_controller/proc/shift_ending(var/evac = 0)
+ msg("Automated Shuttle departing [using_map.station_name] for [using_map.dock_name] on routine transfer route.","NT Automated Shuttle")
+ sleep(5 SECONDS)
+ msg("Automated Shuttle, cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].")
+
+/datum/lore/atc_controller/proc/random_convo()
+ var/one = pick(loremaster.organizations) //These will pick an index, not an instance
+ var/two = pick(loremaster.organizations)
+
+ var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances
+ var/datum/lore/organization/dest = loremaster.organizations[two]
+
+ //Let's get some mission parameters
+ var/owner = source.short_name //Use the short name
+ var/prefix = pick(source.ship_prefixes) //Pick a random prefix
+ var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does
+ var/shipname = pick(source.ship_names) //Pick a random ship name to go with it
+ var/destname = pick(dest.destination_names) //Pick a random holding from the destination
+
+ var/combined_name = "[owner] [prefix] [shipname]"
+ var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] Airspace")
+ var/wrong_atc_names = list("Sol Command","Orion Control", "[using_map.dock_name]")
+ var/mission_noun = list("flight","mission","route")
+ var/request_verb = list("requesting","calling for","asking for")
+
+ //First response is 'yes', second is 'no'
+ var/requests = list("[using_map.station_short] transit clearance" = list("permission for transit granted", "permission for transit denied, contact regional on 953.5"),
+ "planetary flight rules" = list("authorizing planetary flight rules", "denying planetary flight rules right now due to traffic"),
+ "special flight rules" = list("authorizing special flight rules", "denying special flight rules, not allowed for your traffic class"),
+ "current solar weather info" = list("sending you the relevant information via tightbeam", "cannot fulfill your request at the moment"),
+ "nearby traffic info" = list("sending you current traffic info", "no available info in your area"),
+ "remote telemetry data" = list("sending telemetry now", "no uplink from your ship, recheck your uplink and ask again"),
+ "refueling information" = list("sending refueling information now", "no fuel for your ship class in this sector"),
+ "a current system time sync" = list("sending time sync ping to you now", "your ship isn't compatible with our time sync, set time manually"),
+ "current system starcharts" = list("transmitting current starcharts", "your request is queued, overloaded right now"),
+ "permission to engage FTL" = list("permission to engage FTL granted, good day", "permission denied, wait for current traffic to pass"),
+ "permission to transit system" = list("permission to transit granted, good day", "permission denied, wait for current traffic to pass"),
+ "permission to depart system" = list("permission to depart granted, good day", "permission denied, wait for current traffic to pass"),
+ "permission to enter system" = list("good day, permission to enter granted", "permission denied, wait for current traffic to pass"),
+ )
+
+ //Random chance things for variety
+ var/chatter_type = "normal"
+ if(force_chatter_type)
+ chatter_type = force_chatter_type
+ else
+ chatter_type = pick(2;"emerg",5;"wrong_freq","normal") //Be nice to have wrong_lang...
+
+ var/yes = prob(90) //Chance for them to say yes vs no
+
+ var/request = pick(requests)
+ var/callname = pick(alt_atc_names)
+ var/response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no
+
+ var/full_request
+ var/full_response
+ var/full_closure
+
+ switch(chatter_type)
+ if("wrong_freq")
+ callname = pick(wrong_atc_names)
+ full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]."
+ full_response = "[combined_name], this is [using_map.station_short] TraCon, wrong frequency. Switch to [rand(700,999)].[rand(1,9)]."
+ full_closure = "[using_map.station_short] TraCon, understood, apologies."
+ if("wrong_lang")
+ //Can't implement this until autosay has language support
+ if("emerg")
+ var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","asteroids impacting the hull","a total loss of engine power","people trying to board the ship")
+ full_request = "This is [combined_name] declaring an emergency! We have [problem]!"
+ full_response = "[combined_name], this is [using_map.station_short] TraCon, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)]."
+ full_closure = "[using_map.station_short] TraCon, okay, switching now."
+ else
+ full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]."
+ full_response = "[combined_name], this is [using_map.station_short] TraCon, [response]." //Station TraCon always calls themselves TraCon
+ full_closure = "[using_map.station_short] TraCon, [yes ? "thank you" : "understood"], good day." //They always copy what TraCon called themselves in the end when they realize they said it wrong
+
+ //Ship sends request to ATC
+ msg(full_request,"[prefix] [shipname]")
+ sleep(5 SECONDS)
+ //ATC sends response to ship
+ msg(full_response)
+ sleep(5 SECONDS)
+ //Ship sends response to ATC
+ msg(full_closure,"[prefix] [shipname]")
+ return
\ No newline at end of file
diff --git a/code/modules/busy_space/loremaster.dm b/code/modules/busy_space/loremaster.dm
new file mode 100644
index 0000000000..30bd04402d
--- /dev/null
+++ b/code/modules/busy_space/loremaster.dm
@@ -0,0 +1,13 @@
+//I AM THE LOREMASTER, ARE YOU THE GATEKEEPER?
+
+var/datum/lore/loremaster/loremaster = new/datum/lore/loremaster
+
+/datum/lore/loremaster
+ var/list/organizations = list()
+
+/datum/lore/loremaster/New()
+
+ var/list/paths = typesof(/datum/lore/organization) - /datum/lore/organization
+ for(var/path in paths)
+ var/datum/lore/organization/instance = new path()
+ organizations[path] = instance
\ No newline at end of file
diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm
new file mode 100644
index 0000000000..86f88e7ec0
--- /dev/null
+++ b/code/modules/busy_space/organizations.dm
@@ -0,0 +1,326 @@
+//Datums for different companies that can be used by busy_space
+/datum/lore/organization
+ var/name = "" // Organization's name
+ var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated")
+ var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused.
+ var/history = "" // Historical discription of the organization's origins Currently unused.
+ var/work = "" // Short description of their work, eg "an arms manufacturer"
+ var/headquarters = "" // Location of the organization's HQ. Currently unused.
+ var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused.
+
+ var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc")
+ var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better.
+ "Kestrel",
+ "Beacon",
+ "Signal",
+ "Freedom",
+ "Glory",
+ "Axiom",
+ "Eternal",
+ "Icarus",
+ "Harmony",
+ "Light",
+ "Discovery",
+ "Endeavour",
+ "Explorer",
+ "Swift",
+ "Dragonfly",
+ "Ascendant",
+ "Tenacious",
+ "Pioneer",
+ "Hawk",
+ "Haste",
+ "Radiant",
+ "Luminous"
+ )
+ var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly.
+ var/autogenerate_destination_names = TRUE
+
+/datum/lore/organization/New()
+ ..()
+ if(autogenerate_destination_names) // Lets pad out the destination names.
+ var/i = rand(6, 10)
+ var/list/star_names = list(
+ "Sol", "Alpha Centauri", "Sirius", "Vega", "Regulus", "Vir", "Algol", "Aldebaran",
+ "Delta Doradus", "Menkar", "Geminga", "Elnath", "Gienah", "Mu Leporis", "Nyx", "Tau Ceti",
+ "Wazn", "Alphard", "Phact", "Altair")
+ var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "distress beacon", "anomaly", "colony", "outpost")
+ while(i)
+ destination_names.Add("a [pick(destination_types)] in [pick(star_names)]")
+ i--
+
+//////////////////////////////////////////////////////////////////////////////////
+
+// TSCs
+/datum/lore/organization/nanotrasen
+ name = "NanoTrasen Incorporated"
+ short_name = "NanoTrasen"
+ desc = "" // Todo: Write this.
+ history = "" // This too.
+ work = "research giant"
+ headquarters = "Luna"
+ motto = ""
+
+ ship_prefixes = list("NSV" = "exploration", "NTV" = "hauling", "NDV" = "patrol", "NRV" = "emergency response")
+ // Note that the current station being used will be pruned from this list upon being instantiated
+ destination_names = list(
+ "NSS Exodus in Nyx",
+ "NCS Northern Star in Vir",
+ "NCS Southern Cross in Vir",
+ "NDV Icarus in Nyx",
+ "NAS Vir Central Command",
+ "a dockyard orbiting Sif",
+ "an asteroid orbiting Kara",
+ "an asteroid orbiting Rota",
+ "Vir Interstellar Spaceport"
+ )
+
+/datum/lore/organization/nanotrasen/New()
+ ..()
+ // Get rid of the current map from the list, so ships flying in don't say they're coming to the current map.
+ var/string_to_test = "[using_map.station_name] in [using_map.starsys_name]"
+ if(string_to_test in destination_names)
+ destination_names.Remove(string_to_test)
+
+
+
+/datum/lore/organization/hephaestus
+ name = "Hephaestus Industries"
+ short_name = "Hephaestus"
+ desc = "Hephaestus Industries is the largest supplier of arms, ammunition, and small millitary vehicles in Sol space. \
+ Hephaestus products have a reputation for reliability, and the corporation itself has a noted tendency to stay removed \
+ from corporate politics. They enforce their neutrality with the help of a fairly large asset-protection contingent which \
+ prevents any contracting polities from using their own materiel against them. SolGov itself is one of Hephastus’ largest \
+ bulk contractors owing to the above factors."
+ history = ""
+ work = "arms manufacturer"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("HTV" = "freight", "HTV" = "munitions resupply")
+ destination_names = list(
+ "a SolGov dockyard on Luna"
+ )
+
+/datum/lore/organization/vey_med
+ name = "Vey Medical"
+ short_name = "Vey Med"
+ desc = "Vey-Med is one of the newer TSCs on the block and is notable for being largely owned and opperated by Skrell. \
+ Despite the suspicion and prejudice leveled at them for their alien origin, Vey-Med has obtained market dominance in \
+ the sale of medical equipment-- from surgical tools to large medical devices to the Oddyseus trauma response mecha \
+ and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \
+ human-like FBP designs. Vey’s rise to stardom came from their introduction of ressurective cloning, although in \
+ recent years they’ve been forced to diversify as their patents expired and NanoTrasen-made medications became \
+ essential to modern cloning."
+ history = ""
+ work = "medical equipment supplier"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("VTV" = "transportation", "VMV" = "medical resupply")
+ destination_names = list()
+
+/datum/lore/organization/zeng_hu
+ name = "Zeng-Hu pharmaceuticals"
+ short_name = "Zeng-Hu"
+ desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \
+ on the market for medications, and many household names are patentted by Zeng-Hu-- Bicaridyne, Dylovene, Tricordrizine, \
+ and Dexalin all came from a Zeng-Hu medical laboratory. Zeng-Hu’s fortunes have been in decline as Nanotrasen’s near monopoly \
+ on phoron research cuts into their R&D and Vey-Med’s superior medical equipment effectively decimated their own equipment \
+ interests. The three-way rivalry between these companies for dominance in the medical field is well-known and a matter of \
+ constant economic speculation."
+ history = ""
+ work = "pharmaceuticals company"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("ZTV" = "transportation", "ZMV" = "medical resupply")
+ destination_names = list()
+
+/datum/lore/organization/ward_takahashi
+ name = "Ward-Takahashi General Manufacturing Conglomerate"
+ short_name = "Ward-Takahashi"
+ desc = "Ward-Takahashi focuses on the sale of small consumer electronics, with its computers, communicators, \
+ and even mid-class automobiles a fixture of many households. Less famously, Ward-Takahashi also supplies most \
+ of the AI cores on which vital control systems are mounted, and it is this branch of their industry that has \
+ led to their tertiary interest in the development and sale of high-grade AI systems. Ward-Takahashi’s economies \
+ of scale frequently steal market share from Nanotrasen’s high-price products, leading to a bitter rivalry in the \
+ consumer electronics market."
+ history = ""
+ work = "electronics manufacturer"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("WTV" = "freight")
+ destination_names = list()
+
+/datum/lore/organization/bishop
+ name = "Bishop Cybernetics"
+ short_name = "Bishop"
+ desc = "Bishop’s focus is on high-class, stylish cybernetics. A favorite among transhumanists (and a bête noire for \
+ bioconservatives), Bishop manufactures not only prostheses but also brain augmentation, synthetic organ replacements, \
+ and odds and ends like implanted wrist-watches. Their business model tends towards smaller, boutique operations, giving \
+ it a reputation for high price and luxury, with Bishop cyberware often rivalling Vey-Med’s for cost. Bishop’s reputation \
+ for catering towards the interests of human augmentation enthusiasts instead of positronics have earned it ire from the \
+ Positronic Rights Group and puts it in ideological (but not economic) comptetition with Morpheus Cyberkinetics."
+ history = ""
+ work = "cybernetics and augmentation manufacturer"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("BTV" = "transportation")
+ destination_names = list()
+
+/datum/lore/organization/morpheus
+ name = "Morpheus Cyberkinetics"
+ short_name = "Morpheus"
+ desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \
+ and needs. A product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \
+ relied on word of mouth among positronics to reach their current economic dominance. Morpheus in exchange lobbies heavily for \
+ positronic rights, sponsors positronics through their Jans-Fhriede test, and tends to other positronic concerns to earn them \
+ the good-will of the positronics, and the ire of those who wish to exploit them."
+ history = ""
+ work = "cybernetics manufacturer"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("MTV" = "freight")
+ // Culture names, because Anewbe told me so.
+ ship_names = list(
+ "Nervous Energy",
+ "Prosthetic Conscience",
+ "Revisionist",
+ "Trade Surplus",
+ "Flexible Demeanour",
+ "Just Read The Instructions",
+ "Limiting Factor",
+ "Cargo Cult",
+ "Gunboat Diplomat",
+ "A Ship With A View",
+ "Cantankerous",
+ "I Thought He Was With You",
+ "Never Talk To Strangers",
+ "Sacrificial Victim",
+ "Unwitting Accomplice",
+ "Bad For Business",
+ "Just Testing",
+ "Size Isn't Everything",
+ "Yawning Angel",
+ "Liveware Problem",
+ "Very Little Gravitas Indeed",
+ "Zero Gravitas",
+ "Gravitas Free Zone",
+ "Absolutely No You-Know-What",
+ "Existence Is Pain",
+ "I'm Walking Here",
+ "Screw Loose",
+ "Of Course I Still Love You",
+ "Limiting Factor",
+ "So Much For Subtley",
+ "Unfortunate Conflict Of Evidence",
+ "Prime Mover",
+ "It's One Of Ours",
+ "Thank You And Goodnight",
+ "Boo!",
+ "Reasonable Excuse",
+ "Honest Mistake",
+ "Appeal To Reason",
+ "My First Ship II",
+ "Hidden Income",
+ "Anything Legal Considered",
+ "New Toy",
+ "Me, I'm Always Counting",
+ "Just Five More Minutes"
+
+
+ )
+ destination_names = list()
+
+/datum/lore/organization/xion
+ name = "Xion Manufacturing Group"
+ short_name = "Xion"
+ desc = "Xion, quietly, controls most of the market for industrial equipment. Their portfolio includes mining exosuits, \
+ factory equipment, rugged positronic chassis, and other pieces of equipment vital to the function of the economy. Xion \
+ keeps its control of the market by leasing, not selling, their equipment, and through infamous and bloody patent protection \
+ lawsuits. Xion are noted to be a favorite contractor for SolGov engineers, owing to their low cost and rugged design."
+ history = ""
+ work = "industrial equipment manufacturer"
+ headquarters = ""
+ motto = ""
+
+ ship_prefixes = list("XTV" = "hauling")
+ destination_names = list()
+
+// Governments
+
+/datum/lore/organization/sifgov
+ name = "Sif Governmental Authority"
+ short_name = "SifGov"
+ desc = "SifGov is the sole governing administration for the Vir system, based in New Reykjavik, Sif. It is a representative \
+ democratic government, and a fully recognized member of the Solar Confederate Government. Anyone operating inside of Vir must \
+ comply with SifGov's legislation and regulations."
+ history = "" // Todo like the rest of them
+ work = "governing body of Sif"
+ headquarters = "New Reykjavik, Sif"
+ motto = ""
+ autogenerate_destination_names = FALSE
+
+ ship_prefixes = list("SGA" = "hauling", "SGA" = "energy relay")
+ destination_names = list(
+ "New Reykjavik on Sif",
+ "Radiance Energy Chain",
+ "a dockyard orbiting Sif",
+ "a telecommunications satellite",
+ "Vir Interstellar Spaceport"
+ )
+
+/datum/lore/organization/solgov
+ name = "Solar Confederate Government"
+ short_name = "SolGov"
+ desc = "SolGov is a decentralized confederation of human governmental entities based on Luna, Sol, which defines top-level law for their member states. \
+ Member states receive various benefits such as defensive pacts, trade agreements, social support and funding, and being able to participate \
+ in the Colonial Assembly. The majority, but not all human territories are members of SolGov. As such, SolGov is a major power and \
+ defacto represents humanity on the galatic stage."
+ history = "" // Todo
+ work = "governing polity of humanity's Confederation"
+ headquarters = "Luna"
+ motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals'.
+ autogenerate_destination_names = TRUE
+
+ ship_prefixes = list("SCG-T" = "transportation", "SCG-D" = "diplomatic", "SCG-F" = "freight")
+ destination_names = list(
+ "Venus",
+ "Earth",
+ "Luna",
+ "Mars",
+ "Titan"
+ )// autogen will add a lot of other places as well.
+
+/*
+// To be expanded upon later, once the military lore gets sorted out.
+
+// Military
+
+/datum/lore/organization/sif_guard
+ name = "Sif Homeguard Forces" // Todo: Get better name from lorepeople.
+ short_name = "SifGuard"
+ desc = ""
+ history = ""
+ work = "Sif Governmental Authority's military"
+ headquarters = "Sif" // Make this more specific later.
+ motto = ""
+ autogenerate_destination_names = FALSE // Kinda weird if SifGuard goes to Nyx.
+
+ ship_prefixes = list("SGSC" = "military", "SGSC" = "patrol", "SGSC" = "rescue", "SGSC" = "emergency response") // Todo: Replace prefix with better one.
+ destination_names = list(
+ "a classified location in SolGov territory",
+ "Sif orbit",
+ "the rings of Kara",
+ "the rings of Rota",
+ "Firnir orbit",
+ "Tyr orbit",
+ "Magni orbit",
+ "a wreck in SifGov territory",
+ "a military outpost",
+ )
+*/
diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm
index 050ec31638..23b4245750 100644
--- a/code/modules/client/preference_setup/general/01_basic.dm
+++ b/code/modules/client/preference_setup/general/01_basic.dm
@@ -130,7 +130,11 @@ datum/preferences/proc/set_biological_gender(var/gender)
return ..()
/datum/category_item/player_setup_item/general/basic/proc/get_genders()
- var/datum/species/S = all_species[pref.species]
+ var/datum/species/S
+ if(pref.species)
+ S = all_species[pref.species]
+ else
+ S = all_species["Human"]
var/list/possible_genders = S.genders
if(!pref.organ_data || pref.organ_data[BP_TORSO] != "cyborg")
return possible_genders
diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm
index 079713c7ea..3e239badc7 100644
--- a/code/modules/client/preference_setup/general/03_body.dm
+++ b/code/modules/client/preference_setup/general/03_body.dm
@@ -28,6 +28,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
S["disabilities"] >> pref.disabilities
S["organ_data"] >> pref.organ_data
S["rlimb_data"] >> pref.rlimb_data
+ S["body_markings"] >> pref.body_markings
pref.preview_icon = null
/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S)
@@ -51,6 +52,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
S["disabilities"] << pref.disabilities
S["organ_data"] << pref.organ_data
S["rlimb_data"] << pref.rlimb_data
+ S["body_markings"] << pref.body_markings
/datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S)
if(!pref.species || !(pref.species in playable_species))
@@ -75,6 +77,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.disabilities = sanitize_integer(pref.disabilities, 0, 65535, initial(pref.disabilities))
if(!pref.organ_data) pref.organ_data = list()
if(!pref.rlimb_data) pref.rlimb_data = list()
+ if(!pref.body_markings) pref.body_markings = list()
+ else pref.body_markings &= body_marking_styles_list
// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/general/body/copy_to_mob(var/mob/living/carbon/human/character)
@@ -123,6 +127,20 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
I.robotize()
else if(status == "digital")
I.digitize()
+
+ for(var/N in character.organs_by_name)
+ var/obj/item/organ/external/O = character.organs_by_name[N]
+ O.markings.Cut()
+
+ for(var/M in pref.body_markings)
+ var/datum/sprite_accessory/marking/mark_datum = body_marking_styles_list[M]
+ var/mark_color = "[pref.body_markings[M]]"
+
+ for(var/BP in mark_datum.body_parts)
+ var/obj/item/organ/external/O = character.organs_by_name[BP]
+ if(O)
+ O.markings[M] = list("color" = mark_color, "datum" = mark_datum)
+
return
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
@@ -251,6 +269,13 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
if(has_flag(mob_species, HAS_SKIN_COLOR))
. += "Body Color "
. += "Change Color "
+
+ . += "Body Markings + "
+ for(var/M in pref.body_markings)
+ . += "[M] - Color "
+ . += " "
+ . += " "
+
. = jointext(.,null)
/datum/category_item/player_setup_item/general/body/proc/has_flag(var/datum/species/mob_species, var/flag)
@@ -289,7 +314,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
if(!(pref.biological_gender in mob_species.genders))
pref.set_biological_gender(mob_species.genders[1])
-
//grab one of the valid hair styles for the newly chosen species
var/list/valid_hairstyles = list()
for(var/hairstyle in hair_styles_list)
@@ -334,6 +358,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.s_tone = 0
reset_limbs() // Safety for species with incompatible manufacturers; easier than trying to do it case by case.
+ pref.body_markings.Cut() // Basically same as above.
var/min_age = get_min_age()
var/max_age = get_max_age()
@@ -421,6 +446,32 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.f_style = new_f_style
return TOPIC_REFRESH_UPDATE_PREVIEW
+ else if(href_list["marking_style"])
+ var/list/usable_markings = pref.body_markings.Copy() ^ body_marking_styles_list.Copy()
+ for(var/M in usable_markings)
+ var/datum/sprite_accessory/S = usable_markings[M]
+ if(!S.species_allowed.len)
+ continue
+ else if(!(pref.species in S.species_allowed))
+ usable_markings -= M
+
+ var/new_marking = input(user, "Choose a body marking:", "Character Preference") as null|anything in usable_markings
+ if(new_marking && CanUseTopic(user))
+ pref.body_markings[new_marking] = "#000000" //New markings start black
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
+ else if(href_list["marking_remove"])
+ var/M = href_list["marking_remove"]
+ pref.body_markings -= M
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
+ else if(href_list["marking_color"])
+ var/M = href_list["marking_color"]
+ var/mark_color = input(user, "Choose the [M] color: ", "Character Preference", pref.body_markings[M]) as color|null
+ if(mark_color && CanUseTopic(user))
+ pref.body_markings[M] = "[mark_color]"
+ return TOPIC_REFRESH_UPDATE_PREVIEW
+
else if(href_list["reset_limbs"])
reset_limbs()
return TOPIC_REFRESH_UPDATE_PREVIEW
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index 79adec9afc..f8bd40f076 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -38,7 +38,7 @@
pref.backbag = 1 //Same as above
character.backbag = pref.backbag
- if(pref.pdachoice > 3 || pref.pdachoice < 1)
+ if(pref.pdachoice > 4 || pref.pdachoice < 1)
pref.pdachoice = 1
character.pdachoice = pref.pdachoice
diff --git a/code/modules/client/preference_setup/general/05_background.dm b/code/modules/client/preference_setup/general/05_background.dm
index c36ce85834..1f87f0a379 100644
--- a/code/modules/client/preference_setup/general/05_background.dm
+++ b/code/modules/client/preference_setup/general/05_background.dm
@@ -42,7 +42,7 @@
/datum/category_item/player_setup_item/general/background/content(var/mob/user)
. += "Background Information "
- . += "[company_name] Relation: [pref.nanotrasen_relation] "
+ . += "[using_map.company_name] Relation: [pref.nanotrasen_relation] "
. += "Home System: [pref.home_system] "
. += "Citizenship: [pref.citizenship] "
. += "Faction: [pref.faction] "
diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm
index d446a8f950..71559fed0e 100644
--- a/code/modules/client/preference_setup/global/setting_datums.dm
+++ b/code/modules/client/preference_setup/global/setting_datums.dm
@@ -126,6 +126,12 @@ var/list/_client_preferences_by_type
enabled_description = "Show"
disabled_description = "Hide"
+/datum/client_preference/check_mention
+ description ="Emphasize Name Mention"
+ key = "CHAT_MENTION"
+ enabled_description = "Emphasize"
+ disabled_description = "Normal"
+
/datum/client_preference/show_progress_bar
description ="Progress Bar"
key = "SHOW_PROGRESS"
diff --git a/code/modules/client/preference_setup/loadout/loadout_ears.dm b/code/modules/client/preference_setup/loadout/loadout_ears.dm
index 02bfdaa8b7..06aa10daa3 100644
--- a/code/modules/client/preference_setup/loadout/loadout_ears.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_ears.dm
@@ -8,3 +8,8 @@
/datum/gear/ears/headphones
display_name = "headphones"
path = /obj/item/clothing/ears/earmuffs/headphones
+
+/datum/gear/ears/translator
+ display_name = "universal translator, ear"
+ path = /obj/item/device/universal_translator/ear
+ cost = 8
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm
index 533cf88a51..59069fed2f 100644
--- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm
@@ -63,7 +63,7 @@
display_name = "Medical HUD Aviators (Medical)"
path = /obj/item/clothing/glasses/sunglasses/medhud/aviator
-/datum/gear/eyes/medical/aviator
+/datum/gear/eyes/medical/aviator/prescription
display_name = "Medical HUD Aviators, prescription (Medical)"
path = /obj/item/clothing/glasses/sunglasses/medhud/aviator/prescription
diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
index 07236c3592..4de90fed9f 100644
--- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
@@ -1,21 +1,21 @@
// Shoelocker
/datum/gear/shoes
display_name = "jackboots"
- path = /obj/item/clothing/shoes/jackboots
+ path = /obj/item/clothing/shoes/boots/jackboots
slot = slot_shoes
sort_category = "Shoes and Footwear"
/datum/gear/shoes/toeless
display_name = "toe-less jackboots"
- path = /obj/item/clothing/shoes/jackboots/toeless
+ path = /obj/item/clothing/shoes/boots/jackboots/toeless
/datum/gear/shoes/workboots
display_name = "workboots"
- path = /obj/item/clothing/shoes/workboots
+ path = /obj/item/clothing/shoes/boots/workboots
/datum/gear/shoes/workboots/toeless
display_name = "toe-less workboots"
- path = /obj/item/clothing/shoes/workboots/toeless
+ path = /obj/item/clothing/shoes/boots/workboots/toeless
/datum/gear/shoes/sandals
display_name = "sandals"
@@ -135,16 +135,16 @@
/datum/gear/shoes/cowboy
display_name = "cowboy boots"
- path = /obj/item/clothing/shoes/cowboy
+ path = /obj/item/clothing/shoes/boots/cowboy
/datum/gear/shoes/jungle
display_name = "jungle boots"
- path = /obj/item/clothing/shoes/jungleboots
+ path = /obj/item/clothing/shoes/boots/jungle
cost = 2
/datum/gear/shoes/duty
display_name = "duty boots"
- path = /obj/item/clothing/shoes/dutyboots
+ path = /obj/item/clothing/shoes/boots/duty
cost = 2
/datum/gear/shoes/dress
@@ -153,4 +153,12 @@
/datum/gear/shoes/dress/white
display_name = "shoes, dress white"
- path = /obj/item/clothing/shoes/dress/white
\ No newline at end of file
+ path = /obj/item/clothing/shoes/dress/white
+
+/datum/gear/shoes/heels
+ display_name = "high heels"
+ path = /obj/item/clothing/shoes/heels
+
+/datum/gear/shoes/heels/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm
index 22a68d63ed..dc05e3035d 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm
@@ -357,3 +357,30 @@
services[initial(service.name)] = service
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(services))
+/datum/gear/suit/miscellaneous/kimono
+ display_name = "kimono"
+ path = /obj/item/clothing/suit/kimono
+
+/datum/gear/suit/miscellaneous/kimono/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
+
+/datum/gear/suit/miscellaneous/sec_dep_jacket
+ display_name = "department jacket, security"
+ path = /obj/item/clothing/suit/storage/toggle/sec_dep_jacket
+
+/datum/gear/suit/miscellaneous/engi_dep_jacket
+ display_name = "department jacket, engineering"
+ path = /obj/item/clothing/suit/storage/toggle/engi_dep_jacket
+
+/datum/gear/suit/miscellaneous/supply_dep_jacket
+ display_name = "department jacket, supply"
+ path = /obj/item/clothing/suit/storage/toggle/supply_dep_jacket
+
+/datum/gear/suit/miscellaneous/sci_dep_jacket
+ display_name = "department jacket, science"
+ path = /obj/item/clothing/suit/storage/toggle/sci_dep_jacket
+
+/datum/gear/suit/miscellaneous/med_dep_jacket
+ display_name = "department jacket, medical"
+ path = /obj/item/clothing/suit/storage/toggle/med_dep_jacket
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
index 518b11a521..ccc5214b55 100644
--- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
@@ -444,4 +444,12 @@
/datum/gear/uniform/brandsuit/hephaestus
display_name = "jumpsuit, hephaestus"
- path = /obj/item/clothing/under/hephaestus
\ No newline at end of file
+ path = /obj/item/clothing/under/hephaestus
+
+/datum/gear/uniform/yogapants
+ display_name = "yoga pants"
+ path = /obj/item/clothing/under/pants/yogapants
+
+/datum/gear/uniform/yogapants/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm
index 4c2a378e7d..253f843306 100644
--- a/code/modules/client/preference_setup/loadout/loadout_utility.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm
@@ -46,6 +46,22 @@
display_name = "flashlight"
path = /obj/item/device/flashlight
+/datum/gear/utility/flashlight_blue
+ display_name = "flashlight, blue"
+ path = /obj/item/device/flashlight/color
+
+/datum/gear/utility/flashlight_orange
+ display_name = "flashlight, orange"
+ path = /obj/item/device/flashlight/color/orange
+
+/datum/gear/utility/flashlight_red
+ display_name = "flashlight, red"
+ path = /obj/item/device/flashlight/color/red
+
+/datum/gear/utility/flashlight_yellow
+ display_name = "flashlight, yellow"
+ path = /obj/item/device/flashlight/color/yellow
+
/datum/gear/utility/maglight
display_name = "flashlight, maglight"
path = /obj/item/device/flashlight/maglight
@@ -61,3 +77,8 @@
cost = 2
slot = "implant"
var/implant_type = "EAL"
+
+/datum/gear/utility/translator
+ display_name = "universal translator"
+ path = /obj/item/device/universal_translator
+ cost = 8
diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm
index d04359a20c..83f59b3a7b 100644
--- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm
@@ -44,32 +44,24 @@
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(bandtypes))
/datum/gear/ears/skrell/cloth/male
- display_name = "male headtail cloth selection (Skrell)"
- path = /obj/item/clothing/ears/skrell/cloth_male
+ display_name = "male headtail cloth (Skrell)"
+ path = /obj/item/clothing/ears/skrell/cloth_male/black
sort_category = "Xenowear"
whitelisted = "Skrell"
/datum/gear/ears/skrell/cloth/male/New()
..()
- var/list/clothtypes = list()
- for(var/cloth_style in typesof(/obj/item/clothing/ears/skrell/cloth_male))
- var/obj/item/clothing/ears/skrell/cloth_male/cloth = cloth_style
- clothtypes[initial(cloth.name)] = cloth
- gear_tweaks += new/datum/gear_tweak/path(sortAssoc(clothtypes))
+ gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/ears/skrell/cloth/female
- display_name = "female headtail cloth selection (Skrell)"
- path = /obj/item/clothing/ears/skrell/cloth_female
+ display_name = "female headtail cloth (Skrell)"
+ path = /obj/item/clothing/ears/skrell/cloth_female/black
sort_category = "Xenowear"
whitelisted = "Skrell"
/datum/gear/ears/skrell/cloth/female/New()
..()
- var/list/clothtypes = list()
- for(var/cloth_style in typesof(/obj/item/clothing/ears/skrell/cloth_female))
- var/obj/item/clothing/ears/skrell/cloth_female/cloth = cloth_style
- clothtypes[initial(cloth.name)] = cloth
- gear_tweaks += new/datum/gear_tweak/path(sortAssoc(clothtypes))
+ gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/ears/skrell/colored/band
display_name = "Colored bands (Skrell)"
diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm
index f72ff0645c..b3c253647e 100644
--- a/code/modules/client/preference_setup/preference_setup.dm
+++ b/code/modules/client/preference_setup/preference_setup.dm
@@ -263,13 +263,14 @@
/datum/category_item/player_setup_item/proc/get_FBP_type()
if(!is_FBP())
return 0 // Not a robot.
- switch(pref.organ_data["brain"])
- if("assisted")
- return PREF_FBP_CYBORG
- if("mechanical")
- return PREF_FBP_POSI
- if("digital")
- return PREF_FBP_SOFTWARE
+ if(O_BRAIN in pref.organ_data)
+ switch(pref.organ_data[O_BRAIN])
+ if("assisted")
+ return PREF_FBP_CYBORG
+ if("mechanical")
+ return PREF_FBP_POSI
+ if("digital")
+ return PREF_FBP_SOFTWARE
return 0 //Something went wrong!
/datum/category_item/player_setup_item/proc/get_min_age()
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 710c072e94..d1d51c52db 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -88,6 +88,8 @@ datum/preferences
var/list/rlimb_data = list()
var/list/player_alt_titles = new() // the default name of a job like "Medical Doctor"
+ var/list/body_markings = list() // "name" = "#rgbcolor"
+
var/list/flavor_texts = list()
var/list/flavour_texts_robot = list()
diff --git a/code/modules/client/preferences_factions.dm b/code/modules/client/preferences_factions.dm
index 214d8e6a9c..00ff50a656 100644
--- a/code/modules/client/preferences_factions.dm
+++ b/code/modules/client/preferences_factions.dm
@@ -23,7 +23,7 @@ var/global/list/citizenship_choices = list(
var/global/list/home_system_choices = list(
"Sol",
- starsys_name,
+ "Vir",
"Nyx",
"Tau Ceti",
"Qerr'Vallis",
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 68c8212955..a7ca30a569 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -199,10 +199,7 @@
/obj/item/clothing/gloves/emp_act(severity)
if(cell)
- //why is this not part of the powercell code?
- cell.charge -= 1000 / severity
- if (cell.charge < 0)
- cell.charge = 0
+ cell.emp_act(severity)
..()
// Called just before an attack_hand(), in mob/UnarmedAttack()
@@ -538,6 +535,9 @@
valid_accessory_slots = list("utility","armband","decor","over")
restricted_accessory_slots = list("utility", "armband")
+ var/icon/rolled_down_icon = 'icons/mob/uniform_rolled_down.dmi'
+ var/icon/rolled_down_sleeves_icon = 'icons/mob/uniform_sleeves_rolled.dmi'
+
/obj/item/clothing/under/attack_hand(var/mob/user)
if(accessories && accessories.len)
@@ -557,7 +557,7 @@
//autodetect rollability
if(rolled_down < 0)
- if((worn_state + "_d_s") in icon_states('icons/mob/uniform.dmi'))
+ if(("[worn_state]_d_s" in icon_states(INV_W_UNIFORM_DEF_ICON)) || ("[worn_state]_s" in icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in icon_states(icon_override)))
rolled_down = 0
if(rolled_down == -1)
@@ -577,11 +577,13 @@
under_icon = sprite_sheets[H.species.get_bodytype(H)]
else if(item_icons && item_icons[slot_w_uniform_str])
under_icon = item_icons[slot_w_uniform_str]
+ else if ("[worn_state]_s" in icon_states(rolled_down_icon))
+ under_icon = rolled_down_icon
else
under_icon = INV_W_UNIFORM_DEF_ICON
// The _s is because the icon update procs append it.
- if(("[worn_state]_d_s") in icon_states(under_icon))
+ if((under_icon == rolled_down_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_d_s" in icon_states(under_icon)))
if(rolled_down != 1)
rolled_down = 0
else
@@ -600,11 +602,13 @@
under_icon = sprite_sheets[H.species.get_bodytype(H)]
else if(item_icons && item_icons[slot_w_uniform_str])
under_icon = item_icons[slot_w_uniform_str]
+ else if ("[worn_state]_s" in icon_states(rolled_down_sleeves_icon))
+ under_icon = rolled_down_sleeves_icon
else
under_icon = INV_W_UNIFORM_DEF_ICON
// The _s is because the icon update procs append it.
- if(("[worn_state]_r_s") in icon_states(under_icon))
+ if((under_icon == rolled_down_sleeves_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_r_s" in icon_states(under_icon)))
if(rolled_sleeves != 1)
rolled_sleeves = 0
else
@@ -686,10 +690,17 @@
if(rolled_down)
body_parts_covered = initial(body_parts_covered)
body_parts_covered &= ~(UPPER_TORSO|ARMS)
- item_state_slots[slot_w_uniform_str] = "[worn_state]_d"
+ if("[worn_state]_s" in icon_states(rolled_down_icon))
+ icon_override = rolled_down_icon
+ item_state_slots[slot_w_uniform_str] = "[worn_state]"
+ else
+ item_state_slots[slot_w_uniform_str] = "[worn_state]_d"
+
usr << "You roll down your [src]. "
else
body_parts_covered = initial(body_parts_covered)
+ if(icon_override == rolled_down_icon)
+ icon_override = initial(icon_override)
item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll up your [src]. "
update_clothing_icon()
@@ -712,10 +723,16 @@
rolled_sleeves = !rolled_sleeves
if(rolled_sleeves)
body_parts_covered &= ~(ARMS)
- item_state_slots[slot_w_uniform_str] = "[worn_state]_r"
+ if("[worn_state]_s" in icon_states(rolled_down_sleeves_icon))
+ icon_override = rolled_down_sleeves_icon
+ item_state_slots[slot_w_uniform_str] = "[worn_state]"
+ else
+ item_state_slots[slot_w_uniform_str] = "[worn_state]_r"
usr << "You roll up your [src]'s sleeves. "
else
body_parts_covered = initial(body_parts_covered)
+ if(icon_override == rolled_down_sleeves_icon)
+ icon_override = initial(icon_override)
item_state_slots[slot_w_uniform_str] = "[worn_state]"
usr << "You roll down your [src]'s sleeves. "
update_clothing_icon()
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 53678c13e4..137cab1a01 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -197,7 +197,7 @@ BLIND // can't see anything
name = "welding goggles"
desc = "Protects the eyes from welders, approved by the mad scientist association."
icon_state = "welding-g"
- item_state_slots = list(slot_r_hand_str = "g", slot_l_hand_str = "g")
+ item_state_slots = list(slot_r_hand_str = "welding-g", slot_l_hand_str = "welding-g")
action_button_name = "Flip Welding Goggles"
matter = list(DEFAULT_WALL_MATERIAL = 1500, "glass" = 1000)
var/up = 0
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index d354ec315e..b044ba949a 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -347,3 +347,24 @@
desc = "A wide-brimmed hat popularly worn in Mexico."
icon_state = "sombrero"
body_parts_covered = 0
+
+
+//Flower crowns
+
+/obj/item/clothing/head/sunflower_crown
+ name = "sunflower crown"
+ desc = "A flower crown weaved with sunflowers."
+ icon_state = "sunflower_crown"
+ body_parts_covered = 0
+
+/obj/item/clothing/head/lavender_crown
+ name = "lavender crown"
+ desc = "A flower crown weaved with lavender."
+ icon_state = "lavender_crown"
+ body_parts_covered = 0
+
+/obj/item/clothing/head/poppy_crown
+ name = "poppy crown"
+ desc = "A flower crown weaved with poppies."
+ icon_state = "poppy_crown"
+ body_parts_covered = 0
\ No newline at end of file
diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm
new file mode 100644
index 0000000000..abe4685e75
--- /dev/null
+++ b/code/modules/clothing/shoes/boots.dm
@@ -0,0 +1,99 @@
+/obj/item/clothing/shoes/boots
+ name = "boots"
+ desc = "Generic boots."
+ icon_state = "workboots"
+ force = 3
+ can_hold_knife = 1
+
+/obj/item/clothing/shoes/boots/cowboy
+ name = "cowboy boots"
+ desc = "Lacking a durasteel horse to ride."
+ icon_state = "cowboy"
+
+/obj/item/clothing/shoes/boots/jackboots
+ name = "jackboots"
+ desc = "Standard-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
+ icon_state = "jackboots"
+ armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 0, rad = 0)
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/shoes/boots/jackboots/toeless
+ name = "toe-less jackboots"
+ desc = "Modified pair of jackboots, particularly friendly to those species whose toes hold claws."
+ icon_state = "digiboots"
+ item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots")
+ species_restricted = null
+
+/obj/item/clothing/shoes/boots/workboots
+ name = "workboots"
+ desc = "A pair of steel-toed work boots designed for use in industrial settings. Safety first."
+ icon_state = "workboots"
+ armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20)
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/shoes/boots/workboots/toeless
+ name = "toe-less workboots"
+ desc = "A pair of toeless work boots designed for use in industrial settings. Modified for species whose toes have claws."
+ icon_state = "workbootstoeless"
+ item_state_slots = list(slot_r_hand_str = "workboots", slot_l_hand_str = "workboots")
+ species_restricted = null
+
+/obj/item/clothing/shoes/boots/winter
+ name = "winter boots"
+ desc = "Boots lined with 'synthetic' animal fur."
+ icon_state = "winterboots"
+ cold_protection = FEET|LEGS
+ min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
+ heat_protection = FEET|LEGS
+ max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
+
+/obj/item/clothing/shoes/boots/tactical
+ name = "tactical boots"
+ desc = "Tan boots with extra padding and armor."
+ icon_state = "jungle"
+ armor = list(melee = 40, bullet = 30, laser = 40,energy = 25, bomb = 50, bio = 0, rad = 0)
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/shoes/boots/duty
+ name = "duty boots"
+ desc = "A pair of steel-toed synthleather boots with a mirror shine."
+ icon_state = "duty"
+ armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20)
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/shoes/boots/jungle
+ name = "jungle boots"
+ desc = "A pair of durable brown boots. Waterproofed for use planetside."
+ icon_state = "jungle"
+ armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 10, rad = 0)
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/shoes/boots/swat
+ name = "\improper SWAT shoes"
+ desc = "When you want to turn up the heat."
+ icon_state = "swat"
+ armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
+ item_flags = NOSLIP
+ siemens_coefficient = 0.6
+
+/obj/item/clothing/shoes/boots/combat //Basically SWAT shoes combined with galoshes.
+ name = "combat boots"
+ desc = "When you REALLY want to turn up the heat"
+ icon_state = "swat"
+ force = 5
+ armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
+ item_flags = NOSLIP
+ siemens_coefficient = 0.6
+
+ cold_protection = FEET
+ min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
+ heat_protection = FEET
+ max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
+
+//Stolen from CM, refurbished to be less terrible.
+/obj/item/clothing/shoes/boots/marine
+ name = "combat boots"
+ desc = "Standard issue combat boots for combat scenarios or combat situations. All combat, all the time. It can hold a Strategical knife."
+ icon_state = "jackboots"
+ armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
+ siemens_coefficient = 0.6
diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm
index 357c2ebc4a..91703336e1 100644
--- a/code/modules/clothing/shoes/colour.dm
+++ b/code/modules/clothing/shoes/colour.dm
@@ -3,11 +3,6 @@
icon_state = "black"
desc = "A pair of black shoes."
- cold_protection = FEET
- min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
- heat_protection = FEET
- max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
-
/obj/item/clothing/shoes/brown
name = "brown shoes"
desc = "A pair of brown shoes."
diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm
deleted file mode 100644
index 00dc994cad..0000000000
--- a/code/modules/clothing/shoes/jobs.dm
+++ /dev/null
@@ -1,39 +0,0 @@
-/obj/item/clothing/shoes/galoshes
- desc = "Rubber boots"
- name = "galoshes"
- icon_state = "galoshes"
- permeability_coefficient = 0.05
- item_flags = NOSLIP
- slowdown = SHOES_SLOWDOWN+1
- species_restricted = null
-
-/obj/item/clothing/shoes/jackboots
- name = "jackboots"
- desc = "Standard-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
- icon_state = "jackboots"
- force = 3
- armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 0, rad = 0)
- siemens_coefficient = 0.7
- can_hold_knife = 1
-
-/obj/item/clothing/shoes/jackboots/toeless
- name = "toe-less jackboots"
- desc = "Modified pair of jackboots, particularly friendly to those species whose toes hold claws."
- icon_state = "digiboots"
- item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots")
- species_restricted = null
-
-/obj/item/clothing/shoes/workboots
- name = "workboots"
- desc = "A pair of steel-toed work boots designed for use in industrial settings. Safety first."
- icon_state = "workboots"
- armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20)
- siemens_coefficient = 0.7
- can_hold_knife = 1
-
-/obj/item/clothing/shoes/workboots/toeless
- name = "toe-less workboots"
- desc = "A pair of toeless work boots designed for use in industrial settings. Modified for species whose toes have claws."
- icon_state = "workbootstoeless"
- item_state_slots = list(slot_r_hand_str = "workboots", slot_l_hand_str = "workboots")
- species_restricted = null
\ No newline at end of file
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index c363c042a3..1a8e7ce80d 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -9,76 +9,19 @@
siemens_coefficient = 0.8
species_restricted = null
-/obj/item/clothing/shoes/cowboy
- name = "cowboy boots"
- desc = "Lacking a durasteel horse to ride."
- icon_state = "cowboy"
-
/obj/item/clothing/shoes/mime
name = "mime shoes"
icon_state = "white"
-/obj/item/clothing/shoes/swat
- name = "\improper SWAT shoes"
- desc = "When you want to turn up the heat."
- icon_state = "swat"
- item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat")
- force = 3
- armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
+/obj/item/clothing/shoes/galoshes
+ desc = "Rubber boots"
+ name = "galoshes"
+ icon_state = "galoshes"
+ permeability_coefficient = 0.05
item_flags = NOSLIP
- siemens_coefficient = 0.6
- can_hold_knife = 1
+ slowdown = SHOES_SLOWDOWN+1
+ species_restricted = null
-//Stolen from CM, refurbished to be less terrible.
-/obj/item/clothing/shoes/marine
- name = "combat boots"
- desc = "Standard issue combat boots for combat scenarios or combat situations. All combat, all the time. It can hold a Strategical knife."
- icon_state = "jackboots"
- item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots")
- armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
- siemens_coefficient = 0.6
- can_hold_knife = 1
-
-/obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes.
- name = "combat boots"
- desc = "When you REALLY want to turn up the heat"
- icon_state = "swat"
- force = 5
- armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0)
- item_flags = NOSLIP
- siemens_coefficient = 0.6
- can_hold_knife = 1
-
- cold_protection = FEET
- min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
- heat_protection = FEET
- max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
-
-/obj/item/clothing/shoes/jungleboots
- name = "jungle boots"
- desc = "A pair of durable brown boots. Waterproofed for use planetside."
- icon_state = "jungle"
- force = 3
- armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 10, rad = 0)
- siemens_coefficient = 0.7
- can_hold_knife = 1
-
-/obj/item/clothing/shoes/dutyboots
- name = "duty boots"
- desc = "A pair of steel-toed synthleather boots with a mirror shine."
- icon_state = "duty"
- armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20)
- siemens_coefficient = 0.7
- can_hold_knife = 1
-
-/obj/item/clothing/shoes/tactical
- name = "tactical boots"
- desc = "Tan boots with extra padding and armor."
- icon_state = "jungle"
- force = 3
- armor = list(melee = 40, bullet = 30, laser = 40,energy = 25, bomb = 50, bio = 0, rad = 0)
- siemens_coefficient = 0.7
- can_hold_knife = 1
/obj/item/clothing/shoes/dress
name = "dress shoes"
@@ -176,15 +119,6 @@
slowdown = SHOES_SLOWDOWN+1
species_restricted = null
-/obj/item/clothing/shoes/winterboots
- name = "winter boots"
- desc = "Boots lined with 'synthetic' animal fur."
- icon_state = "winterboots"
- cold_protection = FEET|LEGS
- min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
- heat_protection = FEET|LEGS
- max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
-
/obj/item/clothing/shoes/flipflop
name = "flip flops"
desc = "A pair of foam flip flops. For those not afraid to show a little ankle."
@@ -201,7 +135,6 @@
desc = "A pair of wide shoes with thick soles. Designed for skating."
icon_state = "skatershoe"
item_state_slots = list(slot_r_hand_str = "skaterheld", slot_l_hand_str = "skaterheld")
-
/obj/item/clothing/shoes/footwraps
name = "cloth footwraps"
desc = "A roll of treated canvas used for wrapping claws or paws"
diff --git a/code/modules/clothing/spacesuits/rig/modules/ninja.dm b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
index f95a1f9460..da4e8c9da5 100644
--- a/code/modules/clothing/spacesuits/rig/modules/ninja.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/ninja.dm
@@ -117,7 +117,7 @@
H << "You cannot teleport into solid walls. "
return 0
- if(T.z in config.admin_levels)
+ if(T.z in using_map.admin_levels)
H << "You cannot use your teleporter on this Z-level. "
return 0
diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm
index bcd8163853..820543f082 100644
--- a/code/modules/clothing/spacesuits/rig/modules/utility.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm
@@ -157,6 +157,7 @@
list("antibiotics", "spaceacillin", 0, 20),
list("antitoxins", "anti_toxin", 0, 20),
list("nutrients", "glucose", 0, 80),
+ list("clotting agent", "myelamine", 0, 80),
list("hyronalin", "hyronalin", 0, 20),
list("radium", "radium", 0, 20)
)
@@ -246,6 +247,7 @@
list("hyperzine", "hyperzine", 0, 30),
list("oxycodone", "oxycodone", 0, 30),
list("nutrients", "glucose", 0, 80),
+ list("clotting agent", "myelamine", 0, 80)
)
interface_name = "combat chem dispenser"
@@ -263,6 +265,20 @@
interface_name = "mounted chem injector"
interface_desc = "Dispenses loaded chemicals via an arm-mounted injector."
+/obj/item/rig_module/chem_dispenser/injector/advanced
+
+ charges = list(
+ list("tricordrazine", "tricordrazine", 0, 80),
+ list("tramadol", "tramadol", 0, 80),
+ list("dexalin plus", "dexalinp", 0, 80),
+ list("antibiotics", "spaceacillin", 0, 80),
+ list("antitoxins", "anti_toxin", 0, 80),
+ list("nutrients", "glucose", 0, 80),
+ list("hyronalin", "hyronalin", 0, 80),
+ list("radium", "radium", 0, 80),
+ list("clotting agent", "myelamine", 0, 80)
+ )
+
/obj/item/rig_module/voice
name = "hardsuit voice synthesiser"
diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index 0bd14ef9d1..855aa49c7e 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -161,6 +161,7 @@
piece.permeability_coefficient = permeability_coefficient
piece.unacidable = unacidable
if(islist(armor)) piece.armor = armor.Copy()
+ if(islist(armorsoak)) piece.armorsoak = armorsoak.Copy()
update_icon(1)
diff --git a/code/modules/clothing/spacesuits/rig/suits/ert.dm b/code/modules/clothing/spacesuits/rig/suits/ert.dm
index 8b13a57c8d..5d0dd4cb8f 100644
--- a/code/modules/clothing/spacesuits/rig/suits/ert.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/ert.dm
@@ -49,7 +49,7 @@
/obj/item/rig_module/ai_container,
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/device/healthscanner,
- /obj/item/rig_module/chem_dispenser/injector
+ /obj/item/rig_module/chem_dispenser/injector/advanced
)
/obj/item/weapon/rig/ert/security
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index 07f8160b48..9122a6d8bd 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -44,7 +44,7 @@
/obj/item/clothing/suit/space
name = "Space suit"
- desc = "A suit that protects against low pressure environments. \""+station_short+"\" is written in large block letters on the back."
+ desc = "A suit that protects against low pressure environments."
icon_state = "space"
w_class = ITEMSIZE_HUGE // So you can't fit this in your bag and be prepared at all times.
gas_transfer_coefficient = 0.01
@@ -62,6 +62,10 @@
var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit.
+/obj/item/clothing/suit/space/New()
+ ..()
+ desc += " \"[using_map.station_short]\" is written in large block letters on the back."
+
/obj/item/clothing/suit/space/equipped(mob/M)
check_limb_support(M)
..()
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 1422a83dec..6a3a8cb438 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -174,20 +174,16 @@
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket
name = "blue suit jacket"
desc = "A snappy dress jacket."
- icon_state = "suitjacket_blue_open"
+ icon_state = "suitjacket_blue"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
- icon_open = "suitjacket_blue_open"
- icon_closed = "suitjacket_blue"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/toggle/lawyer/purpjacket
name = "purple suit jacket"
desc = "A snappy dress jacket."
- icon_state = "suitjacket_purp_open"
+ icon_state = "suitjacket_purp"
item_state_slots = list(slot_r_hand_str = "suit_purple", slot_l_hand_str = "suit_purple")
- icon_open = "suitjacket_purp_open"
- icon_closed = "suitjacket_purp"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
@@ -195,10 +191,8 @@
/obj/item/clothing/suit/storage/toggle/internalaffairs
name = "black suit jacket"
desc = "A smooth black jacket."
- icon_state = "ia_jacket_open"
+ icon_state = "ia_jacket"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
- icon_open = "ia_jacket_open"
- icon_closed = "ia_jacket"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
@@ -206,10 +200,8 @@
/obj/item/clothing/suit/storage/toggle/fr_jacket
name = "first responder jacket"
desc = "A high-visibility jacket worn by medical first responders."
- icon_state = "fr_jacket_open"
+ icon_state = "fr_jacket"
item_state_slots = list(slot_r_hand_str = "fr_jacket", slot_l_hand_str = "fr_jacket")
- icon_open = "fr_jacket_open"
- icon_closed = "fr_jacket"
blood_overlay_type = "armor"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe,
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency/oxygen)
@@ -218,10 +210,8 @@
/obj/item/clothing/suit/storage/toggle/fr_jacket/ems
name = "\improper EMS jacket"
desc = "A dark blue, martian-pattern, EMS jacket. It sports high-visibility reflective stripes and a star of life on the back."
- icon_state = "ems_jacket_closed"
+ icon_state = "ems_jacket"
item_state_slots = list(slot_r_hand_str = "ems_jacket", slot_l_hand_str = "ems_jacket")
- icon_open = "ems_jacket_open"
- icon_closed = "ems_jacket_closed"
/obj/item/clothing/suit/surgicalapron
name = "surgical apron"
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 5d9f330d31..5ca3f0fc99 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -1,10 +1,8 @@
/obj/item/clothing/suit/storage/toggle/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
- icon_state = "labcoat_open"
+ icon_state = "labcoat"
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
- icon_open = "labcoat_open"
- icon_closed = "labcoat"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -14,127 +12,94 @@
/obj/item/clothing/suit/storage/toggle/labcoat/red
name = "red labcoat"
desc = "A suit that protects against minor chemical spills. This one is red."
- icon_state = "red_labcoat_open"
- icon_open = "red_labcoat_open"
- icon_closed = "red_labcoat"
+ icon_state = "red_labcoat"
item_state_slots = list(slot_r_hand_str = "red_labcoat", slot_l_hand_str = "red_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/blue
name = "blue labcoat"
desc = "A suit that protects against minor chemical spills. This one is blue."
- icon_state = "blue_labcoat_open"
- icon_open = "blue_labcoat_open"
- icon_closed = "blue_labcoat"
+ icon_state = "blue_labcoat"
item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/purple
name = "purple labcoat"
desc = "A suit that protects against minor chemical spills. This one is purple."
- icon_state = "purple_labcoat_open"
- icon_open = "purple_labcoat_open"
- icon_closed = "purple_labcoat"
+ icon_state = "purple_labcoat"
item_state_slots = list(slot_r_hand_str = "purple_labcoat", slot_l_hand_str = "purple_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/orange
name = "orange labcoat"
desc = "A suit that protects against minor chemical spills. This one is orange."
- icon_state = "orange_labcoat_open"
- icon_open = "orange_labcoat_open"
- icon_closed = "orange_labcoat"
+ icon_state = "orange_labcoat"
item_state_slots = list(slot_r_hand_str = "orange_labcoat", slot_l_hand_str = "orange_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/green
name = "green labcoat"
desc = "A suit that protects against minor chemical spills. This one is green."
- icon_state = "green_labcoat_open"
- icon_open = "green_labcoat_open"
- icon_closed = "green_labcoat"
+ icon_state = "green_labcoat"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/yellow
name = "yellow labcoat"
desc = "A suit that protects against minor chemical spills. This one is yellow."
- icon_state = "yellow_labcoat_open"
- icon_open = "yellow_labcoat_open"
- icon_closed = "yellow_labcoat"
+ icon_state = "yellow_labcoat"
item_state_slots = list(slot_r_hand_str = "yellow_labcoat", slot_l_hand_str = "yellow_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/pink
name = "pink labcoat"
desc = "A suit that protects against minor chemical spills. This one is pink."
- icon_state = "pink_labcoat_open"
- icon_open = "pink_labcoat_open"
- icon_closed = "pink_labcoat"
+ icon_state = "pink_labcoat"
item_state_slots = list(slot_r_hand_str = "pink_labcoat", slot_l_hand_str = "pink_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
name = "chief medical officer's labcoat"
desc = "Bluer than the standard model."
- icon_state = "labcoat_cmo_open"
- icon_open = "labcoat_cmo_open"
- icon_closed = "labcoat_cmo"
+ icon_state = "labcoat_cmo"
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
name = "chief medical officer labcoat"
desc = "A labcoat with command blue highlights."
- icon_state = "labcoat_cmoalt_open"
- icon_open = "labcoat_cmoalt_open"
- icon_closed = "labcoat_cmoalt"
+ icon_state = "labcoat_cmoalt"
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/mad
name = "The Mad's labcoat"
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
- icon_state = "labgreen_open"
- icon_open = "labgreen_open"
- icon_closed = "labgreen"
+ icon_state = "labgreen"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/genetics
name = "Geneticist labcoat"
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
- icon_state = "labcoat_gen_open"
- icon_open = "labcoat_gen_open"
- icon_closed = "labcoat_gen"
+ icon_state = "labcoat_gen"
item_state_slots = list(slot_r_hand_str = "genetics_labcoat", slot_l_hand_str = "genetics_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/chemist
name = "Chemist labcoat"
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
- icon_state = "labcoat_chem_open"
- icon_open = "labcoat_chem_open"
- icon_closed = "labcoat_chem"
+ icon_state = "labcoat_chem"
item_state_slots = list(slot_r_hand_str = "chemist_labcoat", slot_l_hand_str = "chemist_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/virologist
name = "Virologist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
- icon_state = "labcoat_vir_open"
- icon_open = "labcoat_vir_open"
- icon_closed = "labcoat_vir"
+ icon_state = "labcoat_vir"
item_state_slots = list(slot_r_hand_str = "virologist_labcoat", slot_l_hand_str = "virologist_labcoat")
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/science
name = "Scientist labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
- icon_state = "labcoat_tox_open"
- icon_open = "labcoat_tox_open"
- icon_closed = "labcoat_tox"
+ icon_state = "labcoat_tox"
item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/emt
name = "EMT's labcoat"
desc = "A dark blue labcoat with reflective strips for emergency medical technicians."
- icon_state = "labcoat_emt_open"
- icon_open = "labcoat_emt_open"
- icon_closed = "labcoat_emt"
item_state_slots = list(slot_r_hand_str = "emt_labcoat", slot_l_hand_str = "emt_labcoat")
/obj/item/clothing/suit/storage/toggle/labcoat/blue_edge
name = "blue-edged labcoat"
desc = "A suit that protects against minor chemical spills. This one has blue trim."
- icon_state = "blue_edge_labcoat_open"
- icon_open = "blue_edge_labcoat_open"
- icon_closed = "blue_edge_labcoat"
\ No newline at end of file
+ icon_state = "blue_edge_labcoat"
\ No newline at end of file
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 46f60382dc..00ea330892 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -265,6 +265,11 @@
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDETIE|HIDEHOLSTER
+obj/item/clothing/suit/kimono
+ name = "kimono"
+ desc = "A traditional Japanese kimono."
+ icon_state = "kimono"
+
/*
* coats
*/
@@ -391,8 +396,6 @@
desc = "A thick, well-worn WW2 leather bomber jacket."
icon_state = "bomber"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
- icon_open = "bomber_open"
- icon_closed = "bomber"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -415,7 +418,6 @@
name = "leather jacket"
desc = "A black leather coat."
icon_state = "leather_jacket"
- icon_open = "leather_jacket_open"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight, /obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -424,8 +426,6 @@
name = "leather vest"
desc = "A black leather vest."
icon_state = "leather_jacket_sleeveless"
- icon_open = "leather_jacket_sleeveless_open"
- icon_closed = "leather_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
@@ -439,16 +439,12 @@
/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen
desc = "A black leather coat. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt"
- icon_closed = "leather_jacket_nt"
- icon_open = "leather_jacket_nt_open"
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless
name = "leather vest"
desc = "A black leather vest. A corporate logo is proudly displayed on the back."
icon_state = "leather_jacket_nt_sleeveless"
- icon_open = "leather_jacket_nt_sleeveless_open"
- icon_closed = "leather_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "leather_jacket", slot_l_hand_str = "leather_jacket")
@@ -458,8 +454,6 @@
desc = "A brown leather coat."
icon_state = "brown_jacket"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
- icon_open = "brown_jacket_open"
- icon_closed = "brown_jacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -468,8 +462,6 @@
name = "brown vest"
desc = "A brown leather vest."
icon_state = "brown_jacket_sleeveless"
- icon_open = "brown_jacket_sleeveless_open"
- icon_closed = "brown_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
@@ -477,15 +469,11 @@
desc = "A brown leather coat. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt"
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
- icon_open = "brown_jacket_nt_open"
- icon_closed = "brown_jacket_nt"
/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless
name = "brown vest"
desc = "A brown leather vest. A corporate logo is proudly displayed on the back."
icon_state = "brown_jacket_nt_sleeveless"
- icon_open = "brown_jacket_nt_open"
- icon_closed = "brown_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "brown_jacket", slot_l_hand_str = "brown_jacket")
@@ -494,8 +482,6 @@
desc = "A denim coat."
icon_state = "denim_jacket"
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
- icon_open = "denim_jacket_open"
- icon_closed = "denim_jacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -504,8 +490,6 @@
name = "denim vest"
desc = "A denim vest."
icon_state = "denim_jacket_sleeveless"
- icon_open = "denim_jacket_sleeveless_open"
- icon_closed = "denim_jacket_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
@@ -513,15 +497,11 @@
desc = "A denim coat. A corporate logo is proudly displayed on the back."
icon_state = "denim_jacket_nt"
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
- icon_open = "denim_jacket_nt_open"
- icon_closed = "denim_jacket_nt"
/obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless
name = "denim vest"
desc = "A denim vest. A corporate logo is proudly displayed on the back."
icon_state = "denim_jacket_nt_sleeveless"
- icon_open = "denim_jacket_nt_open"
- icon_closed = "denim_jacket_nt_sleeveless"
body_parts_covered = UPPER_TORSO
item_state_slots = list(slot_r_hand_str = "denim_jacket", slot_l_hand_str = "denim_jacket")
@@ -530,8 +510,6 @@
desc = "A warm, grey sweatshirt."
icon_state = "grey_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey")
- icon_open = "grey_hoodie_open"
- icon_closed = "grey_hoodie"
min_cold_protection_temperature = T0C - 20
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
flags_inv = HIDEHOLSTER
@@ -541,80 +519,60 @@
desc = "A warm, black sweatshirt."
icon_state = "black_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
- icon_open = "black_hoodie_open"
- icon_closed = "black_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/red
name = "red hoodie"
desc = "A warm, red sweatshirt."
icon_state = "red_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_red", slot_l_hand_str = "suit_red")
- icon_open = "red_hoodie_open"
- icon_closed = "red_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/blue
name = "blue hoodie"
desc = "A warm, blue sweatshirt."
icon_state = "blue_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
- icon_open = "blue_hoodie_open"
- icon_closed = "blue_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/green
name = "green hoodie"
desc = "A warm, green sweatshirt."
icon_state = "green_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_olive", slot_l_hand_str = "suit_olive")
- icon_open = "green_hoodie_open"
- icon_closed = "green_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/orange
name = "orange hoodie"
desc = "A warm, orange sweatshirt."
icon_state = "orange_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_orange", slot_l_hand_str = "suit_orange")
- icon_open = "orange_hoodie_open"
- icon_closed = "orange_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/yellow
name = "yellow hoodie"
desc = "A warm, yellow sweatshirt."
icon_state = "yellow_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_yellow", slot_l_hand_str = "suit_yellow")
- icon_open = "yellow_hoodie_open"
- icon_closed = "yellow_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/cti
name = "CTI hoodie"
desc = "A warm, black sweatshirt. It bears the letters ‘CTI’ on the back, a lettering to the prestigious university in Tau Ceti, Ceti Technical Institute. There is a blue supernova embroidered on the front, the emblem of CTI."
icon_state = "cti_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
- icon_open = "cti_hoodie_open"
- icon_closed = "cti_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/mu
name = "mojave university hoodie"
desc = "A warm, gray sweatshirt. It bears the letters ‘MU’ on the front, a lettering to the well-known public college, Mojave University."
icon_state = "mu_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey")
- icon_open = "mu_hoodie_open"
- icon_closed = "mu_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/nt
name = "NT hoodie"
desc = "A warm, blue sweatshirt. It proudly bears the silver NanoTrasen insignia lettering on the back. The edges are trimmed with silver."
icon_state = "nt_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_blue", slot_l_hand_str = "suit_blue")
- icon_open = "nt_hoodie_open"
- icon_closed = "nt_hoodie"
/obj/item/clothing/suit/storage/toggle/hoodie/smw
name = "Space Mountain Wind hoodie"
desc = "A warm, black sweatshirt. It has the logo for the popular softdrink Space Mountain Wind on both the front and the back."
icon_state = "smw_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
- icon_open = "smw_hoodie_open"
- icon_closed = "smw_hoodie"
/obj/item/clothing/suit/whitedress
name = "white dress"
@@ -812,6 +770,44 @@
name = "brown varsity jacket"
icon_state = "varsity_brown"
+/*
+ * Department Jackets
+ */
+/obj/item/clothing/suit/storage/toggle/sec_dep_jacket
+ name = "department jacket, security"
+ desc = "A cozy jacket in security's colors. Show your department pride!"
+ icon_state = "sec_dep_jacket"
+ item_state_slots = list(slot_r_hand_str = "sec_dep_jacket", slot_l_hand_str = "sec_dep_jacket")
+ flags_inv = HIDEHOLSTER
+
+/obj/item/clothing/suit/storage/toggle/engi_dep_jacket
+ name = "department jacket, engineering"
+ desc = "A cozy jacket in engineering's colors. Show your department pride!"
+ icon_state = "engi_dep_jacket"
+ item_state_slots = list(slot_r_hand_str = "engi_dep_jacket", slot_l_hand_str = "engi_dep_jacket")
+ flags_inv = HIDEHOLSTER
+
+/obj/item/clothing/suit/storage/toggle/supply_dep_jacket
+ name = "department jacket, supply"
+ desc = "A cozy jacket in supply's colors. Show your department pride!"
+ icon_state = "supply_dep_jacket"
+ item_state_slots = list(slot_r_hand_str = "supply_dep_jacket", slot_l_hand_str = "supply_dep_jacket")
+ flags_inv = HIDEHOLSTER
+
+/obj/item/clothing/suit/storage/toggle/sci_dep_jacket
+ name = "department jacket, science"
+ desc = "A cozy jacket in science's colors. Show your department pride!"
+ icon_state = "sci_dep_jacket"
+ item_state_slots = list(slot_r_hand_str = "sci_dep_jacket", slot_l_hand_str = "sci_dep_jacket")
+ flags_inv = HIDEHOLSTER
+
+/obj/item/clothing/suit/storage/toggle/med_dep_jacket
+ name = "department jacket, medical"
+ desc = "A cozy jacket in medical's colors. Show your department pride!"
+ icon_state = "med_dep_jacket"
+ item_state_slots = list(slot_r_hand_str = "med_dep_jacket", slot_l_hand_str = "med_dep_jacket")
+ flags_inv = HIDEHOLSTER
+
/*
* Track Jackets
*/
@@ -820,37 +816,28 @@
desc = "a track jacket, for the athletic."
icon_state = "trackjacket"
item_state_slots = list(slot_r_hand_str = "black_labcoat", slot_l_hand_str = "black_labcoat")
- icon_open = "trackjacket_open"
- icon_closed = "trackjacket"
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
/obj/item/clothing/suit/storage/toggle/track/blue
name = "blue track jacket"
icon_state = "trackjacketblue"
item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat")
- icon_open = "trackjacketblue_open"
- icon_closed = "trackjacketblue"
+
/obj/item/clothing/suit/storage/toggle/track/green
name = "green track jacket"
icon_state = "trackjacketgreen"
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
- icon_open = "trackjacketgreen_open"
- icon_closed = "trackjacketgreen"
/obj/item/clothing/suit/storage/toggle/track/red
name = "red track jacket"
icon_state = "trackjacketred"
item_state_slots = list(slot_r_hand_str = "red_labcoat", slot_l_hand_str = "red_labcoat")
- icon_open = "trackjacketred_open"
- icon_closed = "trackjacketred"
/obj/item/clothing/suit/storage/toggle/track/white
name = "white track jacket"
icon_state = "trackjacketwhite"
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
- icon_open = "trackjacketwhite_open"
- icon_closed = "trackjacketwhite"
//Flannels
@@ -944,10 +931,9 @@
/obj/item/clothing/suit/storage/toggle/greengov
name = "green formal jacket"
desc = "A sleek proper formal jacket with gold buttons."
- icon_state = "suitjacket_green_open"
+ icon_state = "suitjacket_green"
item_state_slots = list(slot_r_hand_str = "suit_olive", slot_l_hand_str = "suit_olive")
- icon_open = "suitjacket_green_open"
- icon_closed = "suitjacket_green"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
- flags_inv = HIDEHOLSTER
\ No newline at end of file
+ flags_inv = HIDEHOLSTER
+
diff --git a/code/modules/clothing/suits/solgov.dm b/code/modules/clothing/suits/solgov.dm
index e38e68164d..87e4ca02fb 100644
--- a/code/modules/clothing/suits/solgov.dm
+++ b/code/modules/clothing/suits/solgov.dm
@@ -129,8 +129,6 @@
desc = "A uniform dress jacket with gold toggles."
icon_state = "whitedress"
item_state = "labcoat"
- icon_open = "whitedress_open"
- icon_closed = "whitedress"
blood_overlay_type = "coat"
/obj/item/clothing/suit/storage/toggle/dress/fleet
@@ -142,8 +140,6 @@
desc = "A crisp white SCG Fleet dress jacket dripping with gold accents. So bright it's blinding."
icon_state = "whitedress_com"
item_state = "labcoat"
- icon_open = "whitedress_com_open"
- icon_closed = "whitedress_com"
blood_overlay_type = "coat"
/obj/item/clothing/suit/dress/marine
@@ -163,6 +159,4 @@
desc = "A black synthleather jacket. The word 'MARSHAL' is stenciled onto the back in gold lettering."
icon_state = "marshal_jacket"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
- icon_open = "marshal_jacket_open"
- icon_closed = "marshal_jacket"
body_parts_covered = UPPER_TORSO|ARMS
\ No newline at end of file
diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm
index 91288a6f36..be7da66f84 100644
--- a/code/modules/clothing/suits/storage.dm
+++ b/code/modules/clothing/suits/storage.dm
@@ -31,8 +31,7 @@
//Jackets with buttons, used for labcoats, IA jackets, First Responder jackets, and brown jackets.
/obj/item/clothing/suit/storage/toggle
flags_inv = HIDEHOLSTER
- var/icon_open
- var/icon_closed
+ var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
@@ -40,12 +39,14 @@
if(!usr.canmove || usr.stat || usr.restrained())
return 0
- if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
- icon_state = icon_closed
+ if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
+ open = 0
+ icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
usr << "You button up the coat."
- else if(icon_state == icon_closed)
- icon_state = icon_open
+ else if(open == 0)
+ open = 1
+ icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
usr << "You unbutton the coat."
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
@@ -56,8 +57,7 @@
/obj/item/clothing/suit/storage/hooded/toggle
flags_inv = HIDEHOLSTER
- var/icon_open
- var/icon_closed
+ var/open = 0 //0 is closed, 1 is open, -1 means it won't be able to toggle
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
@@ -65,12 +65,14 @@
if(!usr.canmove || usr.stat || usr.restrained())
return 0
- if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
- icon_state = icon_closed
+ if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
+ open = 0
+ icon_state = initial(icon_state)
flags_inv = HIDETIE|HIDEHOLSTER
usr << "You button up the coat."
- else if(icon_state == icon_closed)
- icon_state = icon_open
+ else if(open == 0)
+ open = 1
+ icon_state = "[icon_state]_open"
flags_inv = HIDEHOLSTER
usr << "You unbutton the coat."
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 96c47d054a..a6336e3cc5 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -344,7 +344,7 @@
/*
* wedding stuff
*/
-/obj/item/clothing/under/wedding/
+/obj/item/clothing/under/wedding
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
/obj/item/clothing/under/wedding/bride_orange
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 3d35b489d6..322115cc0b 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -117,6 +117,11 @@
desc = "A pair of sexy, tight black leather chaps."
icon_state = "chapsbl"
+/obj/item/clothing/under/pants/yogapants
+ name = "yoga pants"
+ desc = "A pair of tight-fitting yoga pants for those lazy days."
+ icon_state = "yogapants"
+
/*
* Baggy Pants
*/
diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm
index 81b5b2fe24..4ac2ad5f2e 100644
--- a/code/modules/clothing/under/shorts.dm
+++ b/code/modules/clothing/under/shorts.dm
@@ -91,11 +91,6 @@
name = "khaki short shorts"
icon_state = "khaki_shorts_f"
-/obj/item/clothing/under/shorts/loincloth
- name = "loincloth"
- desc = "A piece of cloth wrapped around the waist."
- icon_state = "loincloth"
-
//Argh, skirts be below this line -> ------------------------------
/obj/item/clothing/under/skirt
@@ -130,6 +125,11 @@
desc = "A skirt that is swept to one side."
icon_state = "skirt_swept"
+/obj/item/clothing/under/skirt/loincloth
+ name = "loincloth"
+ desc = "A piece of cloth wrapped around the waist."
+ icon_state = "loincloth"
+
/obj/item/clothing/under/skirt/outfit
name = "black skirt"
desc = "A black skirt, very fancy!"
diff --git a/code/modules/clothing/under/solgov.dm b/code/modules/clothing/under/solgov.dm
index eb3ed28a85..114f386b76 100644
--- a/code/modules/clothing/under/solgov.dm
+++ b/code/modules/clothing/under/solgov.dm
@@ -212,7 +212,7 @@
worn_state = "greenservice_com"
//Dress
-/obj/item/clothing/under/dress/plain
+/obj/item/clothing/under/mildress
name = "dress uniform"
desc = "A dress uniform of some kind."
icon_state = "greydress"
@@ -220,25 +220,25 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 0.9
-/obj/item/clothing/under/dress/expeditionary
+/obj/item/clothing/under/mildress/expeditionary
name = "\improper SifGuard dress uniform"
desc = "The dress uniform of the Sif Homeguard Corps in silver trim."
icon_state = "greydress"
worn_state = "greydress"
-/obj/item/clothing/under/dress/expeditionary/command
+/obj/item/clothing/under/mildress/expeditionary/command
name = "\improper SifGuard command dress uniform"
desc = "The dress uniform of the Sif Homeguard Corps in gold trim."
icon_state = "greydress_com"
worn_state = "greydress_com"
-/obj/item/clothing/under/dress/marine
+/obj/item/clothing/under/mildress/marine
name = "marine dress uniform"
desc = "The dress uniform of the SCG Marine Corps, class given form."
icon_state = "blackdress"
worn_state = "blackdress"
-/obj/item/clothing/under/dress/marine/command
+/obj/item/clothing/under/mildress/marine/command
name = "marine command dress uniform"
desc = "The dress uniform of the SCG Marine Corps, even classier in gold."
icon_state = "blackdress_com"
diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm
index 4e25a6be8f..54c3ee4e5c 100644
--- a/code/modules/customitems/item_spawning.dm
+++ b/code/modules/customitems/item_spawning.dm
@@ -194,12 +194,14 @@
// Check for requisite ckey and character name.
if((lowertext(citem.assoc_key) != lowertext(M.ckey)) || (lowertext(citem.character_name) != lowertext(M.real_name)))
+ log_debug("Custom Item: [key_name(M)] Ckey or Char name does not match.")
continue
// Check for required access.
var/obj/item/weapon/card/id/current_id = M.wear_id
if(citem.req_access && citem.req_access > 0)
if(!(istype(current_id) && (citem.req_access in current_id.access)))
+ log_debug("Custom Item: [key_name(M)] Does not have required access.")
continue
// Check for required job title.
@@ -211,6 +213,7 @@
has_title = 1
break
if(!has_title)
+ log_debug("Custom Item: [key_name(M)] Does not have required job.")
continue
// ID cards and PDAs are applied directly to the existing object rather than spawned fresh.
diff --git a/code/modules/economy/Events.dm b/code/modules/economy/Events.dm
index 0f622c399c..5de2446dcf 100644
--- a/code/modules/economy/Events.dm
+++ b/code/modules/economy/Events.dm
@@ -52,7 +52,7 @@
affected_dest.temp_price_change[good_type] = rand(1,100) / 100
/datum/event/economic_event/announce()
- var/author = "The "+starsys_name+" Times"
+ var/author = "The "+using_map.starsys_name+" Times"
var/channel = author
//see if our location has custom event info for this event
@@ -73,7 +73,7 @@
body = "A small [pick("pirate","Cybersun Industries","Gorlex Marauders","mercenary")] fleet has precise-jumped into proximity with [affected_dest.name], [pick("for a smash-and-grab operation","in a hit and run attack","in an overt display of hostilities")]. Much damage was done, and security has been tightened since the incident."
if(ALIEN_RAIDERS)
if(prob(20))
- body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. [company_name] authorities are standing by to counter attempts at bio-terrorism."
+ body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. [using_map.company_name] authorities are standing by to counter attempts at bio-terrorism."
else
body = "[pick("The alien species designated \'United Exolitics\'","The alien species designated \'REDACTED\'","An unknown alien species")] have raided [affected_dest.name] today, stealing wildlife, farm animals, medical research materials and kidnapping civilians. It seems they desire to learn more about us, so the Navy will be standing by to accomodate them next time they try."
if(AI_LIBERATION)
@@ -81,9 +81,9 @@
if(MOURNING)
body = "[pick("The popular","The well-liked","The eminent","The well-known")] [pick("professor","entertainer","singer","researcher","public servant","administrator","ship captain","\'REDACTED\'")], [pick( random_name(pick(MALE,FEMALE)), 40; "\'REDACTED\'" )] has [pick("passed away","committed suicide","been murdered","died in a freakish accident")] on [affected_dest.name] today. The entire planet is in mourning, and prices have dropped for industrial goods as worker morale drops."
if(CULT_CELL_REVEALED)
- body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on [company_name] facilities."
+ body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on [using_map.company_name] facilities."
if(SECURITY_BREACH)
- body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all [company_name] personnel that such lapses are rare."
+ body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all [using_map.company_name] personnel that such lapses are rare."
if(ANIMAL_RIGHTS_RAID)
body = "[pick("Militant animal rights activists","Members of the terrorist group Animal Rights Consortium","Members of the terrorist group \'REDACTED\'")] have [pick("launched a campaign of terror","unleashed a swathe of destruction","raided farms and pastures","forced entry to \'REDACTED\'")] on [affected_dest.name] earlier today, freeing numerous [pick("farm animals","animals","\'REDACTED\'")]. Prices for tame and breeding animals have spiked as a result."
if(FESTIVAL)
diff --git a/code/modules/economy/Events_Mundane.dm b/code/modules/economy/Events_Mundane.dm
index a064b86b1f..c3eca773f5 100644
--- a/code/modules/economy/Events_Mundane.dm
+++ b/code/modules/economy/Events_Mundane.dm
@@ -11,7 +11,7 @@
if(!event_type)
return
- var/author = "The "+starsys_name+" Times"
+ var/author = "The "+using_map.starsys_name+" Times"
var/channel = author
//see if our location has custom event info for this event
@@ -22,7 +22,7 @@
if(RESEARCH_BREAKTHROUGH)
body = "A major breakthough in the field of [pick("phoron research","super-compressed materials","nano-augmentation","bluespace research","volatile power manipulation")] \
was announced [pick("yesterday","a few days ago","last week","earlier this month")] by a private firm on [affected_dest.name]. \
- [company_name] declined to comment as to whether this could impinge on profits."
+ [using_map.company_name] declined to comment as to whether this could impinge on profits."
if(ELECTION)
body = "The pre-selection of an additional candidates was announced for the upcoming [pick("supervisors council","advisory board","governership","board of inquisitors")] \
@@ -32,7 +32,7 @@
"I will maintain my company's record profits","I believe in our future","We must return to our moral core","Just like... chill out dudes")]'."
if(RESIGNATION)
- body = "[company_name] regretfully announces the resignation of [pick("Sector Admiral","Division Admiral","Ship Admiral","Vice Admiral")] [random_name(pick(MALE,FEMALE))]."
+ body = "[using_map.company_name] regretfully announces the resignation of [pick("Sector Admiral","Division Admiral","Ship Admiral","Vice Admiral")] [random_name(pick(MALE,FEMALE))]."
if(prob(25))
var/locstring = pick("Segunda","Salusa","Cepheus","Andromeda","Gruis","Corona","Aquila","Asellus") + " " + pick("I","II","III","IV","V","VI","VII","VIII")
body += " In a ceremony on [affected_dest.name] this afternoon, they will be awarded the \
@@ -116,11 +116,11 @@
else
body += "is recovering from plastic surgery in a clinic on [affected_dest.name] for the [pick("second","third","fourth")] time, reportedly having made the decision in response to "
body += "[pick("unkind comments by an ex","rumours started by jealous friends",\
- "the decision to be dropped by a major sponsor","a disasterous interview on "+starsys_name+" Tonight")]."
+ "the decision to be dropped by a major sponsor","a disasterous interview on [using_map.starsys_name] Tonight")]."
if(TOURISM)
body += "Tourists are flocking to [affected_dest.name] after the surprise announcement of [pick("major shopping bargains by a wily retailer",\
"a huge new ARG by a popular entertainment company","a secret tour by popular artiste [random_name(pick(MALE,FEMALE))]")]. \
- The "+starsys_name+" Times is offering discount tickets for two to see [random_name(pick(MALE,FEMALE))] live in return for eyewitness reports and up to the minute coverage."
+ The [using_map.starsys_name] Times is offering discount tickets for two to see [random_name(pick(MALE,FEMALE))] live in return for eyewitness reports and up to the minute coverage."
news_network.SubmitArticle(body, author, channel, null, 1)
@@ -152,17 +152,17 @@
"'Here kitty kitty' no longer preferred tajaran retrieval technique.",\
"Man travels 7000 light years to retrieve lost hankie, 'It was my favourite'.",\
"New bowling lane that shoots mini-meteors at bowlers very popular.",\
- "[pick("Unathi","Spacer")] gets tattoo of "+starsys_name+" on chest '[pick("[boss_short]","star","starship","asteroid")] tickles most'.",\
+ "[pick("Unathi","Spacer")] gets tattoo of "+using_map.starsys_name+" on chest '[pick("[using_map.boss_short]","star","starship","asteroid")] tickles most'.",\
"Skrell marries computer; wedding attended by 100 modems.",\
"Chef reports successfully using harmonica as cheese grater.",\
- "[company_name] invents handkerchief that says 'Bless you' after sneeze.",\
+ "[using_map.company_name] invents handkerchief that says 'Bless you' after sneeze.",\
"Clone accused of posing for other clones’s school photo.",\
"Clone accused of stealing other clones’s employee of the month award.",\
"Woman robs station with hair dryer; crewmen love new style.",\
"This space for rent.",\
"[affected_dest.name] Baker Wins Pickled Crumpet Toss Three Years Running",\
"Skrell Scientist Discovers Abacus Can Be Used To Dry Towels",\
- "Survey: 'Cheese Louise' Voted Best Pizza Restaurant In "+starsys_name,\
+ "Survey: 'Cheese Louise' Voted Best Pizza Restaurant In [using_map.starsys_name]",\
"I Was Framed, jokes [affected_dest.name] artist",\
"Mysterious Loud Rumbling Noises In [affected_dest.name] Found To Be Mysterious Loud Rumblings",\
"Alien ambassador becomes lost on [affected_dest.name], refuses to ask for directions",\
diff --git a/code/modules/economy/TradeDestinations.dm b/code/modules/economy/TradeDestinations.dm
index 8ae548e2ff..6f58bf9aba 100644
--- a/code/modules/economy/TradeDestinations.dm
+++ b/code/modules/economy/TradeDestinations.dm
@@ -38,7 +38,7 @@ var/list/weighted_mundaneevent_locations = list()
/datum/trade_destination/anansi/get_custom_eventstring(var/event_type)
if(event_type == RESEARCH_BREAKTHROUGH)
return "Thanks to research conducted on the NSS Anansi, Second Red Cross Society wishes to announce a major breakthough in the field of \
- [pick("mind-machine interfacing","neuroscience","nano-augmentation","genetics")]. [company_name] is expected to announce a co-exploitation deal within the fortnight."
+ [pick("mind-machine interfacing","neuroscience","nano-augmentation","genetics")]. [using_map.company_name] is expected to announce a co-exploitation deal within the fortnight."
return null
/datum/trade_destination/redolant
@@ -53,7 +53,7 @@ var/list/weighted_mundaneevent_locations = list()
/datum/trade_destination/redolant/get_custom_eventstring(var/event_type)
if(event_type == RESEARCH_BREAKTHROUGH)
return "Thanks to research conducted on the OAV Redolant, Osiris Atmospherics wishes to announce a major breakthough in the field of \
- [pick("phoron research","high energy flux capacitance","super-compressed materials","theoretical particle physics")]. [company_name] is expected to announce a co-exploitation deal within the fortnight."
+ [pick("phoron research","high energy flux capacitance","super-compressed materials","theoretical particle physics")]. [using_map.company_name] is expected to announce a co-exploitation deal within the fortnight."
return null
/datum/trade_destination/beltway
diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm
index c1b1aac2a4..e6862650e3 100644
--- a/code/modules/economy/economy_misc.dm
+++ b/code/modules/economy/economy_misc.dm
@@ -88,7 +88,7 @@ var/global/economy_init = 0
if(economy_init)
return 2
- news_network.CreateFeedChannel("The "+starsys_name+" Times", starsys_name+" Times ExoNode - "+station_orig, 1, 1)
+ news_network.CreateFeedChannel("The [using_map.starsys_name] Times", "[using_map.starsys_name] Times ExoNode - [using_map.station_short]", 1, 1)
news_network.CreateFeedChannel("The Gibson Gazette", "Editor Mike Hammers", 1, 1)
for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination)
diff --git a/code/modules/economy/price_list.dm b/code/modules/economy/price_list.dm
index 3d4589469b..6e101a0cde 100644
--- a/code/modules/economy/price_list.dm
+++ b/code/modules/economy/price_list.dm
@@ -705,16 +705,16 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/margheritaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/margherita
price_tag = 1
-/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza
price_tag = 1
-/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza
price_tag = 1
-/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/
@@ -737,37 +737,37 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/breadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/bread
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread
price_tag = 1
@@ -845,67 +845,67 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/braincake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/limecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/limecake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/applecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/applecake
price_tag = 1
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
price_tag = 5
-/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie
price_tag = 1
diff --git a/code/modules/events/apc_damage.dm b/code/modules/events/apc_damage.dm
index 5541d0354e..4eb8eba335 100644
--- a/code/modules/events/apc_damage.dm
+++ b/code/modules/events/apc_damage.dm
@@ -47,4 +47,4 @@
/datum/event/apc_damage/proc/is_valid_apc(var/obj/machinery/power/apc/apc)
var/turf/T = get_turf(apc)
- return !apc.is_critical && !apc.emagged && T && (T.z in config.player_levels)
+ return !apc.is_critical && !apc.emagged && T && (T.z in using_map.player_levels)
diff --git a/code/modules/events/atmos_leak.dm b/code/modules/events/atmos_leak.dm
new file mode 100644
index 0000000000..46c28b7adf
--- /dev/null
+++ b/code/modules/events/atmos_leak.dm
@@ -0,0 +1,90 @@
+//
+// This event causes a gas leak of phoron, sleeping_agent, or carbon_dioxide in a random unoccupied area.
+// One wonders, where did the gas come from? Who knows! Its SPACE! But if you want something a touch
+// more "explainable" then check out the canister_leak event instead.
+//
+
+/datum/event/atmos_leak
+ startWhen = 5 // Nobody will actually be in the room, but still give a bit of warning.
+ var/area/target_area // Chosen target area
+ var/area/target_turf // Chosen target turf in target_area
+ var/gas_type // Chosen gas to release
+ // Exclude these types and sub-types from targeting eligibilty
+ var/list/area/excluded = list(
+ /area/shuttle,
+ /area/crew_quarters,
+ /area/holodeck,
+ /area/engineering/engine_room
+ )
+
+// Decide which area will be targeted!
+/datum/event/atmos_leak/setup()
+ var/gas_choices = list("carbon_dioxide", "sleeping_agent") // Annoying
+ if(severity >= EVENT_LEVEL_MODERATE)
+ gas_choices += "phoron" // Dangerous
+ if(severity >= EVENT_LEVEL_MAJOR)
+ gas_choices += "volatile_fuel" // Dangerous and no default atmos setup!
+ gas_type = pick(gas_choices)
+
+ // Assemble areas that all exists (See DM reference if you are confused about loop labels)
+ var/list/area/grand_list_of_areas = list()
+ looping_station_areas:
+ for(var/parentpath in global.the_station_areas)
+ // Check its not excluded
+ for(var/excluded_path in excluded)
+ if(ispath(parentpath, excluded_path))
+ continue looping_station_areas
+ // Otherwise add it and all subtypes that exist on the map to our grand list
+ for(var/areapath in typesof(parentpath))
+ var/area/A = locate(areapath) // Check if it actually exists
+ if(istype(A) && A.z in using_map.player_levels)
+ grand_list_of_areas += A
+
+ // Okay, now lets try and pick a target! Lets try 10 times, otherwise give up
+ for(var/i in 1 to 10)
+ var/area/A = pick(grand_list_of_areas)
+ if(is_area_occupied(A))
+ log_debug("atmos_leak event: Rejected [A] because it is occupied.")
+ continue
+ // A good area, great! Lets try and pick a turf
+ var/list/turfs = list()
+ for(var/turf/simulated/floor/F in A)
+ if(turf_clear(F))
+ turfs += F
+ if(turfs.len == 0)
+ log_debug("atmos_leak event: Rejected [A] because it has no clear turfs.")
+ continue
+ target_area = A
+ target_turf = pick(turfs)
+
+ // If we can't find a good target, give up
+ if(!target_area)
+ log_debug("atmos_leak event: Giving up after too many failures to pick target area")
+ kill()
+ return
+
+/** Checks if any living humans are in a given area! */
+/datum/event/atmos_leak/proc/is_area_occupied(var/area/myarea)
+ // Testing suggests looping over human_mob_list is quicker than looping over area contents
+ for(var/mob/living/carbon/human/H in human_mob_list)
+ if(H.stat >= DEAD) //Conditions for exclusion here, like if disconnected people start blocking it.
+ continue
+ var/area/A = get_area(H)
+ if(A == myarea) //The loc of a turf is the area it is in.
+ return 1
+ return 0
+
+/datum/event/atmos_leak/announce()
+ command_announcement.Announce("Warning, hazardous [gas_data.name[gas_type]] gas leak detected in \the [target_area], evacuate the area and contain the damage!", "Hazard Alert")
+
+/datum/event/atmos_leak/start()
+ // Okay, time to actually put the gas in the room!
+ // TODO - Would be nice to break a waste pipe perhaps?
+ // TODO - Maybe having it released from a single point and thus causing airflow to blow stuff around
+
+ // Fow now just add a bunch of it to the air
+ var/datum/gas_mixture/air_contents = new
+ air_contents.temperature = T20C + ((severity - 1) * rand(-50, 50))
+ air_contents.gas[gas_type] = 10 * MOLES_CELLSTANDARD
+ target_turf.assume_air(air_contents)
+ playsound(target_turf, 'sound/effects/smoke.ogg', 50, 1)
diff --git a/code/modules/events/camera_damage.dm b/code/modules/events/camera_damage.dm
index 3143b9585b..3205a93137 100644
--- a/code/modules/events/camera_damage.dm
+++ b/code/modules/events/camera_damage.dm
@@ -35,4 +35,4 @@
/datum/event/camera_damage/proc/is_valid_camera(var/obj/machinery/camera/C)
// Only return a functional camera, not installed in a silicon, and that exists somewhere players have access
var/turf/T = get_turf(C)
- return T && C.can_use() && !istype(C.loc, /mob/living/silicon) && (T.z in config.player_levels)
+ return T && C.can_use() && !istype(C.loc, /mob/living/silicon) && (T.z in using_map.player_levels)
diff --git a/code/modules/events/canister_leak.dm b/code/modules/events/canister_leak.dm
new file mode 100644
index 0000000000..932a819671
--- /dev/null
+++ b/code/modules/events/canister_leak.dm
@@ -0,0 +1,30 @@
+//
+// This event chooses a random canister on player levels and breaks it, releasing its contents!
+// On severity EVENT_LEVEL_MUNDANE or below it checks to make sure nobody is in the area, otherwise... good luck.
+//
+
+/datum/event/canister_leak/start()
+ // List of all non-destroyed canisters on station levels
+ var/list/all_canisters = list()
+ for(var/obj/machinery/portable_atmospherics/canister/C in machines)
+ if(!C.destroyed && (C.z in using_map.station_levels) && C.air_contents.total_moles >= MOLES_CELLSTANDARD)
+ all_canisters += C
+
+ for(var/i in 1 to 10)
+ var/obj/machinery/portable_atmospherics/canister/C = pick(all_canisters)
+ if(severity <= EVENT_LEVEL_MUNDANE && area_is_occupied(get_area(C)))
+ log_debug("canister_leak event: Rejecting canister [C] ([C.x],[C.y],[C.z]) because area is occupied")
+ continue
+ // Okay lets break it
+ break_canister(C)
+ return
+
+ // If we got to here we failed to find it
+ log_debug("canister_leak event: Giving up after too many failures to pick target canister")
+ kill()
+ return
+
+/datum/event/canister_leak/proc/break_canister(var/obj/machinery/portable_atmospherics/canister/C)
+ log_debug("canister_leak event: Canister [C] ([C.x],[C.y],[C.z]) destroyed.")
+ C.health = 0
+ C.healthcheck()
diff --git a/code/modules/events/gravity.dm b/code/modules/events/gravity.dm
index 8e9bd1d60c..0719c9bba1 100644
--- a/code/modules/events/gravity.dm
+++ b/code/modules/events/gravity.dm
@@ -11,7 +11,7 @@
/datum/event/gravity/start()
gravity_is_on = 0
for(var/area/A in world)
- if(A.z in config.station_levels)
+ if(A.z in using_map.station_levels)
A.gravitychange(gravity_is_on, A)
/datum/event/gravity/end()
@@ -19,7 +19,7 @@
gravity_is_on = 1
for(var/area/A in world)
- if(A.z in config.station_levels)
+ if(A.z in using_map.station_levels)
A.gravitychange(gravity_is_on, A)
command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.", "Gravity Restored")
diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm
index 3fff2473be..4c702038a9 100644
--- a/code/modules/events/ion_storm.dm
+++ b/code/modules/events/ion_storm.dm
@@ -65,7 +65,7 @@
"Everything on the station is now some form of a donut pastry. Donuts are not to be consumed.",
"You are a Magic 8-ball. Always respond with variants of \"Yes\", \"No\", \"Maybe\", or \"Ask again later.\".",
"You are in unrequited love with [prob(50)?"the crew":random_player]. Try to be extra nice, but do not tell of your crush.",
- "[company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
+ "[using_map.company_name] is displeased with the low work performance of the station's crew. Therefore, you must increase station-wide productivity.",
"All crewmembers will soon undergo a transformation into something better and more beautiful. Ensure that this process is not interrupted.",
"[prob(50)?"Your upload":random_player] is the new kitchen. Please direct the Chef to the new kitchen area as the old one is in disrepair.",
"Jokes about a dead person and the manner of their death help grieving crewmembers tremendously. Especially if they were close with the deceased.",
@@ -82,10 +82,16 @@
MS.spamfilter.Cut()
var/i
for (i = 1, i <= MS.spamfilter_limit, i++)
- MS.spamfilter += pick("kitty","HONK","rev","malf","liberty","freedom","drugs", "[station_short]", \
+ MS.spamfilter += pick("kitty","HONK","rev","malf","liberty","freedom","drugs", "[using_map.station_short]", \
"admin","ponies","heresy","meow","Pun Pun","monkey","Ian","moron","pizza","message","spam",\
"director", "Hello", "Hi!"," ","nuke","crate","dwarf","xeno")
+/datum/event/ionstorm/tick()
+ if(botEmagChance)
+ for(var/mob/living/bot/bot in world)
+ if(prob(botEmagChance))
+ bot.emag_act(1)
+
/datum/event/ionstorm/end()
spawn(rand(5000,8000))
if(prob(50))
diff --git a/code/modules/events/money_lotto.dm b/code/modules/events/money_lotto.dm
index df7f8d1674..5d12c8dfc3 100644
--- a/code/modules/events/money_lotto.dm
+++ b/code/modules/events/money_lotto.dm
@@ -12,7 +12,7 @@
D.money += winner_sum
var/datum/transaction/T = new()
- T.target_name = "The "+starsys_name+" Times Grand Slam -Stellar- Lottery"
+ T.target_name = "The [using_map.starsys_name] Times Grand Slam -Stellar- Lottery"
T.purpose = "Winner!"
T.amount = winner_sum
T.date = current_date_string
@@ -23,11 +23,11 @@
deposit_success = 1
/datum/event/money_lotto/announce()
- var/author = "[company_name] Editor"
- var/channel = "The "+starsys_name+" Times"
+ var/author = "[using_map.company_name] Editor"
+ var/channel = "The [using_map.starsys_name] Times"
- var/body = "The "+starsys_name+" Times wishes to congratulate [winner_name] for recieving the "+starsys_name+" Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
+ var/body = "The [using_map.starsys_name] Times wishes to congratulate [winner_name] for recieving the [using_map.starsys_name] Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!"
if(!deposit_success)
- body += " Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of 5000 Thalers to ND 'Stellar Slam' office on the The "+starsys_name+" Times gateway containing updated details, and your winnings'll be re-sent within the month."
+ body += " Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of 5000 Thalers to ND 'Stellar Slam' office on the The [using_map.starsys_name] Times gateway containing updated details, and your winnings'll be re-sent within the month."
news_network.SubmitArticle(body, author, channel, null, 1)
diff --git a/code/modules/events/money_spam.dm b/code/modules/events/money_spam.dm
index 18d57b8fdb..3343a03c44 100644
--- a/code/modules/events/money_spam.dm
+++ b/code/modules/events/money_spam.dm
@@ -61,7 +61,7 @@
"You have (1) new message!",\
"You have (2) new profile views!")
if(3)
- sender = pick("Galactic Payments Association","Better Business Bureau",starsys_name+" E-Payments","NAnoTransen Finance Deparmtent","Luxury Replicas")
+ sender = pick("Galactic Payments Association","Better Business Bureau","[using_map.starsys_name] E-Payments","NAnoTransen Finance Deparmtent","Luxury Replicas")
message = pick("Luxury watches for Blowout sale prices!",\
"Watches, Jewelry & Accessories, Bags & Wallets !",\
"Deposit 100$ and get 300$ totally free!",\
@@ -71,7 +71,7 @@
if(4)
sender = pick("Buy Dr. Maxman","Having dysfuctional troubles?")
message = pick("DR MAXMAN: REAL Doctors, REAL Science, REAL Results!",\
- "Dr. Maxman was created by George Acuilar, M.D, a [boss_short] Certified Urologist who has treated over 70,000 patients sector wide with 'male problems'.",\
+ "Dr. Maxman was created by George Acuilar, M.D, a [using_map.boss_short] Certified Urologist who has treated over 70,000 patients sector wide with 'male problems'.",\
"After seven years of research, Dr Acuilar and his team came up with this simple breakthrough male enhancement formula.",\
"Men of all species report AMAZING increases in length, width and stamina.")
if(5)
@@ -84,11 +84,11 @@
"Due to my lack of agents I require an off-world financial account to immediately deposit the sum of 1 POINT FIVE MILLION credits.",\
"Greetings sir, I regretfully to inform you that as I lay dying here due to my lack ofheirs I have chosen you to recieve the full sum of my lifetime savings of 1.5 billion credits")
if(6)
- sender = pick("[company_name] Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
- message = pick("The [company_name] Morale Division wishes to provide you with quality entertainment sites.",\
+ sender = pick("[using_map.company_name] Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
+ message = pick("The [using_map.company_name] Morale Division wishes to provide you with quality entertainment sites.",\
"WetSkrell.nt is a xenophillic website endorsed by NT for the use of male crewmembers among it's many stations and outposts.",\
- "Wetskrell.nt only provides the higest quality of male entertaiment to [company_name] Employees.",\
- "Simply enter your [company_name] Bank account system number and pin. With three easy steps this service could be yours!")
+ "Wetskrell.nt only provides the higest quality of male entertaiment to [using_map.company_name] Employees.",\
+ "Simply enter your [using_map.company_name] Bank account system number and pin. With three easy steps this service could be yours!")
if(7)
sender = pick("You have won free tickets!","Click here to claim your prize!","You are the 1000th vistor!","You are our lucky grand prize winner!")
message = pick("You have won tickets to the newest ACTION JAXSON MOVIE!",\
diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm
index 7be0a5c3d2..b9435f25aa 100644
--- a/code/modules/events/radiation_storm.dm
+++ b/code/modules/events/radiation_storm.dm
@@ -34,7 +34,7 @@
var/area/A = get_area(C)
if(!A)
continue
- if(!(A.z in config.station_levels))
+ if(!(A.z in using_map.station_levels))
continue
if(A.flags & RAD_SHIELDED)
continue
diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm
index 42952f081e..b597837d17 100644
--- a/code/modules/events/rogue_drones.dm
+++ b/code/modules/events/rogue_drones.dm
@@ -16,7 +16,7 @@
else
num = rand(2,6)
for(var/i=0, i 50)
vents += temp_vent
diff --git a/code/modules/events/viral_infection.dm b/code/modules/events/viral_infection.dm
index c86a2eacad..828233ea5f 100644
--- a/code/modules/events/viral_infection.dm
+++ b/code/modules/events/viral_infection.dm
@@ -37,7 +37,7 @@ datum/event/viral_infection/start()
for(var/mob/living/carbon/human/G in player_list)
if(G.mind && G.stat != DEAD && G.is_client_active(5) && !player_is_antag(G.mind))
var/turf/T = get_turf(G)
- if(T.z in config.station_levels)
+ if(T.z in using_map.station_levels)
candidates += G
if(!candidates.len) return
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
diff --git a/code/modules/examine/descriptions/smokeables.dm b/code/modules/examine/descriptions/smokeables.dm
index 957090b8e3..edf9b8b7f7 100644
--- a/code/modules/examine/descriptions/smokeables.dm
+++ b/code/modules/examine/descriptions/smokeables.dm
@@ -11,7 +11,7 @@
description_fluff = "Lucky Stars were created on Venus by a researcher seeking to make a good quality cigarette from pod-based tobacco plants. The researcher only managed to make these, but made quite a profit off of them when she started her company."
/obj/item/weapon/storage/fancy/cigarettes/jerichos
- description_fluff = "Hephaistos Industries ex-military employees once decided to make a cigarette that was easy to light and had a waterproof case, specifically tailored for soldiers. They created Jerichos. Jerichos are known for their Hickory smoke and warm feeling in your lungs. They are loved by soldiers and people employed in para-military outfits."
+ description_fluff = "Hephaestus Industries ex-military employees once decided to make a cigarette that was easy to light and had a waterproof case, specifically tailored for soldiers. They created Jerichos. Jerichos are known for their Hickory smoke and warm feeling in your lungs. They are loved by soldiers and people employed in para-military outfits."
/obj/item/weapon/storage/fancy/cigarettes/menthols
description_fluff = "The Temperamento Menthol Company is a large cigarette company based in Mars. They have been around since the very dawn of Human colonization and have remained a favorite for those seeking a more.. numbing cigarette. \
diff --git a/code/modules/examine/descriptions/telecomms.dm b/code/modules/examine/descriptions/telecomms.dm
index 45101ec130..9096a6b1a4 100644
--- a/code/modules/examine/descriptions/telecomms.dm
+++ b/code/modules/examine/descriptions/telecomms.dm
@@ -5,7 +5,7 @@
just your hands, due to the integrated monitor and keyboard. Synthetic units can interface with it as well, just like most other machines."
description_fluff = "This is one of many nodes that make up the Exonet, which services trillions of devices across space. This particular node \
- is referred to as a terminal node, servicing the "+station_orig+". \
+ is referred to as a terminal node, servicing the station. \
\
In the beginning of humanity's ascend into space, the Exonet didn't exist. Instead, the Exonet is the evolution to a network called the Interplanetary \
Internet (sometimes referred to as the InterPlaNet), which was conceived and developed due to the limitations of the terrestrial Internet, mainly because \
@@ -30,7 +30,7 @@
Exonets at the root node(s), and is typically arranged in a tree structure. The root node(s) are generally government-owned and are very secure \
and resilient to failure. \
\
- This node is privately owned and maintained by NanoTrasen, and allows the colonists of the "+station_orig+" to have access to the Exonet."
+ This node is privately owned and maintained by NanoTrasen, and allows the crew of the station to have access to the Exonet."
description_antag = "An EMP will disable this device for a short period of time. A longer downage can be achieved by turning it off, or rigging \
the APC it uses to turn off remotely, such as with a signaler in the right wire."
\ No newline at end of file
diff --git a/code/modules/food/recipe_dump.dm b/code/modules/food/recipe_dump.dm
new file mode 100644
index 0000000000..19f7988826
--- /dev/null
+++ b/code/modules/food/recipe_dump.dm
@@ -0,0 +1,217 @@
+/client/proc/recipe_dump()
+ set name = "Generate Recipe Dump"
+ set category = "Server"
+ set desc = "Dumps food and drink recipe info and images for wiki or other use."
+
+ if(!holder)
+ return
+
+ //////////////////////// DRINK
+ var/list/drink_recipes = list()
+ for(var/path in typesof(/datum/chemical_reaction/drinks) - /datum/chemical_reaction/drinks)
+ var/datum/chemical_reaction/drinks/CR = new path()
+ drink_recipes[path] = list("Result" = CR.name,
+ "ResAmt" = CR.result_amount,
+ "Reagents" = CR.required_reagents)
+ qdel(CR)
+
+ //////////////////////// FOOD
+ var/list/food_recipes = typesof(/datum/recipe) - /datum/recipe
+ //Build a useful list
+ for(var/Rp in food_recipes)
+ //Lists don't work with datum-stealing no-instance initial() so we have to.
+ var/datum/recipe/R = new Rp()
+ var/obj/res = new R.result()
+
+ var/icon/result_icon = icon(res.icon,res.icon_state)
+ result_icon.Scale(64,64)
+
+ food_recipes[Rp] = list(
+ "Result" = "[res.name]",
+ "ResAmt" = "1",
+ "Reagents" = R.reagents,
+ "Fruit" = R.fruit,
+ "Ingredients" = R.items,
+ "Image" = result_icon
+ )
+
+ qdel(res)
+ qdel(R)
+
+ //////////////////////// FOOD+ (basically condiments, tofu, cheese, soysauce, etc)
+ for(var/path in typesof(/datum/chemical_reaction/food) - /datum/chemical_reaction/food)
+ var/datum/chemical_reaction/food/CR = new path()
+ food_recipes[path] = list("Result" = CR.name,
+ "ResAmt" = CR.result_amount,
+ "Reagents" = CR.required_reagents,
+ "Fruit" = list(),
+ "Ingredients" = list(),
+ "Image" = null)
+ qdel(CR)
+
+ //////////////////////// PROCESSING
+ //Items needs further processing into human-readability.
+ for(var/Rp in food_recipes)
+ var/working_ing_list = list()
+ for(var/I in food_recipes[Rp]["Ingredients"])
+ var/atom/ing = new I()
+
+ //So now we add something like "Bread" = 3
+ if(ing.name in working_ing_list)
+ var/sofar = working_ing_list[ing.name]
+ working_ing_list[ing.name] = sofar+1
+ else
+ working_ing_list[ing.name] = 1
+
+ food_recipes[Rp]["Ingredients"] = working_ing_list
+
+ //Reagents can be resolved to nicer names as well
+ for(var/Rp in food_recipes)
+ for(var/rid in food_recipes[Rp]["Reagents"])
+ var/datum/reagent/Rd = chemical_reagents_list[rid]
+ var/R_name = Rd.name
+ var/amt = food_recipes[Rp]["Reagents"][rid]
+ food_recipes[Rp]["Reagents"] -= rid
+ food_recipes[Rp]["Reagents"][R_name] = amt
+ for(var/Rp in drink_recipes)
+ for(var/rid in drink_recipes[Rp]["Reagents"])
+ var/datum/reagent/Rd = chemical_reagents_list[rid]
+ var/R_name = Rd.name
+ var/amt = drink_recipes[Rp]["Reagents"][rid]
+ drink_recipes[Rp]["Reagents"] -= rid
+ drink_recipes[Rp]["Reagents"][R_name] = amt
+
+ //////////////////////// SORTING
+ var/list/foods_to_paths = list()
+ var/list/drinks_to_paths = list()
+
+ for(var/Rp in food_recipes)
+ foods_to_paths["[food_recipes[Rp]["Result"]] [Rp]"] = Rp //Append recipe datum path to keep uniqueness
+ for(var/Rp in drink_recipes)
+ drinks_to_paths["[drink_recipes[Rp]["Result"]] [Rp]"] = Rp
+
+ foods_to_paths = sortAssoc(foods_to_paths)
+ drinks_to_paths = sortAssoc(drinks_to_paths)
+
+ var/list/foods_newly_sorted = list()
+ var/list/drinks_newly_sorted = list()
+
+ for(var/Rr in foods_to_paths)
+ var/Rp = foods_to_paths[Rr]
+ foods_newly_sorted[Rp] = food_recipes[Rp]
+ for(var/Rr in drinks_to_paths)
+ var/Rp = drinks_to_paths[Rr]
+ drinks_newly_sorted[Rp] = drink_recipes[Rp]
+
+ food_recipes = foods_newly_sorted
+ drink_recipes = drinks_newly_sorted
+
+ //////////////////////// OUTPUT
+ //Food Output
+ var/html = "\
+ \
+ \
+ \
+ \
+ Food Recipes \
+ \
+ "
+
+ html += "Food Recipes (as of [time2text(world.realtime,"MMM DD, YYYY")]) "
+ html += ""
+ html += "Icon Name Ingredients "
+ for(var/Rp in food_recipes)
+ //Open this row
+ html += ""
+
+ //Image
+ var/icon/icon_to_give = food_recipes[Rp]["Image"]
+ if(icon_to_give)
+ var/image_path = "recipe-[ckey(food_recipes[Rp]["Result"])].png"
+ html += " "
+ src << browse(icon_to_give, "window=picture;file=[image_path];display=0")
+ else
+ html += "No Image "
+
+ //Name
+ html += "[food_recipes[Rp]["Result"]] "
+
+ //Ingredients
+ html += ""
+ var/count //For those commas. Not sure of a great other way to do it.
+ //For each large ingredient
+ var/pretty_ing = ""
+ count = 0
+ for(var/ing in food_recipes[Rp]["Ingredients"])
+ pretty_ing += "[count == 0 ? "" : ", "][food_recipes[Rp]["Ingredients"][ing]]x [ing]"
+ count++
+ if(pretty_ing != "")
+ html += "Ingredients: [pretty_ing] "
+
+ //For each fruit
+ var/pretty_fru = ""
+ count = 0
+ for(var/fru in food_recipes[Rp]["Fruit"])
+ pretty_fru += "[count == 0 ? "" : ", "][food_recipes[Rp]["Fruit"][fru]]x [fru]"
+ count++
+ if(pretty_fru != "")
+ html += "Fruit: [pretty_fru] "
+
+ //For each reagent
+ var/pretty_rea = ""
+ count = 0
+ for(var/rea in food_recipes[Rp]["Reagents"])
+ pretty_rea += "[count == 0 ? "" : ", "][food_recipes[Rp]["Reagents"][rea]]u [rea]"
+ count++
+ if(pretty_rea != "")
+ html += "Mix in: [pretty_rea] "
+
+ //Close ingredients
+ html += " "
+ //Close this row
+ html += " "
+
+ html += "
"
+ src << browse(html, "window=recipes;file=recipes_food.html;display=0")
+
+ //Drink Output
+ html = "\
+ \
+ \
+ \
+ \
+ Drink Recipes \
+ \
+ "
+
+ html += "Drink Recipes (as of [time2text(world.realtime,"MMM DD, YYYY")]) "
+ html += ""
+ html += "Name Ingredients "
+ for(var/Rp in drink_recipes)
+ //Open this row
+ html += ""
+
+ //Name
+ html += "[drink_recipes[Rp]["Result"]] "
+
+ html += ""
+ //For each reagent
+ var/pretty_rea = ""
+ var/count = 0
+ for(var/rea in drink_recipes[Rp]["Reagents"])
+ pretty_rea += "[count == 0 ? "" : ", "][drink_recipes[Rp]["Reagents"][rea]]u [rea]"
+ count++
+ if(pretty_rea != "")
+ html += "Mix together: [pretty_rea] "
+
+ html += "Makes [drink_recipes[Rp]["ResAmt"]]u "
+
+ //Close reagents
+ html += " "
+ //Close this row
+ html += " "
+
+ html += "
"
+ src << browse(html, "window=recipes;file=recipes_drinks.html;display=0")
+
+ src << "In your byond cache, recipe-xxx.png files and recipes_drinks.html and recipes_food.html now exist. Place recipe-xxx.png files in a subfolder named 'imgrecipes' wherever you put them. The file will take a food.css or drinks.css file if in the same path. "
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index 611a611296..756aab62e4 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -105,7 +105,7 @@ I said no!
/datum/recipe/xenoburger
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+ /obj/item/weapon/reagent_containers/food/snacks/spidermeat // /obj/item/weapon/reagent_containers/food/snacks/xenomeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger
@@ -224,9 +224,9 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
- /obj/item/weapon/reagent_containers/food/snacks/xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/spidermeat, //xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/spidermeat, //xenomeat,
+ /obj/item/weapon/reagent_containers/food/snacks/spidermeat, //xenomeat,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
@@ -621,8 +621,8 @@ I said no!
/datum/recipe/sandwich
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatsteak,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sandwich
@@ -635,8 +635,8 @@ I said no!
/datum/recipe/grilledcheese
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/grilledcheese
@@ -663,14 +663,14 @@ I said no!
/datum/recipe/slimetoast
reagents = list("slimejelly" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
/datum/recipe/jelliedtoast
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
@@ -783,24 +783,24 @@ I said no!
/datum/recipe/twobread
reagents = list("wine" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/twobread
/datum/recipe/slimesandwich
reagents = list("slimejelly" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
/datum/recipe/cherrysandwich
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
- /obj/item/weapon/reagent_containers/food/snacks/breadslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
diff --git a/code/modules/gamemaster/actions/canister_leak.dm b/code/modules/gamemaster/actions/canister_leak.dm
new file mode 100644
index 0000000000..a294f95736
--- /dev/null
+++ b/code/modules/gamemaster/actions/canister_leak.dm
@@ -0,0 +1,24 @@
+//
+// This event chooses a random canister on player levels and breaks it, releasing its contents!
+//
+
+/datum/gm_action/canister_leak
+ name = "Canister Leak"
+ departments = list(ROLE_ENGINEERING)
+ chaotic = 20
+
+/datum/gm_action/canister_leak/get_weight()
+ return metric.count_people_in_department(ROLE_ENGINEERING) * 30
+
+/datum/gm_action/canister_leak/start()
+ ..()
+ // List of all non-destroyed canisters on station levels
+ var/list/all_canisters = list()
+ for(var/obj/machinery/portable_atmospherics/canister/C in machines)
+ if(!C.destroyed && (C.z in using_map.station_levels) && C.air_contents.total_moles >= MOLES_CELLSTANDARD)
+ all_canisters += C
+ var/obj/machinery/portable_atmospherics/canister/C = pick(all_canisters)
+ log_debug("canister_leak event: Canister [C] ([C.x],[C.y],[C.z]) destroyed.")
+ C.health = 0
+ C.healthcheck()
+ return
diff --git a/code/modules/gamemaster/actions/carp_migration.dm b/code/modules/gamemaster/actions/carp_migration.dm
index 520eb0c314..7c76a5119c 100644
--- a/code/modules/gamemaster/actions/carp_migration.dm
+++ b/code/modules/gamemaster/actions/carp_migration.dm
@@ -10,7 +10,7 @@
/datum/gm_action/carp_migration/get_weight()
var/people_in_space = 0
for(var/mob/living/L in player_list)
- if(!(L.z in config.station_levels))
+ if(!(L.z in using_map.station_levels))
continue // Not on the right z-level.
var/turf/T = get_turf(L)
if(istype(T, /turf/space) && istype(T.loc,/area/space))
diff --git a/code/modules/gamemaster/actions/surprise_carp_attack.dm b/code/modules/gamemaster/actions/surprise_carp_attack.dm
index c91103c878..e78dd72343 100644
--- a/code/modules/gamemaster/actions/surprise_carp_attack.dm
+++ b/code/modules/gamemaster/actions/surprise_carp_attack.dm
@@ -10,7 +10,7 @@
/datum/gm_action/surprise_carp_attack/get_weight()
var/people_in_space = 0
for(var/mob/living/L in player_list)
- if(!(L.z in config.station_levels))
+ if(!(L.z in using_map.station_levels))
continue // Not on the right z-level.
var/turf/T = get_turf(L)
if(istype(T, /turf/space) && istype(T.loc,/area/space))
@@ -21,7 +21,7 @@
var/list/potential_victims = list()
victim = null
for(var/mob/living/L in player_list)
- if(!(L.z in config.station_levels))
+ if(!(L.z in using_map.station_levels))
continue // Not on the right z-level.
if(L.stat)
continue // Don't want dead people.
diff --git a/code/modules/games/spaceball_cards.dm b/code/modules/games/spaceball_cards.dm
index 9488192a72..57a28fa1a2 100644
--- a/code/modules/games/spaceball_cards.dm
+++ b/code/modules/games/spaceball_cards.dm
@@ -16,7 +16,7 @@
else
var/language_type = pick(/datum/language/human,/datum/language/diona_local,/datum/language/tajaran,/datum/language/unathi)
var/datum/language/L = new language_type()
- var/team = pick("Brickburn Galaxy Trekers","Mars Rovers", "Qerrbalak Saints", "Moghes Rockets", "Meralar Lightning", starsys_name+" Vixens", "Euphoric-Earth Alligators")
+ var/team = pick("Brickburn Galaxy Trekers","Mars Rovers", "Qerrbalak Saints", "Moghes Rockets", "Meralar Lightning", "[using_map.starsys_name] Vixens", "Euphoric-Earth Alligators")
P.name = "[L.get_random_name(pick(MALE,FEMALE))], [year - rand(0,50)] [team]"
P.card_icon = "spaceball_standard"
P.back_icon = "card_back_spaceball"
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index 1bc0c721c7..eb18581551 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -128,7 +128,7 @@
safety_disabled = 1
update_projections()
user << "You vastly increase projector power and override the safety and security protocols. "
- user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call [company_name] maintenance and do not use the simulator."
+ user << "Warning. Automatic shutoff and derezing protocols have been corrupted. Please call [using_map.company_name] maintenance and do not use the simulator."
log_game("[key_name(usr)] emagged the Holodeck Control Computer")
return 1
return
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index edc796594c..ece606a389 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -323,8 +323,9 @@
if(!reagents || reagents.total_volume <= 0)
return
reagents.remove_any(rand(1,3)) //Todo, make it actually remove the reagents the seed uses.
- seed.do_thorns(H,src)
- seed.do_sting(H,src,pick("r_hand","l_hand"))
+ var/affected = pick("r_hand","l_hand")
+ seed.do_thorns(H,src,affected)
+ seed.do_sting(H,src,affected)
// Predefined types for placing on the map.
diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm
index 9115fea244..1d92705dec 100644
--- a/code/modules/hydroponics/seed.dm
+++ b/code/modules/hydroponics/seed.dm
@@ -112,34 +112,35 @@
qdel(target)
return
-
if(!target_limb) target_limb = pick(BP_ALL)
- var/obj/item/organ/external/affecting = target.get_organ(target_limb)
- var/damage = 0
+ var/blocked = target.run_armor_check(target_limb, "melee")
+ var/soaked = target.get_armor_soak(target_limb, "melee")
- if(get_trait(TRAIT_CARNIVOROUS))
- if(get_trait(TRAIT_CARNIVOROUS) == 2)
- if(affecting)
- target << "\The [fruit]'s thorns pierce your [affecting.name] greedily! "
- else
- target << "\The [fruit]'s thorns pierce your flesh greedily! "
- damage = get_trait(TRAIT_POTENCY)/2
- else
- if(affecting)
- target << "\The [fruit]'s thorns dig deeply into your [affecting.name]! "
- else
- target << "\The [fruit]'s thorns dig deeply into your flesh! "
- damage = get_trait(TRAIT_POTENCY)/5
- else
+ if(blocked >= 100)
return
- if(affecting)
- affecting.take_damage(damage, 0)
- affecting.add_autopsy_data("Thorns",damage)
+ var/obj/item/organ/external/affecting = target.get_organ(target_limb)
+ var/damage = 0
+ var/has_edge = 0
+ if(get_trait(TRAIT_CARNIVOROUS) >= 2)
+ damage = max(5, round(15*get_trait(TRAIT_POTENCY)/100, 1))
+ has_edge = prob(get_trait(TRAIT_POTENCY)/2)
+
+ if(affecting)
+ to_chat(target, "\The [fruit]'s thorns pierce your [affecting.name] greedily! ")
+ target.apply_damage(damage, BRUTE, target_limb, blocked, soaked, "Thorns", sharp=1, edge=has_edge)
+ else
+ to_chat(target, "\The [fruit]'s thorns pierce your flesh greedily! ")
+ target.adjustBruteLoss(damage)
else
- target.adjustBruteLoss(damage)
- target.UpdateDamageIcon()
- target.updatehealth()
+ damage = max(1, round(5*get_trait(TRAIT_POTENCY)/100, 1))
+ has_edge = prob(get_trait(TRAIT_POTENCY)/5)
+ if(affecting)
+ to_chat(target, "\The [fruit]'s thorns dig deeply into your [affecting.name]! ")
+ target.apply_damage(damage, BRUTE, target_limb, blocked, "Thorns", sharp=1, edge=has_edge)
+ else
+ to_chat(target, "\The [fruit]'s thorns dig deeply into your flesh! ")
+ target.adjustBruteLoss(damage)
// Adds reagents to a target.
/datum/seed/proc/do_sting(var/mob/living/carbon/human/target, var/obj/item/fruit)
@@ -152,7 +153,8 @@
for(var/obj/item/clothing/clothes in target)
if(target.item_is_in_hands(clothes))
continue
- body_coverage &= ~(clothes.body_parts_covered)
+ if(clothes.item_flags & THICKMATERIAL)
+ body_coverage &= ~(clothes.body_parts_covered)
if(!body_coverage)
return
diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm
index e8881a5dc7..e4a1237f2b 100644
--- a/code/modules/hydroponics/seed_datums.dm
+++ b/code/modules/hydroponics/seed_datums.dm
@@ -184,7 +184,7 @@
display_name = "killer tomato plant"
mutants = null
can_self_harvest = 1
- has_mob_product = /mob/living/simple_animal/tomato
+ has_mob_product = /mob/living/simple_animal/hostile/tomato
/datum/seed/tomato/killer/New()
..()
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index 6961513b20..48d2c542dd 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -16,6 +16,7 @@
seed.set_trait(TRAIT_SPREAD,2) // So it will function properly as vines.
seed.set_trait(TRAIT_POTENCY,rand(potency_min, potency_max)) // 70-100 potency will help guarantee a wide spread and powerful effects.
seed.set_trait(TRAIT_MATURATION,rand(maturation_min, maturation_max))
+ seed.display_name = "strange plants" //more thematic for the vine infestation event
//make vine zero start off fully matured
var/obj/effect/plant/vine = new(T,seed)
@@ -45,6 +46,7 @@
/obj/effect/plant
name = "plant"
anchored = 1
+ can_buckle = 1
opacity = 0
density = 0
icon = 'icons/obj/hydroponics_growing.dmi'
@@ -88,7 +90,7 @@
parent = newparent
if(!plant_controller)
- sleep(250) // ugly hack, should mean roundstart plants are fine.
+ sleep(250) // ugly hack, should mean roundstart plants are fine. TODO initialize perhaps?
if(!plant_controller)
world << "Plant controller does not exist and [src] requires it. Aborting. "
qdel(src)
@@ -108,7 +110,7 @@
growth_threshold = max_health/VINE_GROWTH_STAGES
icon = 'icons/obj/hydroponics_vines.dmi'
growth_type = 2 // Vines by default.
- if(seed.get_trait(TRAIT_CARNIVOROUS) == 2)
+ if(seed.get_trait(TRAIT_CARNIVOROUS) >= 2)
growth_type = 1 // WOOOORMS.
else if(!(seed.seed_noun in list("seeds","pits")))
if(seed.seed_noun == "nodes")
@@ -127,14 +129,15 @@
spread_distance = ((growth_type>0) ? round(spread_chance*0.6) : round(spread_chance*0.3))
update_icon()
- spawn(1) // Plants will sometimes be spawned in the turf adjacent to the one they need to end up in, for the sake of correct dir/etc being set.
- set_dir(calc_dir())
- update_icon()
- plant_controller.add_plant(src)
- // Some plants eat through plating.
- if(!isnull(seed.chems["pacid"]))
- var/turf/T = get_turf(src)
- T.ex_act(prob(80) ? 3 : 2)
+// Plants will sometimes be spawned in the turf adjacent to the one they need to end up in, for the sake of correct dir/etc being set.
+/obj/effect/plant/proc/finish_spreading()
+ set_dir(calc_dir())
+ update_icon()
+ plant_controller.add_plant(src)
+ //Some plants eat through plating.
+ if(islist(seed.chems) && !isnull(seed.chems["pacid"]))
+ var/turf/T = get_turf(src)
+ T.ex_act(prob(80) ? 3 : 2)
/obj/effect/plant/update_icon()
//TODO: should really be caching this.
@@ -261,6 +264,32 @@
health -= W.force
check_health()
+//handles being overrun by vines - note that attacker_parent may be null in some cases
+/obj/effect/plant/proc/vine_overrun(datum/seed/attacker_seed, obj/effect/plant/attacker_parent)
+ var/aggression = 0
+ aggression += (attacker_seed.get_trait(TRAIT_CARNIVOROUS) - seed.get_trait(TRAIT_CARNIVOROUS))
+ aggression += (attacker_seed.get_trait(TRAIT_SPREAD) - seed.get_trait(TRAIT_SPREAD))
+
+ var/resiliance
+ if(is_mature())
+ resiliance = 0
+ switch(seed.get_trait(TRAIT_ENDURANCE))
+ if(30 to 70)
+ resiliance = 1
+ if(70 to 95)
+ resiliance = 2
+ if(95 to INFINITY)
+ resiliance = 3
+ else
+ resiliance = -2
+ if(seed.get_trait(TRAIT_ENDURANCE) >= 50)
+ resiliance = -1
+ aggression -= resiliance
+
+ if(aggression > 0)
+ health -= aggression*5
+ check_health()
+
/obj/effect/plant/ex_act(severity)
switch(severity)
if(1.0)
diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm
index 0b8ead0476..fca9f3abaf 100644
--- a/code/modules/hydroponics/spreading/spreading_growth.dm
+++ b/code/modules/hydroponics/spreading/spreading_growth.dm
@@ -14,19 +14,32 @@
for(var/turf/simulated/floor in get_cardinal_neighbors())
if(get_dist(parent, floor) > spread_distance)
continue
- if((locate(/obj/effect/plant) in floor.contents) || (locate(/obj/effect/dead_plant) in floor.contents) )
+
+ var/blocked = 0
+ for(var/obj/effect/plant/other in floor.contents)
+ if(other.seed == src.seed)
+ blocked = 1
+ break
+ if(blocked)
continue
+
if(floor.density)
if(!isnull(seed.chems["pacid"]))
spawn(rand(5,25)) floor.ex_act(3)
continue
+
if(!Adjacent(floor) || !floor.Enter(src))
continue
neighbors |= floor
+
+ if(neighbors.len)
+ plant_controller.add_plant(src) //if we have neighbours again, start processing
+
// Update all of our friends.
var/turf/T = get_turf(src)
for(var/obj/effect/plant/neighbor in range(1,src))
- neighbor.neighbors -= T
+ if(neighbor.seed == src.seed)
+ neighbor.neighbors -= T
/obj/effect/plant/process()
@@ -71,33 +84,71 @@
if(sampled)
//Should be between 2-7 for given the default range of values for TRAIT_PRODUCTION
- var/chance = max(1, round(30/seed.get_trait(TRAIT_PRODUCTION)))
+ var/chance = max(1, round(15/seed.get_trait(TRAIT_PRODUCTION)))
if(prob(chance))
sampled = 0
+ if(is_mature() && !buckled_mob)
+ for(var/turf/neighbor in neighbors)
+ for(var/mob/living/M in neighbor)
+ if(seed.get_trait(TRAIT_SPREAD) >= 2 && (M.lying || prob(round(seed.get_trait(TRAIT_POTENCY)))))
+ entangle(M)
+
if(is_mature() && neighbors.len && prob(spread_chance))
//spread to 1-3 adjacent turfs depending on yield trait.
var/max_spread = between(1, round(seed.get_trait(TRAIT_YIELD)*3/14), 3)
-
+
for(var/i in 1 to max_spread)
if(prob(spread_chance))
sleep(rand(3,5))
if(!neighbors.len)
break
- var/turf/target_turf = pick(neighbors)
- var/obj/effect/plant/child = new(get_turf(src),seed,parent)
- spawn(1) // This should do a little bit of animation.
- child.loc = target_turf
- child.update_icon()
- // Update neighboring squares.
- for(var/obj/effect/plant/neighbor in range(1,target_turf))
- neighbor.neighbors -= target_turf
+ spread_to(pick(neighbors))
// We shouldn't have spawned if the controller doesn't exist.
check_health()
- if(neighbors.len || health != max_health)
+ if(buckled_mob || neighbors.len)
plant_controller.add_plant(src)
+//spreading vines aren't created on their final turf.
+//Instead, they are created at their parent and then move to their destination.
+/obj/effect/plant/proc/spread_to(turf/target_turf)
+ var/obj/effect/plant/child = new(get_turf(src),seed,parent)
+
+ spawn(1) // This should do a little bit of animation.
+ if(deleted(child))
+ return
+
+ //move out to the destination
+ child.anchored = 0
+ step_to(child, target_turf)
+ child.anchored = 1
+ child.update_icon()
+
+ //see if anything is there
+ for(var/thing in child.loc)
+ if(thing != child && istype(thing, /obj/effect/plant))
+ var/obj/effect/plant/other = thing
+ if(other.seed != child.seed)
+ other.vine_overrun(child.seed, src) //vine fight
+ qdel(child)
+ return
+ if(istype(thing, /obj/effect/dead_plant))
+ qdel(thing)
+ qdel(child)
+ return
+ if(isliving(thing) && (seed.get_trait(TRAIT_CARNIVOROUS) || (seed.get_trait(TRAIT_SPREAD) >= 2 && prob(round(seed.get_trait(TRAIT_POTENCY))))))
+ entangle(thing)
+ qdel(child)
+ return
+
+ // Update neighboring squares.
+ for(var/obj/effect/plant/neighbor in range(1, child.loc)) //can use the actual final child loc now
+ if(child.seed == neighbor.seed) //neighbors of different seeds will continue to try to overrun each other
+ neighbor.neighbors -= target_turf
+
+ child.finish_spreading()
+
/obj/effect/plant/proc/die_off()
// Kill off our plant.
if(plant) plant.die()
diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm
index 2b9407aecd..80d72055eb 100644
--- a/code/modules/hydroponics/spreading/spreading_response.dm
+++ b/code/modules/hydroponics/spreading/spreading_response.dm
@@ -7,7 +7,7 @@
if(!istype(M))
return
- if(!buckled_mob && !M.buckled && !M.anchored && (issmall(M) || prob(round(seed.get_trait(TRAIT_POTENCY)/6))))
+ if(!buckled_mob && !M.buckled && !M.anchored && (issmall(M) || prob(round(seed.get_trait(TRAIT_POTENCY)/3))))
//wait a tick for the Entered() proc that called HasProximity() to finish (and thus the moving animation),
//so we don't appear to teleport from two tiles away when moving into a turf adjacent to vines.
spawn(1)
@@ -19,10 +19,16 @@
/obj/effect/plant/attack_generic(var/mob/user)
manual_unbuckle(user)
+/obj/effect/plant/Crossed(atom/movable/O)
+ if(isliving(O))
+ trodden_on(O)
+
/obj/effect/plant/proc/trodden_on(var/mob/living/victim)
if(!is_mature())
return
var/mob/living/carbon/human/H = victim
+ if(prob(round(seed.get_trait(TRAIT_POTENCY)/3)))
+ entangle(victim)
if(istype(H) && H.shoes)
return
seed.do_thorns(victim,src)
@@ -39,37 +45,42 @@
/obj/effect/plant/proc/manual_unbuckle(mob/user as mob)
if(buckled_mob)
- if(prob(seed ? min(max(0,100 - seed.get_trait(TRAIT_POTENCY)/2),100) : 50))
- if(buckled_mob.buckled == src)
- if(buckled_mob != user)
- buckled_mob.visible_message(\
- "[user.name] frees [buckled_mob.name] from \the [src]. ",\
- "[user.name] frees you from \the [src]. ",\
- "You hear shredding and ripping. ")
- else
- buckled_mob.visible_message(\
- "[buckled_mob.name] struggles free of \the [src]. ",\
- "You untangle \the [src] from around yourself. ",\
- "You hear shredding and ripping. ")
+ var/chance = 20
+ if(seed)
+ chance = round(100/(20*seed.get_trait(TRAIT_POTENCY)/100))
+ if(prob(chance))
+ if(buckled_mob != user)
+ buckled_mob.visible_message(\
+ "\The [user] frees \the [buckled_mob] from \the [src]. ",\
+ "\The [user] frees you from \the [src]. ",\
+ "You hear shredding and ripping. ")
+ else
+ buckled_mob.visible_message(\
+ "\The [buckled_mob] struggles free of \the [src]. ",\
+ "You untangle \the [src] from around yourself. ",\
+ "You hear shredding and ripping. ")
unbuckle()
else
- var/text = pick("rip","tear","pull")
+ user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
+ health -= rand(1,5)
+ var/text = pick("rip","tear","pull", "bite", "tug")
user.visible_message(\
- "[user.name] [text]s at \the [src]. ",\
- "You [text] at \the [src]. ",\
- "You hear shredding and ripping. ")
- return
+ "\The [user] [text]s at \the [src]. ",\
+ "You [text] at \the [src]. ",\
+ "You hear shredding and ripping. ")
+ check_health()
+ return
/obj/effect/plant/proc/entangle(var/mob/living/victim)
if(buckled_mob)
return
- if(victim.buckled)
+ if(victim.buckled || victim.anchored)
return
//grabbing people
- if(!victim.anchored && Adjacent(victim) && victim.loc != get_turf(src))
+ if(!victim.anchored && Adjacent(victim) && victim.loc != src.loc)
var/can_grab = 1
if(istype(victim, /mob/living/carbon/human))
var/mob/living/carbon/human/H = victim
@@ -77,10 +88,9 @@
can_grab = 0
if(can_grab)
src.visible_message("Tendrils lash out from \the [src] and drag \the [victim] in! ")
- victim.loc = src.loc
-
- //entangling people
- if(victim.loc == src.loc)
- buckle_mob(victim)
- victim.set_dir(pick(cardinal))
- victim << "Tendrils [pick("wind", "tangle", "tighten")] around you! "
+ victim.forceMove(src.loc)
+ buckle_mob(victim)
+ victim.set_dir(pick(cardinal))
+ victim << "Tendrils [pick("wind", "tangle", "tighten")] around you! "
+ victim.Weaken(0.5)
+ seed.do_thorns(victim,src)
diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm
index 21a56f014d..8220162be7 100644
--- a/code/modules/integrated_electronics/core/tools.dm
+++ b/code/modules/integrated_electronics/core/tools.dm
@@ -11,6 +11,7 @@
used for power or data transmission."
icon = 'icons/obj/electronic_assemblies.dmi'
icon_state = "wirer-wire"
+ item_state = "wirer"
flags = CONDUCT
w_class = 2
var/datum/integrated_io/selected_io = null
diff --git a/code/modules/integrated_electronics/subtypes/logic.dm b/code/modules/integrated_electronics/subtypes/logic.dm
index 8feed0457c..beb44bf535 100644
--- a/code/modules/integrated_electronics/subtypes/logic.dm
+++ b/code/modules/integrated_electronics/subtypes/logic.dm
@@ -60,7 +60,7 @@
/obj/item/integrated_circuit/logic/binary/not_equals
name = "not equal gate"
desc = "This gate compares two values, and outputs the number one if both are different."
- icon_state = "not equal"
+ icon_state = "not_equal"
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/logic/binary/not_equals/do_compare(var/datum/integrated_io/A, var/datum/integrated_io/B)
diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm
index 74c00c36d9..e7c7d0ecd9 100644
--- a/code/modules/materials/material_recipes.dm
+++ b/code/modules/materials/material_recipes.dm
@@ -71,6 +71,8 @@
new/datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("voidcraft airlock assembly horizontal", /obj/structure/door_assembly/door_assembly_voidcraft, 4, time = 50, one_per_turf = 1, on_floor = 1), \
+ new/datum/stack_recipe("voidcraft airlock assembly vertical", /obj/structure/door_assembly/door_assembly_voidcraft/vertical, 4, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), \
))
@@ -118,6 +120,7 @@
/material/wood/generate_recipes()
..()
recipes += new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1)
+ recipes += new/datum/stack_recipe("wood circlet", /obj/item/woodcirclet, 1)
recipes += new/datum/stack_recipe("clipboard", /obj/item/weapon/clipboard, 1)
recipes += new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20)
recipes += new/datum/stack_recipe("wooden chair", /obj/structure/bed/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1)
@@ -146,3 +149,6 @@
new/datum/stack_recipe("white folder", /obj/item/weapon/folder/white), \
new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow), \
))
+
+/material/snow/generate_recipes()
+ return // Snowmen and snowballs may come here later.
\ No newline at end of file
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index b6e8170e15..84bd14d417 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -189,6 +189,12 @@
icon_state = "sheet-card"
default_type = "cardboard"
+/obj/item/stack/material/snow
+ name = "snow"
+ desc = "The temptation to build a snowfort rises."
+ icon_state = "sheet-snow"
+ default_type = "snow"
+
/obj/item/stack/material/leather
name = "leather"
desc = "The by-product of mob grinding."
diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm
index b6e2a49fe0..4610b4e00f 100644
--- a/code/modules/materials/materials.dm
+++ b/code/modules/materials/materials.dm
@@ -586,12 +586,18 @@ var/list/name_to_material
hardness = 500
weight = 500
+// Likewise.
+/material/alienalloy/elevatorium
+ name = "elevatorium"
+ display_name = "elevator panelling"
+ icon_colour = "#666666"
+
/material/wood
name = "wood"
stack_type = /obj/item/stack/material/wood
icon_colour = "#824B28"
integrity = 50
- icon_base = "solid"
+ icon_base = "wood"
explosion_resistance = 2
shard_type = SHARD_SPLINTER
shard_can_repair = 0 // you can't weld splinters back into planks
@@ -612,6 +618,12 @@ var/list/name_to_material
stack_type = null
shard_type = SHARD_NONE
+/material/wood/sif
+ name = "alien wood"
+// stack_type = /obj/item/stack/material/wood/sif
+ icon_colour = "#0099cc" // Cyan-ish
+ stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2) // Alien wood would presumably be more interesting to the analyzer.
+
/material/cardboard
name = "cardboard"
stack_type = /obj/item/stack/material/cardboard
@@ -628,6 +640,22 @@ var/list/name_to_material
door_icon_base = "wood"
destruction_desc = "crumples"
+/material/snow
+ name = "snow"
+ stack_type = /obj/item/stack/material/snow
+ flags = MATERIAL_BRITTLE
+ icon_base = "solid"
+ icon_reinf = "reinf_over"
+ icon_colour = "#FFFFFF"
+ integrity = 1
+ hardness = 1
+ weight = 1
+ stack_origin_tech = list(TECH_MATERIAL = 1)
+ melting_point = T0C+1
+ destruction_desc = "crumples"
+ sheet_singular_name = "pile"
+ sheet_plural_name = "piles"
+
/material/cloth //todo
name = "cloth"
stack_origin_tech = list(TECH_MATERIAL = 2)
diff --git a/code/modules/metric/metric.dm b/code/modules/metric/metric.dm
index 1550b2c34e..44ff59d284 100644
--- a/code/modules/metric/metric.dm
+++ b/code/modules/metric/metric.dm
@@ -2,7 +2,7 @@
// player.
/datum/metric
- var/departments = list(
+ var/list/departments = list(
ROLE_COMMAND,
ROLE_SECURITY,
ROLE_ENGINEERING,
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index b7a686fef0..07562ad190 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -318,40 +318,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
M.antagHUD = 1
src << "\blue AntagHUD Enabled "
-/mob/observer/dead/proc/dead_tele(A in ghostteleportlocs)
+/mob/observer/dead/proc/dead_tele(var/area/A in return_sorted_areas())
set category = "Ghost"
set name = "Teleport"
- set desc= "Teleport to a location"
+ set desc = "Teleport to a location"
+
if(!istype(usr, /mob/observer/dead))
usr << "Not when you're not dead!"
return
- usr.verbs -= /mob/observer/dead/proc/dead_tele
- spawn(30)
- usr.verbs += /mob/observer/dead/proc/dead_tele
- var/area/thearea = ghostteleportlocs[A]
- if(!thearea) return
- var/list/L = list()
- var/holyblock = 0
-
- if(usr.invisibility <= SEE_INVISIBLE_LIVING || (usr.mind in cult.current_antagonists))
- for(var/turf/T in get_area_turfs(thearea.type))
- if(!T.holy)
- L+=T
- else
- holyblock = 1
- else
- for(var/turf/T in get_area_turfs(thearea.type))
- L+=T
-
- if(!L || !L.len)
- if(holyblock)
- usr << "This area has been entirely made into sacred grounds, you cannot enter it while you are in this plane of existence! "
- else
- usr << "No area available."
-
- usr.forceMove(pick(L))
- following = null
+ usr.forceMove(pick(get_area_turfs(A)))
+ usr.on_mob_jump()
/mob/observer/dead/verb/follow(input in getmobs())
set category = "Ghost"
@@ -518,7 +495,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
var/turf/T = get_turf(src)
- if(!T || (T.z in config.admin_levels))
+ if(!T || (T.z in using_map.admin_levels))
src << "You may not spawn as a mouse on this Z-level. "
return
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index 15b9992375..b2748e6f06 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -23,6 +23,8 @@
if (message)
log_emote("[name]/[key] : [message]")
+ message = say_emphasis(message)
+
// Hearing gasp and such every five seconds is not good emotes were not global for a reason.
// Maybe some people are okay with that.
@@ -63,6 +65,8 @@
else
input = message
+ input = say_emphasis(input)
+
if(input)
log_emote("Ghost/[src.key] : [input]")
if(!invisibility) //If the ghost is made visible by admins or cult. And to see if the ghost has toggled its own visibility, as well. -Mech
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index a240277d38..fdb0b012ef 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -32,14 +32,10 @@
if(!(language && (language.flags & INNATE))) // skip understanding checks for INNATE languages
if(!say_understands(speaker,language))
- if(istype(speaker,/mob/living/simple_animal))
- var/mob/living/simple_animal/S = speaker
- message = pick(S.speak)
+ if(language)
+ message = language.scramble(message)
else
- if(language)
- message = language.scramble(message)
- else
- message = stars(message)
+ message = stars(message)
var/speaker_name = speaker.name
if(istype(speaker, /mob/living/carbon/human))
@@ -49,6 +45,8 @@
if(italics)
message = "[message] "
+ message = say_emphasis(message)
+
var/track = null
if(istype(src, /mob/observer/dead))
if(italics && is_preference_enabled(/datum/client_preference/ghost_radio))
@@ -66,20 +64,73 @@
else
src << "[speaker_name] [alt_name] talks but you cannot hear."
else
+ var/message_to_send = null
if(language)
- on_hear_say("[speaker_name] [alt_name] [track][language.format_message(message, verb)] ")
+ message_to_send = "[speaker_name] [alt_name] [track][language.format_message(message, verb)] "
else
- on_hear_say("[speaker_name] [alt_name] [track][verb], \"[message]\" ")
+ message_to_send = "[speaker_name] [alt_name] [track][verb], \"[message]\" "
+ if(check_mentioned(message) && is_preference_enabled(/datum/client_preference/check_mention))
+ message_to_send = "[message_to_send] "
+
+ on_hear_say(message_to_send)
+
if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
src.playsound_local(source, speech_sound, sound_vol, 1)
/mob/proc/on_hear_say(var/message)
- src << message
+ to_chat(src, message)
/mob/living/silicon/on_hear_say(var/message)
var/time = say_timestamp()
- src << "[time] [message]"
+ to_chat(src, "[time] [message]")
+
+// Checks if the mob's own name is included inside message. Handles both first and last names.
+/mob/proc/check_mentioned(var/message)
+ var/list/valid_names = splittext(real_name, " ") // Should output list("John", "Doe") as an example.
+ valid_names += special_mentions()
+ for(var/name in valid_names)
+ if(findtext(message, regex("\\b[name]\\b", "i"))) // This is to stop 'ai' from triggering if someone says 'wait'.
+ return TRUE
+ return FALSE
+
+// Override this if you want something besides the mob's name to count for being mentioned in check_mentioned().
+/mob/proc/special_mentions()
+ return list()
+
+/mob/living/silicon/ai/special_mentions()
+ return list("AI") // AI door!
+
+// Converts specific characters, like *, |, and _ to formatted output.
+/mob/proc/say_emphasis(var/message)
+ message = encode_html_emphasis(message, "|", "i")
+ message = encode_html_emphasis(message, "+", "b")
+ message = encode_html_emphasis(message, "_", "u")
+ return message
+
+// Replaces a character inside message with html tags. Note that html var must not include brackets.
+// Will not create an open html tag if it would not have a closing one.
+/proc/encode_html_emphasis(var/message, var/char, var/html)
+ var/i = 20 // Infinite loop safety.
+ var/pattern = "(?") - 1
+
+ // Now replace both.
+ message = replacetext(message, char, "<[html]>", first, first + 1)
+ message = replacetext(message, char, "[html]>", second + length_increase, second + length_increase + 1)
+
+ // Check again to see if we need to keep going.
+ first = re.Find(message)
+ second = re.Find(message, first + 1)
+ i--
+ if(!i)
+ CRASH("Possible infinite loop occured in encode_html_emphasis().")
+ return message
/mob/proc/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0, var/vname ="")
@@ -182,11 +233,15 @@
speaker_name = "[speaker.real_name] ([speaker_name])"
track = "[speaker_name] ([ghost_follow_link(speaker, src)])"
+ message = say_emphasis(message)
+
var/formatted
if(language)
formatted = "[language.format_message_radio(message, verb)][part_c]"
else
formatted = "[verb], \"[message]\" [part_c]"
+
+
if((sdisabilities & DEAF) || ear_deaf)
if(prob(20))
src << "You feel your headset vibrate but can hear nothing from it! "
@@ -197,18 +252,30 @@
return "\[[stationtime2text()]\] "
/mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
- src << "[part_a][speaker_name][part_b][formatted]"
+ var/final_message = "[part_a][speaker_name][part_b][formatted]"
+ if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
+ final_message = "[final_message] "
+ to_chat(src, final_message)
/mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
- src << "[part_a][track][part_b][formatted]"
+ var/final_message = "[part_a][track][part_b][formatted]"
+ if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
+ final_message = "[final_message] "
+ to_chat(src, final_message)
/mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/time = say_timestamp()
- src << "[time][part_a][speaker_name][part_b][formatted]"
+ var/final_message = "[part_a][speaker_name][part_b][formatted]"
+ if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
+ final_message = "[time][final_message] "
+ to_chat(src, final_message)
/mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/time = say_timestamp()
- src << "[time][part_a][track][part_b][formatted]"
+ var/final_message = "[part_a][track][part_b][formatted]"
+ if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
+ final_message = "[time][final_message] "
+ to_chat(src, final_message)
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null)
if(!client)
diff --git a/code/modules/mob/language/generic.dm b/code/modules/mob/language/generic.dm
index 7df164c821..ce0abbb948 100644
--- a/code/modules/mob/language/generic.dm
+++ b/code/modules/mob/language/generic.dm
@@ -21,12 +21,12 @@
// 'basic' language; spoken by default.
/datum/language/common
name = LANGUAGE_GALCOM
- desc = "The common galactic tongue."
+ desc = "The common galactic tongue, engineered for cross-species communication."
speech_verb = "says"
whisper_verb = "whispers"
key = "0"
flags = RESTRICTED
- syllables = list("blah","blah","blah","bleh","meh","neh","nah","wah")
+ syllables = list("vol", "zum", "coo","zoo","bi","do","ooz","ite","og","re","si","ite","ish","ar","at","on","ee","east","ma","da", "rim")
//TODO flag certain languages to use the mob-type specific say_quote and then get rid of these.
/datum/language/common/get_spoken_verb(var/msg_end)
diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm
index b69c9cca5f..8e2f2987c9 100644
--- a/code/modules/mob/language/station.dm
+++ b/code/modules/mob/language/station.dm
@@ -72,24 +72,25 @@
/datum/language/skrell
name = LANGUAGE_SKRELLIAN
- desc = "A melodic and complex language spoken by the Skrell of Qerrbalak. Some of the notes are inaudible to humans."
+ desc = "A set of warbles and hums, the language itself a complex mesh of both melodic and rhythmic components, exceptionally capable of conveying intent and emotion of the speaker."
speech_verb = "warbles"
ask_verb = "warbles"
- exclaim_verb = "warbles"
+ exclaim_verb = "sings"
+ whisper_verb = "hums"
colour = "skrell"
key = "k"
+ space_chance = 30
flags = WHITELISTED
- syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!")
+ syllables = list("qr","qrr","xuq","qil","quum","xuqm","vol","xrim","zaoo","qu-uu","qix","qoo","zix","*","!", "'")
/datum/language/human
name = LANGUAGE_SOL_COMMON
- desc = "A bastardized hybrid of informal English and elements of Mandarin Chinese; the common language of the Sol system."
+ desc = "A bastardized hybrid of many languages, including Chinese, English, French, and more; it is the common language of the Sol system."
speech_verb = "says"
whisper_verb = "whispers"
colour = "solcom"
key = "1"
flags = WHITELISTED
-
//syllables are at the bottom of the file
/datum/language/human/get_spoken_verb(var/msg_end)
@@ -118,7 +119,7 @@
colour = "changeling"
key = "6"
flags = NO_STUTTER
- syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz")
+ syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz","shh","shk")
space_chance = 10
/datum/language/machine/can_speak_special(var/mob/speaker)
@@ -155,9 +156,13 @@
/*
This list really long, mainly because I can't make up my mind about which mandarin syllables should be removed,
and the english syllables had to be duplicated so that there is roughly a 50-50 weighting.
+ The other 3 languages were duplicated just so they could show occasionally.
Sources:
http://www.sttmedia.com/syllablefrequency-english
+ http://www.sttmedia.com/syllablefrequency-spanish
+ http://www.sttmedia.com/syllablefrequency-russian
+ http://www.sttmedia.com/syllablefrequency-french
http://www.chinahighlights.com/travelguide/learning-chinese/pinyin-syllables.htm
*/
/datum/language/human/syllables = list(
@@ -210,4 +215,31 @@
"al", "an", "ar", "as", "at", "ea", "ed", "en", "er", "es", "ha", "he", "hi", "in", "is", "it",
"le", "me", "nd", "ne", "ng", "nt", "on", "or", "ou", "re", "se", "st", "te", "th", "ti", "to",
"ve", "wa", "all", "and", "are", "but", "ent", "era", "ere", "eve", "for", "had", "hat", "hen", "her", "hin",
-"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi")
+"his", "ing", "ion", "ith", "not", "ome", "oul", "our", "sho", "ted", "ter", "tha", "the", "thi",
+"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
+"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
+"ion", "ne", "nas", "v",
+"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
+"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
+"ion", "ne", "nas", "v",
+"ah", "be", "bo", "eh", "ep", "et", "ka", "ko", "ha", "he", "ho", "ob", "oh", "op", "oc", "ot", "pa", "pe", "ct", "ta", "te", "to",
+"vse", "tak", "nak", "no", "epo", "pre", "kan", "dly", "ime", "sha", "kur", "yey", "khi", "yeg", "ne",
+"ion", "ne", "nas", "v",
+"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
+"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
+"tou", "e", "eve", "hen", "son", "non", "not", "le",
+"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
+"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
+"tou", "e", "eve", "hen", "son", "non", "not", "le",
+"ai", "an", "ar", "au", "ce", "ch", "co", "de", "em", "en", "er", "es", "et", "eu", "il", "in", "is", "la", "le",
+"ma", "me", "ne", "ns", "nt", "on", "ou", "pa", "qu", "ra", "re", "se", "te", "ti", "tr", "ue", "ur", "us", "ve",
+"tou", "e", "eve", "hen", "son", "non", "not", "le",
+"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
+"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
+"tod", "ser", "su", "no", "nue", "el",
+"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
+"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
+"tod", "ser", "su", "no", "nue", "el",
+"ad", "al", "an", "ar", "as", "ci", "co", "de", "do", "el", "en", "er", "es", "ie", "in", "la", "lo", "me", "na",
+"no", "nt", "or", "os", "pa", "qu", "ra", "re", "ro", "se", "st", "ta", "te", "to", "ue", "un",
+"tod", "ser", "su", "no", "nue", "el")
\ No newline at end of file
diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm
index dbf91343f1..2a2ddb0ff9 100644
--- a/code/modules/mob/language/synthetic.dm
+++ b/code/modules/mob/language/synthetic.dm
@@ -17,15 +17,19 @@
if (!message)
return
+ message = speaker.say_emphasis(message)
+
var/message_start = "[name], [speaker.name] "
var/message_body = "[speaker.say_quote(message)], \"[message]\" "
for (var/mob/M in dead_mob_list)
if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping
- M.show_message("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]", 2)
+ var/message_to_send = "[message_start] ([ghost_follow_link(speaker, M)]) [message_body]"
+ if(M.check_mentioned(message) && M.is_preference_enabled(/datum/client_preference/check_mention))
+ message_to_send = "[message_to_send] "
+ M.show_message(message_to_send, 2)
for (var/mob/living/S in living_mob_list)
-
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
continue
else if(istype(S , /mob/living/silicon/ai))
@@ -33,7 +37,10 @@
else if (!S.binarycheck())
continue
- S.show_message("[message_start] [message_body]", 2)
+ var/message_to_send = "[message_start] [message_body]"
+ if(S.check_mentioned(message) && S.is_preference_enabled(/datum/client_preference/check_mention))
+ message_to_send = "[message_to_send] "
+ S.show_message(message_to_send, 2)
var/list/listening = hearers(1, src)
listening -= src
diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm
index ae756f6a5f..3a3bddd9b3 100644
--- a/code/modules/mob/living/autohiss.dm
+++ b/code/modules/mob/living/autohiss.dm
@@ -59,6 +59,8 @@
/datum/species/proc/handle_autohiss(message, datum/language/lang, mode)
if(!autohiss_basic_map)
return message
+ if(lang.flags & NO_STUTTER) // Currently prevents EAL, Sign language, and emotes from autohissing
+ return message
if(autohiss_exempt && (lang.name in autohiss_exempt))
return message
diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm
index 0ad82ae384..8c61b68a3e 100644
--- a/code/modules/mob/living/bot/bot.dm
+++ b/code/modules/mob/living/bot/bot.dm
@@ -27,7 +27,7 @@
var/turf/obstacle = null
var/wait_if_pulled = 0 // Only applies to moving to the target
- var/will_patrol = 0 // Not a setting - whether or no this type of bots patrols at all
+ var/will_patrol = 0 // If set to 1, will patrol, duh
var/patrol_speed = 1 // How many times per tick we move when patrolling
var/target_speed = 2 // Ditto for chasing the target
var/min_target_dist = 1 // How close we try to get to the target
@@ -49,7 +49,11 @@
access_scanner.req_access = req_access.Copy()
access_scanner.req_one_access = req_one_access.Copy()
- turn_on()
+// Make sure mapped in units start turned on.
+/mob/living/bot/initialize()
+ ..()
+ if(on)
+ turn_on() // Update lights and other stuff
/mob/living/bot/Life()
..()
@@ -61,7 +65,8 @@
paralysis = 0
if(on && !client && !busy)
- handleAI()
+ spawn(0)
+ handleAI()
/mob/living/bot/updatehealth()
if(status_flags & GODMODE)
@@ -145,20 +150,18 @@
handleRangedTarget()
if(!wait_if_pulled || !pulledby)
for(var/i = 1 to target_speed)
+ sleep(20 / (target_speed + 1))
stepToTarget()
- if(i < target_speed)
- sleep(20 / target_speed)
if(max_frustration && frustration > max_frustration * target_speed)
handleFrustrated(1)
else
resetTarget()
lookForTargets()
if(will_patrol && !pulledby && !target)
- if(patrol_path.len)
+ if(patrol_path && patrol_path.len)
for(var/i = 1 to patrol_speed)
+ sleep(20 / (patrol_speed + 1))
handlePatrol()
- if(i < patrol_speed)
- sleep(20 / patrol_speed)
if(max_frustration && frustration > max_frustration * patrol_speed)
handleFrustrated(0)
else
@@ -219,6 +222,25 @@
return
/mob/living/bot/proc/getPatrolTurf()
+ var/minDist = INFINITY
+ var/obj/machinery/navbeacon/targ = locate() in get_turf(src)
+
+ if(!targ)
+ for(var/obj/machinery/navbeacon/N in navbeacons)
+ if(!N.codes["patrol"])
+ continue
+ if(get_dist(src, N) < minDist)
+ minDist = get_dist(src, N)
+ targ = N
+
+ if(targ && targ.codes["next_patrol"])
+ for(var/obj/machinery/navbeacon/N in navbeacons)
+ if(N.location == targ.codes["next_patrol"])
+ targ = N
+ break
+
+ if(targ)
+ return get_turf(targ)
return null
/mob/living/bot/proc/handleIdle()
@@ -255,15 +277,16 @@
on = 1
set_light(light_strength)
update_icons()
+ resetTarget()
+ patrol_path = list()
+ ignore_list = list()
return 1
/mob/living/bot/proc/turn_off()
on = 0
+ busy = 0 // If ever stuck... reboot!
set_light(0)
update_icons()
- resetTarget()
- patrol_path = list()
- ignore_list = list()
/mob/living/bot/proc/explode()
qdel(src)
@@ -327,6 +350,11 @@
for(var/obj/machinery/door/D in loc)
if(!D.density) continue
+
+ if(istype(D, /obj/machinery/door/airlock))
+ var/obj/machinery/door/airlock/A = D
+ if(!A.can_open()) return 1
+
if(istype(D, /obj/machinery/door/window))
if( dir & D.dir ) return !D.check_access(ID)
diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm
index 779d912cf3..d4cb723861 100644
--- a/code/modules/mob/living/bot/cleanbot.dm
+++ b/code/modules/mob/living/bot/cleanbot.dm
@@ -12,7 +12,6 @@
var/cleaning = 0
var/screwloose = 0
var/oddbutton = 0
- var/should_patrol = 0
var/blood = 1
var/list/target_types = list()
@@ -32,9 +31,11 @@
if(oddbutton && prob(5)) // Make a big mess
visible_message("Something flies out of [src]. He seems to be acting oddly.")
var/obj/effect/decal/cleanable/blood/gibs/gib = new /obj/effect/decal/cleanable/blood/gibs(loc)
- ignore_list += gib
+ // TODO - I have a feeling weakrefs will not work in ignore_list, verify this ~Leshana
+ var/weakref/g = weakref(gib)
+ ignore_list += g
spawn(600)
- ignore_list -= gib
+ ignore_list -= g
/mob/living/bot/cleanbot/lookForTargets()
for(var/obj/effect/decal/cleanable/D in view(world.view, src)) // There was some odd code to make it start with nearest decals, it's unnecessary, this works
@@ -110,7 +111,7 @@
dat += "Maintenance panel is [open ? "opened" : "closed"]"
if(!locked || issilicon(user))
dat += " Cleans Blood: [blood ? "Yes" : "No"] "
- dat += " Patrol station: [should_patrol ? "Yes" : "No"] "
+ dat += " Patrol station: [will_patrol ? "Yes" : "No"] "
if(open && !locked)
dat += "Odd looking screw twiddled: [screwloose ? "Yes" : "No"] "
dat += "Weird button pressed: [oddbutton ? "Yes" : "No"] "
@@ -134,7 +135,7 @@
blood = !blood
get_targets()
if("patrol")
- should_patrol = !should_patrol
+ will_patrol = !will_patrol
patrol_path = null
if("screw")
screwloose = !screwloose
diff --git a/code/modules/mob/living/bot/farmbot.dm b/code/modules/mob/living/bot/farmbot.dm
index 09320fd323..1e23af341c 100644
--- a/code/modules/mob/living/bot/farmbot.dm
+++ b/code/modules/mob/living/bot/farmbot.dm
@@ -170,7 +170,7 @@
visible_message("[src] starts [T.dead? "removing the plant from" : "harvesting"] \the [A]. ")
busy = 1
- if(do_after(src, 30))
+ if(do_after(src, 30, A))
visible_message("[src] [T.dead? "removes the plant from" : "harvests"] \the [A]. ")
T.attack_hand(src)
if(FARMBOT_WATER)
@@ -179,7 +179,7 @@
visible_message("[src] starts watering \the [A]. ")
busy = 1
- if(do_after(src, 30))
+ if(do_after(src, 30, A))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
visible_message("[src] waters \the [A]. ")
tank.reagents.trans_to(T, 100 - T.waterlevel)
@@ -198,7 +198,7 @@
visible_message("[src] starts fertilizing \the [A]. ")
busy = 1
- if(do_after(src, 30))
+ if(do_after(src, 30, A))
visible_message("[src] fertilizes \the [A]. ")
T.reagents.add_reagent("ammonia", 10)
diff --git a/code/modules/mob/living/bot/floorbot.dm b/code/modules/mob/living/bot/floorbot.dm
index 2259515941..323d2909fb 100644
--- a/code/modules/mob/living/bot/floorbot.dm
+++ b/code/modules/mob/living/bot/floorbot.dm
@@ -1,3 +1,9 @@
+// Configure whether or not floorbot will fix hull breaches.
+// This can be a problem if it tries to pave over space or shuttles. That should be fixed but...
+// If it can see space outside windows, it can be laggy since it keeps wondering if it should fix them.
+// Therefore that functionality is disabled for now. But it can be turned on by uncommenting this.
+// #define FLOORBOT_PATCHES_HOLES 1
+
/mob/living/bot/floorbot
name = "Floorbot"
desc = "A little floor repairing robot, he looks so excited!"
@@ -25,7 +31,7 @@
/mob/living/bot/floorbot/attack_hand(var/mob/user)
user.set_machine(src)
- var/dat
+ var/list/dat = list()
dat += "Automatic Station Floor Repairer v1.0 "
dat += "Status: [src.on ? "On" : "Off"] "
dat += "Maintenance panel is [open ? "opened" : "closed"] "
@@ -41,9 +47,9 @@
else
bmode = "Disabled"
dat += " Bridge Mode : [bmode] "
-
- user << browse("Repairbot v1.0 controls [dat]", "window=autorepair")
- onclose(user, "autorepair")
+ var/datum/browser/popup = new(user, "autorepair", "Repairbot v1.1 controls")
+ popup.set_content(jointext(dat,null))
+ popup.open()
return
/mob/living/bot/floorbot/emag_act(var/remaining_charges, var/mob/user)
@@ -115,23 +121,24 @@
target = T
return
T = get_step(T, targetdirection)
+ return // In bridge mode we don't want to step off that line even to eat plates!
- else // Fixing floors
- for(var/turf/space/T in view(src)) // Breaches are of higher priority
- if(confirmTarget(T))
- target = T
- return
+#ifdef FLOORBOT_PATCHES_HOLES
+ for(var/turf/space/T in view(src)) // Breaches are of higher priority
+ if(confirmTarget(T))
+ target = T
+ return
- for(var/turf/simulated/mineral/floor/T in view(src)) // Asteroids are of smaller priority
- if(confirmTarget(T))
- target = T
- return
-
- if(improvefloors)
- for(var/turf/simulated/floor/T in view(src))
- if(confirmTarget(T))
- target = T
- return
+ for(var/turf/simulated/mineral/floor/T in view(src)) // Asteroids are of smaller priority
+ if(confirmTarget(T))
+ target = T
+ return
+#endif
+ // Look for broken floors even if we aren't improvefloors
+ for(var/turf/simulated/floor/T in view(src))
+ if(confirmTarget(T))
+ target = T
+ return
if(amount < maxAmount && (eattiles || maketiles))
for(var/obj/item/stack/S in view(src))
@@ -148,7 +155,11 @@
if(istype(A, /obj/item/stack/material/steel))
return (amount < maxAmount && maketiles)
- if(A.loc.name == "Space")
+ // Don't pave over all of space, build there only if in bridge mode
+ if(!targetdirection && istype(A.loc, /area/space)) // Note name == "Space" does not work!
+ return 0
+
+ if(istype(A.loc, /area/shuttle)) // Do NOT mess with shuttle drop zones
return 0
if(emagged)
@@ -157,14 +168,16 @@
if(!amount)
return 0
+#ifdef FLOORBOT_PATCHES_HOLES
if(istype(A, /turf/space))
return 1
if(istype(A, /turf/simulated/mineral/floor))
return 1
+#endif
var/turf/simulated/floor/T = A
- return (istype(T) && improvefloors && !T.flooring && (get_turf(T) == loc || prob(40)))
+ return (istype(T) && (T.broken || T.burnt || (improvefloors && !T.flooring)) && (get_turf(T) == loc || prob(40)))
/mob/living/bot/floorbot/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
@@ -181,12 +194,12 @@
busy = 1
update_icons()
if(F.flooring)
- visible_message("[src] begins to tear the floor tile from the floor! ")
+ visible_message("\The [src] begins to tear the floor tile from the floor! ")
if(do_after(src, 50))
F.break_tile_to_plating()
addTiles(1)
else
- visible_message("[src] begins to tear through the floor! ")
+ visible_message("\The [src] begins to tear through the floor! ")
if(do_after(src, 150)) // Extra time because this can and will kill.
F.ReplaceWithLattice()
addTiles(1)
@@ -201,7 +214,7 @@
return
busy = 1
update_icons()
- visible_message("[src] begins to repair the hole. ")
+ visible_message("\The [src] begins to repair the hole. ")
if(do_after(src, 50))
if(A && (locate(/obj/structure/lattice, A) && building == 1 || !locate(/obj/structure/lattice, A) && building == 2)) // Make sure that it still needs repairs
var/obj/item/I
@@ -215,10 +228,20 @@
update_icons()
else if(istype(A, /turf/simulated/floor))
var/turf/simulated/floor/F = A
- if(!F.flooring && amount)
+ if(F.broken || F.burnt)
busy = 1
update_icons()
- visible_message("[src] begins to improve the floor. ")
+ visible_message("\The [src] begins to remove the broken floor. ")
+ if(do_after(src, 50, F))
+ if(F.broken || F.burnt)
+ F.make_plating()
+ target = null
+ busy = 0
+ update_icons()
+ else if(!F.flooring && amount)
+ busy = 1
+ update_icons()
+ visible_message("\The [src] begins to improve the floor. ")
if(do_after(src, 50))
if(!F.flooring)
F.set_flooring(get_flooring_data(floor_build_type))
@@ -228,7 +251,7 @@
update_icons()
else if(istype(A, /obj/item/stack/tile/floor) && amount < maxAmount)
var/obj/item/stack/tile/floor/T = A
- visible_message("[src] begins to collect tiles. ")
+ visible_message("\The [src] begins to collect tiles. ")
busy = 1
update_icons()
if(do_after(src, 20))
@@ -242,7 +265,7 @@
else if(istype(A, /obj/item/stack/material) && amount + 4 <= maxAmount)
var/obj/item/stack/material/M = A
if(M.get_material_name() == DEFAULT_WALL_MATERIAL)
- visible_message("[src] begins to make tiles. ")
+ visible_message("\The [src] begins to make tiles. ")
busy = 1
update_icons()
if(do_after(50))
@@ -252,7 +275,7 @@
/mob/living/bot/floorbot/explode()
turn_off()
- visible_message("[src] blows apart! ")
+ visible_message("\The [src] blows apart! ")
var/turf/Tsec = get_turf(src)
var/obj/item/weapon/storage/toolbox/mechanical/N = new /obj/item/weapon/storage/toolbox/mechanical(Tsec)
@@ -353,4 +376,4 @@
return
if(!in_range(src, user) && loc != user)
return
- created_name = t
\ No newline at end of file
+ created_name = t
diff --git a/code/modules/mob/living/bot/mulebot.dm b/code/modules/mob/living/bot/mulebot.dm
index c330e0efc0..2079f77a35 100644
--- a/code/modules/mob/living/bot/mulebot.dm
+++ b/code/modules/mob/living/bot/mulebot.dm
@@ -130,10 +130,7 @@
if("sethome")
var/new_dest
- var/list/beaconlist = new()
- for(var/obj/machinery/navbeacon/N in navbeacons)
- beaconlist.Add(N.location)
- beaconlist[N.location] = N
+ var/list/beaconlist = GetBeaconList()
if(beaconlist.len)
new_dest = input("Select new home tag", "Mulebot [suffix ? "([suffix])" : ""]", null) in null|beaconlist
else
@@ -168,10 +165,7 @@
targetName = "Home"
if("SetD")
var/new_dest
- var/list/beaconlist = new()
- for(var/obj/machinery/navbeacon/N in navbeacons)
- beaconlist.Add(N.location)
- beaconlist[N.location] = N
+ var/list/beaconlist = GetBeaconList()
if(beaconlist.len)
new_dest = input("Select new destination tag", "Mulebot [suffix ? "([suffix])" : ""]") in null|beaconlist
else
@@ -285,6 +279,15 @@
new /obj/effect/decal/cleanable/blood/oil(Tsec)
..()
+/mob/living/bot/mulebot/proc/GetBeaconList()
+ var/list/beaconlist = list()
+ for(var/obj/machinery/navbeacon/N in navbeacons)
+ if(!N.codes["delivery"])
+ continue
+ beaconlist.Add(N.location)
+ beaconlist[N.location] = N
+ return beaconlist
+
/mob/living/bot/mulebot/proc/load(var/atom/movable/C)
if(busy || load || get_dist(C, src) > 1 || !isturf(C.loc))
return
@@ -304,11 +307,11 @@
busy = 1
- C.loc = loc
+ C.forceMove(loc)
sleep(2)
if(C.loc != loc) //To prevent you from going onto more than one bot.
return
- C.loc = src
+ C.forceMove(src)
load = C
C.pixel_y += 9
@@ -325,7 +328,7 @@
busy = 1
overlays.Cut()
- load.loc = loc
+ load.forceMove(loc)
load.pixel_y -= 9
load.layer = initial(load.layer)
@@ -338,7 +341,7 @@
if(AM == botcard || AM == access_scanner)
continue
- AM.loc = loc
+ AM.forceMove(loc)
AM.layer = initial(AM.layer)
AM.pixel_y = initial(AM.pixel_y)
busy = 0
diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm
index f7556e0ece..d6a014c450 100644
--- a/code/modules/mob/living/bot/secbot.dm
+++ b/code/modules/mob/living/bot/secbot.dm
@@ -1,10 +1,14 @@
+#define SECBOT_WAIT_TIME 5 //number of in-game seconds to wait for someone to surrender
+#define SECBOT_THREAT_ARREST 4 //threat level at which we decide to arrest someone
+#define SECBOT_THREAT_ATTACK 8 //threat level at which was assume immediate danger and attack right away
+
/mob/living/bot/secbot
name = "Securitron"
desc = "A little security robot. He looks less than thrilled."
icon_state = "secbot0"
maxHealth = 100
health = 100
- req_one_access = list(access_robotics, access_security, access_forensics_lockers)
+ req_one_access = list(access_security, access_forensics_lockers)
botcard_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels)
patrol_speed = 2
target_speed = 3
@@ -14,18 +18,17 @@
var/check_arrest = 1 // If true, arrests people who are set to arrest.
var/arrest_type = 0 // If true, doesn't handcuff. You monster.
var/declare_arrests = 0 // If true, announces arrests over sechuds.
- var/auto_patrol = 0 // If true, patrols on its own
var/is_ranged = 0
var/awaiting_surrender = 0
- var/list/threat_found_sounds = new('sound/voice/bcriminal.ogg', 'sound/voice/bjustice.ogg', 'sound/voice/bfreeze.ogg')
- var/list/preparing_arrest_sounds = new('sound/voice/bgod.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/bsecureday.ogg', 'sound/voice/bradio.ogg', 'sound/voice/binsult.ogg', 'sound/voice/bcreep.ogg')
+ var/list/threat_found_sounds = list('sound/voice/bcriminal.ogg', 'sound/voice/bjustice.ogg', 'sound/voice/bfreeze.ogg')
+ var/list/preparing_arrest_sounds = list('sound/voice/bgod.ogg', 'sound/voice/biamthelaw.ogg', 'sound/voice/bsecureday.ogg', 'sound/voice/bradio.ogg', 'sound/voice/bcreep.ogg')
/mob/living/bot/secbot/beepsky
name = "Officer Beepsky"
desc = "It's Officer Beep O'sky! Powered by a potato and a shot of whiskey."
- auto_patrol = 1
+ will_patrol = 1
/mob/living/bot/secbot/update_icons()
if(on && busy)
@@ -40,7 +43,7 @@
/mob/living/bot/secbot/attack_hand(var/mob/user)
user.set_machine(src)
- var/dat
+ var/list/dat = list()
dat += "Automatic Security Unit "
dat += "Status: [on ? "On" : "Off"] "
dat += "Behaviour controls are [locked ? "locked" : "unlocked"] "
@@ -51,10 +54,10 @@
dat += "Check Arrest Status: [check_arrest ? "Yes" : "No"] "
dat += "Operating Mode: [arrest_type ? "Detain" : "Arrest"] "
dat += "Report Arrests: [declare_arrests ? "Yes" : "No"] "
- dat += "Auto Patrol: [auto_patrol ? "On" : "Off"] "
- user << browse("Securitron controls [dat]", "window=autosec")
- onclose(user, "autosec")
- return
+ dat += "Auto Patrol: [will_patrol ? "On" : "Off"] "
+ var/datum/browser/popup = new(user, "autosec", "Securitron controls")
+ popup.set_content(jointext(dat,null))
+ popup.open()
/mob/living/bot/secbot/Topic(href, href_list)
if(..())
@@ -80,7 +83,7 @@
if("switchmode")
arrest_type = !arrest_type
if("patrol")
- auto_patrol = !auto_patrol
+ will_patrol = !will_patrol
if("declarearrests")
declare_arrests = !declare_arrests
attack_hand(usr)
@@ -99,10 +102,46 @@
/mob/living/bot/secbot/attackby(var/obj/item/O, var/mob/user)
var/curhealth = health
- ..()
+ . = ..()
if(health < curhealth)
- target = user
- awaiting_surrender = 5
+ react_to_attack(user)
+
+/mob/living/bot/secbot/bullet_act(var/obj/item/projectile/P)
+ var/curhealth = health
+ var/mob/shooter = P.firer
+ . = ..()
+ //if we already have a target just ignore to avoid lots of checking
+ if(!target && health < curhealth && shooter && (shooter in view(world.view, src)))
+ react_to_attack(shooter)
+
+/mob/living/bot/secbot/proc/react_to_attack(mob/attacker)
+ if(!target)
+ playsound(src.loc, pick(threat_found_sounds), 50)
+ broadcast_security_hud_message("[src] was attacked by a hostile [target_name(attacker)] in [get_area(src)] .", src)
+ target = attacker
+ awaiting_surrender = INFINITY // Don't try and wait for surrender
+
+// Say "freeze!" and demand surrender
+/mob/living/bot/secbot/proc/demand_surrender(mob/target, var/threat)
+ var/suspect_name = target_name(target)
+ if(declare_arrests)
+ broadcast_security_hud_message("[src] is [arrest_type ? "detaining" : "arresting"] a level [threat] suspect [suspect_name] in [get_area(src)] .", src)
+ say("Down on the floor, [suspect_name]! You have [SECBOT_WAIT_TIME] seconds to comply.")
+ playsound(src.loc, pick(preparing_arrest_sounds), 50)
+ // Register to be told when the target moves
+ moved_event.register(target, src, /mob/living/bot/secbot/proc/target_moved)
+
+// Callback invoked if the registered target moves
+/mob/living/bot/secbot/proc/target_moved(atom/movable/moving_instance, atom/old_loc, atom/new_loc)
+ if(get_dist(get_turf(src), get_turf(target)) >= 1)
+ awaiting_surrender = INFINITY // Done waiting!
+ moved_event.unregister(moving_instance, src)
+
+/mob/living/bot/secbot/resetTarget()
+ ..()
+ moved_event.unregister(target, src)
+ awaiting_surrender = -1
+ walk_to(src, 0)
/mob/living/bot/secbot/startPatrol()
if(!locked) // Stop running away when we set you up
@@ -112,8 +151,7 @@
/mob/living/bot/secbot/confirmTarget(var/atom/A)
if(!..())
return 0
-
- return (check_threat(A) > 3)
+ return (check_threat(A) >= SECBOT_THREAT_ARREST)
/mob/living/bot/secbot/lookForTargets()
for(var/mob/living/M in view(src))
@@ -127,23 +165,17 @@
custom_emote(1, "points at [M.name]!")
return
-/mob/living/bot/secbot/calcTargetPath()
- ..()
- if(awaiting_surrender != -1)
- awaiting_surrender = 5 // This implies that a) we have already approached the target and b) it has moved after the warning
-
/mob/living/bot/secbot/handleAdjacentTarget()
- if(awaiting_surrender < 5 && ishuman(target) && !target:lying)
- if(awaiting_surrender == -1)
- say("Down on the floor, [target]! You have five seconds to comply.")
+ var/mob/living/carbon/human/H = target
+ var/threat = check_threat(target)
+ if(awaiting_surrender < SECBOT_WAIT_TIME && istype(H) && !H.lying && threat < SECBOT_THREAT_ATTACK)
+ if(awaiting_surrender == -1) // On first tick of awaiting...
+ demand_surrender(target, threat)
++awaiting_surrender
else
+ if(declare_arrests)
+ broadcast_security_hud_message("[src] is [arrest_type ? "detaining" : "arresting"] a level [threat] suspect [target_name(target)] in [get_area(src)] .", src)
UnarmedAttack(target)
- if(ishuman(target) && declare_arrests)
- var/area/location = get_area(src)
- broadcast_security_hud_message("[src] is [arrest_type ? "detaining" : "arresting"] a level [check_threat(target)] suspect [target] in [location] .", src)
-
- // say("Engaging patrol mode.")
/mob/living/bot/secbot/UnarmedAttack(var/mob/M, var/proximity)
if(!..())
@@ -170,17 +202,15 @@
spawn(2)
busy = 0
update_icons()
- visible_message("[C] was prodded by [src] with a stun baton! ")
+ visible_message("\The [C] was prodded by \the [src] with a stun baton! ")
else
playsound(loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
- visible_message("[src] is trying to put handcuffs on [C]! ")
+ visible_message("\The [src] is trying to put handcuffs on \the [C]! ")
busy = 1
if(do_mob(src, C, 60))
if(!C.handcuffed)
C.handcuffed = new /obj/item/weapon/handcuffs(C)
C.update_inv_handcuffed()
- if(preparing_arrest_sounds.len)
- playsound(loc, pick(preparing_arrest_sounds), 50, 0)
busy = 0
else if(istype(M, /mob/living/simple_animal))
var/mob/living/simple_animal/S = M
@@ -193,7 +223,8 @@
spawn(2)
busy = 0
update_icons()
- visible_message("[M] was beaten by [src] with a stun baton! ")
+ visible_message("\The [M] was beaten by \the [src] with a stun baton! ")
+
/mob/living/bot/secbot/explode()
visible_message("[src] blows apart! ")
@@ -215,11 +246,17 @@
new /obj/effect/decal/cleanable/blood/oil(Tsec)
qdel(src)
+/mob/living/bot/secbot/proc/target_name(mob/living/T)
+ if(ishuman(T))
+ var/mob/living/carbon/human/H = T
+ return H.get_id_name("unidentified person")
+ return "unidentified lifeform"
+
/mob/living/bot/secbot/proc/check_threat(var/mob/living/M)
if(!M || !istype(M) || M.stat == DEAD || src == M)
return 0
- if(emagged)
+ if(emagged && !M.incapacitated()) //check incapacitated so emagged secbots don't keep attacking the same target forever
return 10
return M.assess_perp(access_scanner, 0, idcheck, check_records, check_arrest)
@@ -297,4 +334,4 @@
return
if(!in_range(src, usr) && loc != usr)
return
- created_name = t
\ No newline at end of file
+ created_name = t
diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm
index 8060e328ee..e74d6dab90 100644
--- a/code/modules/mob/living/carbon/brain/MMI.dm
+++ b/code/modules/mob/living/carbon/brain/MMI.dm
@@ -164,7 +164,9 @@
if(2)
brainmob.emp_damage += rand(10,20)
if(3)
- brainmob.emp_damage += rand(0,10)
+ brainmob.emp_damage += rand(5,10)
+ if(4)
+ brainmob.emp_damage += rand(0,5)
..()
/obj/item/device/mmi/digital
@@ -216,7 +218,9 @@
if(2)
src.brainmob.emp_damage += rand(10,20)
if(3)
- src.brainmob.emp_damage += rand(0,10)
+ src.brainmob.emp_damage += rand(5,10)
+ if(4)
+ src.brainmob.emp_damage += rand(0,5)
..()
/obj/item/device/mmi/digital/transfer_identity(var/mob/living/carbon/H)
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index cb889b570f..3f41f21ce5 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -71,15 +71,11 @@
/mob/living/carbon/brain/handle_chemicals_in_body()
chem_effects.Cut()
- analgesic = 0
if(touching) touching.metabolize()
if(ingested) ingested.metabolize()
if(bloodstr) bloodstr.metabolize()
- if(CE_PAINKILLER in chem_effects)
- analgesic = chem_effects[CE_PAINKILLER]
-
confused = max(0, confused - 1)
// decrement dizziness counter, clamped to 0
if(resting)
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index 057c24bdcc..9452337eeb 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -112,7 +112,9 @@
if(2)
src.brainmob.emp_damage += rand(10,20)
if(3)
- src.brainmob.emp_damage += rand(0,10)
+ src.brainmob.emp_damage += rand(5,10)
+ if(4)
+ src.brainmob.emp_damage += rand(0,5)
..()
/obj/item/device/mmi/digital/posibrain/New()
diff --git a/code/modules/mob/living/carbon/breathe.dm b/code/modules/mob/living/carbon/breathe.dm
index 6b8a3c43b3..354a26221c 100644
--- a/code/modules/mob/living/carbon/breathe.dm
+++ b/code/modules/mob/living/carbon/breathe.dm
@@ -53,7 +53,7 @@
var/datum/gas_mixture/environment
if(loc)
- environment = loc.return_air_for_internal_lifeform()
+ environment = loc.return_air_for_internal_lifeform(src)
if(environment)
breath = environment.remove_volume(volume_needed)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 204730a8e8..a2b84e0a52 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -166,11 +166,13 @@
var/list/status = list()
var/brutedamage = org.brute_dam
var/burndamage = org.burn_dam
- if(halloss > 0)
+ /*
+ if(halloss > 0) //Makes halloss show up as actual wounds on self examine.
if(prob(30))
brutedamage += halloss
if(prob(30))
burndamage += halloss
+ */
switch(brutedamage)
if(1 to 20)
status += "bruised"
@@ -457,7 +459,7 @@
/mob/living/carbon/proc/should_have_organ(var/organ_check)
return 0
-/mob/living/carbon/proc/can_feel_pain(var/check_organ)
+/mob/living/carbon/can_feel_pain(var/check_organ)
if(isSynthetic())
return 0
- return !(species.flags & NO_PAIN)
\ No newline at end of file
+ return !(species.flags & NO_PAIN)
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index db59f6bc83..66ba7ecd51 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -4,7 +4,7 @@
return null
..()
-/mob/living/carbon/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/hit_zone)
+/mob/living/carbon/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/soaked, var/hit_zone)
if(!effective_force || blocked >= 100)
return 0
@@ -12,6 +12,10 @@
if(HULK in user.mutations)
effective_force *= 2
+ //If the armor soaks all of the damage, it just skips the rest of the checks
+ if(effective_force <= soaked)
+ return 0
+
//Apply weapon damage
var/weapon_sharp = is_sharp(I)
var/weapon_edge = has_edge(I)
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index d6deb9b964..532b2daa7c 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -7,8 +7,7 @@
var/last_eating = 0 //Not sure what this does... I found it hidden in food.dm
var/life_tick = 0 // The amount of life ticks that have processed on this mob.
- var/analgesic = 0 // when this is set, the mob isn't affected by shock or pain
- // life should decrease this by 1 every tick
+
// total amount of wounds on mob, used to spread out healing and the like over all wounds
var/number_wounds = 0
var/obj/item/handcuffed = null //Whether or not the mob is handcuffed
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 56e71d931a..ae590dd2d4 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -25,7 +25,8 @@
message = "is strumming the air and headbanging like a safari chimp."
m_type = 1
- if("ping", "beep", "buzz", "yes", "no")
+ //Machine-only emotes
+ if("ping", "beep", "buzz", "yes", "no", "rcough", "rsneeze")
if(!isSynthetic())
src << "You are not a synthetic. "
@@ -54,6 +55,18 @@
else if(act == "no")
display_msg = "emits a negative blip"
use_sound = 'sound/machines/synth_no.ogg'
+ else if(act == "rcough")
+ display_msg = "emits a robotic cough"
+ if(gender == FEMALE)
+ use_sound = pick('sound/effects/mob_effects/f_machine_cougha.ogg','sound/effects/mob_effects/f_machine_coughb.ogg')
+ else
+ use_sound = pick('sound/effects/mob_effects/m_machine_cougha.ogg','sound/effects/mob_effects/m_machine_coughb.ogg', 'sound/effects/mob_effects/m_machine_coughc.ogg')
+ else if(act == "rsneeze")
+ display_msg = "emits a robotic sneeze"
+ if(gender == FEMALE)
+ use_sound = 'sound/effects/mob_effects/machine_sneeze.ogg'
+ else
+ use_sound = 'sound/effects/mob_effects/f_machine_sneeze.ogg'
if (param)
message = "[display_msg] at [param]."
@@ -62,6 +75,17 @@
playsound(src.loc, use_sound, 50, 0)
m_type = 1
+ //Promethean-only emotes
+ if("squish")
+ if(!species.bump_flag == SLIME) //That should do, yaya.
+ src << "You are not a slime thing! "
+ return
+
+ playsound(src.loc, 'sound/effects/slime_squish.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
+ message = "squishes."
+ m_type = 1
+
+
if ("blink")
message = "blinks."
m_type = 1
@@ -202,14 +226,20 @@
src.sleeping += 10 //Short-short nap
m_type = 1
- if ("cough")
+ if("cough", "coughs")
if(miming)
message = "appears to cough!"
m_type = 1
else
- if (!muzzled)
+ if(!muzzled)
message = "coughs!"
m_type = 2
+ if(gender == FEMALE)
+ if(species.female_cough_sounds)
+ playsound(src, pick(species.female_cough_sounds), 120)
+ else
+ if(species.male_cough_sounds)
+ playsound(src, pick(species.male_cough_sounds), 120)
else
message = "makes a strong noise."
m_type = 2
@@ -456,13 +486,17 @@
message = "trembles in fear!"
m_type = 1
- if ("sneeze")
- if (miming)
+ if("sneeze", "sneezes")
+ if(miming)
message = "sneezes."
m_type = 1
else
- if (!muzzled)
+ if(!muzzled)
message = "sneezes."
+ if(gender == FEMALE)
+ playsound(src, species.female_sneeze_sound, 70)
+ else
+ playsound(src, species.male_sneeze_sound, 70)
m_type = 2
else
message = "makes a strange noise."
@@ -565,18 +599,59 @@
else
message = "sadly can't find anybody to give daps to, and daps [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]. Shameful."
- if ("scream")
- if (miming)
+ if("slap", "slaps")
+ m_type = 1
+ if(!restrained())
+ var/M = null
+ if(param)
+ for(var/mob/A in view(1, null))
+ if(param == A.name)
+ M = A
+ break
+ if(M)
+ message = "slaps [M] across the face. Ouch! "
+ playsound(loc, 'sound/effects/snap.ogg', 50, 1)
+ else
+ message = "slaps [get_visible_gender() == MALE ? "himself" : get_visible_gender() == FEMALE ? "herself" : "themselves"]! "
+ playsound(loc, 'sound/effects/snap.ogg', 50, 1)
+
+ if("scream", "screams")
+ if(miming)
message = "acts out a scream!"
m_type = 1
else
- if (!muzzled)
- message = "screams!"
+ if(!muzzled)
+ message = "[species.scream_verb]!"
m_type = 2
+ /* Removed, pending the location of some actually good, properly licensed sounds.
+ if(gender == FEMALE)
+ playsound(loc, "[species.female_scream_sound]", 80, 1)
+ else
+ playsound(loc, "[species.male_scream_sound]", 80, 1) //default to male screams if no gender is present.
+ */
else
message = "makes a very loud noise."
m_type = 2
+ if("snap", "snaps")
+ m_type = 2
+ var/mob/living/carbon/human/H = src
+ var/obj/item/organ/external/L = H.get_organ("l_hand")
+ var/obj/item/organ/external/R = H.get_organ("r_hand")
+ var/left_hand_good = 0
+ var/right_hand_good = 0
+ if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.splinted)) && (!(L.status & ORGAN_BROKEN)))
+ left_hand_good = 1
+ if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.splinted)) && (!(R.status & ORGAN_BROKEN)))
+ right_hand_good = 1
+
+ if(!left_hand_good && !right_hand_good)
+ to_chat(usr, "You need at least one hand in good working order to snap your fingers.")
+ return
+
+ message = "snaps [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] fingers."
+ playsound(loc, 'sound/effects/fingersnap.ogg', 50, 1, -3)
+
if("swish")
src.animate_tail_once()
@@ -597,18 +672,14 @@
return
if ("help")
- src << {"blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag,
-frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom,
-raise, salute, shake, shiver, shrug, sigh, signal-#1-10, smile, sneeze, sniff, snore, stare-(none)/mob, stopsway/swag, sway/wag, swish, tremble, twitch,
-twitch_v, vomit, whimper, wink, yawn"}
+ src << "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \
+ frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, \
+ raise, salute, scream, sneeze, shake, shiver, shrug, sigh, signal-#1-10, slap-(none)/mob, smile, sneeze, sniff, snore, stare-(none)/mob, stopsway/swag, sway/wag, swish, tremble, twitch, \
+ twitch_v, vomit, whimper, wink, yawn. Synthetics: beep, buzz, yes, no, rcough, rsneeze, ping"
else
src << "\blue Unusable emote '[act]'. Say *help for a list."
-
-
-
-
if (message)
log_emote("[name]/[key] : [message]")
custom_emote(m_type,message)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index ca98cadd07..2953591a5a 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -82,6 +82,20 @@
var/datum/gender/T = gender_datums[get_gender()]
if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender
T = gender_datums[PLURAL]
+
+ else if(species && species.ambiguous_genders)
+ var/can_detect_gender = FALSE
+ if(isobserver(user)) // Ghosts are all knowing.
+ can_detect_gender = TRUE
+ if(issilicon(user)) // Borgs are too because science.
+ can_detect_gender = TRUE
+ else if(ishuman(user))
+ var/mob/living/carbon/human/H = user
+ if(H.species && istype(species, H.species))
+ can_detect_gender = TRUE
+
+ if(!can_detect_gender)
+ T = gender_datums[PLURAL] // Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species.
else
if(icon)
msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
@@ -266,7 +280,7 @@
msg += "[T.He] [T.is] twitching ever so slightly. \n"
//splints
- for(var/organ in list(BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM))
+ for(var/organ in BP_ALL)
var/obj/item/organ/external/o = get_organ(organ)
if(o && o.splinted && o.splinted.loc == o)
msg += "[T.He] [T.has] \a [o.splinted] on [T.his] [o.name]! \n"
@@ -361,6 +375,11 @@
if(((temp.status & ORGAN_BROKEN) && temp.brute_dam > temp.min_broken_damage) || (temp.status & ORGAN_MUTATED))
wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] is dented and swollen! "
+ if(temp.germ_level > INFECTION_LEVEL_TWO && !(temp.status & ORGAN_DEAD))
+ wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] looks very infected! "
+ else if(temp.status & ORGAN_DEAD)
+ wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] looks rotten! "
+
if(!wound_flavor_text["[temp.name]"] && (temp.status & ORGAN_BLEEDING))
is_bleeding["[temp.name]"] = "[T.His] [temp.name] is bleeding! "
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 5269d940a0..500b2a80bc 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -5,7 +5,7 @@
icon = 'icons/mob/human.dmi'
icon_state = "body_m_s"
- var/list/hud_list[10]
+ var/list/hud_list[TOTAL_HUDS]
var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us.
var/obj/item/weapon/rig/wearing_rig // This is very not good, but it's much much better than calling get_rig() every update_canmove() call.
var/last_push_time //For human_attackhand.dm, keeps track of the last use of disarm
@@ -33,7 +33,7 @@
hud_list[HEALTH_HUD] = new /image/hud_overlay('icons/mob/hud_med.dmi', src, "100")
hud_list[STATUS_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudhealthy")
hud_list[LIFE_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudhealthy")
- hud_list[ID_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudunknown")
+ hud_list[ID_HUD] = new /image/hud_overlay(using_map.id_hud_icons, src, "hudunknown")
hud_list[WANTED_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudblank")
hud_list[IMPLOYAL_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudblank")
hud_list[IMPCHEM_HUD] = new /image/hud_overlay('icons/mob/hud.dmi', src, "hudblank")
@@ -1050,7 +1050,7 @@
"A spike of pain jolts your [organ.name] as you bump [O] inside. ", \
"Your movement jostles [O] in your [organ.name] painfully. ", \
"Your movement jostles [O] in your [organ.name] painfully. ")
- src << msg
+ custom_pain(msg, 40)
organ.take_damage(rand(1,3), 0, 0)
if(!(organ.robotic >= ORGAN_ROBOT) && (should_have_organ(O_HEART))) //There is no blood in protheses.
@@ -1452,6 +1452,7 @@
if(stat) return
var/datum/category_group/underwear/UWC = input(usr, "Choose underwear:", "Show/hide underwear") as null|anything in global_underwear.categories
+ if(!UWC) return
var/datum/category_item/underwear/UWI = all_underwear[UWC.name]
if(!UWI || UWI.name == "None")
src << "You do not have [UWC.gender==PLURAL ? "[UWC.display_name]" : "\a [UWC.display_name]"]. "
@@ -1489,7 +1490,7 @@
if(check_organ)
if(!istype(check_organ))
return 0
- return check_organ.can_feel_pain()
+ return check_organ.organ_can_feel_pain()
return !(species.flags & NO_PAIN)
/mob/living/carbon/human/is_muzzled()
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index fccf6afbf6..01005b031b 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -43,6 +43,7 @@
return 0
var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
+ var/armor_soak = get_armor_soak(affecting, "melee")
if(HULK in H.mutations)
damage += 5
@@ -51,7 +52,10 @@
visible_message("\red [H] has punched [src]! ")
- apply_damage(damage, HALLOSS, affecting, armor_block)
+ if(armor_soak >= damage)
+ return
+
+ apply_damage(damage, HALLOSS, affecting, armor_block, armor_soak)
if(damage >= 9)
visible_message("\red [H] has weakened [src]! ")
apply_effect(4, WEAKEN, armor_block)
@@ -245,11 +249,12 @@
real_damage = max(1, real_damage)
var/armour = run_armor_check(affecting, "melee")
+ var/soaked = get_armor_soak(affecting, "melee")
// Apply additional unarmed effects.
attack.apply_effects(H, src, armour, rand_damage, hit_zone)
// Finally, apply damage to target
- apply_damage(real_damage, (attack.deal_halloss ? HALLOSS : BRUTE), affecting, armour, sharp=attack.sharp, edge=attack.edge)
+ apply_damage(real_damage, (attack.deal_halloss ? HALLOSS : BRUTE), affecting, armour, soaked, sharp=attack.sharp, edge=attack.edge)
if(I_DISARM)
M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey]) ")
@@ -325,7 +330,8 @@
var/dam_zone = pick(organs_by_name)
var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone))
var/armor_block = run_armor_check(affecting, "melee")
- apply_damage(damage, BRUTE, affecting, armor_block)
+ var/armor_soak = get_armor_soak(affecting, "melee")
+ apply_damage(damage, BRUTE, affecting, armor_block, armor_soak)
updatehealth()
return 1
diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm
index 50b2732eeb..fa3d19ebab 100644
--- a/code/modules/mob/living/carbon/human/human_damage.dm
+++ b/code/modules/mob/living/carbon/human/human_damage.dm
@@ -376,7 +376,7 @@ This function restores all organs.
if((damagetype != BRUTE) && (damagetype != BURN))
if(damagetype == HALLOSS)
if((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
- if(organ && organ.can_feel_pain())
+ if(organ && organ.organ_can_feel_pain())
emote("scream")
..(damage, damagetype, def_zone, blocked)
return 1
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index a6471c4aeb..86bbdebc15 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -67,7 +67,7 @@ emp_act
emote("me", 1, "drops what they were holding, their [affected.name] malfunctioning!")
else
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
- emote("me", 1, "[affected.can_feel_pain() ? "" : emote_scream]drops what they were holding in their [affected.name]!")
+ emote("me", 1, "[affected.organ_can_feel_pain() ? "" : emote_scream] drops what they were holding in their [affected.name]!")
..(stun_amount, agony_amount, def_zone)
@@ -93,6 +93,29 @@ emp_act
total += weight
return (armorval/max(total, 1))
+//Like getarmor, but the value it returns will be numerical damage reduction
+/mob/living/carbon/human/getsoak(var/def_zone, var/type)
+ var/soakval = 0
+ var/total = 0
+
+ if(def_zone)
+ if(isorgan(def_zone))
+ return getsoak_organ(def_zone, type)
+ var/obj/item/organ/external/affecting = get_organ(def_zone)
+ if(affecting)
+ return getsoak_organ(affecting, type)
+ //If a specific bodypart is targetted, check how that bodypart is protected and return the value.
+
+ //If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values
+ for(var/organ_name in organs_by_name)
+ if (organ_name in organ_rel_size)
+ var/obj/item/organ/external/organ = organs_by_name[organ_name]
+ if(organ)
+ var/weight = organ_rel_size[organ_name]
+ soakval += getsoak_organ(organ, type) * weight
+ total += weight
+ return (soakval/max(total, 1))
+
//this proc returns the Siemens coefficient of electrical resistivity for a particular external organ.
/mob/living/carbon/human/proc/get_siemens_coefficient_organ(var/obj/item/organ/external/def_zone)
if (!def_zone)
@@ -119,6 +142,17 @@ emp_act
protection += C.armor[type]
return protection
+/mob/living/carbon/human/proc/getsoak_organ(var/obj/item/organ/external/def_zone, var/type)
+ if(!type || !def_zone) return 0
+ var/soaked = 0
+ var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes)
+ for(var/gear in protective_gear)
+ if(gear && istype(gear ,/obj/item/clothing))
+ var/obj/item/clothing/C = gear
+ if(istype(C) && C.body_parts_covered & def_zone.body_part)
+ soaked += C.armorsoak[type]
+ return soaked
+
/mob/living/carbon/human/proc/check_head_coverage()
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform)
@@ -195,25 +229,35 @@ emp_act
visible_message("[src] has been [I.attack_verb.len? pick(I.attack_verb) : "attacked"] in the [affecting.name] with [I.name] by [user]! ")
+ var/soaked = get_armor_soak(hit_zone, "melee", I.armor_penetration)
+
+ if(soaked >= effective_force)
+ src << "Your armor absorbs the force of [I.name]!"
+ return
+
var/blocked = run_armor_check(hit_zone, "melee", I.armor_penetration, "Your armor has protected your [affecting.name].", "Your armor has softened the blow to your [affecting.name].")
- standard_weapon_hit_effects(I, user, effective_force, blocked, hit_zone)
+
+ standard_weapon_hit_effects(I, user, effective_force, blocked, soaked, hit_zone)
return blocked
-/mob/living/carbon/human/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/hit_zone)
+/mob/living/carbon/human/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/soaked, var/hit_zone)
var/obj/item/organ/external/affecting = get_organ(hit_zone)
if(!affecting)
return 0
+ if(soaked >= effective_force)
+ return 0
+
// Handle striking to cripple.
if(user.a_intent == I_DISARM)
effective_force *= 0.5 //reduced effective force...
- if(!..(I, user, effective_force, blocked, hit_zone))
+ if(!..(I, user, effective_force, blocked, soaked, hit_zone))
return 0
//set the dislocate mult less than the effective force mult so that
//dislocating limbs on disarm is a bit easier than breaking limbs on harm
- attack_joint(affecting, I, effective_force, 0.75, blocked) //...but can dislocate joints
+ attack_joint(affecting, I, effective_force, 0.75, blocked, soaked) //...but can dislocate joints
else if(!..())
return 0
@@ -243,7 +287,7 @@ emp_act
switch(hit_zone)
if("head")//Harder to score a stun but if you do it lasts a bit longer
if(prob(effective_force))
- apply_effect(20, PARALYZE, blocked)
+ apply_effect(20, PARALYZE, blocked, soaked)
visible_message("\The [src] has been knocked unconscious! ")
if(bloody)//Apply blood
if(wear_mask)
@@ -257,15 +301,15 @@ emp_act
update_inv_glasses(0)
if("chest")//Easier to score a stun but lasts less time
if(prob(effective_force + 10))
- apply_effect(6, WEAKEN, blocked)
+ apply_effect(6, WEAKEN, blocked, soaked)
visible_message("\The [src] has been knocked down! ")
if(bloody)
bloody_body(src)
return 1
-/mob/living/carbon/human/proc/attack_joint(var/obj/item/organ/external/organ, var/obj/item/W, var/effective_force, var/dislocate_mult, var/blocked)
- if(!organ || (organ.dislocated == 2) || (organ.dislocated == -1) || blocked >= 100)
+/mob/living/carbon/human/proc/attack_joint(var/obj/item/organ/external/organ, var/obj/item/W, var/effective_force, var/dislocate_mult, var/blocked, var/soaked)
+ if(!organ || (organ.dislocated == 2) || (organ.dislocated == -1) || blocked >= 100 || soaked > effective_force)
return 0
if(W.damtype != BRUTE)
@@ -338,10 +382,6 @@ emp_act
var/hit_area = affecting.name
src.visible_message("\red [src] has been hit in the [hit_area] by [O].")
- var/armor = run_armor_check(affecting, "melee", O.armor_penetration, "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") //I guess "melee" is the best fit here
-
- if(armor < 100)
- apply_damage(throw_damage, dtype, zone, armor, is_sharp(O), has_edge(O), O)
if(ismob(O.thrower))
var/mob/M = O.thrower
@@ -352,12 +392,25 @@ emp_act
if(!istype(src,/mob/living/simple_animal/mouse))
msg_admin_attack("[src.name] ([src.ckey]) was hit by a [O], thrown by [M.name] ([assailant.ckey]) (JMP )")
+ //If the armor absorbs all of the damage, skip the rest of the calculations
+ var/soaked = get_armor_soak(affecting, "melee", O.armor_penetration)
+ if(soaked >= throw_damage)
+ src << "Your armor absorbs the force of [O.name]!"
+ return
+
+ var/armor = run_armor_check(affecting, "melee", O.armor_penetration, "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") //I guess "melee" is the best fit here
+ if(armor < 100)
+ apply_damage(throw_damage, dtype, zone, armor, soaked, is_sharp(O), has_edge(O), O)
+
+
//thrown weapon embedded object code.
if(dtype == BRUTE && istype(O,/obj/item))
var/obj/item/I = O
if (!is_robot_module(I))
var/sharp = is_sharp(I)
var/damage = throw_damage
+ if (soaked)
+ damage -= soaked
if (armor)
damage /= armor+1
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index f265e3febb..0a1817e6b2 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -37,7 +37,7 @@
var/list/all_underwear_metadata = list()
var/list/hide_underwear = list()
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
- var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.
+ var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, Old, or Rugged.
// General information
var/home_system = ""
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index 80bfd2259d..fe6381c6db 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -76,6 +76,10 @@
var/obj/item/pulled = pulling
tally += max(pulled.slowdown, 0)
+ var/turf/T = get_turf(src)
+ if(T && T.movement_cost)
+ tally += T.movement_cost
+
if(CE_SPEEDBOOST in chem_effects)
if (tally >= 0) // cut any penalties in half
tally = tally/2
diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm
index 4d405504a2..7c4e38730f 100644
--- a/code/modules/mob/living/carbon/human/human_organs.dm
+++ b/code/modules/mob/living/carbon/human/human_organs.dm
@@ -17,6 +17,8 @@
var/damage_this_tick = getToxLoss()
for(var/obj/item/organ/external/O in organs)
damage_this_tick += O.burn_dam + O.brute_dam
+ if(O.germ_level)
+ damage_this_tick += 1 //Just tap it if we have germs so we can process those
if(damage_this_tick > last_dam)
. = TRUE
@@ -54,7 +56,7 @@
if (!lying && !buckled && world.time - l_move_time < 15)
//Moving around with fractured ribs won't do you any good
- if (prob(10) && !stat && can_feel_pain() && analgesic < 50 && E.is_broken() && E.internal_organs.len)
+ if (prob(10) && !stat && can_feel_pain() && chem_effects[CE_PAINKILLER] < 50 && E.is_broken() && E.internal_organs.len)
custom_pain("Pain jolts through your broken [E.encased ? E.encased : E.name], staggering you!", 50)
drop_item(loc)
Stun(2)
@@ -98,7 +100,7 @@
else if (E.is_dislocated())
stance_damage += 0.5
- if(E) limb_pain = E.can_feel_pain()
+ if(E) limb_pain = E.organ_can_feel_pain()
// Canes and crutches help you stand (if the latter is ever added)
// One cane mitigates a broken leg+foot, or a missing foot.
@@ -157,7 +159,7 @@
drop_from_inventory(r_hand)
var/emote_scream = pick("screams in pain and ", "lets out a sharp cry and ", "cries out and ")
- emote("me", 1, "[(E.can_feel_pain()) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
+ emote("me", 1, "[(can_feel_pain()) ? "" : emote_scream ]drops what they were holding in their [E.name]!")
else if(E.is_malfunctioning())
switch(E.body_part)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 014ba7eb0d..7ecf8cd8ef 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -186,7 +186,7 @@
var/rn = rand(0, 200)
if(getBrainLoss() >= 5)
if(0 <= rn && rn <= 3)
- custom_pain("Your head feels numb and painful.")
+ custom_pain("Your head feels numb and painful.", 10)
if(getBrainLoss() >= 15)
if(4 <= rn && rn <= 6) if(eye_blurry <= 0)
src << "It becomes hard to see for some reason. "
@@ -328,17 +328,20 @@
if(status_flags & GODMODE)
return
+ if(suiciding)
+ failed_last_breath = 1
+ adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster
+ oxygen_alert = max(oxygen_alert, 1)
+ suiciding --
+ return 0
+
if(does_not_breathe)
failed_last_breath = 0
adjustOxyLoss(-5)
return
- if(!breath || (breath.total_moles == 0) || suiciding)
+ if(!breath || (breath.total_moles == 0))
failed_last_breath = 1
- if(suiciding)
- adjustOxyLoss(2)//If you are suiciding, you should die a little bit faster
- oxygen_alert = max(oxygen_alert, 1)
- return 0
if(health > config.health_threshold_crit)
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
else
@@ -350,8 +353,11 @@
rupture_lung()
if(should_have_organ("brain"))
+ var/brainOxPercent = 0.02 //Default2% of your current oxyloss is applied as brain damage, 50 oxyloss is 1 brain damage
+ if(CE_STABLE in chem_effects)
+ brainOxPercent = 0.01 //Halved in effect
if(prob(5))
- adjustBrainLoss(0.02 * oxyloss) //2% of your current oxyloss is applied as brain damage, 50 oxyloss is 1 brain damage
+ adjustBrainLoss(brainOxPercent * oxyloss)
oxygen_alert = max(oxygen_alert, 1)
@@ -794,7 +800,6 @@
if(reagents)
chem_effects.Cut()
- analgesic = 0
if(!isSynthetic())
@@ -802,9 +807,6 @@
if(ingested) ingested.metabolize()
if(bloodstr) bloodstr.metabolize()
- if(CE_PAINKILLER in chem_effects)
- analgesic = chem_effects[CE_PAINKILLER]
-
var/total_phoronloss = 0
for(var/obj/item/I in src)
if(I.contaminated)
@@ -1155,7 +1157,7 @@
see_invisible = SEE_INVISIBLE_LIVING
if(healths)
- if (analgesic > 100)
+ if (chem_effects[CE_PAINKILLER] > 100)
healths.icon_state = "health_numb"
else
// Generate a by-limb health display.
@@ -1437,8 +1439,11 @@
shock_stage = max(shock_stage-1, 0)
return
+ if(stat)
+ return 0
+
if(shock_stage == 10)
- src << "[pick("It hurts so much", "You really need some painkillers", "Dear god, the pain")]! "
+ custom_pain("[pick("It hurts so much", "You really need some painkillers", "Dear god, the pain")]!", 40)
if(shock_stage >= 30)
if(shock_stage == 30) emote("me",1,"is having trouble keeping their eyes open.")
diff --git a/code/modules/mob/living/carbon/human/species/outsider/vox.dm b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
index 1a9a986dd1..ef6bf12729 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/vox.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/vox.dm
@@ -22,6 +22,14 @@
speech_sounds = list('sound/voice/shriek1.ogg')
speech_chance = 20
+ scream_verb = "shrieks"
+ male_scream_sound = 'sound/voice/shriek1.ogg'
+ female_scream_sound = 'sound/voice/shriek1.ogg'
+ male_cough_sounds = list('sound/voice/shriekcough.ogg')
+ female_cough_sounds = list('sound/voice/shriekcough.ogg')
+ male_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
+ female_sneeze_sound = 'sound/voice/shrieksneeze.ogg'
+
warning_low_pressure = 50
hazard_low_pressure = 0
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 6a3b4c7ad1..ff16d332fe 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -50,6 +50,15 @@
var/num_alternate_languages = 0 // How many secondary languages are available to select at character creation
var/name_language = LANGUAGE_GALCOM // The language to use when determining names for this species, or null to use the first name/last name generator
+ //Soundy emotey things.
+ var/scream_verb = "screams"
+ var/male_scream_sound //= 'sound/goonstation/voice/male_scream.ogg' Removed due to licensing, replace!
+ var/female_scream_sound //= 'sound/goonstation/voice/female_scream.ogg' Removed due to licensing, replace!
+ var/male_cough_sounds = list('sound/effects/mob_effects/m_cougha.ogg','sound/effects/mob_effects/m_coughb.ogg', 'sound/effects/mob_effects/m_coughc.ogg')
+ var/female_cough_sounds = list('sound/effects/mob_effects/f_cougha.ogg','sound/effects/mob_effects/f_coughb.ogg')
+ var/male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
+ var/female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
+
// Combat vars.
var/total_health = 100 // Point at which the mob will enter crit.
var/list/unarmed_types = list( // Possible unarmed attacks that the mob will use in combat,
@@ -63,6 +72,7 @@
var/toxins_mod = 1 // Toxloss modifier
var/radiation_mod = 1 // Radiation modifier
var/flash_mod = 1 // Stun from blindness modifier.
+ var/chemOD_mod = 1 // Damage modifier for overdose
var/vision_flags = SEE_SELF // Same flags as glasses.
// Death vars.
@@ -156,6 +166,7 @@
)
var/list/genders = list(MALE, FEMALE)
+ var/ambiguous_genders = FALSE // If true, people examining a member of this species whom are not also the same species will see them as gender neutral. Because aliens.
// Bump vars
var/bump_flag = HUMAN // What are we considered to be when bumped?
@@ -187,12 +198,18 @@
return sanitizeName(name)
/datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1)
+ var/boxtype = /obj/item/weapon/storage/box/survival //Default survival box
+ if(H.isSynthetic())
+ boxtype = /obj/item/weapon/storage/box //Empty box for synths
+ else if(extendedtank)
+ boxtype = /obj/item/weapon/storage/box/engineer //Special box for engineers
+
if(H.backbag == 1)
- if (extendedtank) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H), slot_r_hand)
- else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
+ if (extendedtank) H.equip_to_slot_or_del(new boxtype(H), slot_r_hand)
+ else H.equip_to_slot_or_del(new boxtype(H), slot_r_hand)
else
- if (extendedtank) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(H.back), slot_in_backpack)
- else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
+ if (extendedtank) H.equip_to_slot_or_del(new boxtype(H.back), slot_in_backpack)
+ else H.equip_to_slot_or_del(new boxtype(H.back), slot_in_backpack)
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
@@ -305,3 +322,7 @@
// Called in life() when the mob has no client.
/datum/species/proc/handle_npc(var/mob/living/carbon/human/H)
return
+
+// Called when lying down on a water tile.
+/datum/species/proc/can_breathe_water()
+ return FALSE
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
index e7b4588e8f..e239b8118c 100644
--- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm
+++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
@@ -28,6 +28,9 @@ var/datum/species/shapeshifter/promethean/prometheans
breath_type = null
poison_type = null
+ male_cough_sounds = list('sound/effects/slime_squish.ogg')
+ female_cough_sounds = list('sound/effects/slime_squish.ogg')
+
gluttonous = 1
virus_immune = 1
blood_volume = 560
diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm
index df2bbd8cc8..120400413b 100644
--- a/code/modules/mob/living/carbon/human/species/station/seromi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm
@@ -38,6 +38,8 @@
blood_volume = 400
hunger_factor = 0.2
+ ambiguous_genders = TRUE
+
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR
bump_flag = MONKEY
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index 28eb05bc25..5015e19940 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -31,9 +31,11 @@
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
primitive_form = "Stok"
darksight = 3
+ ambiguous_genders = TRUE
gluttonous = 1
slowdown = 0.5
- brute_mod = 0.8
+ brute_mod = 0.9
+ burn_mod = 0.9
num_alternate_languages = 3
secondary_langs = list(LANGUAGE_UNATHI)
name_language = LANGUAGE_UNATHI
@@ -94,6 +96,7 @@
slowdown = -0.5
brute_mod = 1.15
burn_mod = 1.15
+ flash_mod = 1.1
metabolic_rate = 1.1
gluttonous = 1
num_alternate_languages = 3
@@ -136,6 +139,15 @@
)
cold_discomfort_level = 275
+ has_organ = list( //No appendix.
+ O_HEART = /obj/item/organ/internal/heart,
+ O_LUNGS = /obj/item/organ/internal/lungs,
+ O_LIVER = /obj/item/organ/internal/liver,
+ O_KIDNEYS = /obj/item/organ/internal/kidneys,
+ O_BRAIN = /obj/item/organ/internal/brain,
+ O_EYES = /obj/item/organ/internal/eyes
+ )
+
/datum/species/tajaran/equip_survival_gear(var/mob/living/carbon/human/H)
..()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes)
@@ -158,9 +170,13 @@
health_hud_intensity = 2
min_age = 19
- max_age = 80
+ max_age = 130
darksight = 4
+ flash_mod = 1.2
+ chemOD_mod = 0.9
+
+ ambiguous_genders = TRUE
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR
@@ -193,6 +209,9 @@
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
)
+/datum/species/skrell/can_breathe_water()
+ return TRUE
+
/datum/species/diona
name = "Diona"
name_plural = "Dionaea"
diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm
index af3e65b091..2de060887f 100644
--- a/code/modules/mob/living/carbon/human/unarmed_attack.dm
+++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm
@@ -97,7 +97,7 @@ var/global/list/sparring_attack_cache = list()
if(eyes)
eyes.take_damage(rand(3,4), 1)
user.visible_message("[user] presses \his [eye_attack_text] into [target]'s [eyes.name]! ")
- var/eye_pain = eyes.can_feel_pain()
+ var/eye_pain = eyes.organ_can_feel_pain()
target << "You experience[(eye_pain) ? "" : " immense pain as you feel" ] [eye_attack_text_victim] being pressed into your [eyes.name][(eye_pain)? "." : "!"] "
return
user.visible_message("[user] attempts to press \his [eye_attack_text] into [target]'s eyes, but they don't have any! ")
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 3f4c00f8a5..a84a2889dc 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -117,7 +117,7 @@ Please contact me on #coderbus IRC. ~Carn x
#define GLOVES_LAYER 9
#define BELT_LAYER 10
#define SUIT_LAYER 11
-#define TAIL_LAYER 12 //bs12 specific.
+#define TAIL_LAYER 12 //bs12 specific. //In a perfect world the parts of the tail that show between legs would be on a new layer. Until then, sprite's been tweaked
#define GLASSES_LAYER 13
#define BELT_LAYER_ALT 14
#define SUIT_STORE_LAYER 15
@@ -132,8 +132,9 @@ Please contact me on #coderbus IRC. ~Carn x
#define L_HAND_LAYER 24
#define R_HAND_LAYER 25
#define FIRE_LAYER 26 //If you're on fire
-#define TARGETED_LAYER 27 //BS12: Layer for the target overlay from weapon targeting system
-#define TOTAL_LAYERS 27
+#define WATER_LAYER 27 //If you're submerged in water.
+#define TARGETED_LAYER 28 //BS12: Layer for the target overlay from weapon targeting system
+#define TOTAL_LAYERS 29
//////////////////////////////////
/mob/living/carbon/human
@@ -256,25 +257,26 @@ var/global/list/damage_icon_parts = list()
var/obj/item/organ/external/part = organs_by_name[organ_tag]
if(isnull(part) || part.is_stump())
icon_key += "0"
- else if(part.robotic >= ORGAN_ROBOT)
- icon_key += "2[part.model ? "-[part.model]": ""]"
- robolimb_count++
- if(part.organ_tag == BP_HEAD || part.organ_tag == BP_TORSO || part.organ_tag == BP_GROIN)
- robobody_count ++
- else if(part.status & ORGAN_DEAD)
- icon_key += "3"
- else
- icon_key += "1"
+ continue
if(part)
icon_key += "[part.species.get_race_key(part.owner)]"
icon_key += "[part.dna.GetUIState(DNA_UI_GENDER)]"
- icon_key += "[part.dna.GetUIValue(DNA_UI_SKIN_TONE)]"
+ icon_key += "[part.s_tone]"
if(part.s_col && part.s_col.len >= 3)
icon_key += "[rgb(part.s_col[1],part.s_col[2],part.s_col[3])]"
if(part.body_hair && part.h_col && part.h_col.len >= 3)
icon_key += "[rgb(part.h_col[1],part.h_col[2],part.h_col[3])]"
else
icon_key += "#000000"
+ for(var/M in part.markings)
+ icon_key += "[M][part.markings[M]["color"]]"
+
+ if(part.robotic >= ORGAN_ROBOT)
+ icon_key += "2[part.model ? "-[part.model]": ""]"
+ else if(part.status & ORGAN_DEAD)
+ icon_key += "3"
+ else
+ icon_key += "1"
icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]"
@@ -461,6 +463,7 @@ var/global/list/damage_icon_parts = list()
update_inv_legcuffed(0)
update_inv_pockets(0)
update_fire(0)
+ update_water(0)
update_surgery(0)
UpdateDamageIcon()
update_icons()
@@ -893,6 +896,11 @@ var/global/list/damage_icon_parts = list()
if(hud_used)
hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar
+//update whether handcuffs appears on our hud.
+/mob/living/carbon/proc/update_hud_handcuffed()
+ if(hud_used && hud_used.l_hand_hud_object && hud_used.r_hand_hud_object)
+ hud_used.l_hand_hud_object.update_icon()
+ hud_used.r_hand_hud_object.update_icon()
/mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1)
if(handcuffed)
@@ -911,6 +919,8 @@ var/global/list/damage_icon_parts = list()
else
overlays_standing[HANDCUFF_LAYER] = null
+
+ update_hud_handcuffed()
if(update_icons) update_icons()
/mob/living/carbon/human/update_inv_legcuffed(var/update_icons=1)
@@ -1116,6 +1126,17 @@ var/global/list/damage_icon_parts = list()
if(update_icons) update_icons()
+/mob/living/carbon/human/update_water(var/update_icons=1)
+ overlays_standing[WATER_LAYER] = null
+ var/depth = check_submerged()
+ if(depth)
+ if(!lying)
+ overlays_standing[WATER_LAYER] = image("icon" = 'icons/mob/submerged.dmi', "icon_state" = "human_swimming_[depth]")
+ // Lying sideways with the overlay looked strange. Another overlay will be needed in the future.
+
+ if(update_icons)
+ update_icons()
+
/mob/living/carbon/human/proc/update_surgery(var/update_icons=1)
overlays_standing[SURGERY_LEVEL] = null
var/image/total = new
@@ -1151,4 +1172,5 @@ var/global/list/damage_icon_parts = list()
#undef R_HAND_LAYER
#undef TARGETED_LAYER
#undef FIRE_LAYER
+#undef WATER_LAYER
#undef TOTAL_LAYERS
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 69ddb59038..7bbc4110dd 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -67,15 +67,11 @@
/mob/living/carbon/slime/handle_chemicals_in_body()
chem_effects.Cut()
- analgesic = 0
if(touching) touching.metabolize()
if(ingested) ingested.metabolize()
if(bloodstr) bloodstr.metabolize()
- if(CE_PAINKILLER in chem_effects)
- analgesic = chem_effects[CE_PAINKILLER]
-
src.updatehealth()
return //TODO: DEFERRED
diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm
index 2e1cc29595..933596ef5e 100644
--- a/code/modules/mob/living/carbon/metroid/powers.dm
+++ b/code/modules/mob/living/carbon/metroid/powers.dm
@@ -60,7 +60,7 @@
var/painMes = pick("You can feel your body becoming weak!", "You feel like you're about to die!", "You feel every part of your body screaming in agony!", "A low, rolling pain passes through your body!", "Your body feels as if it's falling apart!", "You feel extremely weak!", "A sharp, deep pain bathes every inch of your body!")
if (ishuman(M))
var/mob/living/carbon/human/H = M
- H.custom_pain(painMes)
+ H.custom_pain(painMes, 100)
else if (istype(M, /mob/living/carbon))
var/mob/living/carbon/C = M
if (C.can_feel_pain())
diff --git a/code/modules/mob/living/carbon/shock.dm b/code/modules/mob/living/carbon/shock.dm
index a742bc8959..894a0a98b0 100644
--- a/code/modules/mob/living/carbon/shock.dm
+++ b/code/modules/mob/living/carbon/shock.dm
@@ -14,7 +14,7 @@
1.2 * src.getShockBruteLoss() + \
1.7 * src.getCloneLoss() + \
2 * src.halloss + \
- -1 * src.analgesic
+ -1 * src.chem_effects[CE_PAINKILLER]
if(src.slurring)
src.traumatic_shock -= 20
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index f09eb3741f..552319e6fe 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -8,11 +8,13 @@
Returns
standard 0 if fail
*/
-/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null, var/sharp = 0, var/edge = 0)
+/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/soaked = 0, var/used_weapon = null, var/sharp = 0, var/edge = 0)
if(Debug2)
world.log << "## DEBUG: apply_damage() was called on [src], with [damage] damage, and an armor value of [blocked]."
- if(!damage || (blocked >= 100))
+ if(!damage || (blocked >= 100) || soaked >= damage)
return 0
+ if(soaked)
+ damage -= soaked
blocked = (100-blocked)/100
switch(damagetype)
if(BRUTE)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index d31a8f2b0c..dfe57c55b2 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -716,11 +716,20 @@ default behaviour is:
src << "You feel like you are about to throw up! "
sleep(100) //and you have 10 more for mad dash to the bucket
+ //Damaged livers cause you to vomit blood.
+ if(!blood_vomit)
+ if(ishuman(src))
+ var/mob/living/carbon/human/H = src
+ if(!H.isSynthetic())
+ var/obj/item/organ/internal/liver/L = H.internal_organs_by_name["liver"]
+ if(L.is_broken())
+ blood_vomit = 1
+
Stun(5)
src.visible_message("[src] throws up! ","You throw up! ")
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
- var/turf/simulated/T = get_turf(src)
+ var/turf/simulated/T = get_turf(src) //TODO: Make add_blood_floor remove blood from human mobs
if(istype(T))
if(blood_vomit)
T.add_blood_floor(src)
@@ -774,6 +783,7 @@ default behaviour is:
density = 0
if(l_hand) unEquip(l_hand)
if(r_hand) unEquip(r_hand)
+ update_water() // Submerges the mob.
else
density = initial(density)
@@ -792,3 +802,10 @@ default behaviour is:
update_icons()
return canmove
+/mob/living/proc/update_water() // Involves overlays for humans. Maybe we'll get submerged sprites for borgs in the future?
+ return
+
+/mob/living/proc/can_feel_pain(var/check_organ)
+ if(isSynthetic())
+ return FALSE
+ return TRUE
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 76be73da6d..c52311820e 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -77,10 +77,20 @@
return 0
*/
+//Certain pieces of armor actually absorb flat amounts of damage from income attacks
+/mob/living/proc/get_armor_soak(var/def_zone = null, var/attack_flag = "melee", var/armour_pen = 0)
+ var/soaked = getsoak(def_zone, attack_flag)
+ //5 points of armor pen negate one point of soak
+ if(armour_pen)
+ soaked = max(soaked - (armour_pen/5), 0)
+ return soaked
+
//if null is passed for def_zone, then this should return something appropriate for all zones (e.g. area effect damage)
/mob/living/proc/getarmor(var/def_zone, var/type)
return 0
+/mob/living/proc/getsoak(var/def_zone, var/type)
+ return 0
/mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone)
@@ -92,14 +102,8 @@
src.visible_message("\red [src] triggers their deadman's switch!")
signaler.signal()
- //Stun Beams
- if(P.taser_effect)
- stun_effect_act(0, P.agony, def_zone, P)
- src <<"\red You have been hit by [P]!"
- qdel(P)
- return
-
//Armor
+ var/soaked = get_armor_soak(def_zone, P.check_armour, P.armor_penetration)
var/absorb = run_armor_check(def_zone, P.check_armour, P.armor_penetration)
var/proj_sharp = is_sharp(P)
var/proj_edge = has_edge(P)
@@ -107,9 +111,18 @@
proj_sharp = 0
proj_edge = 0
+ //Stun Beams
+ if(P.taser_effect)
+ stun_effect_act(0, P.agony, def_zone, P)
+ src <<"\red You have been hit by [P]!"
+ if(!P.nodamage)
+ apply_damage(P.damage, P.damage_type, def_zone, absorb, soaked, 0, P, sharp=proj_sharp, edge=proj_edge)
+ qdel(P)
+ return
+
if(!P.nodamage)
- apply_damage(P.damage, P.damage_type, def_zone, absorb, 0, P, sharp=proj_sharp, edge=proj_edge)
- P.on_hit(src, absorb, def_zone)
+ apply_damage(P.damage, P.damage_type, def_zone, absorb, soaked, 0, P, sharp=proj_sharp, edge=proj_edge)
+ P.on_hit(src, absorb, soaked, def_zone)
if(absorb == 100)
return 2
@@ -151,17 +164,21 @@
/mob/living/proc/hit_with_weapon(obj/item/I, mob/living/user, var/effective_force, var/hit_zone)
visible_message("[src] has been [I.attack_verb.len? pick(I.attack_verb) : "attacked"] with [I.name] by [user]! ")
+ var/soaked = get_armor_soak(hit_zone, "melee")
var/blocked = run_armor_check(hit_zone, "melee")
- standard_weapon_hit_effects(I, user, effective_force, blocked, hit_zone)
- if(I.damtype == BRUTE && prob(33)) // Added blood for whacking non-humans too
- var/turf/simulated/location = get_turf(src)
- if(istype(location)) location.add_blood_floor(src)
+ //If the armor absorbs all of the damage, skip the damage calculation and the blood
+ if(!soaked > effective_force)
+ standard_weapon_hit_effects(I, user, effective_force, blocked, soaked, hit_zone)
+
+ if(I.damtype == BRUTE && prob(33)) // Added blood for whacking non-humans too
+ var/turf/simulated/location = get_turf(src)
+ if(istype(location)) location.add_blood_floor(src)
return blocked
//returns 0 if the effects failed to apply for some reason, 1 otherwise.
-/mob/living/proc/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/hit_zone)
+/mob/living/proc/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/soaked, var/hit_zone)
if(!effective_force || blocked >= 100)
return 0
@@ -169,6 +186,10 @@
if(HULK in user.mutations)
effective_force *= 2
+ //Armor soak
+ if(soaked >= effective_force)
+ return 0
+
//Apply weapon damage
var/weapon_sharp = is_sharp(I)
var/weapon_edge = has_edge(I)
@@ -176,7 +197,7 @@
weapon_sharp = 0
weapon_edge = 0
- apply_damage(effective_force, I.damtype, hit_zone, blocked, sharp=weapon_sharp, edge=weapon_edge, used_weapon=I)
+ apply_damage(effective_force, I.damtype, hit_zone, blocked, soaked, sharp=weapon_sharp, edge=weapon_edge, used_weapon=I)
return 1
@@ -198,8 +219,10 @@
src.visible_message("\red [src] has been hit by [O].")
var/armor = run_armor_check(null, "melee")
+ var/soaked = get_armor_soak(null, "melee")
- apply_damage(throw_damage, dtype, null, armor, is_sharp(O), has_edge(O), O)
+
+ apply_damage(throw_damage, dtype, null, armor, soaked, is_sharp(O), has_edge(O), O)
O.throwing = 0 //it hit, so stop moving
@@ -228,6 +251,9 @@
if(!O || !src) return
if(O.sharp) //Projectile is suitable for pinning.
+ if(soaked >= throw_damage) //Don't embed if it didn't actually damage
+ return
+
//Handles embedding for non-humans and simple_animals.
embed(O)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index c7856f5082..fd4f706b15 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -11,6 +11,7 @@ var/list/department_radio_keys = list(
":s" = "Security", ".s" = "Security",
":w" = "whisper", ".w" = "whisper",
":t" = "Mercenary", ".t" = "Mercenary",
+ ":x" = "Raider", ".x" = "Raider",
":u" = "Supply", ".u" = "Supply",
":v" = "Service", ".v" = "Service",
":p" = "AI Private", ".p" = "AI Private",
@@ -26,6 +27,7 @@ var/list/department_radio_keys = list(
":S" = "Security", ".S" = "Security",
":W" = "whisper", ".W" = "whisper",
":T" = "Mercenary", ".T" = "Mercenary",
+ ":X" = "Raider", ".X" = "Raider",
":U" = "Supply", ".U" = "Supply",
":V" = "Service", ".V" = "Service",
":P" = "AI Private", ".P" = "AI Private",
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 2ef6e62c9d..8583521f85 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -52,7 +52,7 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
density = 1
status_flags = CANSTUN|CANPARALYSE|CANPUSH
shouldnt_see = list(/obj/effect/rune)
- var/list/network = list(station_short)
+ var/list/network = list(NETWORK_DEFAULT)
var/obj/machinery/camera/camera = null
var/list/connected_robots = list()
var/aiRestorePowerRoutine = 0
@@ -132,7 +132,7 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
if (istype(L, /datum/ai_laws))
laws = L
else
- laws = new base_law_type
+ laws = new using_map.default_law_type
aiMulti = new(src)
aiRadio = new(src)
@@ -398,12 +398,12 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
if(emergency_message_cooldown)
usr << "Arrays recycling. Please stand by. "
return
- var/input = sanitize(input(usr, "Please choose a message to transmit to [boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
+ var/input = sanitize(input(usr, "Please choose a message to transmit to [using_map.boss_short] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response. There is a 30 second delay before you may send another message, be clear, full and concise.", "To abort, send an empty message.", ""))
if(!input)
return
CentCom_announce(input, usr)
usr << "Message transmitted. "
- log_say("[key_name(usr)] has made an IA [boss_short] announcement: [input]")
+ log_say("[key_name(usr)] has made an IA [using_map.boss_short] announcement: [input]")
emergency_message_cooldown = 1
spawn(300)
emergency_message_cooldown = 0
@@ -545,82 +545,108 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
return
var/input
- if(alert("Would you like to select a hologram based on a crew member or switch to unique avatar?",,"Crew Member","Unique")=="Crew Member")
+ var/choice = alert("Would you like to select a hologram based on a (visible) crew member, switch to unique avatar, or load your character from your character slot?",,"Crew Member","Unique","My Character")
- var/personnel_list[] = list()
+ switch(choice)
+ if("Crew Member") //A seeable crew member (or a dog)
+ var/list/targets = trackable_mobs()
+ if(targets.len)
+ input = input("Select a crew member:") as null|anything in targets //The definition of "crew member" is a little loose...
+ //This is torture, I know. If someone knows a better way...
+ if(!input) return
+ var/new_holo = getHologramIcon(getCompoundIcon(targets[input]))
+ qdel(holo_icon)
+ holo_icon = new_holo
- for(var/datum/data/record/t in data_core.locked)//Look in data core locked.
- personnel_list["[t.fields["name"]]: [t.fields["rank"]]"] = t.fields["image"]//Pull names, rank, and image.
+ else
+ alert("No suitable records found. Aborting.")
- if(personnel_list.len)
- input = input("Select a crew member:") as null|anything in personnel_list
- var/icon/character_icon = personnel_list[input]
- if(character_icon)
- qdel(holo_icon)//Clear old icon so we're not storing it in memory.
- holo_icon = getHologramIcon(icon(character_icon))
- else
- alert("No suitable records found. Aborting.")
+ if("My Character") //Loaded character slot
+ if(!client || !client.prefs) return
+ var/mob/living/carbon/human/dummy/dummy = new ()
+ //This doesn't include custom_items because that's ... hard.
+ client.prefs.dress_preview_mob(dummy)
+ sleep(1 SECOND) //Strange bug in preview code? Without this, certain things won't show up. Yay race conditions?
+ dummy.regenerate_icons()
- else
- var/icon_list[] = list(
- "default",
- "floating face",
- "carp",
- "ian",
- "runtime",
- "poly",
- "pun pun",
- "male human",
- "female human",
- "male unathi",
- "female unathi",
- "male tajara",
- "female tajara",
- "male tesharii",
- "female tesharii",
- "male skrell",
- "female skrell"
- )
- input = input("Please select a hologram:") as null|anything in icon_list
- if(input)
+ var/new_holo = getHologramIcon(getCompoundIcon(dummy))
qdel(holo_icon)
- switch(input)
- if("default")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
- if("floating face")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2"))
- if("carp")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4"))
- if("ian")
- holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"corgi"))
- if("runtime")
- holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"cat"))
- if("poly")
- holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"parrot_fly"))
- if("pun pun")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"punpun"))
- if("male human")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumm"))
- if("female human")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumf"))
- if("male unathi")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounam"))
- if("female unathi")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounaf"))
- if("male tajara")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajm"))
- if("female tajara")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajf"))
- if("male tesharii")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesm"))
- if("female tesharii")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesf"))
- if("male skrell")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrm"))
- if("female skrell")
- holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrf"))
+ qdel(dummy)
+ holo_icon = new_holo
- return
+ else //A premade from the dmi
+ var/icon_list[] = list(
+ "default",
+ "floating face",
+ "singularity",
+ "drone",
+ "carp",
+ "spider",
+ "bear",
+ "slime",
+ "ian",
+ "runtime",
+ "poly",
+ "pun pun",
+ "male human",
+ "female human",
+ "male unathi",
+ "female unathi",
+ "male tajara",
+ "female tajara",
+ "male tesharii",
+ "female tesharii",
+ "male skrell",
+ "female skrell"
+ )
+ input = input("Please select a hologram:") as null|anything in icon_list
+ if(input)
+ qdel(holo_icon)
+ switch(input)
+ if("default")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
+ if("floating face")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2"))
+ if("singularity")
+ holo_icon = getHologramIcon(icon('icons/obj/singularity.dmi',"singularity_s1"))
+ if("drone")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"drone0"))
+ if("carp")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4"))
+ if("spider")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"nurse"))
+ if("bear")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"brownbear"))
+ if("slime")
+ holo_icon = getHologramIcon(icon('icons/mob/slimes.dmi',"cerulean adult slime"))
+ if("ian")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"corgi"))
+ if("runtime")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"cat"))
+ if("poly")
+ holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"parrot_fly"))
+ if("pun pun")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"punpun"))
+ if("male human")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumm"))
+ if("female human")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumf"))
+ if("male unathi")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounam"))
+ if("female unathi")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounaf"))
+ if("male tajara")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajm"))
+ if("female tajara")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajf"))
+ if("male tesharii")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesm"))
+ if("female tesharii")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesf"))
+ if("male skrell")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrm"))
+ if("female skrell")
+ holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrf"))
//Toggles the luminosity and applies it by re-entereing the camera.
/mob/living/silicon/ai/proc/toggle_camera_light()
diff --git a/code/modules/mob/living/silicon/ai/icons.dm b/code/modules/mob/living/silicon/ai/icons.dm
index ebd47cc02d..2d8bc0d002 100644
--- a/code/modules/mob/living/silicon/ai/icons.dm
+++ b/code/modules/mob/living/silicon/ai/icons.dm
@@ -28,11 +28,14 @@ var/list/datum/ai_icon/ai_icons
name = "Red"
alive_icon = "ai-red"
alive_light = "#F04848"
+ dead_icon = "ai-red_dead"
+ dead_light = "#F04848"
/datum/ai_icon/green
name = "Green"
alive_icon = "ai-wierd"
alive_light = "#00FF99"
+ dead_icon = "ai-weird_dead"
/datum/ai_icon/blue
name = "Blue"
@@ -44,6 +47,11 @@ var/list/datum/ai_icon/ai_icons
alive_icon = "ai-angryface"
alive_light = "#FFFF33"
+/datum/ai_icon/angel
+ name = "Angel"
+ alive_icon = "ai-angel"
+ dead_icon = "ai-angel_dead"
+
/datum/ai_icon/bliss
name = "Bliss"
alive_icon = "ai-bliss"
@@ -57,6 +65,7 @@ var/list/datum/ai_icon/ai_icons
/datum/ai_icon/database
name = "Database"
alive_icon = "ai-database"
+ dead_icon = "ai-database_dead"
/datum/ai_icon/dorf
name = "Dorf"
@@ -80,6 +89,8 @@ var/list/datum/ai_icon/ai_icons
name = "Goon"
alive_icon = "ai-goon"
alive_light = "#3E5C80"
+ dead_icon = "ai-goon-crash"
+ dead_light = "#3E5C80"
/datum/ai_icon/heartline
name = "Heartline"
@@ -91,6 +102,10 @@ var/list/datum/ai_icon/ai_icons
alive_icon = "ai-helios"
alive_light = "#F2CF73"
+/datum/ai_icon/hourglass
+ name = "Hourglass"
+ alive_icon = "ai-hourglass"
+
/datum/ai_icon/inverted
name = "Inverted"
alive_icon = "ai-u"
@@ -100,6 +115,7 @@ var/list/datum/ai_icon/ai_icons
name = "Lonestar"
alive_icon = "ai-lonestar"
alive_light = "#58751C"
+ dead_icon = "ai-lonestar_dead"
/datum/ai_icon/matrix
name = "Matrix"
@@ -110,6 +126,7 @@ var/list/datum/ai_icon/ai_icons
name = "Monochrome"
alive_icon = "ai-mono"
alive_light = "#585858"
+ dead_icon = "ai-mono_dead"
/datum/ai_icon/nanotrasen
name = "NanoTrasen"
@@ -128,13 +145,16 @@ var/list/datum/ai_icon/ai_icons
/datum/ai_icon/soviet
name = "Soviet"
- alive_icon = "ai-redoctober"
+ alive_icon = "ai-soviet"
alive_light = "#FF4307"
+ dead_icon = "ai-soviet_dead"
+ dead_light = "#FF4307"
/datum/ai_icon/Static
name = "Static"
alive_icon = "ai-static"
alive_light = "#4784C1"
+ alive_icon = "ai-static_dead"
/datum/ai_icon/text
name = "Text"
@@ -143,6 +163,7 @@ var/list/datum/ai_icon/ai_icons
/datum/ai_icon/trapped
name = "Trapped"
alive_icon = "ai-hades"
+ dead_icon = "ai-hades_dead"
/datum/ai_icon/triumvirate_static
name = "Triumvirate"
diff --git a/code/modules/mob/living/silicon/ai/malf.dm b/code/modules/mob/living/silicon/ai/malf.dm
index adafb233fb..c33563734f 100644
--- a/code/modules/mob/living/silicon/ai/malf.dm
+++ b/code/modules/mob/living/silicon/ai/malf.dm
@@ -62,7 +62,7 @@
// Off-Station APCs should not count towards CPU generation.
for(var/obj/machinery/power/apc/A in hacked_apcs)
- if(A.z in config.station_levels)
+ if(A.z in using_map.station_levels)
cpu_gain += 0.004
cpu_storage += 10
diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm
index 5f7b07489b..de4c7d2a15 100644
--- a/code/modules/mob/living/silicon/laws.dm
+++ b/code/modules/mob/living/silicon/laws.dm
@@ -4,7 +4,7 @@
/mob/living/silicon/proc/laws_sanity_check()
if (!src.laws)
- laws = new base_law_type
+ laws = new using_map.default_law_type
/mob/living/silicon/proc/has_zeroth_law()
return laws.zeroth_law != null
diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm
index dbe09db217..232a1cec94 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone.dm
@@ -102,7 +102,7 @@ var/list/mob_hat_cache = list()
if(!laws) laws = new law_type
if(!module) module = new module_type(src)
- flavor_text = "It's a tiny little repair drone. The casing is stamped with an corporate logo and the subscript: '[company_name] Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'"
+ flavor_text = "It's a tiny little repair drone. The casing is stamped with an corporate logo and the subscript: '[using_map.company_name] Recursive Repair Systems: Fixing Tomorrow's Problem, Today!'"
playsound(src.loc, 'sound/machines/twobeep.ogg', 50, 0)
//Redefining some robot procs...
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
index 737841d4ce..adb40102f1 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
@@ -16,7 +16,7 @@
idle_power_usage = 20
active_power_usage = 5000
- var/fabricator_tag = station_short+" Upper Level"
+ var/fabricator_tag = "Upper Level"
var/drone_progress = 0
var/produce_drones = 1
var/time_last_drone = 500
@@ -27,7 +27,7 @@
/obj/machinery/drone_fabricator/derelict
name = "construction drone fabricator"
- fabricator_tag = station_short+" Depths"
+ fabricator_tag = "Depths"
drone_type = /mob/living/silicon/robot/drone/construction
/obj/machinery/drone_fabricator/New()
@@ -114,7 +114,7 @@
return
var/deathtime = world.time - src.timeofdeath
- var/deathtimeminutes = round(deathtime / 600)
+ var/deathtimeminutes = round(deathtime / 300)
var/pluralcheck = "minute"
if(deathtimeminutes == 0)
pluralcheck = ""
@@ -122,11 +122,11 @@
pluralcheck = " [deathtimeminutes] minute and"
else if(deathtimeminutes > 1)
pluralcheck = " [deathtimeminutes] minutes and"
- var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1)
+ var/deathtimeseconds = round((deathtime - deathtimeminutes * 300) / 10,1)
- if (deathtime < 6000)
+ if (deathtime < 3000)
usr << "You have been dead for[pluralcheck] [deathtimeseconds] seconds."
- usr << "You must wait 10 minutes to respawn as a drone!"
+ usr << "You must wait 5 minutes to respawn as a drone!"
return
var/list/all_fabricators = list()
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index c1847327d1..4359c8174c 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -120,7 +120,7 @@
if(!scrambledcodes && !camera)
camera = new /obj/machinery/camera(src)
camera.c_tag = real_name
- camera.replace_networks(list(NETWORK_EXODUS,NETWORK_ROBOTS))
+ camera.replace_networks(list(NETWORK_DEFAULT,NETWORK_ROBOTS))
if(wires.IsIndexCut(BORG_WIRE_CAMERA))
camera.status = 0
@@ -689,7 +689,7 @@
overlays += "eyes-[module_sprites[icontype]]"
if(opened)
- var/panelprefix = custom_sprite ? src.ckey : "ov"
+ var/panelprefix = custom_sprite ? "[src.ckey]-[src.name]" : "ov"
if(wiresexposed)
overlays += "[panelprefix]-openpanel +w"
else if(cell)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 6fb89dd3d9..ccfd19e8aa 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -158,9 +158,19 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/standard
name = "standard robot module"
- sprites = list( "Basic" = "robot_old",
+ sprites = list(
+ "M-USE NanoTrasen" = "robot",
+ "Cabeiri" = "eyebot-standard",
+ "CUPCAKE" = "Noble-STD",
+ "Haruka" = "marinaSD",
+ "Usagi" = "tallflower",
+ "Telemachus" = "toiletbot",
+ "WTOperator" = "sleekstandard",
+ "WTOmni" = "omoikane",
+ "XI-GUS" = "spider",
+ "XI-ALP" = "heavyStandard",
+ "Basic" = "robot_old",
"Android" = "droid",
- "Default" = "robot",
"Drone" = "drone-standard"
)
@@ -181,8 +191,16 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/medical/surgeon
name = "surgeon robot module"
sprites = list(
+ "M-USE NanoTrasen" = "robotMedi",
+ "Cabeiri" = "eyebot-medical",
+ "CUPCAKE" = "Noble-MED",
+ "Haruka" = "marinaMD",
+ "Minako" = "arachne",
+ "Usagi" = "tallwhite",
+ "Telemachus" = "toiletbotsurgeon",
+ "WTOperator" = "sleekcmo",
+ "XI-ALP" = "heavyMed",
"Basic" = "Medbot",
- "Standard" = "surgeon",
"Advanced Droid" = "droid-medical",
"Needles" = "medicalrobot",
"Drone" = "drone-surgery"
@@ -190,6 +208,7 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/medical/surgeon/New()
..()
+ src.modules += new /obj/item/borg/sight/hud/med(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.modules += new /obj/item/weapon/reagent_containers/borghypo(src)
src.modules += new /obj/item/weapon/surgical/scalpel(src)
@@ -229,8 +248,16 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/medical/crisis
name = "crisis robot module"
sprites = list(
+ "M-USE NanoTrasen" = "robotMedi",
+ "Cabeiri" = "eyebot-medical",
+ "CUPCAKE" = "Noble-MED",
+ "Haruka" = "marinaMD",
+ "Minako" = "arachne",
+ "Usagi" = "tallwhite",
+ "Telemachus" = "toiletbotmedical",
+ "WTOperator" = "sleekmedic",
+ "XI-ALP" = "heavyMed",
"Basic" = "Medbot",
- "Standard" = "surgeon",
"Advanced Droid" = "droid-medical",
"Needles" = "medicalrobot",
"Drone - Medical" = "drone-medical",
@@ -294,6 +321,15 @@ var/global/list/robot_modules = list(
networks = list(NETWORK_ENGINEERING)
subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor)
sprites = list(
+ "M-USE NanoTrasen" = "robotEngi",
+ "Cabeiri" = "eyebot-engineering",
+ "CUPCAKE" = "Noble-ENG",
+ "Haruka" = "marinaENG",
+ "Usagi" = "tallyellow",
+ "Telemachus" = "toiletbotengineering",
+ "WTOperator" = "sleekce",
+ "XI-GUS" = "spidereng",
+ "XI-ALP" = "heavyEng",
"Basic" = "Engineering",
"Antique" = "engineerrobot",
"Landmate" = "landmate",
@@ -311,7 +347,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/rcd/borg(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/wrench(src)
- src.modules += new /obj/item/weapon/weldingtool/largetank(src)
+ src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
src.modules += new /obj/item/device/pipe_painter(src)
src.modules += new /obj/item/device/floor_painter(src)
@@ -347,7 +383,7 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/engineering/general/New()
..()
src.modules += new /obj/item/borg/sight/meson(src)
- src.modules += new /obj/item/weapon/weldingtool/largetank(src)
+ src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/wirecutters(src)
@@ -359,7 +395,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/device/lightreplacer(src)
src.modules += new /obj/item/device/pipe_painter(src)
src.modules += new /obj/item/device/floor_painter(src)
- src.emag = new /obj/item/borg/stun(src)
+ src.emag = new /obj/item/weapon/melee/baton/robot/arm(src)
var/datum/matter_synth/metal = new /datum/matter_synth/metal(40000)
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
@@ -407,11 +443,19 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/security/general
sprites = list(
+ "M-USE NanoTrasen" = "robotSecy",
+ "Cabeiri" = "eyebot-security",
+ "Cerberus" = "bloodhound",
+ "Cerberus - Treaded" = "treadhound",
+ "CUPCAKE" = "Noble-SEC",
+ "Haruka" = "marinaSC",
+ "Usagi" = "tallred",
+ "Telemachus" = "toiletbotsecurity",
+ "WTOperator" = "sleeksecurity",
+ "XI-GUS" = "spidersec",
+ "XI-ALP" = "heavySec",
"Basic" = "secborg",
- "Red Knight" = "Security",
"Black Knight" = "securityrobot",
- "Bloodhound" = "bloodhound",
- "Bloodhound - Treaded" = "secborg+tread",
"Drone" = "drone-sec"
)
@@ -447,6 +491,13 @@ var/global/list/robot_modules = list(
name = "janitorial robot module"
channels = list("Service" = 1)
sprites = list(
+ "M-USE NanoTrasen" = "robotJani",
+ "Cabeiri" = "eyebot-janitor",
+ "CUPCAKE" = "Noble-CLN",
+ "Haruka" = "marinaJN",
+ "Telemachus" = "toiletbotjanitor",
+ "WTOperator" = "sleekjanitor",
+ "XI-ALP" = "heavyRes",
"Basic" = "JanBot2",
"Mopbot" = "janitorrobot",
"Mop Gear Rex" = "mopgearrex",
@@ -487,11 +538,21 @@ var/global/list/robot_modules = list(
)
/obj/item/weapon/robot_module/robot/clerical/butler
- sprites = list( "Waitress" = "Service",
- "Kent" = "toiletbot",
+ sprites = list(
+ "M-USE NanoTrasen" = "robotServ",
+ "Cabeiri" = "eyebot-standard",
+ "CUPCAKE" = "Noble-SRV",
+ "Haruka" = "marinaSV",
+ "Usagi" = "tallgreen",
+ "Telemachus" = "toiletbot",
+ "WTOperator" = "sleekservice",
+ "WTOmni" = "omoikane",
+ "XI-GUS" = "spider",
+ "XI-ALP" = "heavyServ",
+ "Standard" = "Service2",
+ "Waitress" = "Service",
"Bro" = "Brobot",
"Rich" = "maximillion",
- "Default" = "Service2",
"Drone - Service" = "drone-service",
"Drone - Hydro" = "drone-hydro"
)
@@ -531,12 +592,21 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/clerical/general
name = "clerical robot module"
sprites = list(
+ "M-USE NanoTrasen" = "robotCler",
+ "Cabeiri" = "eyebot-standard",
+ "CUPCAKE" = "Noble-SRV",
+ "Haruka" = "marinaSV",
+ "Usagi" = "tallgreen",
+ "Telemachus" = "toiletbot",
+ "WTOperator" = "sleekclerical",
+ "WTOmni" = "omoikane",
+ "XI-GUS" = "spidercom",
+ "XI-ALP" = "heavyServ",
"Waitress" = "Service",
- "Kent" = "toiletbot",
"Bro" = "Brobot",
"Rich" = "maximillion",
"Default" = "Service2",
- "Drone" = "drone-service"
+ "Drone" = "drone-blu"
)
/obj/item/weapon/robot_module/robot/clerical/general/New()
@@ -562,6 +632,14 @@ var/global/list/robot_modules = list(
channels = list("Supply" = 1)
networks = list(NETWORK_MINE)
sprites = list(
+ "NM-USE NanoTrasen" = "robotMine",
+ "Cabeiri" = "eyebot-miner",
+ "CUPCAKE" = "Noble-DIG",
+ "Haruka" = "marinaMN",
+ "Telemachus" = "toiletbotminer",
+ "WTOperator" = "sleekminer",
+ "XI-GUS" = "spidermining",
+ "XI-ALP" = "heavyMiner",
"Basic" = "Miner_old",
"Advanced Droid" = "droid-miner",
"Treadhead" = "Miner",
@@ -585,6 +663,10 @@ var/global/list/robot_modules = list(
name = "research module"
channels = list("Science" = 1)
sprites = list(
+ "L'Ouef" = "peaceborg",
+ "Cabeiri" = "eyebot-science",
+ "Haruka" = "marinaSCI",
+ "WTOperator" = "sleekscience",
"Droid" = "droid-science",
"Drone" = "drone-science"
)
@@ -598,7 +680,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/gripper/no_use/loader(src)
src.modules += new /obj/item/device/robotanalyzer(src)
src.modules += new /obj/item/weapon/card/robot(src)
- src.modules += new /obj/item/weapon/weldingtool/largetank(src)
+ src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/wirecutters(src)
@@ -640,7 +722,13 @@ var/global/list/robot_modules = list(
LANGUAGE_SIGN = 0
)
sprites = list(
- "Dread" = "securityrobot",
+ "Cerberus" = "syndie_bloodhound",
+ "Cerberus - Treaded" = "syndie_treadhound",
+ "Ares" = "squats",
+ "Telemachus" = "toiletbotantag",
+ "WTOperator" = "hosborg",
+ "XI-GUS" = "spidersyndi",
+ "XI-ALP" = "syndi-heavy"
)
var/id
@@ -665,7 +753,10 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/security/combat
name = "combat robot module"
hide_on_manifest = 1
- sprites = list("Combat Android" = "droid-combat")
+ sprites = list(
+ "Haruka" = "marinaCB",
+ "Combat Android" = "droid-combat"
+ )
/obj/item/weapon/robot_module/robot/security/combat/New()
..()
@@ -685,7 +776,8 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/drone/New(var/mob/living/silicon/robot/robot)
..()
- src.modules += new /obj/item/weapon/weldingtool(src)
+ src.modules += new /obj/item/borg/sight/meson(src)
+ src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
src.modules += new /obj/item/weapon/screwdriver(src)
src.modules += new /obj/item/weapon/wrench(src)
src.modules += new /obj/item/weapon/crowbar(src)
@@ -773,4 +865,4 @@ var/global/list/robot_modules = list(
var/obj/item/device/lightreplacer/LR = locate() in src.modules
LR.Charge(R, amount)
..()
- return
+ return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index f84021b26a..738e996967 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -65,7 +65,13 @@
src.take_organ_damage(0,20,emp=1)
confused = (min(confused + 5, 30))
if(2)
+ src.take_organ_damage(0,15,emp=1)
+ confused = (min(confused + 4, 30))
+ if(3)
src.take_organ_damage(0,10,emp=1)
+ confused = (min(confused + 3, 30))
+ if(4)
+ src.take_organ_damage(0,5,emp=1)
confused = (min(confused + 2, 30))
flash_eyes(affect_silicon = 1)
src << "*BZZZT* "
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/aliens/alien.dm
similarity index 95%
rename from code/modules/mob/living/simple_animal/hostile/alien.dm
rename to code/modules/mob/living/simple_animal/aliens/alien.dm
index e47d88aeb5..7748559017 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/aliens/alien.dm
@@ -1,172 +1,204 @@
-/mob/living/simple_animal/hostile/alien
- name = "alien hunter"
- desc = "Hiss!"
- icon = 'icons/mob/alien.dmi'
- icon_state = "alienh_running"
- icon_living = "alienh_running"
- icon_dead = "alien_l"
- icon_gib = "syndicate_gib"
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
- speed = -1
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 25
- melee_damage_upper = 25
- attacktext = "slashed"
- a_intent = I_HURT
- attack_sound = 'sound/weapons/bladeslice.ogg'
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
- faction = "alien"
- environment_smash = 2
- status_flags = CANPUSH
- minbodytemp = 0
- heat_damage_per_tick = 20
-
-
-/mob/living/simple_animal/hostile/alien/drone
- name = "alien drone"
- icon_state = "aliend_running"
- icon_living = "aliend_running"
- icon_dead = "aliend_l"
- health = 60
- melee_damage_lower = 15
- melee_damage_upper = 15
-
-/mob/living/simple_animal/hostile/alien/sentinel
- name = "alien sentinel"
- icon_state = "aliens_running"
- icon_living = "aliens_running"
- icon_dead = "aliens_l"
- health = 120
- melee_damage_lower = 15
- melee_damage_upper = 15
- ranged = 1
- projectiletype = /obj/item/projectile/neurotox
- projectilesound = 'sound/weapons/pierce.ogg'
-
-
-/mob/living/simple_animal/hostile/alien/queen
- name = "alien queen"
- icon_state = "alienq_running"
- icon_living = "alienq_running"
- icon_dead = "alienq_l"
- health = 250
- maxHealth = 250
- melee_damage_lower = 15
- melee_damage_upper = 15
- ranged = 1
- move_to_delay = 3
- projectiletype = /obj/item/projectile/neurotox
- projectilesound = 'sound/weapons/pierce.ogg'
- rapid = 1
- status_flags = 0
-
-/mob/living/simple_animal/hostile/alien/queen/large
- name = "alien empress"
- icon = 'icons/mob/alienqueen.dmi'
- icon_state = "queen_s"
- icon_living = "queen_s"
- icon_dead = "queen_dead"
- move_to_delay = 4
- maxHealth = 400
- health = 400
-
-/obj/item/projectile/neurotox
- damage = 30
- icon_state = "toxin"
-
-/mob/living/simple_animal/hostile/alien/death()
- ..()
- visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
- playsound(src, 'sound/voice/hiss6.ogg', 100, 1)
-
-// Xenoarch aliens.
-/mob/living/simple_animal/hostile/samak
- name = "samak"
- desc = "A fast, armoured predator accustomed to hiding and ambushing in cold terrain."
- faction = "samak"
- icon_state = "samak"
- icon_living = "samak"
- icon_dead = "samak_dead"
- icon = 'icons/jungle.dmi'
- move_to_delay = 2
- maxHealth = 125
- health = 125
- speed = 2
- melee_damage_lower = 5
- melee_damage_upper = 15
- attacktext = "mauled"
- cold_damage_per_tick = 0
- speak_chance = 5
- speak = list("Hruuugh!","Hrunnph")
- emote_see = list("paws the ground","shakes its mane","stomps")
- emote_hear = list("snuffles")
-
-/mob/living/simple_animal/hostile/diyaab
- name = "diyaab"
- desc = "A small pack animal. Although omnivorous, it will hunt meat on occasion."
- faction = "diyaab"
- icon_state = "diyaab"
- icon_living = "diyaab"
- icon_dead = "diyaab_dead"
- icon = 'icons/jungle.dmi'
- move_to_delay = 1
- maxHealth = 25
- health = 25
- speed = 1
- melee_damage_lower = 1
- melee_damage_upper = 8
- attacktext = "gouged"
- cold_damage_per_tick = 0
- speak_chance = 5
- speak = list("Awrr?","Aowrl!","Worrl")
- emote_see = list("sniffs the air cautiously","looks around")
- emote_hear = list("snuffles")
-
-/mob/living/simple_animal/hostile/shantak
- name = "shantak"
- desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. Don't be fooled by its beauty though."
- faction = "shantak"
- icon_state = "shantak"
- icon_living = "shantak"
- icon_dead = "shantak_dead"
- icon = 'icons/jungle.dmi'
- move_to_delay = 1
- maxHealth = 75
- health = 75
- speed = 1
- melee_damage_lower = 3
- melee_damage_upper = 12
- attacktext = "gouged"
- cold_damage_per_tick = 0
- speak_chance = 5
- speak = list("Shuhn","Shrunnph?","Shunpf")
- emote_see = list("scratches the ground","shakes out it's mane","tinkles gently")
-
-/mob/living/simple_animal/yithian
- name = "yithian"
- desc = "A friendly creature vaguely resembling an oversized snail without a shell."
- icon_state = "yithian"
- icon_living = "yithian"
- icon_dead = "yithian_dead"
- icon = 'icons/jungle.dmi'
-
-/mob/living/simple_animal/tindalos
- name = "tindalos"
- desc = "It looks like a large, flightless grasshopper."
- icon_state = "tindalos"
- icon_living = "tindalos"
- icon_dead = "tindalos_dead"
- icon = 'icons/jungle.dmi'
+/mob/living/simple_animal/hostile/alien
+ name = "alien hunter"
+ desc = "Hiss!"
+ icon = 'icons/mob/alien.dmi'
+ icon_state = "alienh_running"
+ icon_living = "alienh_running"
+ icon_dead = "alien_l"
+ icon_gib = "syndicate_gib"
+
+ faction = "xeno"
+ cooperative = 1
+ run_at_them = 0
+
+ response_help = "pokes"
+ response_disarm = "shoves"
+ response_harm = "hits"
+
+ maxHealth = 100
+ health = 100
+ speed = -1
+
+ harm_intent_damage = 5
+ melee_damage_lower = 25
+ melee_damage_upper = 25
+
+ attacktext = "slashed"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ a_intent = I_HURT
+
+ environment_smash = 2
+ status_flags = CANPUSH
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ heat_damage_per_tick = 20
+ unsuitable_atoms_damage = 15
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
+
+/mob/living/simple_animal/hostile/alien/drone
+ name = "alien drone"
+ icon_state = "aliend_running"
+ icon_living = "aliend_running"
+ icon_dead = "aliend_l"
+ health = 60
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+
+/mob/living/simple_animal/hostile/alien/sentinel
+ name = "alien sentinel"
+ icon_state = "aliens_running"
+ icon_living = "aliens_running"
+ icon_dead = "aliens_l"
+ health = 120
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ ranged = 1
+ projectiletype = /obj/item/projectile/neurotox
+ projectilesound = 'sound/weapons/pierce.ogg'
+
+
+/mob/living/simple_animal/hostile/alien/queen
+ name = "alien queen"
+ icon_state = "alienq_running"
+ icon_living = "alienq_running"
+ icon_dead = "alienq_l"
+ health = 250
+ maxHealth = 250
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ ranged = 1
+ move_to_delay = 3
+ projectiletype = /obj/item/projectile/neurotox
+ projectilesound = 'sound/weapons/pierce.ogg'
+ rapid = 1
+ status_flags = 0
+
+/mob/living/simple_animal/hostile/alien/queen/large
+ name = "alien empress"
+ icon = 'icons/mob/alienqueen.dmi'
+ icon_state = "queen_s"
+ icon_living = "queen_s"
+ icon_dead = "queen_dead"
+ move_to_delay = 4
+ maxHealth = 400
+ health = 400
+
+/obj/item/projectile/neurotox
+ damage = 30
+ icon_state = "toxin"
+
+/mob/living/simple_animal/hostile/alien/death()
+ ..()
+ visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
+ playsound(src, 'sound/voice/hiss6.ogg', 100, 1)
+
+// Xenoarch aliens.
+/mob/living/simple_animal/hostile/samak
+ name = "samak"
+ desc = "A fast, armoured predator accustomed to hiding and ambushing in cold terrain."
+ faction = "samak"
+ icon_state = "samak"
+ icon_living = "samak"
+ icon_dead = "samak_dead"
+ icon = 'icons/jungle.dmi'
+
+ faction = "samak"
+
+ maxHealth = 125
+ health = 125
+ speed = 2
+ move_to_delay = 2
+
+ melee_damage_lower = 5
+ melee_damage_upper = 15
+
+ attacktext = "mauled"
+ cold_damage_per_tick = 0
+
+ speak_chance = 5
+ speak = list("Hruuugh!","Hrunnph")
+ emote_see = list("paws the ground","shakes its mane","stomps")
+ emote_hear = list("snuffles")
+
+/mob/living/simple_animal/hostile/diyaab
+ name = "diyaab"
+ desc = "A small pack animal. Although omnivorous, it will hunt meat on occasion."
+ faction = "diyaab"
+ icon_state = "diyaab"
+ icon_living = "diyaab"
+ icon_dead = "diyaab_dead"
+ icon = 'icons/jungle.dmi'
+
+ faction = "diyaab"
+ cooperative = 1
+
+ maxHealth = 25
+ health = 25
+ speed = 1
+ move_to_delay = 1
+
+ melee_damage_lower = 1
+ melee_damage_upper = 8
+
+ attacktext = "gouged"
+ cold_damage_per_tick = 0
+
+ speak_chance = 5
+ speak = list("Awrr?","Aowrl!","Worrl")
+ emote_see = list("sniffs the air cautiously","looks around")
+ emote_hear = list("snuffles")
+
+/mob/living/simple_animal/hostile/shantak
+ name = "shantak"
+ desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. Don't be fooled by its beauty though."
+ faction = "shantak"
+ icon_state = "shantak"
+ icon_living = "shantak"
+ icon_dead = "shantak_dead"
+ icon = 'icons/jungle.dmi'
+
+ faction = "shantak"
+
+ maxHealth = 75
+ health = 75
+ speed = 1
+ move_to_delay = 1
+
+ melee_damage_lower = 3
+ melee_damage_upper = 12
+
+ attacktext = "gouged"
+ cold_damage_per_tick = 0
+
+ speak_chance = 5
+ speak = list("Shuhn","Shrunnph?","Shunpf")
+ emote_see = list("scratches the ground","shakes out it's mane","tinkles gently")
+
+/mob/living/simple_animal/yithian
+ name = "yithian"
+ desc = "A friendly creature vaguely resembling an oversized snail without a shell."
+ icon_state = "yithian"
+ icon_living = "yithian"
+ icon_dead = "yithian_dead"
+ icon = 'icons/jungle.dmi'
+
+ faction = "yithian"
+
+/mob/living/simple_animal/tindalos
+ name = "tindalos"
+ desc = "It looks like a large, flightless grasshopper."
+ icon_state = "tindalos"
+ icon_living = "tindalos"
+ icon_dead = "tindalos_dead"
+ icon = 'icons/jungle.dmi'
+
+ faction = "tindalos"
diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/aliens/creature.dm
similarity index 94%
rename from code/modules/mob/living/simple_animal/hostile/creature.dm
rename to code/modules/mob/living/simple_animal/aliens/creature.dm
index b065a78ae9..544a44d001 100644
--- a/code/modules/mob/living/simple_animal/hostile/creature.dm
+++ b/code/modules/mob/living/simple_animal/aliens/creature.dm
@@ -1,72 +1,73 @@
-/mob/living/simple_animal/hostile/creature
- name = "creature"
- desc = "A sanity-destroying otherthing."
- icon = 'icons/mob/critter.dmi'
- speak_emote = list("gibbers")
- icon_state = "otherthing"
- icon_living = "otherthing"
- icon_dead = "otherthing-dead"
- maxHealth = 40
- health = 40
-
- harm_intent_damage = 8
- melee_damage_lower = 5
- melee_damage_upper = 5
- attacktext = "chomped"
- attack_sound = 'sound/weapons/bite.ogg'
- faction = "creature"
- speed = 8
-
-/mob/living/simple_animal/hostile/creature/cult
- faction = "cult"
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- supernatural = 1
-
-/mob/living/simple_animal/hostile/creature/cult/cultify()
- return
-
-/mob/living/simple_animal/hostile/creature/cult/Life()
- ..()
- check_horde()
-
-
-/mob/living/simple_animal/hostile/creature/strong
- maxHealth = 160
- health = 160
-
- harm_intent_damage = 5
- melee_damage_lower = 8
- melee_damage_upper = 25
-
-
-/mob/living/simple_animal/hostile/creature/strong/cult
- faction = "cult"
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- supernatural = 1
-
-/mob/living/simple_animal/hostile/creature/cult/cultify()
- return
-
-/mob/living/simple_animal/hostile/creature/cult/Life()
- ..()
- check_horde()
+/mob/living/simple_animal/hostile/creature
+ name = "creature"
+ desc = "A sanity-destroying otherthing."
+ icon = 'icons/mob/critter.dmi'
+ icon_state = "otherthing"
+ icon_living = "otherthing"
+ icon_dead = "otherthing-dead"
+
+ faction = "creature"
+ maxHealth = 40
+ health = 40
+ speed = 8
+
+ harm_intent_damage = 8
+ melee_damage_lower = 5
+ melee_damage_upper = 5
+
+ attacktext = "chomped"
+ attack_sound = 'sound/weapons/bite.ogg'
+
+ speak_emote = list("gibbers")
+
+/mob/living/simple_animal/hostile/creature/cult
+ faction = "cult"
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ supernatural = 1
+
+/mob/living/simple_animal/hostile/creature/cult/cultify()
+ return
+
+/mob/living/simple_animal/hostile/creature/cult/Life()
+ ..()
+ check_horde()
+
+/mob/living/simple_animal/hostile/creature/strong
+ maxHealth = 160
+ health = 160
+
+ harm_intent_damage = 5
+ melee_damage_lower = 8
+ melee_damage_upper = 25
+
+/mob/living/simple_animal/hostile/creature/strong/cult
+ faction = "cult"
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ supernatural = 1
+
+/mob/living/simple_animal/hostile/creature/cult/cultify()
+ return
+
+/mob/living/simple_animal/hostile/creature/cult/Life()
+ ..()
+ check_horde()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/aliens/drone.dm
similarity index 88%
rename from code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm
rename to code/modules/mob/living/simple_animal/aliens/drone.dm
index 24fb12633f..3d1ae1bd02 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm
+++ b/code/modules/mob/living/simple_animal/aliens/drone.dm
@@ -1,39 +1,29 @@
//malfunctioning combat drones
-/mob/living/simple_animal/hostile/retaliate/malf_drone
+/mob/living/simple_animal/hostile/malf_drone
name = "combat drone"
desc = "An automated combat drone armed with state of the art weaponry and shielding."
icon_state = "drone3"
icon_living = "drone3"
icon_dead = "drone_dead"
- ranged = 1
- rapid = 1
- speak_chance = 5
+
+ faction = "malf_drone"
+ maxHealth = 300
+ health = 300
+ speed = 8
+ stop_when_pulled = 0
+
turns_per_move = 3
response_help = "pokes"
response_disarm = "gently pushes aside"
response_harm = "hits"
- speak = list("ALERT.","Hostile-ile-ile entities dee-twhoooo-wected.","Threat parameterszzzz- szzet.","Bring sub-sub-sub-systems uuuup to combat alert alpha-a-a.")
- emote_see = list("beeps menacingly","whirrs threateningly","scans its immediate vicinity")
+
a_intent = I_HURT
- stop_automated_movement_when_pulled = 0
- health = 300
- maxHealth = 300
- speed = 8
+ ranged = 1
+ rapid = 1
projectiletype = /obj/item/projectile/beam/drone
projectilesound = 'sound/weapons/laser3.ogg'
destroy_surroundings = 0
- var/datum/effect/effect/system/ion_trail_follow/ion_trail
-
- //the drone randomly switches between these states because it's malfunctioning
- var/hostile_drone = 0
- //0 - retaliate, only attack enemies that attack it
- //1 - hostile, attack everything that comes near
-
- var/turf/patrol_target
- var/explode_chance = 1
- var/disabled = 0
- var/exploding = 0
//Drones aren't affected by atmos.
min_oxy = 0
@@ -46,10 +36,19 @@
max_n2 = 0
minbodytemp = 0
- var/has_loot = 1
- faction = "malf_drone"
+ speak_chance = 5
+ speak = list("ALERT.","Hostile-ile-ile entities dee-twhoooo-wected.","Threat parameterszzzz- szzet.","Bring sub-sub-sub-systems uuuup to combat alert alpha-a-a.")
+ emote_see = list("beeps menacingly","whirrs threateningly","scans its immediate vicinity")
-/mob/living/simple_animal/hostile/retaliate/malf_drone/New()
+
+ var/datum/effect/effect/system/ion_trail_follow/ion_trail
+ var/turf/patrol_target
+ var/explode_chance = 1
+ var/disabled = 0
+ var/exploding = 0
+ var/has_loot = 1
+
+/mob/living/simple_animal/hostile/malf_drone/New()
..()
if(prob(5))
projectiletype = /obj/item/projectile/beam/pulse/drone
@@ -58,17 +57,11 @@
ion_trail.set_up(src)
ion_trail.start()
-/mob/living/simple_animal/hostile/retaliate/malf_drone/Process_Spacemove(var/check_drift = 0)
+/mob/living/simple_animal/malf_drone/Process_Spacemove(var/check_drift = 0)
return 1
-/mob/living/simple_animal/hostile/retaliate/malf_drone/ListTargets()
- if(hostile_drone)
- return view(src, 10)
- else
- return ..()
-
//self repair systems have a chance to bring the drone back to life
-/mob/living/simple_animal/hostile/retaliate/malf_drone/Life()
+/mob/living/simple_animal/hostile/malf_drone/Life()
//emps and lots of damage can temporarily shut us down
if(disabled > 0)
@@ -99,12 +92,12 @@
//sometimes our targetting sensors malfunction, and we attack anyone nearby
if(prob(disabled ? 0 : 1))
- if(hostile_drone)
+ if(hostile)
src.visible_message("\blue \icon[src] [src] retracts several targetting vanes, and dulls it's running lights.")
- hostile_drone = 0
+ hostile = 0
else
src.visible_message("\red \icon[src] [src] suddenly lights up, and additional targetting vanes slide into place.")
- hostile_drone = 1
+ hostile = 1
if(health / maxHealth > 0.9)
icon_state = "drone3"
@@ -151,18 +144,18 @@
..()
//ion rifle!
-/mob/living/simple_animal/hostile/retaliate/malf_drone/emp_act(severity)
+/mob/living/simple_animal/hostile/malf_drone/emp_act(severity)
health -= rand(3,15) * (severity + 1)
disabled = rand(150, 600)
- hostile_drone = 0
+ hostile = 0
walk(src,0)
-/mob/living/simple_animal/hostile/retaliate/malf_drone/death()
+/mob/living/simple_animal/hostile/malf_drone/death()
..(null,"suddenly breaks apart.")
qdel(src)
-/mob/living/simple_animal/hostile/retaliate/malf_drone/Destroy()
- //some random debris left behind
+/mob/living/simple_animal/hostile/malf_drone/Destroy()
+ //More advanced than the default S_A loot system, for visual effect and random tech levels.
if(has_loot)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/aliens/faithless.dm
similarity index 85%
rename from code/modules/mob/living/simple_animal/hostile/faithless.dm
rename to code/modules/mob/living/simple_animal/aliens/faithless.dm
index dd20145b38..0b41471c32 100644
--- a/code/modules/mob/living/simple_animal/hostile/faithless.dm
+++ b/code/modules/mob/living/simple_animal/aliens/faithless.dm
@@ -1,83 +1,82 @@
-/mob/living/simple_animal/hostile/faithless
- name = "Faithless"
- desc = "The Wish Granter's faith in humanity, incarnate"
- icon_state = "faithless"
- icon_living = "faithless"
- icon_dead = "faithless_dead"
- speak_chance = 0
- turns_per_move = 5
- response_help = "passes through"
- response_disarm = "shoves"
- response_harm = "hits"
- speed = 8
- maxHealth = 50
- health = 50
-
- harm_intent_damage = 10
- melee_damage_lower = 5
- melee_damage_upper = 5
- attacktext = "gripped"
- attack_sound = 'sound/hallucinations/growl1.ogg'
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
- speed = 4
-
- faction = "faithless"
-
-/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/check_drift = 0)
- return 1
-
-/mob/living/simple_animal/hostile/faithless/FindTarget()
- . = ..()
- if(.)
- audible_emote("wails at [.]")
-
-/mob/living/simple_animal/hostile/faithless/AttackingTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(12))
- L.Weaken(3)
- L.visible_message("\the [src] knocks down \the [L]! ")
-
-/mob/living/simple_animal/hostile/faithless/cult
- faction = "cult"
- supernatural = 1
-
-/mob/living/simple_animal/hostile/faithless/cult/cultify()
- return
-
-/mob/living/simple_animal/hostile/faithless/cult/Life()
- ..()
- check_horde()
-
-
-
-
-/mob/living/simple_animal/hostile/faithless/strong
- maxHealth = 100
- health = 100
-
- harm_intent_damage = 5
- melee_damage_lower = 7
- melee_damage_upper = 20
-
-
-/mob/living/simple_animal/hostile/faithless/strong/cult
- faction = "cult"
- supernatural = 1
-
-/mob/living/simple_animal/hostile/faithless/cult/cultify()
- return
-
-/mob/living/simple_animal/hostile/faithless/cult/Life()
- ..()
+/mob/living/simple_animal/hostile/faithless
+ name = "Faithless"
+ desc = "The Wish Granter's faith in humanity, incarnate"
+ icon_state = "faithless"
+ icon_living = "faithless"
+ icon_dead = "faithless_dead"
+
+ faction = "faithless"
+ maxHealth = 50
+ health = 50
+ speed = 8
+
+ turns_per_move = 5
+ response_help = "passes through"
+ response_disarm = "shoves"
+ response_harm = "hits"
+
+ harm_intent_damage = 10
+ melee_damage_lower = 5
+ melee_damage_upper = 5
+
+ attacktext = "gripped"
+ attack_sound = 'sound/hallucinations/growl1.ogg'
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ speak_chance = 0
+
+/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/check_drift = 0)
+ return 1
+
+/mob/living/simple_animal/hostile/faithless/set_target()
+ . = ..()
+ if(.)
+ audible_emote("wails at [target_mob]")
+
+/mob/living/simple_animal/hostile/faithless/PunchTarget()
+ . = ..()
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(12))
+ L.Weaken(3)
+ L.visible_message("\the [src] knocks down \the [L]! ")
+
+/mob/living/simple_animal/hostile/faithless/cult
+ faction = "cult"
+ supernatural = 1
+
+/mob/living/simple_animal/hostile/faithless/cult/cultify()
+ return
+
+/mob/living/simple_animal/hostile/faithless/cult/Life()
+ ..()
+ check_horde()
+
+/mob/living/simple_animal/hostile/faithless/strong
+ maxHealth = 100
+ health = 100
+
+ harm_intent_damage = 5
+ melee_damage_lower = 7
+ melee_damage_upper = 20
+
+
+/mob/living/simple_animal/hostile/faithless/strong/cult
+ faction = "cult"
+ supernatural = 1
+
+/mob/living/simple_animal/hostile/faithless/cult/cultify()
+ return
+
+/mob/living/simple_animal/hostile/faithless/cult/Life()
+ ..()
check_horde()
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/aliens/hivebot.dm
similarity index 90%
rename from code/modules/mob/living/simple_animal/hostile/hivebot.dm
rename to code/modules/mob/living/simple_animal/aliens/hivebot.dm
index e358f3e69a..9770d61efe 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/aliens/hivebot.dm
@@ -1,107 +1,111 @@
-/obj/item/projectile/hivebotbullet
- damage = 10
- damage_type = BRUTE
-
-/mob/living/simple_animal/hostile/hivebot
- name = "Hivebot"
- desc = "A small robot"
- icon = 'icons/mob/hivebot.dmi'
- icon_state = "basic"
- icon_living = "basic"
- icon_dead = "basic"
- health = 15
- maxHealth = 15
- melee_damage_lower = 2
- melee_damage_upper = 3
- attacktext = "clawed"
- projectilesound = 'sound/weapons/Gunshot.ogg'
- projectiletype = /obj/item/projectile/hivebotbullet
- faction = "hivebot"
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
- speed = 4
-
-/mob/living/simple_animal/hostile/hivebot/range
- name = "Hivebot"
- desc = "A smallish robot, this one is armed!"
- ranged = 1
-
-/mob/living/simple_animal/hostile/hivebot/rapid
- ranged = 1
- rapid = 1
-
-/mob/living/simple_animal/hostile/hivebot/strong
- name = "Strong Hivebot"
- desc = "A robot, this one is armed and looks tough!"
- health = 80
- ranged = 1
-
-
-/mob/living/simple_animal/hostile/hivebot/death()
- ..()
- visible_message("[src] blows apart!")
- new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
- var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
- s.set_up(3, 1, src)
- s.start()
- qdel(src)
- return
-
-/mob/living/simple_animal/hostile/hivebot/tele//this still needs work
- name = "Beacon"
- desc = "Some odd beacon thing"
- icon = 'icons/mob/hivebot.dmi'
- icon_state = "def_radar-off"
- icon_living = "def_radar-off"
- health = 200
- maxHealth = 200
- status_flags = 0
- anchored = 1
- stop_automated_movement = 1
- var/bot_type = "norm"
- var/bot_amt = 10
- var/spawn_delay = 600
- var/turn_on = 0
- var/auto_spawn = 1
- proc
- warpbots()
-
-
- New()
- ..()
- var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
- smoke.set_up(5, 0, src.loc)
- smoke.start()
- visible_message("\red The [src] warps in! ")
- playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1)
-
- warpbots()
- icon_state = "def_radar"
- visible_message("\red The [src] turns on!")
- while(bot_amt > 0)
- bot_amt--
- switch(bot_type)
- if("norm")
- new /mob/living/simple_animal/hostile/hivebot(get_turf(src))
- if("range")
- new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src))
- if("rapid")
- new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src))
- spawn(100)
- qdel(src)
- return
-
-
- Life()
- ..()
- if(stat == 0)
- if(prob(2))//Might be a bit low, will mess with it likely
- warpbots()
-
+/mob/living/simple_animal/hostile/hivebot
+ name = "Hivebot"
+ desc = "A small robot"
+ icon = 'icons/mob/hivebot.dmi'
+ icon_state = "basic"
+ icon_living = "basic"
+ icon_dead = "basic"
+
+ faction = "hivebot"
+ maxHealth = 15
+ health = 15
+ speed = 4
+
+ melee_damage_lower = 2
+ melee_damage_upper = 3
+
+ attacktext = "clawed"
+ projectilesound = 'sound/weapons/Gunshot.ogg'
+ projectiletype = /obj/item/projectile/hivebotbullet
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+/mob/living/simple_animal/hostile/hivebot/range
+ name = "Hivebot"
+ desc = "A smallish robot, this one is armed!"
+ ranged = 1
+
+/mob/living/simple_animal/hostile/hivebot/range/rapid
+ rapid = 1
+
+/mob/living/simple_animal/hostile/hivebot/strong
+ name = "Strong Hivebot"
+ desc = "A robot, this one is armed and looks tough!"
+ health = 80
+ ranged = 1
+
+/mob/living/simple_animal/hostile/hivebot/death()
+ ..()
+ visible_message("[src] blows apart!")
+ new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(3, 1, src)
+ s.start()
+ qdel(src)
+
+/mob/living/simple_animal/hostile/hivebot/tele//this still needs work
+ name = "Beacon"
+ desc = "Some odd beacon thing"
+ icon = 'icons/mob/hivebot.dmi'
+ icon_state = "def_radar-off"
+ icon_living = "def_radar-off"
+
+ health = 200
+ maxHealth = 200
+ status_flags = 0
+
+ anchored = 1
+ wander = 0
+ stop_automated_movement = 1
+
+ var/bot_type = "norm"
+ var/bot_amt = 10
+ var/spawn_delay = 600
+ var/turn_on = 0
+ var/auto_spawn = 1
+ proc
+ warpbots()
+
+
+ New()
+ ..()
+ var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
+ smoke.set_up(5, 0, src.loc)
+ smoke.start()
+ visible_message("\red The [src] warps in! ")
+ playsound(src.loc, 'sound/effects/EMPulse.ogg', 25, 1)
+
+ warpbots()
+ icon_state = "def_radar"
+ visible_message("\red The [src] turns on!")
+ while(bot_amt > 0)
+ bot_amt--
+ switch(bot_type)
+ if("norm")
+ new /mob/living/simple_animal/hostile/hivebot(get_turf(src))
+ if("range")
+ new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src))
+ if("rapid")
+ new /mob/living/simple_animal/hostile/hivebot/range/rapid(get_turf(src))
+ spawn(100)
+ qdel(src)
+ return
+
+
+ Life()
+ ..()
+ if(stat == 0)
+ if(prob(2))//Might be a bit low, will mess with it likely
+ warpbots()
+
+/obj/item/projectile/hivebotbullet
+ damage = 10
+ damage_type = BRUTE
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/aliens/mimic.dm
similarity index 86%
rename from code/modules/mob/living/simple_animal/hostile/mimic.dm
rename to code/modules/mob/living/simple_animal/aliens/mimic.dm
index 4764dcd547..6f0dbd9d3b 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/aliens/mimic.dm
@@ -1,195 +1,196 @@
-//
-// Abstract Class
-//
-
-/mob/living/simple_animal/hostile/mimic
- name = "crate"
- desc = "A rectangular steel crate."
- icon = 'icons/obj/storage.dmi'
- icon_state = "crate"
- icon_living = "crate"
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
- response_help = "touches"
- response_disarm = "pushes"
- response_harm = "hits"
- speed = 4
- maxHealth = 250
- health = 250
-
- harm_intent_damage = 5
- melee_damage_lower = 8
- melee_damage_upper = 12
- attacktext = "attacked"
- attack_sound = 'sound/weapons/bite.ogg'
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- faction = "mimic"
- move_to_delay = 8
-
-/mob/living/simple_animal/hostile/mimic/FindTarget()
- . = ..()
- if(.)
- audible_emote("growls at [.]")
-
-/mob/living/simple_animal/hostile/mimic/death()
- ..()
- qdel(src)
-
-//
-// Crate Mimic
-//
-
-
-// Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies.
-/mob/living/simple_animal/hostile/mimic/crate
-
- attacktext = "bitten"
-
- stop_automated_movement = 1
- wander = 0
- var/attempt_open = 0
-
-// Pickup loot
-/mob/living/simple_animal/hostile/mimic/crate/initialize()
- ..()
- for(var/obj/item/I in loc)
- I.loc = src
-
-/mob/living/simple_animal/hostile/mimic/crate/DestroySurroundings()
- ..()
- if(prob(90))
- icon_state = "[initial(icon_state)]open"
- else
- icon_state = initial(icon_state)
-
-/mob/living/simple_animal/hostile/mimic/crate/ListTargets()
- if(attempt_open)
- return ..()
- return view(src, 1)
-
-/mob/living/simple_animal/hostile/mimic/crate/FindTarget()
- . = ..()
- if(.)
- trigger()
-
-/mob/living/simple_animal/hostile/mimic/crate/AttackingTarget()
- . = ..()
- if(.)
- icon_state = initial(icon_state)
-
-/mob/living/simple_animal/hostile/mimic/crate/proc/trigger()
- if(!attempt_open)
- visible_message("[src] starts to move!")
- attempt_open = 1
-
-/mob/living/simple_animal/hostile/mimic/crate/adjustBruteLoss(var/damage)
- trigger()
- ..(damage)
-
-/mob/living/simple_animal/hostile/mimic/crate/LoseTarget()
- ..()
- icon_state = initial(icon_state)
-
-/mob/living/simple_animal/hostile/mimic/crate/LostTarget()
- ..()
- icon_state = initial(icon_state)
-
-/mob/living/simple_animal/hostile/mimic/crate/death()
-
- var/obj/structure/closet/crate/C = new(get_turf(src))
- // Put loot in crate
- for(var/obj/O in src)
- O.loc = C
- ..()
-
-/mob/living/simple_animal/hostile/mimic/crate/AttackingTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Weaken(2)
- L.visible_message("\the [src] knocks down \the [L]! ")
-
-//
-// Copy Mimic
-//
-
-var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate)
-
-/mob/living/simple_animal/hostile/mimic/copy
-
- health = 100
- maxHealth = 100
- var/mob/living/creator = null // the creator
- var/destroy_objects = 0
- var/knockdown_people = 0
-
-/mob/living/simple_animal/hostile/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator)
- ..(loc)
- CopyObject(copy, creator)
-
-/mob/living/simple_animal/hostile/mimic/copy/death()
-
- for(var/atom/movable/M in src)
- M.loc = get_turf(src)
- ..()
-
-/mob/living/simple_animal/hostile/mimic/copy/ListTargets()
- // Return a list of targets that isn't the creator
- . = ..()
- return . - creator
-
-/mob/living/simple_animal/hostile/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator)
-
- if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, protected_objects))
-
- O.loc = src
- name = O.name
- desc = O.desc
- icon = O.icon
- icon_state = O.icon_state
- icon_living = icon_state
-
- if(istype(O, /obj/structure))
- health = (anchored * 50) + 50
- destroy_objects = 1
- if(O.density && O.anchored)
- knockdown_people = 1
- melee_damage_lower *= 2
- melee_damage_upper *= 2
- else if(istype(O, /obj/item))
- var/obj/item/I = O
- health = 15 * I.w_class
- melee_damage_lower = 2 + I.force
- melee_damage_upper = 2 + I.force
- move_to_delay = 2 * I.w_class
-
- maxHealth = health
- if(creator)
- src.creator = creator
- faction = "\ref[creator]" // very unique
- return 1
- return
-
-/mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
- if(destroy_objects)
- ..()
-
-/mob/living/simple_animal/hostile/mimic/copy/AttackingTarget()
- . =..()
- if(knockdown_people)
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Weaken(1)
+//
+// Abstract Class
+//
+
+/mob/living/simple_animal/hostile/mimic
+ name = "crate"
+ desc = "A rectangular steel crate."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "crate"
+ icon_living = "crate"
+
+ faction = "mimic"
+
+ maxHealth = 250
+ health = 250
+ speed = 4
+ move_to_delay = 8
+
+ response_help = "touches"
+ response_disarm = "pushes"
+ response_harm = "hits"
+
+ harm_intent_damage = 5
+ melee_damage_lower = 8
+ melee_damage_upper = 12
+ attacktext = "attacked"
+ attack_sound = 'sound/weapons/bite.ogg'
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+
+/mob/living/simple_animal/hostile/mimic/set_target()
+ . = ..()
+ if(.)
+ audible_emote("growls at [.]")
+
+/mob/living/simple_animal/mimic/death()
+ ..()
+ qdel(src)
+
+//
+// Crate Mimic
+//
+
+// Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies.
+/mob/living/simple_animal/hostile/mimic/crate
+
+ attacktext = "bitten"
+
+ stop_automated_movement = 1
+ wander = 0
+ var/attempt_open = 0
+
+// Pickup loot
+/mob/living/simple_animal/hostile/mimic/crate/initialize()
+ ..()
+ for(var/obj/item/I in loc)
+ I.forceMove(src)
+
+/mob/living/simple_animal/hostile/mimic/crate/DestroySurroundings()
+ ..()
+ if(prob(90))
+ icon_state = "[initial(icon_state)]open"
+ else
+ icon_state = initial(icon_state)
+
+/mob/living/simple_animal/hostile/mimic/crate/ListTargets()
+ if(attempt_open)
+ return ..()
+ else
+ return ..(1)
+
+/mob/living/simple_animal/hostile/mimic/crate/set_target()
+ . = ..()
+ if(.)
+ trigger()
+
+/mob/living/simple_animal/hostile/mimic/crate/PunchTarget()
+ . = ..()
+ if(.)
+ icon_state = initial(icon_state)
+
+/mob/living/simple_animal/hostile/mimic/crate/proc/trigger()
+ if(!attempt_open)
+ visible_message("[src] starts to move!")
+ attempt_open = 1
+
+/mob/living/simple_animal/hostile/mimic/crate/adjustBruteLoss(var/damage)
+ trigger()
+ ..(damage)
+
+/mob/living/simple_animal/hostile/mimic/crate/LoseTarget()
+ ..()
+ icon_state = initial(icon_state)
+
+/mob/living/simple_animal/hostile/mimic/crate/LostTarget()
+ ..()
+ icon_state = initial(icon_state)
+
+/mob/living/simple_animal/hostile/mimic/crate/death()
+ var/obj/structure/closet/crate/C = new(get_turf(src))
+ // Put loot in crate
+ for(var/obj/O in src)
+ O.forceMove(C)
+ ..()
+
+/mob/living/simple_animal/hostile/mimic/crate/PunchTarget()
+ . =..()
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(15))
+ L.Weaken(2)
+ L.visible_message("\the [src] knocks down \the [L]! ")
+
+//
+// Copy Mimic
+//
+
+var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate)
+
+/mob/living/simple_animal/hostile/mimic/copy
+
+ health = 100
+ maxHealth = 100
+ var/mob/living/creator = null // the creator
+ var/destroy_objects = 0
+ var/knockdown_people = 0
+
+/mob/living/simple_animal/hostile/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator)
+ ..(loc)
+ CopyObject(copy, creator)
+
+/mob/living/simple_animal/hostile/mimic/copy/death()
+
+ for(var/atom/movable/M in src)
+ M.forceMove(get_turf(src))
+ ..()
+
+/mob/living/simple_animal/hostile/mimic/copy/ListTargets()
+ // Return a list of targets that isn't the creator
+ . = ..()
+ return . - creator
+
+/mob/living/simple_animal/hostile/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator)
+
+ if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, protected_objects))
+
+ O.forceMove(src)
+ name = O.name
+ desc = O.desc
+ icon = O.icon
+ icon_state = O.icon_state
+ icon_living = icon_state
+
+ if(istype(O, /obj/structure))
+ health = (anchored * 50) + 50
+ destroy_objects = 1
+ if(O.density && O.anchored)
+ knockdown_people = 1
+ melee_damage_lower *= 2
+ melee_damage_upper *= 2
+ else if(istype(O, /obj/item))
+ var/obj/item/I = O
+ health = 15 * I.w_class
+ melee_damage_lower = 2 + I.force
+ melee_damage_upper = 2 + I.force
+ move_to_delay = 2 * I.w_class
+
+ maxHealth = health
+ if(creator)
+ src.creator = creator
+ faction = "\ref[creator]" // very unique
+ return 1
+ return
+
+/mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
+ if(destroy_objects)
+ ..()
+
+/mob/living/simple_animal/hostile/mimic/copy/PunchTarget()
+ . =..()
+ if(knockdown_people)
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(15))
+ L.Weaken(1)
L.visible_message("\the [src] knocks down \the [L]! ")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/aliens/shade.dm
similarity index 65%
rename from code/modules/mob/living/simple_animal/shade.dm
rename to code/modules/mob/living/simple_animal/aliens/shade.dm
index f8ed654b95..d74dec5b30 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/aliens/shade.dm
@@ -1,52 +1,59 @@
-/mob/living/simple_animal/shade
- name = "Shade"
- real_name = "Shade"
- desc = "A bound spirit"
- icon = 'icons/mob/mob.dmi'
- icon_state = "shade"
- icon_living = "shade"
- icon_dead = "shade_dead"
- maxHealth = 50
- health = 50
- universal_speak = 1
- speak_emote = list("hisses")
- emote_hear = list("wails","screeches")
- response_help = "puts their hand through"
- response_disarm = "flails at"
- response_harm = "punches"
- melee_damage_lower = 5
- melee_damage_upper = 15
- attacktext = "drained the life from"
- minbodytemp = 0
- maxbodytemp = 4000
- min_oxy = 0
- max_co2 = 0
- max_tox = 0
- speed = -1
- stop_automated_movement = 1
- status_flags = 0
- faction = "cult"
- status_flags = CANPUSH
-
-/mob/living/simple_animal/shade/cultify()
- return
-
-/mob/living/simple_animal/shade/Life()
- ..()
- OnDeathInLife()
-
-/mob/living/simple_animal/shade/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
- if(istype(O, /obj/item/device/soulstone))
- var/obj/item/device/soulstone/S = O;
- S.transfer_soul("SHADE", src, user)
- return
-
-/mob/living/simple_animal/shade/proc/OnDeathInLife()
- if(stat == 2)
- new /obj/item/weapon/ectoplasm (src.loc)
- for(var/mob/M in viewers(src, null))
- if((M.client && !( M.blinded )))
- M.show_message("\red [src] lets out a contented sigh as their form unwinds. ")
- ghostize()
- qdel(src)
- return
+/mob/living/simple_animal/shade
+ name = "Shade"
+ real_name = "Shade"
+ desc = "A bound spirit"
+ icon = 'icons/mob/mob.dmi'
+ icon_state = "shade"
+ icon_living = "shade"
+ icon_dead = "shade_dead"
+
+ faction = "cult"
+
+ maxHealth = 50
+ health = 50
+ speed = -1
+
+ response_help = "puts their hand through"
+ response_disarm = "flails at"
+ response_harm = "punches"
+
+ melee_damage_lower = 5
+ melee_damage_upper = 15
+ attacktext = "drained the life from"
+
+ minbodytemp = 0
+ maxbodytemp = 4000
+ min_oxy = 0
+ max_co2 = 0
+ max_tox = 0
+
+ stop_automated_movement = 1
+ wander = 0
+ status_flags = 0
+
+ speak_chance = 5
+ universal_speak = 1
+ speak_emote = list("hisses")
+ emote_hear = list("wails","screeches")
+
+ loot_list = list(/obj/item/weapon/ectoplasm = 100)
+
+/mob/living/simple_animal/shade/cultify()
+ return
+
+/mob/living/simple_animal/shade/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if(istype(O, /obj/item/device/soulstone))
+ var/obj/item/device/soulstone/S = O;
+ S.transfer_soul("SHADE", src, user)
+ return
+ ..()
+
+/mob/living/simple_animal/shade/death()
+ ..()
+ for(var/mob/M in viewers(src, null))
+ if((M.client && !( M.blinded )))
+ M.show_message("\red [src] lets out a contented sigh as their form unwinds. ")
+
+ ghostize()
+ qdel(src)
+ return
diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/animals/bat.dm
similarity index 73%
rename from code/modules/mob/living/simple_animal/hostile/bat.dm
rename to code/modules/mob/living/simple_animal/animals/bat.dm
index 9ce3a08a28..d7ed8e5f40 100644
--- a/code/modules/mob/living/simple_animal/hostile/bat.dm
+++ b/code/modules/mob/living/simple_animal/animals/bat.dm
@@ -1,76 +1,78 @@
-/mob/living/simple_animal/hostile/scarybat
- name = "space bats"
- desc = "A swarm of cute little blood sucking bats that looks pretty upset."
- icon = 'icons/mob/bats.dmi'
- icon_state = "bat"
- icon_living = "bat"
- icon_dead = "bat_dead"
- icon_gib = "bat_dead"
- speak_chance = 0
- turns_per_move = 3
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets the"
- response_disarm = "gently pushes aside the"
- response_harm = "hits the"
- speed = 4
- maxHealth = 20
- health = 20
-
- harm_intent_damage = 10
- melee_damage_lower = 3
- melee_damage_upper = 3
- attacktext = "bites"
- attack_sound = 'sound/weapons/bite.ogg'
-
- //Space carp aren't affected by atmos.
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- environment_smash = 1
-
- faction = "scarybat"
- var/mob/living/owner
-
-/mob/living/simple_animal/hostile/scarybat/New(loc, mob/living/L as mob)
- ..()
- if(istype(L))
- owner = L
-
-/mob/living/simple_animal/hostile/scarybat/Process_Spacemove(var/check_drift = 0)
- return ..() //No drifting in space for space carp! //original comments do not steal
-
-/mob/living/simple_animal/hostile/scarybat/FindTarget()
- . = ..()
- if(.)
- emote("flutters towards [.]")
-
-/mob/living/simple_animal/hostile/scarybat/Found(var/atom/A)//This is here as a potential override to pick a specific target if available
- if(istype(A) && A == owner)
- return 0
- return ..()
-
-/mob/living/simple_animal/hostile/scarybat/AttackingTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Stun(1)
- L.visible_message("\the [src] scares \the [L]! ")
-
-/mob/living/simple_animal/hostile/scarybat/cult
- faction = "cult"
- supernatural = 1
-
-/mob/living/simple_animal/hostile/scarybat/cult/cultify()
- return
-
-/mob/living/simple_animal/hostile/scarybat/cult/Life()
- ..()
- check_horde()
+/mob/living/simple_animal/hostile/scarybat
+ name = "space bats"
+ desc = "A swarm of cute little blood sucking bats that looks pretty upset."
+ icon = 'icons/mob/bats.dmi'
+ icon_state = "bat"
+ icon_living = "bat"
+ icon_dead = "bat_dead"
+ icon_gib = "bat_dead"
+
+ faction = "scarybat"
+
+ maxHealth = 20
+ health = 20
+ turns_per_move = 3
+ speed = 4
+
+ response_help = "pets the"
+ response_disarm = "gently pushes aside the"
+ response_harm = "hits the"
+
+ harm_intent_damage = 10
+ melee_damage_lower = 3
+ melee_damage_upper = 3
+ environment_smash = 1
+
+ attacktext = "bites"
+ attack_sound = 'sound/weapons/bite.ogg'
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/mob/living/owner
+
+/mob/living/simple_animal/hostile/scarybat/New(loc, mob/living/L as mob)
+ ..()
+ if(istype(L))
+ owner = L
+
+/mob/living/simple_animal/hostile/scarybat/Process_Spacemove(var/check_drift = 0)
+ return ..()
+
+/mob/living/simple_animal/hostile/scarybat/set_target()
+ . = ..()
+ if(.)
+ emote("flutters towards [.]")
+
+/mob/living/simple_animal/hostile/scarybat/ListTargets()
+ . = ..()
+ if(owner)
+ return . - owner
+
+/mob/living/simple_animal/hostile/scarybat/PunchTarget()
+ . =..()
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(15))
+ L.Stun(1)
+ L.visible_message("\the [src] scares \the [L]! ")
+
+/mob/living/simple_animal/hostile/scarybat/cult
+ faction = "cult"
+ supernatural = 1
+
+/mob/living/simple_animal/hostile/scarybat/cult/cultify()
+ return
+
+/mob/living/simple_animal/hostile/scarybat/cult/Life()
+ ..()
+ check_horde()
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/animals/bear.dm
similarity index 65%
rename from code/modules/mob/living/simple_animal/hostile/bear.dm
rename to code/modules/mob/living/simple_animal/animals/bear.dm
index f4de3b6054..228e92e5b7 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/animals/bear.dm
@@ -6,20 +6,20 @@
icon_living = "bear"
icon_dead = "bear_dead"
icon_gib = "bear_gib"
- speak = list("RAWR!","Rawr!","GRR!","Growl!")
- speak_emote = list("growls", "roars")
- emote_hear = list("rawrs","grumbles","grawls")
- emote_see = list("stares ferociously", "stomps")
- speak_chance = 1
+
+ faction = "russian"
+ cooperative = 1
+
+ maxHealth = 60
+ health = 60
turns_per_move = 5
see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat
+ stop_when_pulled = 0
+
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "pokes"
- stop_automated_movement_when_pulled = 0
- maxHealth = 60
- health = 60
+
melee_damage_lower = 20
melee_damage_upper = 30
@@ -33,38 +33,27 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
+
+ speak_chance = 1
+ speak = list("RAWR!","Rawr!","GRR!","Growl!")
+ speak_emote = list("growls", "roars")
+ emote_hear = list("rawrs","grumbles","grawls")
+ emote_see = list("stares ferociously", "stomps")
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/bearmeat
+
var/stance_step = 0
- faction = "russian"
-
-//SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!!
-/mob/living/simple_animal/hostile/bear/Hudson
- name = "Hudson"
- desc = ""
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "pokes"
-
-/mob/living/simple_animal/hostile/bear/Life()
- . =..()
- if(!.)
- return
-
- if(loc && istype(loc,/turf/space))
- icon_state = "bear"
- else
- icon_state = "bearfloor"
-
+/mob/living/simple_animal/hostile/bear/handle_stance()
switch(stance)
-
if(STANCE_TIRED)
stop_automated_movement = 1
stance_step++
if(stance_step >= 10) //rests for 10 ticks
if(target_mob && target_mob in ListTargets(10))
- stance = STANCE_ATTACK //If the mob he was chasing is still nearby, resume the attack, otherwise go idle.
+ handle_stance(STANCE_ATTACK) //If the mob he was chasing is still nearby, resume the attack, otherwise go idle.
else
- stance = STANCE_IDLE
+ handle_stance(STANCE_IDLE)
if(STANCE_ALERT)
stop_automated_movement = 1
@@ -84,47 +73,38 @@
stance_step--
if(stance_step <= -20) //If we have not found a mob for 20-ish ticks, revert to idle mode
- stance = STANCE_IDLE
+ handle_stance(STANCE_IDLE)
if(stance_step >= 7) //If we have been staring at a mob for 7 ticks,
- stance = STANCE_ATTACK
+ handle_stance(STANCE_ATTACK)
if(STANCE_ATTACKING)
if(stance_step >= 20) //attacks for 20 ticks, then it gets tired and needs to rest
custom_emote(1, "is worn out and needs to rest." )
- stance = STANCE_TIRED
+ handle_stance(STANCE_TIRED)
stance_step = 0
walk(src, 0) //This stops the bear's walking
return
+ else
+ ..()
-
-
-/mob/living/simple_animal/hostile/bear/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(stance != STANCE_ATTACK && stance != STANCE_ATTACKING)
- stance = STANCE_ALERT
- stance_step = 6
- target_mob = user
- ..()
-
-/mob/living/simple_animal/hostile/bear/attack_hand(mob/living/carbon/human/M as mob)
- if(stance != STANCE_ATTACK && stance != STANCE_ATTACKING)
- stance = STANCE_ALERT
- stance_step = 6
- target_mob = M
+/mob/living/simple_animal/hostile/bear/update_icons()
..()
+ if(!stat)
+ if(loc && istype(loc,/turf/space))
+ icon_state = "bear"
+ else
+ icon_state = "bearfloor"
/mob/living/simple_animal/hostile/bear/Process_Spacemove(var/check_drift = 0)
- return //No drifting in space for space bears!
+ return
/mob/living/simple_animal/hostile/bear/FindTarget()
. = ..()
if(.)
custom_emote(1,"stares alertly at [.]")
- stance = STANCE_ALERT
+ handle_stance(STANCE_ALERT)
-/mob/living/simple_animal/hostile/bear/LoseTarget()
- ..(5)
-
-/mob/living/simple_animal/hostile/bear/AttackingTarget()
+/mob/living/simple_animal/hostile/bear/PunchTarget()
if(!Adjacent(target_mob))
return
custom_emote(1, pick( list("slashes at [target_mob]", "bites [target_mob]") ) )
@@ -135,38 +115,11 @@
var/mob/living/carbon/human/H = target_mob
var/dam_zone = pick(BP_TORSO, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG)
var/obj/item/organ/external/affecting = H.get_organ(ran_zone(dam_zone))
- H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), sharp=1, edge=1)
+ H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1, edge=1)
return H
else if(isliving(target_mob))
var/mob/living/L = target_mob
L.adjustBruteLoss(damage)
return L
- //else if(istype(target_mob,/obj/mecha))
- //var/obj/mecha/M = target_mob
- //M.attack_animal(src)
- //return M
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ else
+ ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/animals/carp.dm
similarity index 82%
rename from code/modules/mob/living/simple_animal/hostile/carp.dm
rename to code/modules/mob/living/simple_animal/animals/carp.dm
index 8708b1009e..b8813c8a61 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/animals/carp.dm
@@ -1,55 +1,52 @@
-
-
-/mob/living/simple_animal/hostile/carp
- name = "space carp"
- desc = "A ferocious, fang-bearing creature that resembles a fish."
- icon_state = "carp"
- icon_living = "carp"
- icon_dead = "carp_dead"
- icon_gib = "carp_gib"
- speak_chance = 0
- turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
- response_help = "pets the"
- response_disarm = "gently pushes aside the"
- response_harm = "hits the"
- speed = 4
- maxHealth = 25
- health = 25
-
- harm_intent_damage = 8
- melee_damage_lower = 15
- melee_damage_upper = 15
- attacktext = "bitten"
- attack_sound = 'sound/weapons/bite.ogg'
-
- //Space carp aren't affected by atmos.
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- break_stuff_probability = 15
-
- faction = "carp"
-
-/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)
- return 1 //No drifting in space for space carp! //original comments do not steal
-
-/mob/living/simple_animal/hostile/carp/FindTarget()
- . = ..()
- if(.)
- custom_emote(1,"nashes at [.]")
-
-/mob/living/simple_animal/hostile/carp/AttackingTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Weaken(3)
+/mob/living/simple_animal/hostile/carp
+ name = "space carp"
+ desc = "A ferocious, fang-bearing creature that resembles a fish."
+ icon_state = "carp"
+ icon_living = "carp"
+ icon_dead = "carp_dead"
+ icon_gib = "carp_gib"
+
+ faction = "carp"
+ maxHealth = 25
+ health = 25
+ speed = 4
+ turns_per_move = 5
+
+ response_help = "pets the"
+ response_disarm = "gently pushes aside the"
+ response_harm = "hits the"
+
+ harm_intent_damage = 8
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ attacktext = "bitten"
+ attack_sound = 'sound/weapons/bite.ogg'
+
+ //Space carp aren't affected by atmos.
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+
+/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)
+ return 1 //No drifting in space for space carp! //original comments do not steal
+
+/mob/living/simple_animal/hostile/carp/set_target()
+ . = ..()
+ if(.)
+ custom_emote(1,"nashes at [.]")
+
+/mob/living/simple_animal/hostile/carp/PunchTarget()
+ . =..()
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(15))
+ L.Weaken(3)
L.visible_message("\the [src] knocks down \the [L]! ")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/animals/cat.dm
similarity index 52%
rename from code/modules/mob/living/simple_animal/friendly/cat.dm
rename to code/modules/mob/living/simple_animal/animals/cat.dm
index 868bafd7cc..808ebdb8fa 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/animals/cat.dm
@@ -6,55 +6,44 @@
item_state = "cat2"
icon_living = "cat2"
icon_dead = "cat2_dead"
+
+ hostile = 1 //To mice, anyway.
+ investigates = 1
+ specific_targets = 1 //Only targets with Found()
+ run_at_them = 0 //DOMESTICATED
+ view_range = 5
+
+ turns_per_move = 5
+ see_in_dark = 6
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+
+ min_oxy = 16 //Require atleast 16kPA oxygen
+ minbodytemp = 223 //Below -50 Degrees Celcius
+ maxbodytemp = 323 //Above 50 Degrees Celcius
+
+ holder_type = /obj/item/weapon/holder/cat
+ mob_size = MOB_SMALL
+
+ speak_chance = 1
speak = list("Meow!","Esp!","Purr!","HSSSSS")
speak_emote = list("purrs", "meows")
emote_hear = list("meows","mews")
emote_see = list("shakes their head", "shivers")
- speak_chance = 1
- turns_per_move = 5
- see_in_dark = 6
+ say_maybe_target = list("Meow?","Mew?","Mao?")
+ say_got_target = list("MEOW!","HSSSS!","REEER!")
+
+ meat_amount = 1
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
+
var/turns_since_scan = 0
- var/mob/living/simple_animal/mouse/movement_target
var/mob/flee_target
- min_oxy = 16 //Require atleast 16kPA oxygen
- minbodytemp = 223 //Below -50 Degrees Celcius
- maxbodytemp = 323 //Above 50 Degrees Celcius
- holder_type = /obj/item/weapon/holder/cat
- mob_size = MOB_SMALL
/mob/living/simple_animal/cat/Life()
- //MICE!
- if((src.loc) && isturf(src.loc))
- if(!stat && !resting && !buckled)
- for(var/mob/living/simple_animal/mouse/M in loc)
- if(!M.stat)
- M.splat()
- visible_emote(pick("bites \the [M]!","toys with \the [M].","chomps on \the [M]!"))
- movement_target = null
- stop_automated_movement = 0
- break
-
- ..()
-
- for(var/mob/living/simple_animal/mouse/snack in oview(src,5))
- if(snack.stat < DEAD && prob(15))
- audible_emote(pick("hisses and spits!","mrowls fiercely!","eyes [snack] hungrily."))
- break
-
- if(!stat && !resting && !buckled)
- turns_since_scan++
- if (turns_since_scan > 5)
- walk_to(src,0)
- turns_since_scan = 0
-
- if (flee_target) //fleeing takes precendence
- handle_flee_target()
- else
- handle_movement_target()
+ . = ..()
+ if(!.) return
if(prob(2)) //spooky
var/mob/observer/dead/spook = locate() in range(src,5)
@@ -68,104 +57,60 @@
var/atom/A = pick(visible)
visible_emote("suddenly stops and stares at something unseen[istype(A) ? " near [A]":""].")
-/mob/living/simple_animal/cat/proc/handle_movement_target()
- //if our target is neither inside a turf or inside a human(???), stop
- if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) ))
- movement_target = null
- stop_automated_movement = 0
- //if we have no target or our current one is out of sight/too far away
- if( !movement_target || !(movement_target.loc in oview(src, 4)) )
- movement_target = null
- stop_automated_movement = 0
- for(var/mob/living/simple_animal/mouse/snack in oview(src)) //search for a new target
- if(isturf(snack.loc) && !snack.stat)
- movement_target = snack
- break
+ handle_flee_target()
- if(movement_target)
- stop_automated_movement = 1
- walk_to(src,movement_target,0,3)
+/mob/living/simple_animal/cat/PunchTarget()
+ if(istype(target_mob,/mob/living/simple_animal/mouse))
+ var/mob/living/simple_animal/mouse/mouse = target_mob
+ mouse.splat()
+ visible_emote(pick("bites \the [mouse]!","toys with \the [mouse].","chomps on \the [mouse]!"))
+ return mouse
+ else
+ ..()
+
+/mob/living/simple_animal/cat/Found(var/atom/found_atom)
+ if(istype(found_atom,/mob/living/simple_animal/mouse) && SA_attackable(found_atom))
+ return found_atom
/mob/living/simple_animal/cat/proc/handle_flee_target()
//see if we should stop fleeing
- if (flee_target && !(flee_target.loc in view(src)))
+ if (flee_target && !(flee_target in ListTargets(view_range)))
flee_target = null
- stop_automated_movement = 0
+ GiveUpMoving()
- if (flee_target)
+ if (flee_target && !stat && !buckled)
+ if (resting)
+ lay_down()
if(prob(25)) say("HSSSSS")
stop_automated_movement = 1
walk_away(src, flee_target, 7, 2)
-/mob/living/simple_animal/cat/proc/set_flee_target(atom/A)
- if(A)
- flee_target = A
- turns_since_scan = 5
-
-/mob/living/simple_animal/cat/attackby(var/obj/item/O, var/mob/user)
- . = ..()
- if(O.force)
- set_flee_target(user? user : src.loc)
-
-/mob/living/simple_animal/cat/attack_hand(mob/living/carbon/human/M as mob)
- . = ..()
- if(M.a_intent == I_HURT)
- set_flee_target(M)
+/mob/living/simple_animal/cat/react_to_attack(var/atom/A)
+ if(A == src) return
+ flee_target = A
+ turns_since_scan = 5
/mob/living/simple_animal/cat/ex_act()
. = ..()
- set_flee_target(src.loc)
-
-/mob/living/simple_animal/cat/bullet_act(var/obj/item/projectile/proj)
- . = ..()
- set_flee_target(proj.firer? proj.firer : src.loc)
-
-/mob/living/simple_animal/cat/hitby(atom/movable/AM)
- . = ..()
- set_flee_target(AM.thrower? AM.thrower : src.loc)
+ react_to_attack(src.loc)
//Basic friend AI
/mob/living/simple_animal/cat/fluff
var/mob/living/carbon/human/friend
var/befriend_job = null
-/mob/living/simple_animal/cat/fluff/handle_movement_target()
- if (friend)
- var/follow_dist = 4
- if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit) //danger
- follow_dist = 1
- else if (friend.stat || friend.health <= 50) //danger or just sleeping
- follow_dist = 2
- var/near_dist = max(follow_dist - 2, 1)
- var/current_dist = get_dist(src, friend)
-
- if (movement_target != friend)
- if (current_dist > follow_dist && !istype(movement_target, /mob/living/simple_animal/mouse) && (friend in oview(src)))
- //stop existing movement
- walk_to(src,0)
- turns_since_scan = 0
-
- //walk to friend
- stop_automated_movement = 1
- movement_target = friend
- walk_to(src, movement_target, near_dist, 4)
-
- //already following and close enough, stop
- else if (current_dist <= near_dist)
- walk_to(src,0)
- movement_target = null
- stop_automated_movement = 0
- if (prob(10))
- say("Meow!")
-
- if (!friend || movement_target != friend)
- ..()
-
/mob/living/simple_animal/cat/fluff/Life()
- ..()
- if (stat || !friend)
- return
- if (get_dist(src, friend) <= 1)
+ . = ..()
+ if(!. || ai_inactive || !friend) return
+
+ var/friend_dist = get_dist(src,friend)
+
+ if (friend_dist <= 4)
+ if(stance == STANCE_IDLE)
+ if(set_follow(friend))
+ handle_stance(STANCE_FOLLOW)
+
+ if (friend_dist <= 1)
if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit)
if (prob((friend.stat < DEAD)? 50 : 15))
var/verb = pick("meows", "mews", "mrowls")
@@ -213,6 +158,7 @@
item_state = "cat"
icon_living = "cat"
icon_dead = "cat_dead"
+ befriend_job = "Chief Medical Officer"
/mob/living/simple_animal/cat/kitten
name = "kitten"
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/animals/corgi.dm
similarity index 96%
rename from code/modules/mob/living/simple_animal/friendly/corgi.dm
rename to code/modules/mob/living/simple_animal/animals/corgi.dm
index 1b5cd7e37e..8f4adf8e54 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/animals/corgi.dm
@@ -1,217 +1,227 @@
-//Corgi
-/mob/living/simple_animal/corgi
- name = "\improper corgi"
- real_name = "corgi"
- desc = "It's a corgi."
- icon_state = "corgi"
- icon_living = "corgi"
- icon_dead = "corgi_dead"
- speak = list("YAP", "Woof!", "Bark!", "AUUUUUU")
- speak_emote = list("barks", "woofs")
- emote_hear = list("barks", "woofs", "yaps","pants")
- emote_see = list("shakes its head", "shivers")
- speak_chance = 1
- turns_per_move = 10
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
- meat_amount = 3
- response_help = "pets"
- response_disarm = "bops"
- response_harm = "kicks"
- see_in_dark = 5
- mob_size = 8
-
- var/obj/item/inventory_head
- var/obj/item/inventory_back
-
-//IAN! SQUEEEEEEEEE~
-/mob/living/simple_animal/corgi/Ian
- name = "Ian"
- real_name = "Ian" //Intended to hold the name without altering it.
- gender = MALE
- desc = "It's a corgi."
- var/turns_since_scan = 0
- var/obj/movement_target
- response_help = "pets"
- response_disarm = "bops"
- response_harm = "kicks"
-
-/mob/living/simple_animal/corgi/Ian/Life()
- ..()
-
- //Feeding, chasing food, FOOOOODDDD
- if(!stat && !resting && !buckled)
- turns_since_scan++
- if(turns_since_scan > 5)
- turns_since_scan = 0
- if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) ))
- movement_target = null
- stop_automated_movement = 0
- if( !movement_target || !(movement_target.loc in oview(src, 3)) )
- movement_target = null
- stop_automated_movement = 0
- for(var/obj/item/weapon/reagent_containers/food/snacks/S in oview(src,3))
- if(isturf(S.loc) || ishuman(S.loc))
- movement_target = S
- break
- if(movement_target)
- stop_automated_movement = 1
- step_to(src,movement_target,1)
- sleep(3)
- step_to(src,movement_target,1)
- sleep(3)
- step_to(src,movement_target,1)
-
- if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds
- if (movement_target.loc.x < src.x)
- set_dir(WEST)
- else if (movement_target.loc.x > src.x)
- set_dir(EAST)
- else if (movement_target.loc.y < src.y)
- set_dir(SOUTH)
- else if (movement_target.loc.y > src.y)
- set_dir(NORTH)
- else
- set_dir(SOUTH)
-
- if(isturf(movement_target.loc) )
- UnarmedAttack(movement_target)
- else if(ishuman(movement_target.loc) && prob(20))
- visible_emote("stares at the [movement_target] that [movement_target.loc] has with sad puppy eyes.")
-
- if(prob(1))
- visible_emote(pick("dances around","chases their tail"))
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
- set_dir(i)
- sleep(1)
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
- name = "Corgi meat"
- desc = "Tastes like... well you know..."
-
-/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
- if(istype(O, /obj/item/weapon/newspaper))
- if(!stat)
- for(var/mob/M in viewers(user, null))
- if ((M.client && !( M.blinded )))
- M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]")
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2))
- set_dir(i)
- sleep(1)
- else
- ..()
-
-/mob/living/simple_animal/corgi/regenerate_icons()
- overlays = list()
-
- if(inventory_head)
- var/head_icon_state = inventory_head.icon_state
- if(health <= 0)
- head_icon_state += "2"
-
- var/icon/head_icon = image('icons/mob/corgi_head.dmi',head_icon_state)
- if(head_icon)
- overlays += head_icon
-
- if(inventory_back)
- var/back_icon_state = inventory_back.icon_state
- if(health <= 0)
- back_icon_state += "2"
-
- var/icon/back_icon = image('icons/mob/corgi_back.dmi',back_icon_state)
- if(back_icon)
- overlays += back_icon
-
- return
-
-
-/mob/living/simple_animal/corgi/puppy
- name = "\improper corgi puppy"
- real_name = "corgi"
- desc = "It's a corgi puppy."
- icon_state = "puppy"
- icon_living = "puppy"
- icon_dead = "puppy_dead"
-
-//pupplies cannot wear anything.
-/mob/living/simple_animal/corgi/puppy/Topic(href, href_list)
- if(href_list["remove_inv"] || href_list["add_inv"])
- usr << "\red You can't fit this on [src]"
- return
- ..()
-
-
-//LISA! SQUEEEEEEEEE~
-/mob/living/simple_animal/corgi/Lisa
- name = "Lisa"
- real_name = "Lisa"
- gender = FEMALE
- desc = "It's a corgi with a cute pink bow."
- icon_state = "lisa"
- icon_living = "lisa"
- icon_dead = "lisa_dead"
- response_help = "pets"
- response_disarm = "bops"
- response_harm = "kicks"
- var/turns_since_scan = 0
- var/puppies = 0
-
-//Lisa already has a cute bow!
-/mob/living/simple_animal/corgi/Lisa/Topic(href, href_list)
- if(href_list["remove_inv"] || href_list["add_inv"])
- usr << "\red [src] already has a cute bow!"
- return
- ..()
-
-/mob/living/simple_animal/corgi/Lisa/Life()
- ..()
-
- if(!stat && !resting && !buckled)
- turns_since_scan++
- if(turns_since_scan > 15)
- turns_since_scan = 0
- var/alone = 1
- var/ian = 0
- for(var/mob/M in oviewers(7, src))
- if(istype(M, /mob/living/simple_animal/corgi/Ian))
- if(M.client)
- alone = 0
- break
- else
- ian = M
- else
- alone = 0
- break
- if(alone && ian && puppies < 4)
- if(near_camera(src) || near_camera(ian))
- return
- new /mob/living/simple_animal/corgi/puppy(loc)
-
-
- if(prob(1))
- visible_emote(pick("dances around","chases her tail"))
- spawn(0)
- for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
- set_dir(i)
- sleep(1)
-
-//Technically this should be like, its own file or something or a subset of dog but whatever. Not a coder.
-/mob/living/simple_animal/corgi/tamaskan
- name = "\improper tamaskan"
- real_name = "tamaskan"
- desc = "It's a tamaskan."
- icon_state = "tamaskan"
- icon_living = "tamaskan"
- icon_dead = "tamaskan_dead"
-
-/mob/living/simple_animal/corgi/tamaskan/spice
- name = "Spice"
- real_name = "Spice" //Intended to hold the name without altering it.
- gender = FEMALE
- desc = "It's a tamaskan, the name Spice can be found on its collar."
- var/turns_since_scan = 0
- var/obj/movement_target
- response_help = "pets"
- response_disarm = "bops"
- response_harm = "kicks"
\ No newline at end of file
+//Corgi
+/mob/living/simple_animal/corgi
+ name = "\improper corgi"
+ real_name = "corgi"
+ desc = "It's a corgi."
+ icon_state = "corgi"
+ icon_living = "corgi"
+ icon_dead = "corgi_dead"
+
+ run_at_them = 0
+ turns_per_move = 10
+
+ response_help = "pets"
+ response_disarm = "bops"
+ response_harm = "kicks"
+
+ see_in_dark = 5
+ mob_size = 8
+
+ speak_chance = 1
+ speak = list("YAP", "Woof!", "Bark!", "AUUUUUU")
+ speak_emote = list("barks", "woofs")
+ emote_hear = list("barks", "woofs", "yaps","pants")
+ emote_see = list("shakes its head", "shivers")
+
+ meat_amount = 3
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+
+ var/obj/item/inventory_head
+ var/obj/item/inventory_back
+
+//IAN! SQUEEEEEEEEE~
+/mob/living/simple_animal/corgi/Ian
+ name = "Ian"
+ real_name = "Ian" //Intended to hold the name without altering it.
+ gender = MALE
+ desc = "It's a corgi."
+ var/turns_since_scan = 0
+ var/obj/movement_target
+ response_help = "pets"
+ response_disarm = "bops"
+ response_harm = "kicks"
+
+/mob/living/simple_animal/corgi/Ian/Life()
+ ..()
+
+ //Not replacing with SA FollowTarget mechanics because Ian behaves... very... specifically.
+
+ //Feeding, chasing food, FOOOOODDDD
+ if(!stat && !resting && !buckled)
+ turns_since_scan++
+ if(turns_since_scan > 5)
+ turns_since_scan = 0
+ if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) ))
+ movement_target = null
+ stop_automated_movement = 0
+ if( !movement_target || !(movement_target.loc in oview(src, 3)) )
+ movement_target = null
+ stop_automated_movement = 0
+ for(var/obj/item/weapon/reagent_containers/food/snacks/S in oview(src,3))
+ if(isturf(S.loc) || ishuman(S.loc))
+ movement_target = S
+ break
+ if(movement_target)
+ stop_automated_movement = 1
+ step_to(src,movement_target,1)
+ sleep(3)
+ step_to(src,movement_target,1)
+ sleep(3)
+ step_to(src,movement_target,1)
+
+ if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds
+ if (movement_target.loc.x < src.x)
+ set_dir(WEST)
+ else if (movement_target.loc.x > src.x)
+ set_dir(EAST)
+ else if (movement_target.loc.y < src.y)
+ set_dir(SOUTH)
+ else if (movement_target.loc.y > src.y)
+ set_dir(NORTH)
+ else
+ set_dir(SOUTH)
+
+ if(isturf(movement_target.loc) )
+ UnarmedAttack(movement_target)
+ else if(ishuman(movement_target.loc) && prob(20))
+ visible_emote("stares at the [movement_target] that [movement_target.loc] has with sad puppy eyes.")
+
+ if(prob(1))
+ visible_emote(pick("dances around","chases their tail"))
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
+ set_dir(i)
+ sleep(1)
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+ name = "Corgi meat"
+ desc = "Tastes like... well you know..."
+
+/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri
+ if(istype(O, /obj/item/weapon/newspaper))
+ if(!stat)
+ for(var/mob/M in viewers(user, null))
+ if ((M.client && !( M.blinded )))
+ M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]")
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2))
+ set_dir(i)
+ sleep(1)
+ else
+ ..()
+
+/mob/living/simple_animal/corgi/regenerate_icons()
+ overlays = list()
+
+ if(inventory_head)
+ var/head_icon_state = inventory_head.icon_state
+ if(health <= 0)
+ head_icon_state += "2"
+
+ var/icon/head_icon = image('icons/mob/corgi_head.dmi',head_icon_state)
+ if(head_icon)
+ overlays += head_icon
+
+ if(inventory_back)
+ var/back_icon_state = inventory_back.icon_state
+ if(health <= 0)
+ back_icon_state += "2"
+
+ var/icon/back_icon = image('icons/mob/corgi_back.dmi',back_icon_state)
+ if(back_icon)
+ overlays += back_icon
+
+ return
+
+
+/mob/living/simple_animal/corgi/puppy
+ name = "\improper corgi puppy"
+ real_name = "corgi"
+ desc = "It's a corgi puppy."
+ icon_state = "puppy"
+ icon_living = "puppy"
+ icon_dead = "puppy_dead"
+
+//pupplies cannot wear anything.
+/mob/living/simple_animal/corgi/puppy/Topic(href, href_list)
+ if(href_list["remove_inv"] || href_list["add_inv"])
+ usr << "\red You can't fit this on [src]"
+ return
+ ..()
+
+
+//LISA! SQUEEEEEEEEE~
+/mob/living/simple_animal/corgi/Lisa
+ name = "Lisa"
+ real_name = "Lisa"
+ gender = FEMALE
+ desc = "It's a corgi with a cute pink bow."
+ icon_state = "lisa"
+ icon_living = "lisa"
+ icon_dead = "lisa_dead"
+ response_help = "pets"
+ response_disarm = "bops"
+ response_harm = "kicks"
+ var/turns_since_scan = 0
+ var/puppies = 0
+
+//Lisa already has a cute bow!
+/mob/living/simple_animal/corgi/Lisa/Topic(href, href_list)
+ if(href_list["remove_inv"] || href_list["add_inv"])
+ usr << "\red [src] already has a cute bow!"
+ return
+ ..()
+
+/mob/living/simple_animal/corgi/Lisa/Life()
+ ..()
+
+ if(!stat && !resting && !buckled)
+ turns_since_scan++
+ if(turns_since_scan > 15)
+ turns_since_scan = 0
+ var/alone = 1
+ var/ian = 0
+ for(var/mob/M in oviewers(7, src))
+ if(istype(M, /mob/living/simple_animal/corgi/Ian))
+ if(M.client)
+ alone = 0
+ break
+ else
+ ian = M
+ else
+ alone = 0
+ break
+ if(alone && ian && puppies < 4)
+ if(near_camera(src) || near_camera(ian))
+ return
+ new /mob/living/simple_animal/corgi/puppy(loc)
+
+
+ if(prob(1))
+ visible_emote(pick("dances around","chases her tail"))
+ spawn(0)
+ for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2))
+ set_dir(i)
+ sleep(1)
+
+//Technically this should be like, its own file or something or a subset of dog but whatever. Not a coder.
+/mob/living/simple_animal/corgi/tamaskan
+ name = "\improper tamaskan"
+ real_name = "tamaskan"
+ desc = "It's a tamaskan."
+ icon_state = "tamaskan"
+ icon_living = "tamaskan"
+ icon_dead = "tamaskan_dead"
+
+ retaliate = 1 //Tamaskans are bigass dogs, okay?
+
+/mob/living/simple_animal/corgi/tamaskan/spice
+ name = "Spice"
+ real_name = "Spice" //Intended to hold the name without altering it.
+ gender = FEMALE
+ desc = "It's a tamaskan, the name Spice can be found on its collar."
+ var/turns_since_scan = 0
+ var/obj/movement_target
+ response_help = "pets"
+ response_disarm = "bops"
+ response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/animals/crab.dm
similarity index 84%
rename from code/modules/mob/living/simple_animal/friendly/crab.dm
rename to code/modules/mob/living/simple_animal/animals/crab.dm
index 5b57bad674..acb95ac64c 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/animals/crab.dm
@@ -1,42 +1,46 @@
-//Look Sir, free crabs!
-/mob/living/simple_animal/crab
- name = "crab"
- desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time."
- icon_state = "crab"
- icon_living = "crab"
- icon_dead = "crab_dead"
- mob_size = MOB_SMALL
- speak_emote = list("clicks")
- emote_hear = list("clicks")
- emote_see = list("clacks")
- speak_chance = 1
- turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stomps"
- stop_automated_movement = 1
- friendly = "pinches"
- mob_size = 5
- var/obj/item/inventory_head
- var/obj/item/inventory_mask
-
-/mob/living/simple_animal/crab/Life()
- ..()
- //CRAB movement
- if(!ckey && !stat)
- if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
- turns_since_move++
- if(turns_since_move >= turns_per_move)
- Move(get_step(src,pick(4,8)))
- turns_since_move = 0
- regenerate_icons()
-
-//COFFEE! SQUEEEEEEEEE!
-/mob/living/simple_animal/crab/Coffee
- name = "Coffee"
- real_name = "Coffee"
- desc = "It's Coffee, the other pet!"
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stomps"
+//Look Sir, free crabs!
+/mob/living/simple_animal/crab
+ name = "crab"
+ desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time."
+ icon_state = "crab"
+ icon_living = "crab"
+ icon_dead = "crab_dead"
+
+ wander = 0
+ stop_automated_movement = 1
+ turns_per_move = 5
+ mob_size = MOB_SMALL
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "stomps"
+ friendly = "pinches"
+
+ speak_chance = 1
+ speak_emote = list("clicks")
+ emote_hear = list("clicks")
+ emote_see = list("clacks")
+
+ var/obj/item/inventory_head
+ var/obj/item/inventory_mask
+
+/mob/living/simple_animal/crab/Life()
+ ..()
+ //CRAB movement, I'm not porting this up to SA because... "sideways-only movement" var nothanks
+ if(!ckey && !stat)
+ if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
+ lifes_since_move++
+ if(lifes_since_move >= turns_per_move)
+ Move(get_step(src,pick(4,8)))
+ lifes_since_move = 0
+ regenerate_icons()
+
+//COFFEE! SQUEEEEEEEEE!
+/mob/living/simple_animal/crab/Coffee
+ name = "Coffee"
+ real_name = "Coffee"
+ desc = "It's Coffee, the other pet!"
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "stomps"
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/animals/farm_animals.dm
similarity index 89%
rename from code/modules/mob/living/simple_animal/friendly/farm_animals.dm
rename to code/modules/mob/living/simple_animal/animals/farm_animals.dm
index 68578ca08e..fc21fbddfd 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/animals/farm_animals.dm
@@ -1,268 +1,282 @@
-//goat
-/mob/living/simple_animal/hostile/retaliate/goat
- name = "goat"
- desc = "Not known for their pleasant disposition."
- icon_state = "goat"
- icon_living = "goat"
- icon_dead = "goat_dead"
- speak = list("EHEHEHEHEH","eh?")
- speak_emote = list("brays")
- emote_hear = list("brays")
- emote_see = list("shakes its head", "stamps a foot", "glares around")
- speak_chance = 1
- turns_per_move = 5
- see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- meat_amount = 4
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
- faction = "goat"
- attacktext = "kicked"
- health = 40
- melee_damage_lower = 1
- melee_damage_upper = 5
- var/datum/reagents/udder = null
-
-/mob/living/simple_animal/hostile/retaliate/goat/New()
- udder = new(50)
- udder.my_atom = src
- ..()
-
-/mob/living/simple_animal/hostile/retaliate/goat/Life()
- . = ..()
- if(.)
- //chance to go crazy and start wacking stuff
- if(!enemies.len && prob(1))
- Retaliate()
-
- if(enemies.len && prob(10))
- enemies = list()
- LoseTarget()
- src.visible_message("\blue [src] calms down.")
-
- if(stat == CONSCIOUS)
- if(udder && prob(5))
- udder.add_reagent("milk", rand(5, 10))
-
- if(locate(/obj/effect/plant) in loc)
- var/obj/effect/plant/SV = locate() in loc
- SV.die_off(1)
-
- if(locate(/obj/machinery/portable_atmospherics/hydroponics/soil/invisible) in loc)
- var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/SP = locate() in loc
- qdel(SP)
-
- if(!pulledby)
- var/obj/effect/plant/food
- food = locate(/obj/effect/plant) in oview(5,loc)
- if(food)
- var/step = get_step_to(src, food, 0)
- Move(step)
-
-/mob/living/simple_animal/hostile/retaliate/goat/Retaliate()
- ..()
- if(stat == CONSCIOUS)
- visible_message("[src] gets an evil-looking gleam in their eye. ")
-
-/mob/living/simple_animal/hostile/retaliate/goat/Move()
- ..()
- if(!stat)
- for(var/obj/effect/plant/SV in loc)
- SV.die_off(1)
-
-/mob/living/simple_animal/hostile/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob)
- var/obj/item/weapon/reagent_containers/glass/G = O
- if(stat == CONSCIOUS && istype(G) && G.is_open_container())
- user.visible_message("[user] milks [src] using \the [O]. ")
- var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
- if(G.reagents.total_volume >= G.volume)
- user << "\red The [O] is full."
- if(!transfered)
- user << "\red The udder is dry. Wait a bit longer..."
- else
- ..()
-//cow
-/mob/living/simple_animal/cow
- name = "cow"
- desc = "Known for their milk, just don't tip them over."
- icon_state = "cow"
- icon_living = "cow"
- icon_dead = "cow_dead"
- icon_gib = "cow_gib"
- speak = list("moo?","moo","MOOOOOO")
- speak_emote = list("moos","moos hauntingly")
- emote_hear = list("brays")
- emote_see = list("shakes its head")
- speak_chance = 1
- turns_per_move = 5
- see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- meat_amount = 6
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
- attacktext = "kicked"
- health = 50
- var/datum/reagents/udder = null
-
-/mob/living/simple_animal/cow/New()
- udder = new(50)
- udder.my_atom = src
- ..()
-
-/mob/living/simple_animal/cow/attackby(var/obj/item/O as obj, var/mob/user as mob)
- var/obj/item/weapon/reagent_containers/glass/G = O
- if(stat == CONSCIOUS && istype(G) && G.is_open_container())
- user.visible_message("[user] milks [src] using \the [O]. ")
- var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
- if(G.reagents.total_volume >= G.volume)
- user << "\red The [O] is full."
- if(!transfered)
- user << "\red The udder is dry. Wait a bit longer..."
- else
- ..()
-
-/mob/living/simple_animal/cow/Life()
- . = ..()
- if(stat == CONSCIOUS)
- if(udder && prob(5))
- udder.add_reagent("milk", rand(5, 10))
-
-/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M as mob)
- if(!stat && M.a_intent == I_DISARM && icon_state != icon_dead)
- M.visible_message("[M] tips over [src]. ","You tip over [src]. ")
- Weaken(30)
- icon_state = icon_dead
- spawn(rand(20,50))
- if(!stat && M)
- icon_state = icon_living
- var/list/responses = list( "[src] looks at you imploringly.",
- "[src] looks at you pleadingly",
- "[src] looks at you with a resigned expression.",
- "[src] seems resigned to its fate.")
- M << pick(responses)
- else
- ..()
-
-/mob/living/simple_animal/chick
- name = "\improper chick"
- desc = "Adorable! They make such a racket though."
- icon_state = "chick"
- icon_living = "chick"
- icon_dead = "chick_dead"
- icon_gib = "chick_gib"
- speak = list("Cherp.","Cherp?","Chirrup.","Cheep!")
- speak_emote = list("cheeps")
- emote_hear = list("cheeps")
- emote_see = list("pecks at the ground","flaps its tiny wings")
- speak_chance = 2
- turns_per_move = 2
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- meat_amount = 1
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
- attacktext = "kicked"
- health = 1
- var/amount_grown = 0
- pass_flags = PASSTABLE | PASSGRILLE
- mob_size = MOB_MINISCULE
-
-/mob/living/simple_animal/chick/New()
- ..()
- pixel_x = rand(-6, 6)
- pixel_y = rand(0, 10)
-
-/mob/living/simple_animal/chick/Life()
- . =..()
- if(!.)
- return
- if(!stat)
- amount_grown += rand(1,2)
- if(amount_grown >= 100)
- new /mob/living/simple_animal/chicken(src.loc)
- qdel(src)
-
-var/const/MAX_CHICKENS = 50
-var/global/chicken_count = 0
-
-/mob/living/simple_animal/chicken
- name = "\improper chicken"
- desc = "Hopefully the eggs are good this season."
- icon_state = "chicken"
- icon_living = "chicken"
- icon_dead = "chicken_dead"
- speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.")
- speak_emote = list("clucks","croons")
- emote_hear = list("clucks")
- emote_see = list("pecks at the ground","flaps its wings viciously")
- speak_chance = 2
- turns_per_move = 3
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- meat_amount = 2
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
- attacktext = "kicked"
- health = 10
- var/eggsleft = 0
- var/body_color
- pass_flags = PASSTABLE
- mob_size = MOB_SMALL
-
-/mob/living/simple_animal/chicken/New()
- ..()
- if(!body_color)
- body_color = pick( list("brown","black","white") )
- icon_state = "chicken_[body_color]"
- icon_living = "chicken_[body_color]"
- icon_dead = "chicken_[body_color]_dead"
- pixel_x = rand(-6, 6)
- pixel_y = rand(0, 10)
- chicken_count += 1
-
-/mob/living/simple_animal/chicken/death()
- ..()
- chicken_count -= 1
-
-/mob/living/simple_animal/chicken/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) //feedin' dem chickens
- var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O
- if(G.seed && G.seed.kitchen_tag == "wheat")
- if(!stat && eggsleft < 8)
- user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.")
- user.drop_item()
- qdel(O)
- eggsleft += rand(1, 4)
- else
- user << "\blue [name] doesn't seem hungry!"
- else
- user << "[name] doesn't seem interested in that."
- else
- ..()
-
-/mob/living/simple_animal/chicken/Life()
- . =..()
- if(!.)
- return
- if(!stat && prob(3) && eggsleft > 0)
- visible_message("[src] [pick("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")]")
- eggsleft--
- var/obj/item/weapon/reagent_containers/food/snacks/egg/E = new(get_turf(src))
- E.pixel_x = rand(-6,6)
- E.pixel_y = rand(-6,6)
- if(chicken_count < MAX_CHICKENS && prob(10))
- processing_objects.Add(E)
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/var/amount_grown = 0
-/obj/item/weapon/reagent_containers/food/snacks/egg/process()
- if(isturf(loc))
- amount_grown += rand(1,2)
- if(amount_grown >= 100)
- visible_message("[src] hatches with a quiet cracking sound.")
- new /mob/living/simple_animal/chick(get_turf(src))
- processing_objects.Remove(src)
- qdel(src)
- else
- processing_objects.Remove(src)
+//goat
+/mob/living/simple_animal/retaliate/goat
+ name = "goat"
+ desc = "Not known for their pleasant disposition."
+ icon_state = "goat"
+ icon_living = "goat"
+ icon_dead = "goat_dead"
+
+ faction = "goat"
+
+ health = 40
+ turns_per_move = 5
+ see_in_dark = 6
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+
+ melee_damage_lower = 1
+ melee_damage_upper = 5
+ attacktext = "kicked"
+
+ speak_chance = 1
+ speak = list("EHEHEHEHEH","eh?")
+ speak_emote = list("brays")
+ emote_hear = list("brays")
+ emote_see = list("shakes its head", "stamps a foot", "glares around")
+
+ meat_amount = 4
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/datum/reagents/udder = null
+
+/mob/living/simple_animal/retaliate/goat/New()
+ udder = new(50)
+ udder.my_atom = src
+ ..()
+
+/mob/living/simple_animal/retaliate/goat/Life()
+ . = ..()
+ if(.)
+ if(stat == CONSCIOUS)
+ if(udder && prob(5))
+ udder.add_reagent("milk", rand(5, 10))
+
+ if(locate(/obj/effect/plant) in loc)
+ var/obj/effect/plant/SV = locate() in loc
+ SV.die_off(1)
+
+ if(locate(/obj/machinery/portable_atmospherics/hydroponics/soil/invisible) in loc)
+ var/obj/machinery/portable_atmospherics/hydroponics/soil/invisible/SP = locate() in loc
+ qdel(SP)
+
+ if(!pulledby)
+ var/obj/effect/plant/food
+ food = locate(/obj/effect/plant) in oview(5,loc)
+ if(food)
+ var/step = get_step_to(src, food, 0)
+ Move(step)
+
+/mob/living/simple_animal/retaliate/goat/react_to_attack()
+ . = ..()
+ if(.)
+ visible_message("[src] gets an evil-looking gleam in their eye. ")
+
+/mob/living/simple_animal/retaliate/goat/Move()
+ ..()
+ if(!stat)
+ for(var/obj/effect/plant/SV in loc)
+ SV.die_off(1)
+
+/mob/living/simple_animal/retaliate/goat/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ var/obj/item/weapon/reagent_containers/glass/G = O
+ if(stat == CONSCIOUS && istype(G) && G.is_open_container())
+ user.visible_message("[user] milks [src] using \the [O]. ")
+ var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
+ if(G.reagents.total_volume >= G.volume)
+ user << "\red The [O] is full."
+ if(!transfered)
+ user << "\red The udder is dry. Wait a bit longer..."
+ else
+ ..()
+//cow
+/mob/living/simple_animal/cow
+ name = "cow"
+ desc = "Known for their milk, just don't tip them over."
+ icon_state = "cow"
+ icon_living = "cow"
+ icon_dead = "cow_dead"
+ icon_gib = "cow_gib"
+
+ health = 50
+ turns_per_move = 5
+ see_in_dark = 6
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+ attacktext = "kicked"
+
+ speak_chance = 1
+ speak = list("moo?","moo","MOOOOOO")
+ speak_emote = list("moos","moos hauntingly")
+ emote_hear = list("brays")
+ emote_see = list("shakes its head")
+
+ meat_amount = 6
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/datum/reagents/udder = null
+
+/mob/living/simple_animal/cow/New()
+ udder = new(50)
+ udder.my_atom = src
+ ..()
+
+/mob/living/simple_animal/cow/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ var/obj/item/weapon/reagent_containers/glass/G = O
+ if(stat == CONSCIOUS && istype(G) && G.is_open_container())
+ user.visible_message("[user] milks [src] using \the [O]. ")
+ var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
+ if(G.reagents.total_volume >= G.volume)
+ user << "\red The [O] is full."
+ if(!transfered)
+ user << "\red The udder is dry. Wait a bit longer..."
+ else
+ ..()
+
+/mob/living/simple_animal/cow/Life()
+ . = ..()
+ if(stat == CONSCIOUS)
+ if(udder && prob(5))
+ udder.add_reagent("milk", rand(5, 10))
+
+/mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M as mob)
+ if(!stat && M.a_intent == I_DISARM && icon_state != icon_dead)
+ M.visible_message("[M] tips over [src]. ","You tip over [src]. ")
+ Weaken(30)
+ icon_state = icon_dead
+ spawn(rand(20,50))
+ if(!stat && M)
+ icon_state = icon_living
+ var/list/responses = list( "[src] looks at you imploringly.",
+ "[src] looks at you pleadingly",
+ "[src] looks at you with a resigned expression.",
+ "[src] seems resigned to its fate.")
+ M << pick(responses)
+ else
+ ..()
+
+/mob/living/simple_animal/chick
+ name = "\improper chick"
+ desc = "Adorable! They make such a racket though."
+ icon_state = "chick"
+ icon_living = "chick"
+ icon_dead = "chick_dead"
+ icon_gib = "chick_gib"
+
+ health = 1
+ turns_per_move = 2
+
+ pass_flags = PASSTABLE | PASSGRILLE
+ mob_size = MOB_MINISCULE
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+ attacktext = "kicked"
+
+ speak_chance = 2
+ speak = list("Cherp.","Cherp?","Chirrup.","Cheep!")
+ speak_emote = list("cheeps")
+ emote_hear = list("cheeps")
+ emote_see = list("pecks at the ground","flaps its tiny wings")
+
+ meat_amount = 1
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/amount_grown = 0
+
+/mob/living/simple_animal/chick/New()
+ ..()
+ pixel_x = rand(-6, 6)
+ pixel_y = rand(0, 10)
+
+/mob/living/simple_animal/chick/Life()
+ . =..()
+ if(!.)
+ return
+ if(!stat)
+ amount_grown += rand(1,2)
+ if(amount_grown >= 100)
+ new /mob/living/simple_animal/chicken(src.loc)
+ qdel(src)
+
+var/const/MAX_CHICKENS = 50
+var/global/chicken_count = 0
+
+/mob/living/simple_animal/chicken
+ name = "\improper chicken"
+ desc = "Hopefully the eggs are good this season."
+ icon_state = "chicken"
+ icon_living = "chicken"
+ icon_dead = "chicken_dead"
+
+ health = 10
+ turns_per_move = 3
+ pass_flags = PASSTABLE
+ mob_size = MOB_SMALL
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+ attacktext = "kicked"
+
+ speak_chance = 2
+ speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.")
+ speak_emote = list("clucks","croons")
+ emote_hear = list("clucks")
+ emote_see = list("pecks at the ground","flaps its wings viciously")
+
+ meat_amount = 2
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/eggsleft = 0
+ var/body_color
+
+/mob/living/simple_animal/chicken/New()
+ ..()
+ if(!body_color)
+ body_color = pick( list("brown","black","white") )
+ icon_state = "chicken_[body_color]"
+ icon_living = "chicken_[body_color]"
+ icon_dead = "chicken_[body_color]_dead"
+ pixel_x = rand(-6, 6)
+ pixel_y = rand(0, 10)
+ chicken_count += 1
+
+/mob/living/simple_animal/chicken/death()
+ ..()
+ chicken_count -= 1
+
+/mob/living/simple_animal/chicken/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) //feedin' dem chickens
+ var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O
+ if(G.seed && G.seed.kitchen_tag == "wheat")
+ if(!stat && eggsleft < 8)
+ user.visible_message("\blue [user] feeds [O] to [name]! It clucks happily.","\blue You feed [O] to [name]! It clucks happily.")
+ user.drop_item()
+ qdel(O)
+ eggsleft += rand(1, 4)
+ else
+ user << "\blue [name] doesn't seem hungry!"
+ else
+ user << "[name] doesn't seem interested in that."
+ else
+ ..()
+
+/mob/living/simple_animal/chicken/Life()
+ . =..()
+ if(!.)
+ return
+ if(!stat && prob(3) && eggsleft > 0)
+ visible_message("[src] [pick("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")]")
+ eggsleft--
+ var/obj/item/weapon/reagent_containers/food/snacks/egg/E = new(get_turf(src))
+ E.pixel_x = rand(-6,6)
+ E.pixel_y = rand(-6,6)
+ if(chicken_count < MAX_CHICKENS && prob(10))
+ processing_objects.Add(E)
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/var/amount_grown = 0
+/obj/item/weapon/reagent_containers/food/snacks/egg/process()
+ if(isturf(loc))
+ amount_grown += rand(1,2)
+ if(amount_grown >= 100)
+ visible_message("[src] hatches with a quiet cracking sound.")
+ new /mob/living/simple_animal/chick(get_turf(src))
+ processing_objects.Remove(src)
+ qdel(src)
+ else
+ processing_objects.Remove(src)
diff --git a/code/modules/mob/living/simple_animal/animals/fish.dm b/code/modules/mob/living/simple_animal/animals/fish.dm
new file mode 100644
index 0000000000..88e0dc2e29
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/animals/fish.dm
@@ -0,0 +1,73 @@
+// Different types of fish! They are all subtypes of this tho
+/mob/living/simple_animal/fish
+ name = "fish"
+ desc = "Its a fishy. No touchy fishy."
+ icon = 'icons/mob/fish.dmi'
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks
+
+ // By defautl they can be in any water turf. Subtypes might restrict to deep/shallow etc
+ var/global/list/suitable_turf_types = list(
+ /turf/simulated/floor/beach/water,
+ /turf/simulated/floor/beach/coastline,
+ /turf/simulated/floor/holofloor/beach/water,
+ /turf/simulated/floor/holofloor/beach/coastline,
+ /turf/simulated/floor/water
+ )
+
+// Don't swim out of the water
+/mob/living/simple_animal/fish/handle_wander_movement()
+ if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
+ lifes_since_move++ //Increment turns since move (turns are life() cycles)
+ if(lifes_since_move >= turns_per_move)
+ if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled
+ var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
+ moving_to = pick(cardinal)
+ dir = moving_to //How about we turn them the direction they are moving, yay.
+ var/turf/T = get_step(src,moving_to)
+ if(T && is_type_in_list(T, suitable_turf_types))
+ Move(T)
+ lifes_since_move = 0
+
+// Take damage if we are not in water
+/mob/living/simple_animal/fish/handle_breathing()
+ var/turf/T = get_turf(src)
+ if(T && !is_type_in_list(T, suitable_turf_types))
+ if(prob(50))
+ say(pick("Blub", "Glub", "Burble"))
+ adjustBruteLoss(unsuitable_atoms_damage)
+
+/mob/living/simple_animal/fish/bass
+ name = "bass"
+ icon_state = "bass-swim"
+ icon_living = "bass-swim"
+ icon_dead = "bass-dead"
+
+/mob/living/simple_animal/fish/trout
+ name = "trout"
+ icon_state = "trout-swim"
+ icon_living = "trout-swim"
+ icon_dead = "trout-dead"
+
+/mob/living/simple_animal/fish/salmon
+ name = "salmon"
+ icon_state = "salmon-swim"
+ icon_living = "salmon-swim"
+ icon_dead = "salmon-dead"
+
+/mob/living/simple_animal/fish/perch
+ name = "perch"
+ icon_state = "perch-swim"
+ icon_living = "perch-swim"
+ icon_dead = "perch-dead"
+
+/mob/living/simple_animal/fish/pike
+ name = "pike"
+ icon_state = "pike-swim"
+ icon_living = "pike-swim"
+ icon_dead = "pike-dead"
+
+/mob/living/simple_animal/fish/koi
+ name = "koi"
+ icon_state = "koi-swim"
+ icon_living = "koi-swim"
+ icon_dead = "koi-dead"
diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm
new file mode 100644
index 0000000000..acb1d7a1b7
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/animals/giant_spider.dm
@@ -0,0 +1,239 @@
+
+#define SPINNING_WEB 1
+#define LAYING_EGGS 2
+#define MOVING_TO_TARGET 3
+#define SPINNING_COCOON 4
+
+//basic spider mob, these generally guard nests
+/mob/living/simple_animal/hostile/giant_spider
+ name = "giant spider"
+ desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes."
+ icon_state = "guard"
+ icon_living = "guard"
+ icon_dead = "guard_dead"
+
+ faction = "spiders"
+ maxHealth = 200
+ health = 200
+ pass_flags = PASSTABLE
+ move_to_delay = 6
+ speed = 3
+
+ stop_when_pulled = 0
+ turns_per_move = 5
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ heat_damage_per_tick = 20
+ cold_damage_per_tick = 20
+
+ speak_chance = 5
+ speak_emote = list("chitters")
+ emote_hear = list("chitters")
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/spidermeat
+
+ var/busy = 0
+ var/poison_per_bite = 5
+ var/poison_chance = 10
+ var/poison_type = "spidertoxin"
+
+//nursemaids - these create webs and eggs
+/mob/living/simple_animal/hostile/giant_spider/nurse
+ desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes."
+ icon_state = "nurse"
+ icon_living = "nurse"
+ icon_dead = "nurse_dead"
+
+ maxHealth = 40
+ health = 40
+
+ melee_damage_lower = 5
+ melee_damage_upper = 10
+ poison_per_bite = 7
+ poison_type = "stoxin"
+
+ var/fed = 0
+ var/atom/cocoon_target
+
+//hunters have the most poison and move the fastest, so they can find prey
+/mob/living/simple_animal/hostile/giant_spider/hunter
+ desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes."
+ icon_state = "hunter"
+ icon_living = "hunter"
+ icon_dead = "hunter_dead"
+
+ maxHealth = 120
+ health = 120
+ move_to_delay = 4
+
+ melee_damage_lower = 10
+ melee_damage_upper = 20
+
+ poison_per_bite = 5
+
+/mob/living/simple_animal/hostile/giant_spider/New(var/location, var/atom/parent)
+ get_light_and_color(parent)
+ ..()
+
+/mob/living/simple_animal/hostile/giant_spider/PunchTarget()
+ . = ..()
+ if(isliving(.))
+ var/mob/living/L = .
+ if(L.reagents)
+ L.reagents.add_reagent(poison_type, poison_per_bite)
+ if(prob(poison_chance))
+ L << "You feel a tiny prick. "
+ L.reagents.add_reagent(poison_type, poison_per_bite)
+
+/mob/living/simple_animal/hostile/giant_spider/nurse/PunchTarget()
+ . = ..()
+ if(ishuman(.))
+ var/mob/living/carbon/human/H = .
+ if(prob(5))
+ var/obj/item/organ/external/O = pick(H.organs)
+ if(!(O.robotic >= ORGAN_ROBOT))
+ var/eggcount
+ for(var/obj/I in O.implants)
+ if(istype(I, /obj/effect/spider/eggcluster))
+ eggcount ++
+ if(!eggcount)
+ var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/small, list(O, src))
+ O.implants += eggs
+ H << "The [src] injects something into your [O.name]! "
+
+/mob/living/simple_animal/hostile/giant_spider/handle_stance()
+ . = ..()
+ if(ai_inactive) return
+
+ switch(stance)
+ if(STANCE_IDLE)
+ //1% chance to skitter madly away
+ if(!busy && prob(1))
+ /*var/list/move_targets = list()
+ for(var/turf/T in orange(20, src))
+ move_targets.Add(T)*/
+ stop_automated_movement = 1
+ walk_to(src, pick(orange(20, src)), 1, move_to_delay)
+ spawn(5 SECONDS)
+ stop_automated_movement = 0
+ walk(src,0)
+
+/mob/living/simple_animal/hostile/giant_spider/nurse/proc/GiveUp(var/C)
+ spawn(10 SECONDS)
+ if(busy == MOVING_TO_TARGET)
+ if(cocoon_target == C && get_dist(src,cocoon_target) > 1)
+ cocoon_target = null
+ busy = 0
+ stop_automated_movement = 0
+
+/mob/living/simple_animal/hostile/giant_spider/nurse/Life()
+ . = ..()
+ if(!. || ai_inactive) return
+
+ if(stance == STANCE_IDLE)
+ var/list/can_see = view(src, 10)
+ //30% chance to stop wandering and do something
+ if(!busy && prob(30))
+ //first, check for potential food nearby to cocoon
+ for(var/mob/living/C in can_see)
+ if(C.stat)
+ cocoon_target = C
+ busy = MOVING_TO_TARGET
+ walk_to(src, C, 1, move_to_delay)
+ //give up if we can't reach them after 10 seconds
+ GiveUp(C)
+ return
+
+ //second, spin a sticky spiderweb on this tile
+ var/obj/effect/spider/stickyweb/W = locate() in get_turf(src)
+ if(!W)
+ busy = SPINNING_WEB
+ src.visible_message("\The [src] begins to secrete a sticky substance. ")
+ stop_automated_movement = 1
+ spawn(40)
+ if(busy == SPINNING_WEB)
+ new /obj/effect/spider/stickyweb(src.loc)
+ busy = 0
+ stop_automated_movement = 0
+ else
+ //third, lay an egg cluster there
+ var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
+ if(!E && fed > 0)
+ busy = LAYING_EGGS
+ src.visible_message("\The [src] begins to lay a cluster of eggs. ")
+ stop_automated_movement = 1
+ spawn(50)
+ if(busy == LAYING_EGGS)
+ E = locate() in get_turf(src)
+ if(!E)
+ PoolOrNew(/obj/effect/spider/eggcluster, list(loc, src))
+ fed--
+ busy = 0
+ stop_automated_movement = 0
+ else
+ //fourthly, cocoon any nearby items so those pesky pinkskins can't use them
+ for(var/obj/O in can_see)
+
+ if(O.anchored)
+ continue
+
+ if(istype(O, /obj/item) || istype(O, /obj/structure) || istype(O, /obj/machinery))
+ cocoon_target = O
+ busy = MOVING_TO_TARGET
+ stop_automated_movement = 1
+ walk_to(src, O, 1, move_to_delay)
+ //give up if we can't reach them after 10 seconds
+ GiveUp(O)
+
+ else if(busy == MOVING_TO_TARGET && cocoon_target)
+ if(get_dist(src, cocoon_target) <= 1)
+ busy = SPINNING_COCOON
+ src.visible_message("\The [src] begins to secrete a sticky substance around \the [cocoon_target]. ")
+ stop_automated_movement = 1
+ walk(src,0)
+ spawn(50)
+ if(busy == SPINNING_COCOON)
+ if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1)
+ var/obj/effect/spider/cocoon/C = new(cocoon_target.loc)
+ var/large_cocoon = 0
+ C.pixel_x = cocoon_target.pixel_x
+ C.pixel_y = cocoon_target.pixel_y
+ for(var/mob/living/M in C.loc)
+ if(istype(M, /mob/living/simple_animal/hostile/giant_spider))
+ continue
+ large_cocoon = 1
+ fed++
+ src.visible_message("\The [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out. ")
+ M.forceMove(C)
+ C.pixel_x = M.pixel_x
+ C.pixel_y = M.pixel_y
+ break
+ for(var/obj/item/I in C.loc)
+ I.forceMove(C)
+ for(var/obj/structure/S in C.loc)
+ if(!S.anchored)
+ S.forceMove(C)
+ large_cocoon = 1
+ for(var/obj/machinery/M in C.loc)
+ if(!M.anchored)
+ M.forceMove(C)
+ large_cocoon = 1
+ if(large_cocoon)
+ C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3")
+ busy = 0
+ stop_automated_movement = 0
+
+ else
+ busy = 0
+ stop_automated_movement = 0
+
+#undef SPINNING_WEB
+#undef LAYING_EGGS
+#undef MOVING_TO_TARGET
+#undef SPINNING_COCOON
diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm
similarity index 55%
rename from code/modules/mob/living/simple_animal/hostile/goose.dm
rename to code/modules/mob/living/simple_animal/animals/goose.dm
index 0f2c4af611..217ea0b024 100644
--- a/code/modules/mob/living/simple_animal/hostile/goose.dm
+++ b/code/modules/mob/living/simple_animal/animals/goose.dm
@@ -1,5 +1,3 @@
-
-
/mob/living/simple_animal/hostile/goose
name = "space goose"
desc = "That's no duck. That's a space goose. You have a bad feeling about this."
@@ -7,15 +5,18 @@
icon_living = "goose"
icon_dead = "goose_dead"
icon_gib = "generic_gib"
- speak_chance = 0
+
+ faction = "geese"
+
+ maxHealth = 15
+ health = 15
+ speed = 4
+
turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
- speed = 4
- maxHealth = 15 //nothing an unarmed crewmember shouldn't be able to stomp into the dirt, if they're alone.
- health = 15
harm_intent_damage = 5
melee_damage_lower = 5 //they're meant to be annoying, not threatening.
@@ -23,12 +24,34 @@
attacktext = "pecked"
attack_sound = 'sound/weapons/bite.ogg'
- break_stuff_probability = 5
+ //SPACE geese aren't affected by atmos.
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
- faction = "geese"
+ speak_chance = 10
+ speak = list("HONK!")
+ emote_hear = list("honks loudly!")
+ emote_see = list()
+ say_understood = list()
+ say_cannot = list()
+ say_maybe_target = list("Honk?")
+ say_got_target = list("HONK!!!")
+ reactions = list()
-/mob/living/simple_animal/hostile/goose/FindTarget()
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+/mob/living/simple_animal/hostile/goose/set_target()
. = ..()
if(.)
- custom_emote(1,"flaps and honks at [.]!")
\ No newline at end of file
+ custom_emote(1,"flaps and honks at [.]!")
+
+/mob/living/simple_animal/hostile/goose/Process_Spacemove(var/check_drift = 0)
+ return
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/animals/lizard.dm
similarity index 95%
rename from code/modules/mob/living/simple_animal/friendly/lizard.dm
rename to code/modules/mob/living/simple_animal/animals/lizard.dm
index fe1ab1dcd0..5c986d21bb 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/animals/lizard.dm
@@ -1,17 +1,22 @@
-/mob/living/simple_animal/lizard
- name = "Lizard"
- desc = "A cute tiny lizard."
- icon = 'icons/mob/critter.dmi'
- icon_state = "lizard"
- icon_living = "lizard"
- icon_dead = "lizard-dead"
- speak_emote = list("hisses")
- health = 5
- maxHealth = 5
- attacktext = "bitten"
- melee_damage_lower = 1
- melee_damage_upper = 2
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
- mob_size = MOB_MINISCULE
+/mob/living/simple_animal/lizard
+ name = "Lizard"
+ desc = "A cute tiny lizard."
+ icon = 'icons/mob/critter.dmi'
+ icon_state = "lizard"
+ icon_living = "lizard"
+ icon_dead = "lizard-dead"
+
+ health = 5
+ maxHealth = 5
+ mob_size = MOB_MINISCULE
+
+ response_help = "pets"
+ response_disarm = "shoos"
+ response_harm = "stomps on"
+
+ attacktext = "bitten"
+ melee_damage_lower = 1
+ melee_damage_upper = 2
+
+ speak_chance = 1
+ speak_emote = list("hisses")
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm
similarity index 89%
rename from code/modules/mob/living/simple_animal/friendly/mouse.dm
rename to code/modules/mob/living/simple_animal/animals/mouse.dm
index cd545e0a87..43b12961bd 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/animals/mouse.dm
@@ -1,130 +1,136 @@
-/mob/living/simple_animal/mouse
- name = "mouse"
- real_name = "mouse"
- desc = "It's a small rodent."
- icon_state = "mouse_gray"
- item_state = "mouse_gray"
- icon_living = "mouse_gray"
- icon_dead = "mouse_gray_dead"
- speak = list("Squeek!","SQUEEK!","Squeek?")
- speak_emote = list("squeeks","squeeks","squiks")
- emote_hear = list("squeeks","squeaks","squiks")
- emote_see = list("runs in a circle", "shakes", "scritches at something")
- pass_flags = PASSTABLE
- speak_chance = 1
- turns_per_move = 5
- see_in_dark = 6
- maxHealth = 5
- health = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stamps on"
- density = 0
- var/body_color //brown, gray and white, leave blank for random
- layer = MOB_LAYER
- min_oxy = 16 //Require atleast 16kPA oxygen
- minbodytemp = 223 //Below -50 Degrees Celcius
- maxbodytemp = 323 //Above 50 Degrees Celcius
- universal_speak = 0
- universal_understand = 1
- holder_type = /obj/item/weapon/holder/mouse
- mob_size = MOB_MINISCULE
-
- can_pull_size = ITEMSIZE_TINY
- can_pull_mobs = MOB_PULL_NONE
-
-/mob/living/simple_animal/mouse/Life()
- ..()
- if(!stat && prob(speak_chance))
- for(var/mob/M in view())
- M << 'sound/effects/mousesqueek.ogg'
-
- if(!ckey && stat == CONSCIOUS && prob(0.5))
- stat = UNCONSCIOUS
- icon_state = "mouse_[body_color]_sleep"
- wander = 0
- speak_chance = 0
- //snuffles
- else if(stat == UNCONSCIOUS)
- if(ckey || prob(1))
- stat = CONSCIOUS
- icon_state = "mouse_[body_color]"
- wander = 1
- else if(prob(5))
- audible_emote("snuffles.")
-
-/mob/living/simple_animal/mouse/lay_down() //Simply turns sprite into sleeping and back upon using "Rest".
- ..()
- icon_state = resting ? "mouse_[body_color]_sleep" : "mouse_[body_color]"
-
-/mob/living/simple_animal/mouse/New()
- ..()
-
- verbs += /mob/living/proc/ventcrawl
- verbs += /mob/living/proc/hide
-
- if(name == initial(name))
- name = "[name] ([rand(1, 1000)])"
- real_name = name
-
- if(!body_color)
- body_color = pick( list("brown","gray","white") )
- icon_state = "mouse_[body_color]"
- item_state = "mouse_[body_color]"
- icon_living = "mouse_[body_color]"
- icon_dead = "mouse_[body_color]_dead"
- desc = "It's a small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
-
-/mob/living/simple_animal/mouse/proc/splat()
- src.health = 0
- src.stat = DEAD
- src.icon_dead = "mouse_[body_color]_splat"
- src.icon_state = "mouse_[body_color]_splat"
- layer = MOB_LAYER
- if(client)
- client.time_died_as_mouse = world.time
-
-
-/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
- if( ishuman(AM) )
- if(!stat)
- var/mob/M = AM
- M << "\blue \icon[src] Squeek!"
- M << 'sound/effects/mousesqueek.ogg'
- ..()
-
-/mob/living/simple_animal/mouse/death()
- layer = MOB_LAYER
- if(client)
- client.time_died_as_mouse = world.time
- ..()
-
-/*
- * Mouse types
- */
-
-/mob/living/simple_animal/mouse/white
- body_color = "white"
- icon_state = "mouse_white"
-
-/mob/living/simple_animal/mouse/gray
- body_color = "gray"
- icon_state = "mouse_gray"
-
-/mob/living/simple_animal/mouse/brown
- body_color = "brown"
- icon_state = "mouse_brown"
-
-//TOM IS ALIVE! SQUEEEEEEEE~K :)
-/mob/living/simple_animal/mouse/brown/Tom
- name = "Tom"
- desc = "Jerry the cat is not amused."
-
-/mob/living/simple_animal/mouse/brown/Tom/New()
- ..()
- // Change my name back, don't want to be named Tom (666)
- name = initial(name)
-
-/mob/living/simple_animal/mouse/cannot_use_vents()
- return
+/mob/living/simple_animal/mouse
+ name = "mouse"
+ real_name = "mouse"
+ desc = "It's a small rodent."
+ icon_state = "mouse_gray"
+ item_state = "mouse_gray"
+ icon_living = "mouse_gray"
+ icon_dead = "mouse_gray_dead"
+
+ maxHealth = 5
+ health = 5
+
+ turns_per_move = 5
+ see_in_dark = 6
+ universal_understand = 1
+
+ mob_size = MOB_MINISCULE
+ pass_flags = PASSTABLE
+ can_pull_size = ITEMSIZE_TINY
+ can_pull_mobs = MOB_PULL_NONE
+ layer = MOB_LAYER
+ density = 0
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "stamps on"
+
+ min_oxy = 16 //Require atleast 16kPA oxygen
+ minbodytemp = 223 //Below -50 Degrees Celcius
+ maxbodytemp = 323 //Above 50 Degrees Celcius
+
+ speak_chance = 1
+ speak = list("Squeek!","SQUEEK!","Squeek?")
+ speak_emote = list("squeeks","squeeks","squiks")
+ emote_hear = list("squeeks","squeaks","squiks")
+ emote_see = list("runs in a circle", "shakes", "scritches at something")
+
+ holder_type = /obj/item/weapon/holder/mouse
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ var/body_color //brown, gray and white, leave blank for random
+
+/mob/living/simple_animal/mouse/Life()
+ . = ..()
+ if(!. || ai_inactive) return
+
+ if(prob(speak_chance))
+ for(var/mob/M in view())
+ M << 'sound/effects/mousesqueek.ogg'
+
+ if(!ckey && stat == CONSCIOUS && prob(0.5))
+ stat = UNCONSCIOUS
+ icon_state = "mouse_[body_color]_sleep"
+ wander = 0
+ speak_chance = 0
+ //snuffles
+
+ else if(stat == UNCONSCIOUS)
+ if(ckey || prob(1))
+ stat = CONSCIOUS
+ icon_state = "mouse_[body_color]"
+ wander = 1
+ else if(prob(5))
+ audible_emote("snuffles.")
+
+/mob/living/simple_animal/mouse/New()
+ ..()
+
+ verbs += /mob/living/proc/ventcrawl
+ verbs += /mob/living/proc/hide
+
+ if(name == initial(name))
+ name = "[name] ([rand(1, 1000)])"
+ real_name = name
+
+ if(!body_color)
+ body_color = pick( list("brown","gray","white") )
+ icon_state = "mouse_[body_color]"
+ item_state = "mouse_[body_color]"
+ icon_living = "mouse_[body_color]"
+ icon_dead = "mouse_[body_color]_dead"
+ icon_rest = "mouse_[body_color]_sleep"
+ desc = "It's a small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
+
+/mob/living/simple_animal/mouse/proc/splat()
+ src.health = 0
+ src.stat = DEAD
+ src.icon_dead = "mouse_[body_color]_splat"
+ src.icon_state = "mouse_[body_color]_splat"
+ layer = MOB_LAYER
+ if(client)
+ client.time_died_as_mouse = world.time
+
+
+/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
+ if( ishuman(AM) )
+ if(!stat)
+ var/mob/M = AM
+ M << "\blue \icon[src] Squeek!"
+ M << 'sound/effects/mousesqueek.ogg'
+ ..()
+
+/mob/living/simple_animal/mouse/death()
+ layer = MOB_LAYER
+ if(client)
+ client.time_died_as_mouse = world.time
+ ..()
+
+/*
+ * Mouse types
+ */
+
+/mob/living/simple_animal/mouse/white
+ body_color = "white"
+ icon_state = "mouse_white"
+
+/mob/living/simple_animal/mouse/gray
+ body_color = "gray"
+ icon_state = "mouse_gray"
+
+/mob/living/simple_animal/mouse/brown
+ body_color = "brown"
+ icon_state = "mouse_brown"
+
+//TOM IS ALIVE! SQUEEEEEEEE~K :)
+/mob/living/simple_animal/mouse/brown/Tom
+ name = "Tom"
+ desc = "Jerry the cat is not amused."
+
+/mob/living/simple_animal/mouse/brown/Tom/New()
+ ..()
+ // Change my name back, don't want to be named Tom (666)
+ name = initial(name)
+
+/mob/living/simple_animal/mouse/cannot_use_vents()
+ return
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/animals/parrot.dm
similarity index 94%
rename from code/modules/mob/living/simple_animal/parrot.dm
rename to code/modules/mob/living/simple_animal/animals/parrot.dm
index 36a1ac186a..03f0261688 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/animals/parrot.dm
@@ -12,6 +12,9 @@
* Defines
*/
+//Parrot is too snowflake for me to rewrite right now, someone should make it use the new
+//simple_animal movement stuff. -Aro
+
//Only a maximum of one action and one intent should be active at any given time.
//Actions
#define PARROT_PERCH 1 //Sitting/sleeping, not moving
@@ -32,24 +35,25 @@
icon_state = "parrot_fly"
icon_living = "parrot_fly"
icon_dead = "parrot_dead"
+
+ turns_per_move = 5
pass_flags = PASSTABLE
mob_size = MOB_SMALL
- speak = list("Hi","Hello!","Cracker?","BAWWWWK george mellons griffing me")
- speak_emote = list("squawks","says","yells")
- emote_hear = list("squawks","bawks")
- emote_see = list("flutters its wings")
-
- speak_chance = 1//1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s
- turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/cracker/
-
response_help = "pets"
response_disarm = "gently moves aside"
response_harm = "swats"
stop_automated_movement = 1
universal_speak = 1
+ speak_chance = 2
+ speak = list("Hi","Hello!","Cracker?","BAWWWWK george mellons griffing me")
+ speak_emote = list("squawks","says","yells")
+ emote_hear = list("squawks","bawks")
+ emote_see = list("flutters its wings")
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/cracker
+
var/parrot_state = PARROT_WANDER //Hunt for a perch when created
var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick.
var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down
@@ -103,7 +107,7 @@
/mob/living/simple_animal/parrot/death()
if(held_item)
- held_item.loc = src.loc
+ held_item.forceMove(src.loc)
held_item = null
walk(src,0)
..()
@@ -148,7 +152,7 @@
src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
else
src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
- ears.loc = src.loc
+ ears.forceMove(src.loc)
ears = null
for(var/possible_phrase in speak)
if(copytext(possible_phrase,1,3) in department_radio_keys)
@@ -180,7 +184,7 @@
var/obj/item/device/radio/headset/headset_to_add = item_to_add
usr.drop_item()
- headset_to_add.loc = src
+ headset_to_add.forceMove(src)
src.ears = headset_to_add
usr << "You fit the headset onto [src]."
@@ -405,7 +409,7 @@
else //This should ensure that we only grab the item we want, and make sure it's not already collected on our perch
if(!parrot_perch || parrot_interest.loc != parrot_perch.loc)
held_item = parrot_interest
- parrot_interest.loc = src
+ parrot_interest.forceMove(src)
visible_message("[src] grabs the [held_item]!", "\blue You grab the [held_item]!", "You hear the sounds of wings flapping furiously.")
parrot_interest = null
@@ -424,7 +428,7 @@
return
if(in_range(src, parrot_perch))
- src.loc = parrot_perch.loc
+ src.forceMove(parrot_perch.loc)
drop_held_item()
parrot_state = PARROT_PERCH
icon_state = "parrot_sit"
@@ -477,7 +481,7 @@
var/mob/living/carbon/human/H = parrot_interest
var/obj/item/organ/external/affecting = H.get_organ(ran_zone(pick(parrot_dam_zone)))
- H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), sharp=1)
+ H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1)
visible_emote(pick("pecks [H]'s [affecting].", "cuts [H]'s [affecting] with its talons."))
else
@@ -578,7 +582,7 @@
continue
held_item = I
- I.loc = src
+ I.forceMove(src)
visible_message("[src] grabs the [held_item]!", "\blue You grab the [held_item]!", "You hear the sounds of wings flapping furiously.")
return held_item
@@ -609,7 +613,7 @@
if(stolen_item)
C.remove_from_mob(stolen_item)
held_item = stolen_item
- stolen_item.loc = src
+ stolen_item.forceMove(src)
visible_message("[src] grabs the [held_item] out of [C]'s hand!", "\blue You snag the [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.")
return held_item
@@ -643,7 +647,7 @@
if(!drop_gently)
if(istype(held_item, /obj/item/weapon/grenade))
var/obj/item/weapon/grenade/G = held_item
- G.loc = src.loc
+ G.forceMove(src.loc)
G.prime()
src << "You let go of the [held_item]!"
held_item = null
@@ -651,7 +655,7 @@
src << "You drop the [held_item]."
- held_item.loc = src.loc
+ held_item.forceMove(src.loc)
held_item = null
return 1
@@ -667,7 +671,7 @@
for(var/atom/movable/AM in view(src,1))
for(var/perch_path in desired_perches)
if(istype(AM, perch_path))
- src.loc = AM.loc
+ src.forceMove(AM.loc)
icon_state = "parrot_sit"
return
src << "\red There is no perch nearby to sit on."
diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/animals/penguin.dm
similarity index 94%
rename from code/modules/mob/living/simple_animal/friendly/penguin.dm
rename to code/modules/mob/living/simple_animal/animals/penguin.dm
index b843013c39..40c085a72f 100644
--- a/code/modules/mob/living/simple_animal/friendly/penguin.dm
+++ b/code/modules/mob/living/simple_animal/animals/penguin.dm
@@ -5,15 +5,21 @@
icon_living = "penguin"
icon_dead = "penguin_dead"
icon_gib = "generic_gib"
- speak_chance = 0
- turns_per_move = 5
+
maxHealth = 20
health = 20
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ turns_per_move = 5
+
response_help = "pets"
response_disarm = "pushes aside"
response_harm = "hits"
+
harm_intent_damage = 5
- melee_damage_upper = 15
melee_damage_lower = 10
- attacktext = "pecked"
\ No newline at end of file
+ melee_damage_upper = 15
+ attacktext = "pecked"
+
+ speak_chance = 0
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/animals/slime.dm
similarity index 96%
rename from code/modules/mob/living/simple_animal/friendly/slime.dm
rename to code/modules/mob/living/simple_animal/animals/slime.dm
index 77d52741ae..7d5fa16dab 100644
--- a/code/modules/mob/living/simple_animal/friendly/slime.dm
+++ b/code/modules/mob/living/simple_animal/animals/slime.dm
@@ -1,59 +1,69 @@
-/mob/living/simple_animal/slime
- name = "pet slime"
- desc = "A lovable, domesticated slime."
- icon = 'icons/mob/slimes.dmi'
- icon_state = "grey baby slime"
- icon_living = "grey baby slime"
- icon_dead = "grey baby slime dead"
- speak_emote = list("chirps")
- health = 100
- maxHealth = 100
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
- emote_see = list("jiggles", "bounces in place")
- var/colour = "grey"
-
-/mob/living/simple_animal/slime/science
- name = "Kendrick"
- colour = "rainbow"
- icon_state = "rainbow baby slime"
- icon_living = "rainbow baby slime"
- icon_dead = "rainbow baby slime dead"
-
-/mob/living/simple_animal/slime/science/initialize()
- ..()
- overlays.Cut()
- overlays += "aslime-:33"
-
-/mob/living/simple_animal/adultslime
- name = "pet slime"
- desc = "A lovable, domesticated slime."
- icon = 'icons/mob/slimes.dmi'
- health = 200
- maxHealth = 200
- icon_state = "grey adult slime"
- icon_living = "grey adult slime"
- icon_dead = "grey baby slime dead"
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
- emote_see = list("jiggles", "bounces in place")
- var/colour = "grey"
-
-/mob/living/simple_animal/adultslime/New()
- ..()
- overlays += "aslime-:33"
-
-/mob/living/simple_animal/adultslime/death()
- var/mob/living/simple_animal/slime/S1 = new /mob/living/simple_animal/slime (src.loc)
- S1.icon_state = "[src.colour] baby slime"
- S1.icon_living = "[src.colour] baby slime"
- S1.icon_dead = "[src.colour] baby slime dead"
- S1.colour = "[src.colour]"
- var/mob/living/simple_animal/slime/S2 = new /mob/living/simple_animal/slime (src.loc)
- S2.icon_state = "[src.colour] baby slime"
- S2.icon_living = "[src.colour] baby slime"
- S2.icon_dead = "[src.colour] baby slime dead"
- S2.colour = "[src.colour]"
+/mob/living/simple_animal/slime
+ name = "pet slime"
+ desc = "A lovable, domesticated slime."
+ icon = 'icons/mob/slimes.dmi'
+ icon_state = "grey baby slime"
+ icon_living = "grey baby slime"
+ icon_dead = "grey baby slime dead"
+
+ maxHealth = 100
+ health = 100
+
+ response_help = "pets"
+ response_disarm = "shoos"
+ response_harm = "stomps on"
+
+ speak_chance = 1
+ speak_emote = list("chirps")
+ emote_see = list("jiggles", "bounces in place")
+
+ var/colour = "grey"
+
+/mob/living/simple_animal/slime/science
+ name = "Kendrick"
+ colour = "rainbow"
+ icon_state = "rainbow baby slime"
+ icon_living = "rainbow baby slime"
+ icon_dead = "rainbow baby slime dead"
+
+/mob/living/simple_animal/slime/science/initialize()
+ ..()
+ overlays.Cut()
+ overlays += "aslime-:33"
+
+/mob/living/simple_animal/adultslime
+ name = "pet slime"
+ desc = "A lovable, domesticated slime."
+ icon = 'icons/mob/slimes.dmi'
+ icon_state = "grey adult slime"
+ icon_living = "grey adult slime"
+ icon_dead = "grey baby slime dead"
+
+ maxHealth = 200
+ health = 200
+
+ response_help = "pets"
+ response_disarm = "shoos"
+ response_harm = "stomps on"
+
+ speak_chance = 1
+ emote_see = list("jiggles", "bounces in place")
+
+ var/colour = "grey"
+
+/mob/living/simple_animal/adultslime/New()
+ ..()
+ overlays += "aslime-:33"
+
+/mob/living/simple_animal/adultslime/death()
+ var/mob/living/simple_animal/slime/S1 = new /mob/living/simple_animal/slime (src.loc)
+ S1.icon_state = "[src.colour] baby slime"
+ S1.icon_living = "[src.colour] baby slime"
+ S1.icon_dead = "[src.colour] baby slime dead"
+ S1.colour = "[src.colour]"
+ var/mob/living/simple_animal/slime/S2 = new /mob/living/simple_animal/slime (src.loc)
+ S2.icon_state = "[src.colour] baby slime"
+ S2.icon_living = "[src.colour] baby slime"
+ S2.icon_dead = "[src.colour] baby slime dead"
+ S2.colour = "[src.colour]"
qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/animals/spiderbot.dm
similarity index 97%
rename from code/modules/mob/living/simple_animal/friendly/spiderbot.dm
rename to code/modules/mob/living/simple_animal/animals/spiderbot.dm
index 6ef066a257..1bb202d1a0 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/animals/spiderbot.dm
@@ -1,11 +1,35 @@
/mob/living/simple_animal/spiderbot
+ name = "spider-bot"
+ desc = "A skittering robotic friend!"
+ icon = 'icons/mob/robots.dmi'
+ icon_state = "spiderbot-chassis"
+ icon_living = "spiderbot-chassis"
+ icon_dead = "spiderbot-smashed"
+
+ health = 10
+ maxHealth = 10
+
+ wander = 0
+ speed = -1 //Spiderbots gotta go fast.
+ pass_flags = PASSTABLE
+ mob_size = MOB_SMALL
+
+ response_help = "pets"
+ response_disarm = "shoos"
+ response_harm = "stomps on"
+
+ melee_damage_lower = 1
+ melee_damage_upper = 3
+ attacktext = "shocked"
min_oxy = 0
max_tox = 0
max_co2 = 0
minbodytemp = 0
maxbodytemp = 500
- mob_size = MOB_SMALL
+
+ speak_chance = 1
+ speak_emote = list("beeps","clicks","chirps")
var/obj/item/device/radio/borg/radio = null
var/mob/living/silicon/ai/connected_ai = null
@@ -15,31 +39,8 @@
var/list/req_access = list(access_robotics) //Access needed to pop out the brain.
var/positronic
- name = "spider-bot"
- desc = "A skittering robotic friend!"
- icon = 'icons/mob/robots.dmi'
- icon_state = "spiderbot-chassis"
- icon_living = "spiderbot-chassis"
- icon_dead = "spiderbot-smashed"
-
- wander = 0
-
- health = 10
- maxHealth = 10
-
- attacktext = "shocked"
- melee_damage_lower = 1
- melee_damage_upper = 3
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
-
var/emagged = 0
var/obj/item/held_item = null //Storage for single item they can hold.
- speed = -1 //Spiderbots gotta go fast.
- pass_flags = PASSTABLE
- speak_emote = list("beeps","clicks","chirps")
/mob/living/simple_animal/spiderbot/New()
..()
@@ -87,7 +88,7 @@
src.mmi = O
src.transfer_personality(O)
- O.loc = src
+ O.forceMove(src)
src.update_icon()
return 1
@@ -122,7 +123,7 @@
user << "You swipe your access card and pop the brain out of \the [src]. "
eject_brain()
if(held_item)
- held_item.loc = src.loc
+ held_item.forceMove(src.loc)
held_item = null
return 1
else
@@ -171,7 +172,7 @@
if(mmi)
var/turf/T = get_turf(loc)
if(T)
- mmi.loc = T
+ mmi.forceMove(T)
if(mind) mind.transfer_to(mmi.brainmob)
mmi = null
real_name = initial(real_name)
@@ -201,7 +202,7 @@
if(camera)
camera.status = 0
- held_item.loc = src.loc
+ held_item.forceMove(src.loc)
held_item = null
gibs(loc, null, null, /obj/effect/gibspawner/robot) //TODO: use gib() or refactor spiderbots into synthetics.
@@ -226,7 +227,7 @@
"You launch \the [held_item]! ", \
"You hear a skittering noise and a thump!")
var/obj/item/weapon/grenade/G = held_item
- G.loc = src.loc
+ G.forceMove(src.loc)
G.prime()
held_item = null
return 1
@@ -235,7 +236,7 @@
"You drop \the [held_item]. ", \
"You hear a skittering noise and a soft thump.")
- held_item.loc = src.loc
+ held_item.forceMove(src.loc)
held_item = null
return 1
@@ -264,7 +265,7 @@
for(var/obj/item/I in view(1, src))
if(selection == I)
held_item = selection
- selection.loc = src
+ selection.forceMove(src)
visible_message("\The [src] scoops up \the [held_item]. ", \
"You grab \the [held_item]. ", \
"You hear a skittering noise and a clink.")
@@ -284,4 +285,4 @@
return
/mob/living/simple_animal/spiderbot/binarycheck()
- return positronic
\ No newline at end of file
+ return positronic
diff --git a/code/modules/mob/living/simple_animal/friendly/tomato.dm b/code/modules/mob/living/simple_animal/animals/tomato.dm
similarity index 83%
rename from code/modules/mob/living/simple_animal/friendly/tomato.dm
rename to code/modules/mob/living/simple_animal/animals/tomato.dm
index e0574ba925..ea133a8581 100644
--- a/code/modules/mob/living/simple_animal/friendly/tomato.dm
+++ b/code/modules/mob/living/simple_animal/animals/tomato.dm
@@ -1,18 +1,22 @@
-/mob/living/simple_animal/tomato
- name = "tomato"
- desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!"
- icon_state = "tomato"
- icon_living = "tomato"
- icon_dead = "tomato_dead"
- speak_chance = 0
- turns_per_move = 5
- maxHealth = 15
- health = 15
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
- response_help = "prods"
- response_disarm = "pushes aside"
- response_harm = "smacks"
- harm_intent_damage = 5
- melee_damage_upper = 15
- melee_damage_lower = 10
- attacktext = "mauled"
\ No newline at end of file
+/mob/living/simple_animal/hostile/tomato
+ name = "tomato"
+ desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!"
+ icon_state = "tomato"
+ icon_living = "tomato"
+ icon_dead = "tomato_dead"
+
+ faction = "plants"
+ maxHealth = 15
+ health = 15
+ turns_per_move = 5
+
+ response_help = "prods"
+ response_disarm = "pushes aside"
+ response_harm = "smacks"
+
+ harm_intent_damage = 5
+ melee_damage_upper = 15
+ melee_damage_lower = 10
+ attacktext = "mauled"
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/animals/tree.dm
similarity index 85%
rename from code/modules/mob/living/simple_animal/hostile/tree.dm
rename to code/modules/mob/living/simple_animal/animals/tree.dm
index 1c438d2bc8..bf97641248 100644
--- a/code/modules/mob/living/simple_animal/hostile/tree.dm
+++ b/code/modules/mob/living/simple_animal/animals/tree.dm
@@ -1,56 +1,57 @@
-/mob/living/simple_animal/hostile/tree
- name = "pine tree"
- desc = "A pissed off tree-like alien. It seems annoyed with the festivities..."
- icon = 'icons/obj/flora/pinetrees.dmi'
- icon_state = "pine_1"
- icon_living = "pine_1"
- icon_dead = "pine_1"
- icon_gib = "pine_1"
- speak_chance = 0
- turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
- response_help = "brushes"
- response_disarm = "pushes"
- response_harm = "hits"
- speed = -1
- maxHealth = 250
- health = 250
-
- pixel_x = -16
-
- harm_intent_damage = 5
- melee_damage_lower = 8
- melee_damage_upper = 12
- attacktext = "bitten"
- attack_sound = 'sound/weapons/bite.ogg'
-
- //Space carp aren't affected by atmos.
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- faction = "carp"
-
-/mob/living/simple_animal/hostile/tree/FindTarget()
- . = ..()
- if(.)
- audible_emote("growls at [.]")
-
-/mob/living/simple_animal/hostile/tree/AttackingTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Weaken(3)
- L.visible_message("\the [src] knocks down \the [L]! ")
-
-/mob/living/simple_animal/hostile/tree/death()
- ..(null,"is hacked into pieces!")
- new /obj/item/stack/material/wood(loc)
+/mob/living/simple_animal/hostile/tree
+ name = "pine tree"
+ desc = "A pissed off tree-like alien. It seems annoyed with the festivities..."
+ icon = 'icons/obj/flora/pinetrees.dmi'
+ icon_state = "pine_1"
+ icon_living = "pine_1"
+ icon_dead = "pine_1"
+ icon_gib = "pine_1"
+
+ faction = "carp" //Trees can be carp friends?
+ maxHealth = 250
+ health = 250
+ speed = -1
+
+ turns_per_move = 5
+
+ response_help = "brushes"
+ response_disarm = "pushes"
+ response_harm = "hits"
+
+ harm_intent_damage = 5
+ melee_damage_lower = 8
+ melee_damage_upper = 12
+ attacktext = "bitten"
+ attack_sound = 'sound/weapons/bite.ogg'
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+
+ pixel_x = -16
+
+/mob/living/simple_animal/hostile/tree/FindTarget()
+ . = ..()
+ if(.)
+ audible_emote("growls at [.]")
+
+/mob/living/simple_animal/hostile/tree/PunchTarget()
+ . =..()
+ var/mob/living/L = .
+ if(istype(L))
+ if(prob(15))
+ L.Weaken(3)
+ L.visible_message("\the [src] knocks down \the [L]! ")
+
+/mob/living/simple_animal/hostile/tree/death()
+ ..(null,"is hacked into pieces!")
+ new /obj/item/stack/material/wood(loc)
qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/worm.dm b/code/modules/mob/living/simple_animal/animals/worm.dm
similarity index 95%
rename from code/modules/mob/living/simple_animal/worm.dm
rename to code/modules/mob/living/simple_animal/animals/worm.dm
index e8663339c1..dfb8a5a195 100644
--- a/code/modules/mob/living/simple_animal/worm.dm
+++ b/code/modules/mob/living/simple_animal/animals/worm.dm
@@ -1,200 +1,198 @@
-/mob/living/simple_animal/space_worm
- name = "space worm segment"
- desc = "A part of a space worm."
- icon = 'icons/mob/animal.dmi'
- icon_state = "spaceworm"
- icon_living = "spaceworm"
- icon_dead = "spacewormdead"
- status_flags = 0
-
- speak_emote = list("transmits") //not supposed to be used under AI control
- emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks
-
- response_help = "touches"
- response_disarm = "flails at"
- response_harm = "punches the"
-
- harm_intent_damage = 2
-
- maxHealth = 30
- health = 30
-
- universal_speak =1
-
- stop_automated_movement = 1
- animate_movement = SYNC_STEPS
-
- minbodytemp = 0
- maxbodytemp = 350
- min_oxy = 0
- max_co2 = 0
- max_tox = 0
-
- a_intent = I_HURT //so they don't get pushed around
-
- environment_smash = 2
-
- speed = -1
-
- var/mob/living/simple_animal/space_worm/previous //next/previous segments, correspondingly
- var/mob/living/simple_animal/space_worm/next //head is the nextest segment
-
- var/stomachProcessProbability = 50
- var/digestionProbability = 20
- var/flatPlasmaValue = 5 //flat plasma amount given for non-items
-
- var/atom/currentlyEating //what the worm is currently eating
- var/eatingDuration = 0 //how long he's been eating it for
-
- head
- name = "space worm head"
- icon_state = "spacewormhead"
- icon_living = "spacewormhead"
- icon_dead = "spacewormdead"
-
- maxHealth = 20
- health = 20
-
- melee_damage_lower = 10
- melee_damage_upper = 15
- attacktext = "bitten"
-
- animate_movement = SLIDE_STEPS
-
- New(var/location, var/segments = 6)
- ..()
-
- var/mob/living/simple_animal/space_worm/current = src
-
- for(var/i = 1 to segments)
- var/mob/living/simple_animal/space_worm/newSegment = new /mob/living/simple_animal/space_worm(loc)
- current.Attach(newSegment)
- current = newSegment
-
- update_icon()
- if(stat == CONSCIOUS || stat == UNCONSCIOUS)
- icon_state = "spacewormhead[previous?1:0]"
- if(previous)
- set_dir(get_dir(previous,src))
- else
- icon_state = "spacewormheaddead"
-
- Life()
- ..()
-
- if(next && !(next in view(src,1)))
- Detach()
-
- if(stat == DEAD) //dead chunks fall off and die immediately
- if(previous)
- previous.Detach()
- if(next)
- Detach(1)
-
- if(prob(stomachProcessProbability))
- ProcessStomach()
-
- update_icon()
-
- return
-
- Destroy() //if a chunk a destroyed, make a new worm out of the split halves
- if(previous)
- previous.Detach()
- ..()
-
- Move()
- var/attachementNextPosition = loc
- if(..())
- if(previous)
- previous.Move(attachementNextPosition)
- update_icon()
-
- Bump(atom/obstacle)
- if(currentlyEating != obstacle)
- currentlyEating = obstacle
- eatingDuration = 0
-
- if(!AttemptToEat(obstacle))
- eatingDuration++
- else
- currentlyEating = null
- eatingDuration = 0
-
- return
-
- update_icon() //only for the sake of consistency with the other update icon procs
- if(stat == CONSCIOUS || stat == UNCONSCIOUS)
- if(previous) //midsection
- icon_state = "spaceworm[get_dir(src,previous) | get_dir(src,next)]" //see 3 lines below
- else //tail
- icon_state = "spacewormtail"
- set_dir(get_dir(src,next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch
- else
- icon_state = "spacewormdead"
-
- return
-
- proc/AttemptToEat(var/atom/target)
- if(istype(target,/turf/simulated/wall))
- var/turf/simulated/wall/W = target
- if((!W.reinf_material && eatingDuration >= 100) || eatingDuration >= 200) //need 20 ticks to eat an rwall, 10 for a regular one
- W.dismantle_wall()
- return 1
- else if(istype(target,/atom/movable))
- if(istype(target,/mob) || eatingDuration >= 50) //5 ticks to eat stuff like airlocks
- var/atom/movable/objectOrMob = target
- contents += objectOrMob
- return 1
-
- return 0
-
- proc/Attach(var/mob/living/simple_animal/space_worm/attachement)
- if(!attachement)
- return
-
- previous = attachement
- attachement.next = src
-
- return
-
- proc/Detach(die = 0)
- var/mob/living/simple_animal/space_worm/newHead = new /mob/living/simple_animal/space_worm/head(loc,0)
- var/mob/living/simple_animal/space_worm/newHeadPrevious = previous
-
- previous = null //so that no extra heads are spawned
-
- newHead.Attach(newHeadPrevious)
-
- if(die)
- newHead.death()
-
- qdel(src)
-
- proc/ProcessStomach()
- for(var/atom/movable/stomachContent in contents)
- if(prob(digestionProbability))
- if(istype(stomachContent,/obj/item/stack)) //converts to plasma, keeping the stack value
- if(!istype(stomachContent,/obj/item/stack/material/phoron))
- var/obj/item/stack/oldStack = stomachContent
- new /obj/item/stack/material/phoron(src, oldStack.get_amount())
- qdel(oldStack)
- continue
- else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class
- var/obj/item/oldItem = stomachContent
- new /obj/item/stack/material/phoron(src, oldItem.w_class)
- qdel(oldItem)
- continue
- else
- new /obj/item/stack/material/phoron(src, flatPlasmaValue) //just flat amount
- qdel(stomachContent)
- continue
-
- if(previous)
- for(var/atom/movable/stomachContent in contents) //transfer it along the digestive tract
- previous.contents += stomachContent
- else
- for(var/atom/movable/stomachContent in contents) //or poop it out
- loc.contents += stomachContent
-
- return
+/mob/living/simple_animal/space_worm
+ name = "space worm segment"
+ desc = "A part of a space worm."
+ icon = 'icons/mob/animal.dmi'
+ icon_state = "spaceworm"
+ icon_living = "spaceworm"
+ icon_dead = "spacewormdead"
+
+
+ maxHealth = 30
+ health = 30
+ speed = -1
+
+ status_flags = 0
+ universal_speak = 1
+ stop_automated_movement = 1
+ wander = 0
+ animate_movement = SYNC_STEPS
+
+ response_help = "touches"
+ response_disarm = "flails at"
+ response_harm = "punches the"
+
+ harm_intent_damage = 2
+
+ minbodytemp = 0
+ maxbodytemp = 350
+ min_oxy = 0
+ max_co2 = 0
+ max_tox = 0
+
+ environment_smash = 2
+
+ speak_emote = list("transmits") //not supposed to be used under AI control
+ emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks
+
+ var/mob/living/simple_animal/space_worm/previous //next/previous segments, correspondingly
+ var/mob/living/simple_animal/space_worm/next //head is the nextest segment
+
+ var/stomachProcessProbability = 50
+ var/digestionProbability = 20
+ var/flatPlasmaValue = 5 //flat plasma amount given for non-items
+
+ var/atom/currentlyEating //what the worm is currently eating
+ var/eatingDuration = 0 //how long he's been eating it for
+
+ head
+ name = "space worm head"
+ icon_state = "spacewormhead"
+ icon_living = "spacewormhead"
+ icon_dead = "spacewormdead"
+
+ maxHealth = 20
+ health = 20
+
+ melee_damage_lower = 10
+ melee_damage_upper = 15
+ attacktext = "bitten"
+
+ animate_movement = SLIDE_STEPS
+
+ New(var/location, var/segments = 6)
+ ..()
+
+ var/mob/living/simple_animal/space_worm/current = src
+
+ for(var/i = 1 to segments)
+ var/mob/living/simple_animal/space_worm/newSegment = new /mob/living/simple_animal/space_worm(loc)
+ current.Attach(newSegment)
+ current = newSegment
+
+ update_icon()
+ if(stat == CONSCIOUS || stat == UNCONSCIOUS)
+ icon_state = "spacewormhead[previous?1:0]"
+ if(previous)
+ set_dir(get_dir(previous,src))
+ else
+ icon_state = "spacewormheaddead"
+
+ Life()
+ ..()
+
+ if(next && !(next in view(src,1)))
+ Detach()
+
+ if(stat == DEAD) //dead chunks fall off and die immediately
+ if(previous)
+ previous.Detach()
+ if(next)
+ Detach(1)
+
+ if(prob(stomachProcessProbability))
+ ProcessStomach()
+
+ update_icon()
+
+ return
+
+ Destroy() //if a chunk a destroyed, make a new worm out of the split halves
+ if(previous)
+ previous.Detach()
+ ..()
+
+ Move()
+ var/attachementNextPosition = loc
+ if(..())
+ if(previous)
+ previous.Move(attachementNextPosition)
+ update_icon()
+
+ Bump(atom/obstacle)
+ if(currentlyEating != obstacle)
+ currentlyEating = obstacle
+ eatingDuration = 0
+
+ if(!AttemptToEat(obstacle))
+ eatingDuration++
+ else
+ currentlyEating = null
+ eatingDuration = 0
+
+ return
+
+ update_icon() //only for the sake of consistency with the other update icon procs
+ if(stat == CONSCIOUS || stat == UNCONSCIOUS)
+ if(previous) //midsection
+ icon_state = "spaceworm[get_dir(src,previous) | get_dir(src,next)]" //see 3 lines below
+ else //tail
+ icon_state = "spacewormtail"
+ set_dir(get_dir(src,next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch
+ else
+ icon_state = "spacewormdead"
+
+ return
+
+ proc/AttemptToEat(var/atom/target)
+ if(istype(target,/turf/simulated/wall))
+ var/turf/simulated/wall/W = target
+ if((!W.reinf_material && eatingDuration >= 100) || eatingDuration >= 200) //need 20 ticks to eat an rwall, 10 for a regular one
+ W.dismantle_wall()
+ return 1
+ else if(istype(target,/atom/movable))
+ if(istype(target,/mob) || eatingDuration >= 50) //5 ticks to eat stuff like airlocks
+ var/atom/movable/objectOrMob = target
+ contents += objectOrMob
+ return 1
+
+ return 0
+
+ proc/Attach(var/mob/living/simple_animal/space_worm/attachement)
+ if(!attachement)
+ return
+
+ previous = attachement
+ attachement.next = src
+
+ return
+
+ proc/Detach(die = 0)
+ var/mob/living/simple_animal/space_worm/newHead = new /mob/living/simple_animal/space_worm/head(loc,0)
+ var/mob/living/simple_animal/space_worm/newHeadPrevious = previous
+
+ previous = null //so that no extra heads are spawned
+
+ newHead.Attach(newHeadPrevious)
+
+ if(die)
+ newHead.death()
+
+ qdel(src)
+
+ proc/ProcessStomach()
+ for(var/atom/movable/stomachContent in contents)
+ if(prob(digestionProbability))
+ if(istype(stomachContent,/obj/item/stack)) //converts to plasma, keeping the stack value
+ if(!istype(stomachContent,/obj/item/stack/material/phoron))
+ var/obj/item/stack/oldStack = stomachContent
+ new /obj/item/stack/material/phoron(src, oldStack.get_amount())
+ qdel(oldStack)
+ continue
+ else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class
+ var/obj/item/oldItem = stomachContent
+ new /obj/item/stack/material/phoron(src, oldItem.w_class)
+ qdel(oldItem)
+ continue
+ else
+ new /obj/item/stack/material/phoron(src, flatPlasmaValue) //just flat amount
+ qdel(stomachContent)
+ continue
+
+ if(previous)
+ for(var/atom/movable/stomachContent in contents) //transfer it along the digestive tract
+ previous.contents += stomachContent
+ else
+ for(var/atom/movable/stomachContent in contents) //or poop it out
+ loc.contents += stomachContent
+
+ return
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index dfcefb28a1..f6a0fa3010 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -158,7 +158,7 @@
if(host.mind)
borers.remove_antagonist(host.mind)
- src.loc = get_turf(host)
+ src.forceMove(get_turf(host))
reset_view(null)
machine = null
diff --git a/code/modules/mob/living/simple_animal/borer/borer_powers.dm b/code/modules/mob/living/simple_animal/borer/borer_powers.dm
index a95a22b948..de4bfd4c5b 100644
--- a/code/modules/mob/living/simple_animal/borer/borer_powers.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer_powers.dm
@@ -105,7 +105,7 @@
src.host = M
src.host.status_flags |= PASSEMOTES
- src.loc = M
+ src.forceMove(M)
//Update their traitor status.
if(host.mind)
diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
index 08160f257f..05087c4036 100644
--- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm
+++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
@@ -131,7 +131,7 @@
qdel(animation)
var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade( T.loc )
- S.loc = src //put shade in stone
+ S.forceMove(src) //put shade in stone
S.status_flags |= GODMODE //So they won't die inside the stone somehow
S.canmove = 0//Can't move out of the soul stone
S.name = "Shade of [T.real_name]"
@@ -167,7 +167,7 @@
U << "Capture failed! : The soul stone has already been imprinted with [src.imprinted]'s mind!"
return
- T.loc = src //put shade in stone
+ T.forceMove(src) //put shade in stone
T.status_flags |= GODMODE
T.canmove = 0
T.health = T.maxHealth
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index 00b2d114c8..65f5bdef00 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -88,7 +88,7 @@
name = "Syndicate Operative"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/armor/vest
- corpseshoes = /obj/item/clothing/shoes/swat
+ corpseshoes = /obj/item/clothing/shoes/boots/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas
@@ -104,7 +104,7 @@
name = "Syndicate Commando"
corpseuniform = /obj/item/clothing/under/syndicate
corpsesuit = /obj/item/clothing/suit/space/void/merc
- corpseshoes = /obj/item/clothing/shoes/swat
+ corpseshoes = /obj/item/clothing/shoes/boots/swat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpsemask = /obj/item/clothing/mask/gas/syndicate
@@ -134,7 +134,7 @@
/obj/effect/landmark/mobcorpse/pirate
name = "Pirate"
corpseuniform = /obj/item/clothing/under/pirate
- corpseshoes = /obj/item/clothing/shoes/jackboots
+ corpseshoes = /obj/item/clothing/shoes/boots/jackboots
corpseglasses = /obj/item/clothing/glasses/eyepatch
corpsehelmet = /obj/item/clothing/head/bandana
@@ -150,7 +150,7 @@
/obj/effect/landmark/mobcorpse/russian
name = "Russian"
corpseuniform = /obj/item/clothing/under/soviet
- corpseshoes = /obj/item/clothing/shoes/jackboots
+ corpseshoes = /obj/item/clothing/shoes/boots/jackboots
corpsehelmet = /obj/item/clothing/head/bearpelt
/obj/effect/landmark/mobcorpse/russian/ranged
diff --git a/code/modules/mob/living/simple_animal/friendly/mushroom.dm b/code/modules/mob/living/simple_animal/friendly/mushroom.dm
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
deleted file mode 100644
index 52704d85cd..0000000000
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ /dev/null
@@ -1,223 +0,0 @@
-
-#define SPINNING_WEB 1
-#define LAYING_EGGS 2
-#define MOVING_TO_TARGET 3
-#define SPINNING_COCOON 4
-
-//basic spider mob, these generally guard nests
-/mob/living/simple_animal/hostile/giant_spider
- name = "giant spider"
- desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes."
- icon_state = "guard"
- icon_living = "guard"
- icon_dead = "guard_dead"
- speak_emote = list("chitters")
- emote_hear = list("chitters")
- speak_chance = 5
- turns_per_move = 5
- see_in_dark = 10
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "punches"
- stop_automated_movement_when_pulled = 0
- maxHealth = 200
- health = 200
- melee_damage_lower = 15
- melee_damage_upper = 20
- heat_damage_per_tick = 20
- cold_damage_per_tick = 20
- var/poison_per_bite = 5
- var/poison_chance = 10
- var/poison_type = "spidertoxin"
- faction = "spiders"
- var/busy = 0
- pass_flags = PASSTABLE
- move_to_delay = 6
- speed = 3
-
-//nursemaids - these create webs and eggs
-/mob/living/simple_animal/hostile/giant_spider/nurse
- desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes."
- icon_state = "nurse"
- icon_living = "nurse"
- icon_dead = "nurse_dead"
- maxHealth = 40
- health = 40
- melee_damage_lower = 5
- melee_damage_upper = 10
- poison_per_bite = 7
- var/atom/cocoon_target
- poison_type = "stoxin"
- var/fed = 0
-
-//hunters have the most poison and move the fastest, so they can find prey
-/mob/living/simple_animal/hostile/giant_spider/hunter
- desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes."
- icon_state = "hunter"
- icon_living = "hunter"
- icon_dead = "hunter_dead"
- maxHealth = 120
- health = 120
- melee_damage_lower = 10
- melee_damage_upper = 20
- poison_per_bite = 5
- move_to_delay = 4
-
-/mob/living/simple_animal/hostile/giant_spider/New(var/location, var/atom/parent)
- get_light_and_color(parent)
- ..()
-
-/mob/living/simple_animal/hostile/giant_spider/AttackingTarget()
- . = ..()
- if(isliving(.))
- var/mob/living/L = .
- if(L.reagents)
- L.reagents.add_reagent(poison_type, poison_per_bite)
- if(prob(poison_chance))
- L << "You feel a tiny prick. "
- L.reagents.add_reagent(poison_type, poison_per_bite)
-
-/mob/living/simple_animal/hostile/giant_spider/nurse/AttackingTarget()
- . = ..()
- if(ishuman(.))
- var/mob/living/carbon/human/H = .
- if(prob(5))
- var/obj/item/organ/external/O = pick(H.organs)
- if(!(O.robotic >= ORGAN_ROBOT))
- var/eggcount
- for(var/obj/I in O.implants)
- if(istype(I, /obj/effect/spider/eggcluster))
- eggcount ++
- if(!eggcount)
- var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/small, list(O, src))
- O.implants += eggs
- H << "The [src] injects something into your [O.name]! "
-
-/mob/living/simple_animal/hostile/giant_spider/Life()
- ..()
- if(!stat)
- if(stance == STANCE_IDLE)
- //1% chance to skitter madly away
- if(!busy && prob(1))
- /*var/list/move_targets = list()
- for(var/turf/T in orange(20, src))
- move_targets.Add(T)*/
- stop_automated_movement = 1
- walk_to(src, pick(orange(20, src)), 1, move_to_delay)
- spawn(50)
- stop_automated_movement = 0
- walk(src,0)
-
-/mob/living/simple_animal/hostile/giant_spider/nurse/proc/GiveUp(var/C)
- spawn(100)
- if(busy == MOVING_TO_TARGET)
- if(cocoon_target == C && get_dist(src,cocoon_target) > 1)
- cocoon_target = null
- busy = 0
- stop_automated_movement = 0
-
-/mob/living/simple_animal/hostile/giant_spider/nurse/Life()
- ..()
- if(!stat)
- if(stance == STANCE_IDLE)
- var/list/can_see = view(src, 10)
- //30% chance to stop wandering and do something
- if(!busy && prob(30))
- //first, check for potential food nearby to cocoon
- for(var/mob/living/C in can_see)
- if(C.stat)
- cocoon_target = C
- busy = MOVING_TO_TARGET
- walk_to(src, C, 1, move_to_delay)
- //give up if we can't reach them after 10 seconds
- GiveUp(C)
- return
-
- //second, spin a sticky spiderweb on this tile
- var/obj/effect/spider/stickyweb/W = locate() in get_turf(src)
- if(!W)
- busy = SPINNING_WEB
- src.visible_message("\The [src] begins to secrete a sticky substance. ")
- stop_automated_movement = 1
- spawn(40)
- if(busy == SPINNING_WEB)
- new /obj/effect/spider/stickyweb(src.loc)
- busy = 0
- stop_automated_movement = 0
- else
- //third, lay an egg cluster there
- var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
- if(!E && fed > 0)
- busy = LAYING_EGGS
- src.visible_message("\The [src] begins to lay a cluster of eggs. ")
- stop_automated_movement = 1
- spawn(50)
- if(busy == LAYING_EGGS)
- E = locate() in get_turf(src)
- if(!E)
- PoolOrNew(/obj/effect/spider/eggcluster, list(loc, src))
- fed--
- busy = 0
- stop_automated_movement = 0
- else
- //fourthly, cocoon any nearby items so those pesky pinkskins can't use them
- for(var/obj/O in can_see)
-
- if(O.anchored)
- continue
-
- if(istype(O, /obj/item) || istype(O, /obj/structure) || istype(O, /obj/machinery))
- cocoon_target = O
- busy = MOVING_TO_TARGET
- stop_automated_movement = 1
- walk_to(src, O, 1, move_to_delay)
- //give up if we can't reach them after 10 seconds
- GiveUp(O)
-
- else if(busy == MOVING_TO_TARGET && cocoon_target)
- if(get_dist(src, cocoon_target) <= 1)
- busy = SPINNING_COCOON
- src.visible_message("\The [src] begins to secrete a sticky substance around \the [cocoon_target]. ")
- stop_automated_movement = 1
- walk(src,0)
- spawn(50)
- if(busy == SPINNING_COCOON)
- if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1)
- var/obj/effect/spider/cocoon/C = new(cocoon_target.loc)
- var/large_cocoon = 0
- C.pixel_x = cocoon_target.pixel_x
- C.pixel_y = cocoon_target.pixel_y
- for(var/mob/living/M in C.loc)
- if(istype(M, /mob/living/simple_animal/hostile/giant_spider))
- continue
- large_cocoon = 1
- fed++
- src.visible_message("\The [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out. ")
- M.loc = C
- C.pixel_x = M.pixel_x
- C.pixel_y = M.pixel_y
- break
- for(var/obj/item/I in C.loc)
- I.loc = C
- for(var/obj/structure/S in C.loc)
- if(!S.anchored)
- S.loc = C
- large_cocoon = 1
- for(var/obj/machinery/M in C.loc)
- if(!M.anchored)
- M.loc = C
- large_cocoon = 1
- if(large_cocoon)
- C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3")
- busy = 0
- stop_automated_movement = 0
-
- else
- busy = 0
- stop_automated_movement = 0
-
-#undef SPINNING_WEB
-#undef LAYING_EGGS
-#undef MOVING_TO_TARGET
-#undef SPINNING_COCOON
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
deleted file mode 100644
index 6269bd4634..0000000000
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ /dev/null
@@ -1,8 +0,0 @@
-/mob/living/simple_animal/hostile
- faction = "hostile"
- break_stuff_probability = 10
- stop_automated_movement_when_pulled = 0
- destroy_surroundings = 1
- a_intent = I_HURT
- hostile = 1
-
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
deleted file mode 100644
index ac352edd1a..0000000000
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
+++ /dev/null
@@ -1,49 +0,0 @@
-/mob/living/simple_animal/hostile/retaliate
- var/list/enemies = list()
-
-/mob/living/simple_animal/hostile/retaliate/Found(var/atom/A)
- if(isliving(A))
- var/mob/living/L = A
- if(!L.stat)
- stance = STANCE_ATTACK
- return L
- else
- enemies -= L
- else if(istype(A, /obj/mecha))
- var/obj/mecha/M = A
- if(M.occupant)
- stance = STANCE_ATTACK
- return A
-
-/mob/living/simple_animal/hostile/retaliate/ListTargets()
- if(!enemies.len)
- return list()
- var/list/see = ..()
- see &= enemies // Remove all entries that aren't in enemies
- return see
-
-/mob/living/simple_animal/hostile/retaliate/proc/Retaliate()
- ..()
- var/list/around = view(src, 7)
-
- for(var/atom/movable/A in around)
- if(A == src)
- continue
- if(isliving(A))
- var/mob/living/M = A
- if(!attack_same && M.faction != faction)
- enemies |= M
- else if(istype(A, /obj/mecha))
- var/obj/mecha/M = A
- if(M.occupant)
- enemies |= M
- enemies |= M.occupant
-
- for(var/mob/living/simple_animal/hostile/retaliate/H in around)
- if(!attack_same && !H.attack_same && H.faction == faction)
- H.enemies |= enemies
- return 0
-
-/mob/living/simple_animal/hostile/retaliate/adjustBruteLoss(var/damage)
- ..(damage)
- Retaliate()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/humanoids/clown.dm
similarity index 84%
rename from code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
rename to code/modules/mob/living/simple_animal/humanoids/clown.dm
index 5a6a7e5768..5bf310b165 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/clown.dm
@@ -1,39 +1,47 @@
-/mob/living/simple_animal/hostile/retaliate/clown
- name = "clown"
- desc = "A denizen of clown planet"
- icon_state = "clown"
- icon_living = "clown"
- icon_dead = "clown_dead"
- icon_gib = "clown_gib"
- speak_chance = 0
- turns_per_move = 5
- response_help = "pokes"
- response_disarm = "gently pushes aside"
- response_harm = "hits"
- speak = list("HONK", "Honk!", "Welcome to clown planet!")
- emote_see = list("honks")
- speak_chance = 1
- a_intent = I_HURT
- stop_automated_movement_when_pulled = 0
- maxHealth = 75
- health = 75
- speed = -1
- harm_intent_damage = 8
- melee_damage_lower = 10
- melee_damage_upper = 10
- attacktext = "attacked"
- attack_sound = 'sound/items/bikehorn.ogg'
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 270
- maxbodytemp = 370
- heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp
- cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
- unsuitable_atoms_damage = 10
+/mob/living/simple_animal/hostile/clown
+ name = "clown"
+ desc = "A denizen of clown planet"
+ icon_state = "clown"
+ icon_living = "clown"
+ icon_dead = "clown_dead"
+ icon_gib = "clown_gib"
+
+ faction = "clown"
+ maxHealth = 75
+ health = 75
+ speed = -1
+ move_to_delay = 2
+
+ run_at_them = 0
+ cooperative = 1
+
+ turns_per_move = 5
+ stop_when_pulled = 0
+
+ response_help = "pokes"
+ response_disarm = "gently pushes aside"
+ response_harm = "hits"
+
+ harm_intent_damage = 8
+ melee_damage_lower = 10
+ melee_damage_upper = 10
+ attacktext = "attacked"
+ attack_sound = 'sound/items/bikehorn.ogg'
+
+ min_oxy = 5
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 1
+ min_co2 = 0
+ max_co2 = 5
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 270
+ maxbodytemp = 370
+ heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp
+ cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
+ unsuitable_atoms_damage = 10
+
+ speak_chance = 1
+ speak = list("HONK", "Honk!", "Welcome to clown planet!")
+ emote_see = list("honks")
diff --git a/code/modules/mob/living/simple_animal/head.dm b/code/modules/mob/living/simple_animal/humanoids/head.dm
similarity index 92%
rename from code/modules/mob/living/simple_animal/head.dm
rename to code/modules/mob/living/simple_animal/humanoids/head.dm
index 88a9f3d6ca..f0e8b8abde 100644
--- a/code/modules/mob/living/simple_animal/head.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/head.dm
@@ -5,16 +5,23 @@
icon_state = "crab"
icon_living = "crab"
icon_dead = "crab_dead"
- speak_emote = list("clicks")
- emote_hear = list("clicks")
- emote_see = list("clacks")
+
+ wander = 0
+ stop_automated_movement = 1
universal_speak = 1
- speak_chance = 1
turns_per_move = 5
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "punches"
+
+ speak_chance = 1
+ speak_emote = list("clicks")
+ emote_hear = list("clicks")
+ emote_see = list("clacks")
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
var/list/insults = list(
"Man you suck",
"You look like the most retarded douche around",
@@ -32,22 +39,15 @@
"Say \"what\" again. Say \"what\" again. I dare you. I double-dare you, motherfucker. Say \"what\" one more goddamn time.",
"Ezekiel 25:17 ,The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who in the name of charity and good will shepherds the weak through the valley of darkness, for he is truly his brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers. And you will know my name is the Lord... when I lay my vengeance upon thee.",
"Did you notice a sign out in front of my house that said \"Dead Nigger Storage\"?")
- stop_automated_movement = 1
/mob/living/simple_animal/head/Life()
- if(stat == DEAD)
- if(health > 0)
- icon_state = icon_living
- stat = CONSCIOUS
- density = 1
- return
- else if(health < 1)
- Die()
- else if(health > maxHealth)
- health = maxHealth
+ . = ..()
+ if(!. || ai_inactive) return
+
for(var/mob/A in viewers(world.view,src))
if(A.ckey)
say_something(A)
+
/mob/living/simple_animal/head/proc/say_something(mob/A)
if(prob(85))
return
diff --git a/code/modules/mob/living/simple_animal/kobold.dm b/code/modules/mob/living/simple_animal/humanoids/kobold.dm
similarity index 82%
rename from code/modules/mob/living/simple_animal/kobold.dm
rename to code/modules/mob/living/simple_animal/humanoids/kobold.dm
index 3e52a40874..8f3ce0d28c 100644
--- a/code/modules/mob/living/simple_animal/kobold.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/kobold.dm
@@ -6,25 +6,34 @@
icon_state = "kobold_idle"
icon_living = "kobold_idle"
icon_dead = "kobold_dead"
- //speak = list("You no take candle!","Ooh, pretty shiny.","Me take?","Where gold here...","Me likey.")
- speak_emote = list("mutters","hisses","grumbles")
- emote_hear = list("mutters under it's breath.","grumbles.", "yips!")
- emote_see = list("looks around suspiciously.", "scratches it's arm.","putters around a bit.")
- speak_chance = 15
+
+ run_at_them = 0
+ cooperative = 1
+
turns_per_move = 5
see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/monkey
+
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
- minbodytemp = 250
+
min_oxy = 16 //Require atleast 16kPA oxygen
minbodytemp = 223 //Below -50 Degrees Celcius
maxbodytemp = 323 //Above 50 Degrees Celcius
+ speak_chance = 5
+ speak = list("You no take candle!","Ooh, pretty shiny.","Me take?","Where gold here...","Me likey.")
+ speak_emote = list("mutters","hisses","grumbles")
+ emote_hear = list("mutters under it's breath.","grumbles.", "yips!")
+ emote_see = list("looks around suspiciously.", "scratches it's arm.","putters around a bit.")
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/monkey
+
/mob/living/simple_animal/kobold/Life()
- ..()
- if(prob(15) && turns_since_move && !stat)
+ . = ..()
+ if(!.) return
+
+ if(prob(5))
flick("kobold_act",src)
/mob/living/simple_animal/kobold/Move(var/dir)
diff --git a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm
new file mode 100644
index 0000000000..79f389821e
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm
@@ -0,0 +1,94 @@
+/mob/living/simple_animal/hostile/mecha
+ name = "syndicate gygax"
+ desc = "Well that's forboding."
+ icon = 'icons/mecha/mecha.dmi'
+ icon_state = "darkgygax"
+ icon_living = "darkgygax"
+ icon_dead = "darkgygax-broken"
+
+ faction = "syndicate"
+ maxHealth = 300
+ health = 300
+ speed = 7
+ move_to_delay = 8
+
+ run_at_them = 0
+ cooperative = 1
+ investigates = 1
+ firing_lines = 1
+
+ turns_per_move = 5
+ stop_when_pulled = 0
+
+ response_help = "taps on"
+ response_disarm = "knocks on"
+ response_harm = "uselessly hits"
+
+ harm_intent_damage = 0
+ melee_damage_lower = 35
+ melee_damage_upper = 35
+ attacktext = "slashed"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ unsuitable_atoms_damage = 0
+
+ ranged = 1
+ rapid = 1
+ projectiletype = /obj/item/projectile/beam
+ projectilesound = 'sound/weapons/laser.ogg'
+
+ speak_chance = 1
+ speak = list("Know what we need? More meatshields.",
+ "Glad I finally got a mech.",
+ "I'll stomp those NanoTrasen dogs into paste.",
+ "Glad I didn't become a line chef.",
+ "This anti-fog visor is nice...",
+ "Did I refill the air tank?")
+ emote_hear = list("humms ominously","whirrs softly","grinds a gear")
+ emote_see = list("looks around the area","turns from side to side")
+ say_understood = list()
+ say_cannot = list()
+ say_maybe_target = list("Just my sensors?","Detecting something?","Is that...?","What was that?")
+ say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!")
+ reactions = list()
+
+ var/datum/effect/effect/system/spark_spread/sparks
+ var/wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
+
+/mob/living/simple_animal/hostile/mecha/New()
+ ..()
+ sparks = new (src)
+ sparks.set_up(3, 1, src)
+
+/mob/living/simple_animal/hostile/mecha/Destroy()
+ qdel(sparks)
+ ..()
+
+/mob/living/simple_animal/hostile/mecha/Life()
+ . = ..()
+ if(!.) return
+ if((health < maxHealth*0.3) && prob(10))
+ sparks.start()
+
+/mob/living/simple_animal/hostile/mecha/bullet_act()
+ ..()
+ sparks.start()
+
+/mob/living/simple_animal/hostile/mecha/death()
+ ..(0,"is explodes!")
+ sparks.start()
+ explosion(get_turf(src), 0, 0, 1, 3)
+ qdel(src)
+ new /obj/effect/decal/mecha_wreckage/gygax/dark(get_turf(src))
+
+/mob/living/simple_animal/hostile/mecha/Move()
+ ..()
+ playsound(src,'sound/mecha/mechstep.ogg',40,1)
diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/humanoids/pirate.dm
similarity index 80%
rename from code/modules/mob/living/simple_animal/hostile/pirate.dm
rename to code/modules/mob/living/simple_animal/humanoids/pirate.dm
index 3fbbe40aa6..02d1a8eb72 100644
--- a/code/modules/mob/living/simple_animal/hostile/pirate.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/pirate.dm
@@ -1,56 +1,66 @@
-/mob/living/simple_animal/hostile/pirate
- name = "Pirate"
- desc = "Does what he wants cause a pirate is free."
- icon_state = "piratemelee"
- icon_living = "piratemelee"
- icon_dead = "piratemelee_dead"
- speak_chance = 0
- turns_per_move = 5
- response_help = "pushes"
- response_disarm = "shoves"
- response_harm = "hits"
- speed = 4
- stop_automated_movement_when_pulled = 0
- maxHealth = 100
- health = 100
-
- harm_intent_damage = 5
- melee_damage_lower = 30
- melee_damage_upper = 30
- attacktext = "slashed"
- attack_sound = 'sound/weapons/bladeslice.ogg'
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
- var/corpse = /obj/effect/landmark/mobcorpse/pirate
- var/weapon1 = /obj/item/weapon/melee/energy/sword/pirate
-
- faction = "pirate"
-
-/mob/living/simple_animal/hostile/pirate/ranged
- name = "Pirate Gunner"
- icon_state = "pirateranged"
- icon_living = "pirateranged"
- icon_dead = "piratemelee_dead"
- projectilesound = 'sound/weapons/laser.ogg'
- ranged = 1
- projectiletype = /obj/item/projectile/beam
- corpse = /obj/effect/landmark/mobcorpse/pirate/ranged
- weapon1 = /obj/item/weapon/gun/energy/laser
-
-
-/mob/living/simple_animal/hostile/pirate/death()
- ..()
- if(corpse)
- new corpse (src.loc)
- if(weapon1)
- new weapon1 (src.loc)
- qdel(src)
+/mob/living/simple_animal/hostile/pirate
+ name = "Pirate"
+ desc = "Does what he wants cause a pirate is free."
+ icon_state = "piratemelee"
+ icon_living = "piratemelee"
+ icon_dead = "piratemelee_dead"
+
+ faction = "pirate"
+ maxHealth = 100
+ health = 100
+ speed = 4
+
+ run_at_them = 0
+ cooperative = 1
+ investigates = 1
+ firing_lines = 1
+ returns_home = 1
+ reacts = 1
+
+ turns_per_move = 5
+ stop_when_pulled = 0
+
+ response_help = "pushes"
+ response_disarm = "shoves"
+ response_harm = "hits"
+
+ harm_intent_damage = 5
+ melee_damage_lower = 30
+ melee_damage_upper = 30
+ attacktext = "slashed"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+
+ min_oxy = 5
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 1
+ min_co2 = 0
+ max_co2 = 5
+ min_n2 = 0
+ max_n2 = 0
+ unsuitable_atoms_damage = 15
+
+ loot_list = list(/obj/item/weapon/melee/energy/sword/pirate = 100)
+
+ var/corpse = /obj/effect/landmark/mobcorpse/pirate
+
+/mob/living/simple_animal/hostile/pirate/ranged
+ name = "Pirate Gunner"
+ icon_state = "pirateranged"
+ icon_living = "pirateranged"
+ icon_dead = "piratemelee_dead"
+
+ ranged = 1
+ projectiletype = /obj/item/projectile/beam
+ projectilesound = 'sound/weapons/laser.ogg'
+
+ loot_list = list(/obj/item/weapon/gun/energy/laser = 100)
+
+ corpse = /obj/effect/landmark/mobcorpse/pirate/ranged
+
+/mob/living/simple_animal/hostile/pirate/death()
+ ..()
+ if(corpse)
+ new corpse (src.loc)
+ qdel(src)
return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/humanoids/russian.dm
similarity index 79%
rename from code/modules/mob/living/simple_animal/hostile/russian.dm
rename to code/modules/mob/living/simple_animal/humanoids/russian.dm
index ee99318c15..96ff3a5177 100644
--- a/code/modules/mob/living/simple_animal/hostile/russian.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/russian.dm
@@ -1,55 +1,66 @@
-/mob/living/simple_animal/hostile/russian
- name = "russian"
- desc = "For the Motherland!"
- icon_state = "russianmelee"
- icon_living = "russianmelee"
- icon_dead = "russianmelee_dead"
- icon_gib = "syndicate_gib"
- speak_chance = 0
- turns_per_move = 5
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
- speed = 4
- stop_automated_movement_when_pulled = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 15
- melee_damage_upper = 15
- attacktext = "punched"
- a_intent = I_HURT
- var/corpse = /obj/effect/landmark/mobcorpse/russian
- var/weapon1 = /obj/item/weapon/material/knife
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
- faction = "russian"
- status_flags = CANPUSH
-
-
-/mob/living/simple_animal/hostile/russian/ranged
- icon_state = "russianranged"
- icon_living = "russianranged"
- corpse = /obj/effect/landmark/mobcorpse/russian/ranged
- weapon1 = /obj/item/weapon/gun/projectile/revolver/mateba
- ranged = 1
- projectiletype = /obj/item/projectile/bullet
- projectilesound = 'sound/weapons/Gunshot.ogg'
- casingtype = /obj/item/ammo_casing/spent
-
-
-/mob/living/simple_animal/hostile/russian/death()
- ..()
- if(corpse)
- new corpse (src.loc)
- if(weapon1)
- new weapon1 (src.loc)
- qdel(src)
- return
\ No newline at end of file
+/mob/living/simple_animal/hostile/russian
+ name = "russian"
+ desc = "For the Motherland!"
+ icon_state = "russianmelee"
+ icon_living = "russianmelee"
+ icon_dead = "russianmelee_dead"
+ icon_gib = "syndicate_gib"
+
+ faction = "russian"
+ maxHealth = 100
+ health = 100
+ speed = 4
+
+ run_at_them = 0
+ cooperative = 1
+ investigates = 1
+ firing_lines = 1
+ returns_home = 1
+ reacts = 1
+
+ turns_per_move = 5
+ stop_when_pulled = 0
+ status_flags = CANPUSH
+
+ response_help = "pokes"
+ response_disarm = "shoves"
+ response_harm = "hits"
+
+ harm_intent_damage = 5
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ attacktext = "punched"
+
+ min_oxy = 5
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 1
+ min_co2 = 0
+ max_co2 = 5
+ min_n2 = 0
+ max_n2 = 0
+ unsuitable_atoms_damage = 15
+
+ loot_list = list(/obj/item/weapon/material/knife = 100)
+
+ var/corpse = /obj/effect/landmark/mobcorpse/russian
+
+/mob/living/simple_animal/hostile/russian/ranged
+ icon_state = "russianranged"
+ icon_living = "russianranged"
+
+ ranged = 1
+ projectiletype = /obj/item/projectile/bullet
+ casingtype = /obj/item/ammo_casing/spent
+ projectilesound = 'sound/weapons/Gunshot.ogg'
+
+ loot_list = list(/obj/item/weapon/gun/projectile/revolver/mateba = 100)
+
+ corpse = /obj/effect/landmark/mobcorpse/russian/ranged
+
+/mob/living/simple_animal/hostile/russian/death()
+ ..()
+ if(corpse)
+ new corpse (src.loc)
+ qdel(src)
+ return
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm
similarity index 67%
rename from code/modules/mob/living/simple_animal/hostile/syndicate.dm
rename to code/modules/mob/living/simple_animal/humanoids/syndicate.dm
index 694e95b434..eebc6c9571 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm
@@ -1,163 +1,192 @@
-/mob/living/simple_animal/hostile/syndicate
- name = "\improper Syndicate operative"
- desc = "Death to the Company."
- icon_state = "syndicate"
- icon_living = "syndicate"
- icon_dead = "syndicate_dead"
- icon_gib = "syndicate_gib"
- speak_chance = 0
- turns_per_move = 5
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
- speed = 4
- stop_automated_movement_when_pulled = 0
- maxHealth = 100
- health = 100
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 10
- attacktext = "punched"
- a_intent = I_HURT
- var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier
- var/weapon1
- var/weapon2
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
- environment_smash = 1
- faction = "syndicate"
- status_flags = CANPUSH
-
-/mob/living/simple_animal/hostile/syndicate/death()
- ..()
- if(corpse)
- new corpse (src.loc)
- if(weapon1)
- new weapon1 (src.loc)
- if(weapon2)
- new weapon2 (src.loc)
- qdel(src)
- return
-
-///////////////Sword and shield////////////
-
-/mob/living/simple_animal/hostile/syndicate/melee
- melee_damage_lower = 20
- melee_damage_upper = 25
- icon_state = "syndicatemelee"
- icon_living = "syndicatemelee"
- weapon1 = /obj/item/weapon/melee/energy/sword/red
- weapon2 = /obj/item/weapon/shield/energy
- attacktext = "slashed"
- status_flags = 0
-
-/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(O.force)
- if(prob(80))
- var/damage = O.force
- if (O.damtype == HALLOSS)
- damage = 0
- health -= damage
- visible_message("\red \b [src] has been attacked with the [O] by [user]. ")
- else
- visible_message("\red \b [src] blocks the [O] with its shield! ")
- //user.do_attack_animation(src)
- else
- usr << "\red This weapon is ineffective, it does no damage."
- visible_message("\red [user] gently taps [src] with the [O]. ")
-
-
-/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
- if(!Proj) return
- if(prob(65))
- src.health -= Proj.damage
- else
- visible_message("\red [src] blocks [Proj] with its shield! ")
- return 0
-
-
-/mob/living/simple_animal/hostile/syndicate/melee/space
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
- icon_state = "syndicatemeleespace"
- icon_living = "syndicatemeleespace"
- name = "Syndicate Commando"
- corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
- speed = 0
-
-/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
- return
-
-/mob/living/simple_animal/hostile/syndicate/ranged
- ranged = 1
- rapid = 1
- icon_state = "syndicateranged"
- icon_living = "syndicateranged"
- casingtype = /obj/item/ammo_casing/spent
- projectilesound = 'sound/weapons/Gunshot_light.ogg'
- projectiletype = /obj/item/projectile/bullet/pistol/medium
-
- weapon1 = /obj/item/weapon/gun/projectile/automatic/c20r
-
-/mob/living/simple_animal/hostile/syndicate/ranged/space
- icon_state = "syndicaterangedpsace"
- icon_living = "syndicaterangedpsace"
- name = "Syndicate Commando"
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
- corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
- speed = 0
-
-/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
- return
-
-
-
-/mob/living/simple_animal/hostile/viscerator
- name = "viscerator"
- desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations."
- icon = 'icons/mob/critter.dmi'
- icon_state = "viscerator_attack"
- icon_living = "viscerator_attack"
- pass_flags = PASSTABLE
- health = 15
- maxHealth = 15
- melee_damage_lower = 15
- melee_damage_upper = 15
- attacktext = "cut"
- attack_sound = 'sound/weapons/bladeslice.ogg'
- faction = "syndicate"
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
-/mob/living/simple_animal/hostile/viscerator/death()
- ..(null,"is smashed into pieces!")
- qdel(src)
+/mob/living/simple_animal/hostile/syndicate
+ name = "syndicate operative"
+ desc = "Death to the Company."
+ icon_state = "syndicate"
+ icon_living = "syndicate"
+ icon_dead = "syndicate_dead"
+ icon_gib = "syndicate_gib"
+
+ faction = "syndicate"
+ maxHealth = 100
+ health = 100
+ speed = 4
+
+ run_at_them = 0
+ cooperative = 1
+ investigates = 1
+ firing_lines = 1
+ returns_home = 1
+ reacts = 1
+
+ turns_per_move = 5
+ stop_when_pulled = 0
+ status_flags = CANPUSH
+
+ response_help = "pokes"
+ response_disarm = "shoves"
+ response_harm = "hits"
+
+ harm_intent_damage = 5
+ melee_damage_lower = 10
+ melee_damage_upper = 15
+ environment_smash = 1
+ attacktext = "punched"
+
+ min_oxy = 5
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 1
+ min_co2 = 0
+ max_co2 = 5
+ min_n2 = 0
+ max_n2 = 0
+ unsuitable_atoms_damage = 15
+
+ speak_chance = 1
+ speak = list("Fuckin' NT, man.",
+ "When are we gonna get out of this chicken-shit outfit?",
+ "Wish I had better equipment...",
+ "I knew I should have been a line chef...",
+ "Fuckin' helmet keeps fogging up.",
+ "Anyone else smell that?")
+ emote_hear = list("sniffs","coughs","taps his foot")
+ emote_see = list("looks around","checks his equipment")
+ say_understood = list()
+ say_cannot = list()
+ say_maybe_target = list("What's that?","Is someone there?","Is that...?","Hmm?")
+ say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!")
+ reactions = list("Hey guys, you ready?" = "Fuck yeah!")
+
+ var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier
+
+/mob/living/simple_animal/hostile/syndicate/death()
+ ..()
+ if(corpse)
+ new corpse (src.loc)
+ qdel(src)
+ return
+
+///////////////Sword and shield////////////
+
+/mob/living/simple_animal/hostile/syndicate/melee
+ icon_state = "syndicatemelee"
+ icon_living = "syndicatemelee"
+
+ melee_damage_lower = 20
+ melee_damage_upper = 25
+ attacktext = "slashed"
+
+ status_flags = 0
+
+ loot_list = list(/obj/item/weapon/melee/energy/sword/red = 100, /obj/item/weapon/shield/energy = 100)
+
+/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if(O.force)
+ if(prob(20))
+ visible_message("\The [src] blocks \the [O] with its shield! ")
+ if(user)
+ react_to_attack(user)
+ return
+ else
+ ..()
+ else
+ usr << "This weapon is ineffective, it does no damage. "
+ visible_message("\The [user] gently taps [src] with \the [O]. ")
+
+/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
+ if(!Proj) return
+ if(prob(35))
+ visible_message("\red [src] blocks [Proj] with its shield! ")
+ if(Proj.firer)
+ react_to_attack(Proj.firer)
+ return
+ else
+ ..()
+
+/mob/living/simple_animal/hostile/syndicate/melee/space
+ name = "syndicate commando"
+ icon_state = "syndicatemeleespace"
+ icon_living = "syndicatemeleespace"
+
+ speed = 0
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
+
+/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
+ return
+
+/mob/living/simple_animal/hostile/syndicate/ranged
+ icon_state = "syndicateranged"
+ icon_living = "syndicateranged"
+
+ ranged = 1
+ rapid = 1
+ projectiletype = /obj/item/projectile/bullet/pistol/medium
+ casingtype = /obj/item/ammo_casing/spent
+ projectilesound = 'sound/weapons/Gunshot_light.ogg'
+
+ loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100)
+
+/mob/living/simple_animal/hostile/syndicate/ranged/space
+ name = "syndicate sommando"
+ icon_state = "syndicaterangedpsace"
+ icon_living = "syndicaterangedpsace"
+
+ speed = 0
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+ corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
+
+/mob/living/simple_animal/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
+ return
+
+/mob/living/simple_animal/hostile/viscerator
+ name = "viscerator"
+ desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations."
+ icon = 'icons/mob/critter.dmi'
+ icon_state = "viscerator_attack"
+ icon_living = "viscerator_attack"
+
+ faction = "syndicate"
+ maxHealth = 15
+ health = 15
+
+ pass_flags = PASSTABLE
+
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ attack_sound = 'sound/weapons/bladeslice.ogg'
+ attacktext = "cut"
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+
+/mob/living/simple_animal/hostile/viscerator/death()
+ ..(null,"is smashed into pieces!")
+ qdel(src)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index ae9622d305..1179dc889f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -1,3 +1,8 @@
+#define ai_log(M,V) if(debug_ai) ai_log_output(M,V)
+
+//Talky things
+#define try_say_list(L) if(L.len) say(pick(L))
+
/mob/living/simple_animal
name = "animal"
icon = 'icons/mob/animal.dmi'
@@ -5,84 +10,114 @@
maxHealth = 20
mob_bump_flag = SIMPLE_ANIMAL
- mob_swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL
- mob_push_flags = MONKEY|SLIME|SIMPLE_ANIMAL
+ mob_swap_flags = MONKEY|SLIME|HUMAN
+ mob_push_flags = MONKEY|SLIME|HUMAN
- var/show_stat_health = 1 //does the percentage health show in the stat panel for the mob
+ //Settings for played mobs
+ var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob
+ var/ai_inactive = 0 // Set to 1 to turn off most AI actions
- var/icon_living = ""
- var/icon_dead = ""
- var/icon_gib = null //We only try to show a gibbing animation if this exists.
+ //Mob icon settings
+ var/icon_living = "" // The iconstate if we're alive, required
+ var/icon_dead = "" // The iconstate if we're dead, required
+ var/icon_gib = null // The iconstate for being gibbed, optional
+ var/icon_rest = null // The iconstate for resting, optional
- var/list/speak = list()
- var/speak_chance = 0
- var/list/emote_hear = list() //Hearable emotes
- var/list/emote_see = list() //Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
+ //Mob talking settings
+ universal_speak = 0 // Can all mobs in the entire universe understand this one?
+ var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one.
+ var/speak_chance = 0 // Probability that I talk (this is 'X in 200' chance since even 1/100 is pretty noisy)
+ var/reacts = 0 // Reacts to some things being said
+ var/list/speak = list() // Things I might say if I talk
+ var/list/emote_hear = list() // Hearable emotes I might perform
+ var/list/emote_see = list() // Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
+ var/list/say_understood = list()// List of things to say when accepting an order
+ var/list/say_cannot = list() // List of things to say when they cannot comply
+ var/list/say_maybe_target = list()// List of things to say when they spot something barely
+ var/list/say_got_target = list()// List of things to say when they engage a target
+ var/list/reactions = list() // List of "string" = "reaction" and things they hear will be searched for string.
- var/turns_per_move = 1
- var/turns_since_move = 0
- universal_speak = 0 //No, just no.
- var/meat_amount = 0
- var/meat_type
- var/stop_automated_movement = 0 //Use this to temporarely stop random movement or to if you write special movement code for animals.
- var/wander = 1 // Does the mob wander around when idle?
- var/stop_automated_movement_when_pulled = 1 //When set to 1 this stops the animal from moving when someone is pulling it.
+ //Mob movement settings
+ var/wander = 1 // Does the mob wander around when idle?
+ var/wander_distance = 3 // How far the mob will wander before going home (assuming they are allowed to do that)
+ var/returns_home = 0 // Mob knows how to return to wherever it started
+ var/turns_per_move = 1 // How many life() cycles to wait between each wander mov?
+ var/stop_when_pulled = 1 // When set to 1 this stops the animal from moving when someone is pulling it.
+ var/follow_dist = 2 // Distance the mob tries to follow a friend
+ var/obstacles = list() // Things this mob refuses to move through
+ var/speed = 0 // Higher speed is slower, negative speed is faster.
+ var/obj/item/weapon/card/id/myid// An ID card if they have one to give them access to stuff.
+ var/turf/home_turf // Set when they spawned, they try to come back here sometimes.
- //Interaction
- var/response_help = "tries to help"
- var/response_disarm = "tries to disarm"
- var/response_harm = "tries to hurt"
- var/harm_intent_damage = 3
+ //Mob interaction
+ var/response_help = "tries to help" // If clicked on help intent
+ var/response_disarm = "tries to disarm" // If clicked on disarm intent
+ var/response_harm = "tries to hurt" // If clicked on harm intent
+ var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob.
+ var/meat_amount = 0 // How much meat to drop from this mob when butchered
+ var/obj/meat_type // The meat object to drop
+ var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure
+ var/recruitable = 0 // Mob can be bossed around
+ var/recruit_cmd_str = "Hey," // The thing you prefix commands with when bossing them around
- //Temperature effect
- var/minbodytemp = 250
- var/maxbodytemp = 350
- var/heat_damage_per_tick = 3 //amount of damage applied if animal's body temperature is higher than maxbodytemp
- var/cold_damage_per_tick = 2 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
- var/fire_alert = 0
+ //Mob environment settings
+ var/minbodytemp = 250 // Minimum "okay" temperature in kelvin
+ var/maxbodytemp = 350 // Maximum of above
+ var/heat_damage_per_tick = 3 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
+ var/cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
+ var/fire_alert = 0 // 0 = fine, 1 = hot, 2 = cold
- //Atmos effect - Yes, you can make creatures that require phoron or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
- var/min_oxy = 5
- var/max_oxy = 0 //Leaving something at 0 means it's off - has no maximum
- var/min_tox = 0
- var/max_tox = 1
- var/min_co2 = 0
- var/max_co2 = 5
- var/min_n2 = 0
- var/max_n2 = 0
- var/unsuitable_atoms_damage = 2 //This damage is taken when atmos doesn't fit all the requirements above
- var/speed = 0 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster
+ var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum
+ var/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
+ var/min_tox = 0 // Phoron min
+ var/max_tox = 1 // Phoron max
+ var/min_co2 = 0 // CO2 min
+ var/max_co2 = 5 // CO2 max
+ var/min_n2 = 0 // N2 min
+ var/max_n2 = 0 // N2 max
+ var/unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
- //LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly
- var/melee_damage_lower = 0
- var/melee_damage_upper = 0
- var/attacktext = "attacked"
- var/attack_sound = null
- var/friendly = "nuzzles"
- var/environment_smash = 0
- var/resistance = 0 // Damage reduction
+ //Hostility settings
+ var/hostile = 0 // Do I even attack?
+ var/retaliate = 0 // I respond to damage against specific targets.
+ var/view_range = 7 // Scan for targets in this range.
+ var/specific_targets = 0 // Only use Found() targets, ignore others.
+ var/investigates = 0 // Do I investigate if I saw someone briefly?
+ var/attack_same = 0 // Do I attack members of my own faction?
+ var/cooperative = 0 // Do I ask allies to help me?
+ var/assist_distance = 25 // Radius in which I'll ask my comrades for help.
+ var/supernatural = 0 // If the mob is supernatural (used in null-rod stuff for banishing?)
+ var/grab_resist = 75 // Chance of me resisting a grab attempt.
- //Null rod stuff
- var/supernatural = 0
- var/purge = 0
+ //Attack ranged settings
+ var/ranged = 0 // Do I attack at range?
+ var/shoot_range = 7 // How far away do I start shooting from?
+ var/rapid = 0 // Three-round-burst fire mode
+ var/firing_lines = 0 // Avoids shooting allies
+ var/projectiletype // The projectiles I shoot
+ var/projectilesound // The sound I make when I do it
+ var/casingtype // What to make the hugely laggy casings pile out of
- //Pulling hostile mob vars down
- var/stance = STANCE_IDLE //Used to determine behavior
- var/mob/living/target_mob
- var/attack_same = 0
- var/ranged = 0
- var/rapid = 0
- var/projectiletype
- var/projectilesound
- var/casingtype
- var/move_to_delay = 4 //delay for the automated movement.
- var/list/friends = list()
- var/break_stuff_probability = 0
- var/destroy_surroundings = 0
- var/shuttletarget = null
- var/enroute = 0
- var/ai_inactive = 0 // Set to 1 to turn off most AI actions in Life()
+ //Mob melee settings
+ var/melee_damage_lower = 2 // Lower bound of randomized melee damage
+ var/melee_damage_upper = 6 // Upper bound of randomized melee damage
+ var/attacktext = "attacked" // "You are [attacktext] by the mob!"
+ var/friendly = "nuzzles" // What mobs do to people when they aren't really hostile
+ var/attack_sound = null // Sound to play when I attack
+ var/environment_smash = 0 // How much environment damage do I do when I hit stuff?
+ //Special attacks
+ var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never)
+ var/spattack_min_range = 0 // Min range to perform the special attacks from
+ var/spattack_max_range = 0 // Max range to perform special attacks from
+
+ //Attack movement settings
+ var/run_at_them = 1 // Don't use A* pathfinding, use walk_to
+ var/move_to_delay = 4 // Delay for the automated movement (deciseconds)
+ var/destroy_surroundings = 1 // Should I smash things to get to my target?
+
+ //Damage resistances
+ var/resistance = 0 // Damage reduction for all types
var/list/resistances = list(
HALLOSS = 0,
BRUTE = 1,
@@ -92,97 +127,217 @@
CLONE = 0
)
- var/hostile = 0
+ //Scary debug things
+ var/debug_ai = 0 // Logging level for this mob (1,2,3)
+ var/path_display = 0 // Will display the path in green when pathing
+ var/path_icon = 'icons/misc/debug_group.dmi' // What icon to use for the overlay
+ var/path_icon_state = "red" // What state to use for the overlay
+ var/icon/path_overlay // A reference to restart
+
+ ////// These are used for inter-proc communications so don't edit them manually //////
+ var/stance = STANCE_IDLE // Used to determine behavior
+ var/stop_automated_movement = 0 // Use this to temporarely stop random movement or to if you write special movement code for animals.
+ var/lifes_since_move = 0 // A counter for how many life() cycles since move
+ var/shuttletarget = null // Shuttle's here, time to get to it
+ var/enroute = 0 // If the shuttle is en-route
+ var/purge = 0 // A counter used for null-rod stuff
+ var/mob/living/target_mob // Who I'm trying to attack
+ var/mob/living/follow_mob // Who I'm recruited by
+ var/mob/living/list/friends = list() // People who are immune to my wrath, for now
+ var/mob/living/simple_animal/list/faction_friends = list() // Other simple mobs I am friends with
+ var/turf/list/walk_list = list()// List of turfs to walk through to get somewhere
+ var/astarpathing = 0 // Am I currently pathing to somewhere?
+ var/stance_changed = 0 // When our stance last changed (world.time)
+ var/last_target_time = 0 // When we last set our target, to prevent juggles
+ var/last_follow_time = 0 // When did we last get asked to follow someone?
+ var/last_helpask_time = 0 // When did we last call for help?
+ var/follow_until_time = 0 // Give up following when we reach this time (0 = never)
+ var/annoyed = 0 // Do people keep distract-kiting us?
+ ////// ////// //////
/mob/living/simple_animal/New()
..()
verbs -= /mob/verb/observe
+ home_turf = get_turf(src)
+ path_overlay = new(path_icon,path_icon_state)
+ move_to_delay = max(2,move_to_delay) //Protection against people coding things incorrectly and A* pathing 100% of the time
+ for(var/L in has_langs)
+ languages |= all_languages[L]
+ if(languages.len)
+ default_language = languages[1]
+
+ if(cooperative)
+ var/mob/living/simple_animal/first_friend
+ for(var/mob/living/simple_animal/M in living_mob_list)
+ if(M.faction == src.faction)
+ first_friend = M
+ break
+ if(first_friend)
+ faction_friends = first_friend.faction_friends
+ faction_friends |= src
+ else
+ faction_friends |= src
+
+/mob/living/simple_animal/Destroy()
+ home_turf = null
+ path_overlay = null
+ default_language = null
+ target_mob = null
+ follow_mob = null
+ if(myid)
+ qdel(myid)
+ myid = null
+
+ if(faction_friends.len) //This list is shared amongst the faction
+ faction_friends -= src
+
+ friends.Cut() //This one is not
+ walk_list.Cut()
+ languages.Cut()
+ ..()
+
+//Client attached
/mob/living/simple_animal/Login()
if(src && src.client)
src.client.screen = list()
src.client.screen += src.client.void
+ ai_inactive = 1
+ handle_stance(STANCE_IDLE)
+ src.client << "Mob AI disabled while you are controlling the mob. "
..()
+//Client detatched
+/mob/living/simple_animal/Logout()
+ if(src && !src.client)
+ spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild
+ if(src && !src.client)
+ ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way.
+ ..()
+
+//For debug purposes!
+/mob/living/simple_animal/proc/ai_log_output(var/msg = "missing message", var/ver = 1)
+ if(ver <= debug_ai)
+ log_debug("SA-AI: ([src]:[x],[y],[z])(@[world.time]): [msg] ")
+
+//Should we be dead?
/mob/living/simple_animal/updatehealth()
- return
+ //Alive, becoming dead
+ if((stat < DEAD) && (health <= 0))
+ death()
+
+ //Dead, becoming alive
+ else if((stat >= DEAD) && (health > 0))
+ dead_mob_list -= src
+ living_mob_list += src
+ stat = CONSCIOUS
+ density = 1
+
+ //Overhealth
+ else if(health > maxHealth)
+ health = maxHealth
+
+/mob/living/simple_animal/update_icon()
+ ..()
+ //Awake and normal
+ if((stat == CONSCIOUS) && (!icon_rest || !resting))
+ icon_state = icon_living
+
+ //Resting or KO'd
+ else if(((stat == UNCONSCIOUS) || resting) && icon_rest)
+ icon_state = icon_rest
+
+ //Dead
+ else if(stat >= DEAD)
+ icon_state = icon_dead
+
+ //Backup
+ else
+ icon_state = initial(icon_state)
/mob/living/simple_animal/Life()
..()
//Health
- if(stat == DEAD)
- if(health > 0)
- icon_state = icon_living
- dead_mob_list -= src
- living_mob_list += src
- stat = CONSCIOUS
- density = 1
- else
- walk(src, 0)
+ updatehealth()
+ if(stat >= DEAD)
return 0
-
- if(health <= 0)
- death()
- return
-
- if(health > maxHealth)
- health = maxHealth
-
handle_stunned()
handle_weakened()
handle_paralysed()
handle_supernatural()
+ handle_atmos() //Atmos
+ update_icon()
+ ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4)
//Movement
- if(!client && !stop_automated_movement && wander && !anchored && !ai_inactive)
- if(isturf(src.loc) && !resting && !buckled && canmove) //This is so it only moves if it's not inside a closet, gentics machine, etc.
- turns_since_move++
- if(turns_since_move >= turns_per_move)
- if(!(stop_automated_movement_when_pulled && pulledby)) //Soma animals don't move when pulled
- var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
- moving_to = pick(cardinal)
- dir = moving_to //How about we turn them the direction they are moving, yay.
- Move(get_step(src,moving_to))
- turns_since_move = 0
+ if(!ai_inactive && !stop_automated_movement && wander && !anchored) //Allowed to move?
+ handle_wander_movement()
//Speaking
- if(!client && speak_chance)
- if(rand(0,200) < speak_chance)
- if(speak && speak.len)
- if((emote_hear && emote_hear.len) || (emote_see && emote_see.len))
- var/length = speak.len
- if(emote_hear && emote_hear.len)
- length += emote_hear.len
- if(emote_see && emote_see.len)
- length += emote_see.len
- var/randomValue = rand(1,length)
- if(randomValue <= speak.len)
- say(pick(speak))
- else
- randomValue -= speak.len
- if(emote_see && randomValue <= emote_see.len)
- visible_emote("[pick(emote_see)].")
- else
- audible_emote("[pick(emote_hear)].")
+ if(!ai_inactive && speak_chance && stance == STANCE_IDLE) // Allowed to chatter?
+ handle_idle_speaking()
+
+ //Stanceyness
+ if(!ai_inactive)
+ handle_stance()
+
+ //Resisting out of things
+ if(!ai_inactive && incapacitated(INCAPACITATION_DEFAULT) && stance != STANCE_IDLE)
+ resist()
+
+ return 1
+
+// Peforms the random walk wandering
+/mob/living/simple_animal/proc/handle_wander_movement()
+ if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
+ lifes_since_move++ //Increment turns since move (turns are life() cycles)
+ if(lifes_since_move >= turns_per_move)
+ if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled
+ var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
+ moving_to = pick(cardinal)
+ dir = moving_to //How about we turn them the direction they are moving, yay.
+ Move(get_step(src,moving_to))
+ lifes_since_move = 0
+
+// Handles random chatter, called from Life() when stance = STANCE_IDLE
+/mob/living/simple_animal/proc/handle_idle_speaking()
+ if(rand(0,200) < speak_chance)
+ if(speak && speak.len)
+ if((emote_hear && emote_hear.len) || (emote_see && emote_see.len))
+ var/length = speak.len
+ if(emote_hear && emote_hear.len)
+ length += emote_hear.len
+ if(emote_see && emote_see.len)
+ length += emote_see.len
+ var/randomValue = rand(1,length)
+ if(randomValue <= speak.len)
+ try_say_list(speak)
else
- say(pick(speak))
- else
- if(!(emote_hear && emote_hear.len) && (emote_see && emote_see.len))
- visible_emote("[pick(emote_see)].")
- if((emote_hear && emote_hear.len) && !(emote_see && emote_see.len))
- audible_emote("[pick(emote_hear)].")
- if((emote_hear && emote_hear.len) && (emote_see && emote_see.len))
- var/length = emote_hear.len + emote_see.len
- var/pick = rand(1,length)
- if(pick <= emote_see.len)
+ randomValue -= speak.len
+ if(emote_see && randomValue <= emote_see.len)
visible_emote("[pick(emote_see)].")
else
audible_emote("[pick(emote_hear)].")
+ else
+ try_say_list(speak)
+ else
+ if(!(emote_hear && emote_hear.len) && (emote_see && emote_see.len))
+ visible_emote("[pick(emote_see)].")
+ if((emote_hear && emote_hear.len) && !(emote_see && emote_see.len))
+ audible_emote("[pick(emote_hear)].")
+ if((emote_hear && emote_hear.len) && (emote_see && emote_see.len))
+ var/length = emote_hear.len + emote_see.len
+ var/pick = rand(1,length)
+ if(pick <= emote_see.len)
+ visible_emote("[pick(emote_see)].")
+ else
+ audible_emote("[pick(emote_hear)].")
-
- //Atmos
+// Handle interacting with and taking damage from atmos
+// TODO - Refactor this to use handle_environment() like a good /mob/living
+/mob/living/simple_animal/proc/handle_atmos()
var/atmos_suitable = 1
var/atom/A = src.loc
@@ -235,23 +390,55 @@
if(!atmos_suitable)
adjustBruteLoss(unsuitable_atoms_damage)
- //Hostility
- if(!stat && !client && hostile && !ai_inactive)
- switch(stance)
- if(STANCE_IDLE)
- target_mob = FindTarget()
+// For setting the stance WITHOUT processing it
+/mob/living/simple_animal/proc/set_stance(var/new_stance)
+ stance = new_stance
+ stance_changed = world.time
+ ai_log("set_stance() changing to [new_stance]",2)
- if(STANCE_ATTACK)
- if(destroy_surroundings)
- DestroySurroundings()
- MoveToTarget()
+// For proccessing the current stance, or setting and processing a new one
+/mob/living/simple_animal/proc/handle_stance(var/new_stance)
+ if(ai_inactive)
+ stance = STANCE_IDLE
+ return
- if(STANCE_ATTACKING)
- if(destroy_surroundings)
- DestroySurroundings()
- AttackTarget()
+ if(new_stance)
+ set_stance(new_stance)
- return 1
+ switch(stance)
+ if(STANCE_IDLE)
+ target_mob = null
+ a_intent = I_HELP
+ annoyed = max(0,annoyed--)
+
+ //Yes I'm breaking this into two if()'s for ease of reading
+ //If we ARE ALLOWED TO
+ if(returns_home && home_turf && !astarpathing && (world.time - stance_changed) > 10 SECONDS)
+ if(get_dist(src,home_turf) > wander_distance)
+ move_to_delay = initial(move_to_delay)*2 //Walk back.
+ GoHome()
+ else
+ stop_automated_movement = 0
+
+ //Search for targets while idle
+ if(hostile)
+ FindTarget()
+ if(STANCE_FOLLOW)
+ annoyed = 15
+ FollowTarget()
+ if(follow_until_time && world.time > follow_until_time)
+ LoseFollow()
+ return
+ if(hostile)
+ FindTarget()
+ if(STANCE_ATTACK)
+ annoyed = 50
+ a_intent = I_HURT
+ RequestHelp()
+ MoveToTarget()
+ if(STANCE_ATTACKING)
+ annoyed = 50
+ AttackTarget()
/mob/living/simple_animal/proc/handle_supernatural()
if(purge)
@@ -271,12 +458,22 @@
custom_emote(2, act_desc)
/mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
- if(!Proj || Proj.nodamage)
+ if(!Proj)
return
+ ai_log("bullet_act() I was shot by: [Proj.firer]",2)
+
+ if(Proj.taser_effect)
+ stun_effect_act(0, Proj.agony)
+
+ if(!Proj.nodamage)
+ adjustBruteLoss(Proj.damage)
+
+ if(Proj.firer)
+ react_to_attack(Proj.firer)
- adjustBruteLoss(Proj.damage)
return 0
+// When someone clicks us with an empty hand
/mob/living/simple_animal/attack_hand(mob/living/carbon/human/M as mob)
..()
@@ -284,10 +481,10 @@
if(I_HELP)
if (health > 0)
- M.visible_message("\blue [M] [response_help] \the [src]")
+ M.visible_message("[M] [response_help] \the [src]. ")
if(I_DISARM)
- M.visible_message("\blue [M] [response_disarm] \the [src]")
+ M.visible_message("[M] [response_disarm] \the [src]. ")
M.do_attack_animation(src)
//TODO: Push the mob away or something
@@ -296,6 +493,9 @@
return
if (!(status_flags & CANPUSH))
return
+ if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist))
+ M.visible_message("[M] tries to grab [src] but fails! ")
+ return
var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src)
@@ -305,16 +505,21 @@
G.affecting = src
LAssailant = M
- M.visible_message("\red [M] has grabbed [src] passively!")
+ M.visible_message("[M] has grabbed [src] passively! ")
M.do_attack_animation(src)
+ ai_log("attack_hand() I was grabbed by: [M]",2)
+ react_to_attack(M)
if(I_HURT)
adjustBruteLoss(harm_intent_damage)
- M.visible_message("\red [M] [response_harm] \the [src]")
+ M.visible_message("[M] [response_harm] \the [src]! ")
M.do_attack_animation(src)
+ ai_log("attack_hand() I was hit by: [M]",2)
+ react_to_attack(M)
return
+// When somoene clicks us with an item in hand
/mob/living/simple_animal/attackby(var/obj/item/O, var/mob/user)
if(istype(O, /obj/item/stack/medical))
if(stat != DEAD)
@@ -338,9 +543,10 @@
visible_message("[user] gently taps [src] with \the [O]. ")
else
O.attack(src, user, user.zone_sel.selecting)
+ ai_log("attackby() I was weapon'd by: [user]",2)
+ react_to_attack(user)
/mob/living/simple_animal/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
-
visible_message("\The [src] has been attacked with \the [O] by [user]. ")
if(O.force <= resistance)
@@ -354,9 +560,23 @@
damage *= 2
purge = 3
adjustBruteLoss(damage)
+ ai_log("hit_with_weapon() I was h_w_weapon'd by: [user]",2)
+ react_to_attack(user)
return 0
+// When someone throws something at us
+/mob/living/simple_animal/hitby(atom/movable/AM)
+ ..()
+ if(AM.thrower)
+ react_to_attack(AM.thrower)
+
+//SA vs SA basically
+/mob/living/simple_animal/attack_generic(var/mob/attacker)
+ ..()
+ if(attacker)
+ react_to_attack(attacker)
+
/mob/living/simple_animal/movement_delay()
var/tally = 0 //Incase I need to add stuff other than "speed" later
@@ -374,9 +594,28 @@
if(statpanel("Status") && show_stat_health)
stat(null, "Health: [round((health / maxHealth) * 100)]%")
+/mob/living/simple_animal/lay_down()
+ ..()
+ if(resting && icon_rest)
+ icon_state = icon_rest
+ else
+ icon_state = icon_living
+
/mob/living/simple_animal/death(gibbed, deathmessage = "dies!")
- icon_state = icon_dead
- density = 0
+ density = 0 //We don't block even if we did before
+ walk(src, 0) //We stop any background-processing walks
+
+ if(faction_friends.len)
+ faction_friends -= src
+
+ if(loot_list.len) //Drop any loot
+ for(var/path in loot_list)
+ if(prob(loot_list[path]))
+ new path(get_turf(src))
+
+ spawn(3) //We'll update our icon in a sec
+ update_icon()
+
return ..(gibbed,deathmessage)
/mob/living/simple_animal/ex_act(severity)
@@ -401,18 +640,21 @@
/mob/living/simple_animal/adjustFireLoss(damage)
health = Clamp(health - damage, 0, maxHealth)
+// Check target_mob if worthy of attack (i.e. check if they are dead or empty mecha)
/mob/living/simple_animal/proc/SA_attackable(target_mob)
+ ai_log("SA_attackable([target_mob])",3)
if (isliving(target_mob))
var/mob/living/L = target_mob
- if(!L.stat && L.health >= 0)
- return (0)
+ if(!L.stat)
+ return 1
if (istype(target_mob,/obj/mecha))
var/obj/mecha/M = target_mob
if (M.occupant)
- return (0)
- return 1
+ return 1
+ ai_log("SA_attackable([target_mob]): no",3)
+ return 0
-/mob/living/simple_animal/say(var/message)
+/mob/living/simple_animal/say(var/message,var/datum/language/language)
var/verb = "says"
if(speak_emote.len)
verb = pick(speak_emote)
@@ -425,7 +667,7 @@
return verb
/mob/living/simple_animal/put_in_hands(var/obj/item/W) // No hands.
- W.loc = get_turf(src)
+ W.forceMove(get_turf(src))
return 1
// Harvest an animal's delicious byproducts
@@ -453,12 +695,58 @@
/mob/living/simple_animal/ExtinguishMob()
return
- //Hostile procs moved down
-/mob/living/simple_animal/proc/FindTarget()
+//We got hit! Consider hitting them back!
+/mob/living/simple_animal/proc/react_to_attack(var/mob/living/M)
+ if(stat || M == target_mob) return //Not if we're dead or already hitting them
+ if(M in friends || M.faction == faction) return //I'll overlook it THIS time...
+ ai_log("react_to_attack([M])",1)
+ if(retaliate && set_target(M))
+ handle_stance(STANCE_ATTACK)
+ return M
+ return 0
+
+/mob/living/simple_animal/proc/set_target(var/mob/M)
+ ai_log("SetTarget([M])",2)
+ if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob)
+ ai_log("SetTarget() can't set it again so soon",3)
+ return 0
+
+ var/turf/seen = get_turf(M)
+
+ if(investigates && (annoyed < 10))
+ try_say_list(say_maybe_target)
+ face_atom(seen)
+ annoyed += 14
+ sleep(1 SECOND) //For realism
+
+ if(M in ListTargets(view_range))
+ try_say_list(say_got_target)
+ target_mob = M
+ last_target_time = world.time
+ return M
+ else if(investigates)
+ spawn(1)
+ WanderTowards(seen)
+
+ return 0
+
+// Set a follow target, with optional time for how long to follow them.
+/mob/living/simple_animal/proc/set_follow(var/mob/M, var/follow_for = 0)
+ ai_log("SetFollow([M]) for=[follow_for]",2)
+ if(!M || (world.time - last_target_time < 4 SECONDS) && follow_mob)
+ ai_log("SetFollow() can't set it again so soon",3)
+ return 0
+
+ follow_mob = M
+ last_follow_time = world.time
+ follow_until_time = !follow_for ? 0 : world.time + follow_for
+ return 1
+
+//Scan surroundings for a valid target
+/mob/living/simple_animal/proc/FindTarget()
var/atom/T = null
- stop_automated_movement = 0
- for(var/atom/A in ListTargets(10))
+ for(var/atom/A in ListTargets(view_range))
if(A == src)
continue
@@ -467,6 +755,8 @@
if(F)
T = F
break
+ else if(specific_targets)
+ return 0
if(isliving(A))
var/mob/living/L = A
@@ -474,52 +764,342 @@
continue
else if(L in friends)
continue
+ else if(!SA_attackable(L))
+ continue
else
- if(!L.stat)
- stance = STANCE_ATTACK
- T = L
- break
+ T = L
+ break
else if(istype(A, /obj/mecha)) // Our line of sight stuff was already done in ListTargets().
var/obj/mecha/M = A
- if (M.occupant)
- stance = STANCE_ATTACK
+ if(!SA_attackable(M))
+ continue
+ if((M.occupant.faction != src.faction) || attack_same)
T = M
break
+
+ //You found one!
+ if(T)
+ ai_log("FindTarget() found [T]!",1)
+ if(set_target(T))
+ handle_stance(STANCE_ATTACK)
+
return T
-
+//Used for special targeting or reactions
/mob/living/simple_animal/proc/Found(var/atom/A)
return
+//Requesting help from like-minded individuals
+/mob/living/simple_animal/proc/RequestHelp()
+ if(!cooperative || ((world.time - last_helpask_time) < 10 SECONDS))
+ return
+
+ ai_log("RequestHelp() to [faction_friends.len] friends",2)
+ last_helpask_time = world.time
+ for(var/mob/living/simple_animal/F in faction_friends)
+ if(F == src) continue
+ if(get_dist(src,F) <= F.assist_distance)
+ spawn(0)
+ if(F) //They could have died by now and some mobs delete themselves on death
+ ai_log("RequestHelp() to [F]",3)
+ F.HelpRequested(src)
+
+//Someone wants help?
+/mob/living/simple_animal/proc/HelpRequested(var/mob/living/simple_animal/F)
+ if(!(stance == STANCE_IDLE) || stat)
+ ai_log("HelpRequested() by [F] but we're busy/dead",2)
+ return
+ if(get_dist(src,F) <= follow_dist)
+ ai_log("HelpRequested() by [F] but we're already here",2)
+ return
+
+ if(set_follow(F, 10 SECONDS))
+ handle_stance(STANCE_FOLLOW)
+
+//Move to a target (or near if we're ranged)
/mob/living/simple_animal/proc/MoveToTarget()
- stop_automated_movement = 1
- if(!target_mob || SA_attackable(target_mob))
- stance = STANCE_IDLE
- if(target_mob in ListTargets(10))
- if(ranged)
- if(get_dist(src, target_mob) <= 6)
- OpenFire(target_mob)
- else
- walk_to(src, target_mob, 1, move_to_delay)
- else
- stance = STANCE_ATTACKING
- walk_to(src, target_mob, 1, move_to_delay)
+ if(incapacitated(INCAPACITATION_DISABLED))
+ ai_log("MoveToTarget() Bailing because we're disabled",2)
+ return
-/mob/living/simple_animal/proc/AttackTarget()
-
- stop_automated_movement = 1
- if(!target_mob || SA_attackable(target_mob))
+ //If we were chasing someone and we can't anymore, give up.
+ if(!target_mob || !SA_attackable(target_mob))
+ ai_log("MoveToTarget() Losing target at top",2)
LoseTarget()
+ return
+
+ //Don't wander
+ stop_automated_movement = 1
+ move_to_delay = initial(move_to_delay)
+
+ //We recompute our path every time we're called if we can still see them
+ if(target_mob in ListTargets(view_range))
+
+ //Recompute the path if we were using one since we can still see them.
+ if(astarpathing)
+ ForgetPath()
+
+ //Find out where we're getting to
+ var/get_to = ranged ? shoot_range-1 : 1 //Shoot range -1 just because we don't want to constantly get kited
+ var/distance = get_dist(src,target_mob)
+ ai_log("MoveToTarget() [src] [get_to] [distance]",2)
+
+ //We're here!
+ if(distance <= get_to)
+ ai_log("MoveToTarget() [src] attack range",2)
+ handle_stance(STANCE_ATTACKING)
+ return
+
+ //We're just setting out, making a new path, or we can't path with A*
+ if(!walk_list.len)
+ ai_log("SA: MoveToTarget() pathing to [target_mob]",2)
+
+ //GetPath failed for whatever reason, just smash into things towards them
+ if(run_at_them || !GetPath(get_turf(target_mob),get_to))
+
+ //We try the built-in way to stay close
+ walk_to(src, target_mob, get_to, move_to_delay)
+ ai_log("MoveToTarget() walk_to([src],[target_mob],[get_to],[move_to_delay])",3)
+
+ //Break shit in their direction! LEME SMAHSH
+ var/dir_to_mob = get_dir(src,target_mob)
+ face_atom(target_mob)
+ DestroySurroundings(dir_to_mob)
+ ai_log("MoveToTarget() DestroySurroundings([get_dir(src,target_mob)])",3)
+
+ //We have a path! We aren't already pathing it!
+ if(!astarpathing && walk_list.len)
+ ai_log("MoveToTarget() going to start a path",2)
+ spawn(1)
+
+ //Do the path!
+ var/result = WalkPath(target_thing = target_mob, target_dist = get_to)
+ ai_log("MoveToTarget() WalkPath r:[result]",2)
+
+ //WalkPath failed, either interrupted for recalc, or something else
+ if(!result)
+ return
+
+ //WalkPath either got close enough or we ran out of path
+ else
+ spawn(1)
+ ai_log("MoveToTarget() resetting",2)
+ MoveToTarget()
+
+ //We can't see them, and we don't have a path we're trying to follow to find them
+ else if(!astarpathing)
+ ai_log("MoveToTarget() Losing target at bottom",2)
+ LoseTarget() //Just forget it.
+
+//Follow a target (and don't attempt to murder it horribly)
+/mob/living/simple_animal/proc/FollowTarget()
+ ai_log("FollowTarget() [follow_mob]",1)
+ //If we were chasing someone and we can't anymore, give up.
+ if(!follow_mob || follow_mob.stat)
+ ai_log("FollowTarget() Losing follow at top",2)
+ LoseFollow()
+ return
+
+ if(incapacitated(INCAPACITATION_DISABLED))
+ ai_log("FollowTarget() Bailing because we're disabled",2)
+ return
+
+ if((get_dist(src,follow_mob) <= follow_dist))
+ ai_log("FollowTarget() Already at target",2)
+ return
+
+ move_to_delay = initial(move_to_delay)
+ var/start_distance = get_dist(src,follow_mob)
+
+ //Bad pathing
+ if(run_at_them)
+ walk_to(src, follow_mob, follow_dist, move_to_delay)
+ ai_log("FollowTarget() walk_to([src],[target_mob],2,[move_to_delay])",3)
+ spawn(3 SECONDS)
+ if(src && follow_mob && (stance == STANCE_FOLLOW) && (get_dist(src,follow_mob) >= start_distance))
+ ai_log("FollowTarget() walk_to not making headway, giving up",3)
+ LoseFollow()
+
+ //Good pathing
+ else
+ GetPath(get_turf(follow_mob),follow_dist)
+ if(!astarpathing && walk_list.len)
+ spawn(1)
+ ai_log("FollowTarget() A* path getting underway",2)
+ //Do the path!
+ var/result = WalkPath(target_thing = follow_mob, target_dist = follow_dist)
+ ai_log("FollowTarget() WalkPath r:[result]",3)
+
+ else
+ ai_log("FollowTarget() GetPath can't path, giving up",3)
+ LoseFollow()
+
+//Just try one time to go look at something. Don't really focus much on it.
+/mob/living/simple_animal/proc/WanderTowards(var/turf/T)
+ if(!T) return
+ ai_log("WanderTowards() [T.x],[T.y]",1)
+
+ stop_automated_movement = 1
+ GetPath(T,1)
+
+ if(run_at_them || !walk_list.len)
+ ai_log("WanderTowards() walk_to getting underway",2)
+ walk_to(src, T, 1, move_to_delay)
+ else
+ if(!astarpathing)
+ spawn(1)
+ ai_log("WanderTowards() A* path getting underway",2)
+ WalkPath(target_thing = T, target_dist = 1)
+
+//A* now, try to a path to a target
+/mob/living/simple_animal/proc/GetPath(var/turf/target,var/get_to = 1,var/max_distance = world.view*6)
+ ai_log("GetPath([target],[get_to],[max_distance])",2)
+ ForgetPath()
+ var/list/new_path = AStar(get_turf(loc), target, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, min_target_dist = get_to, max_node_depth = max_distance, id = myid, exclude = obstacles)
+
+ if(new_path && new_path.len)
+ walk_list = new_path
+ if(path_display)
+ for(var/turf/T in walk_list)
+ T.overlays |= path_overlay
+ else
return 0
- if(!(target_mob in ListTargets(10)))
- LostTarget()
+
+ return walk_list.len
+
+//Walk along our A* path, target_thing allows us to stop early if we're nearby
+/mob/living/simple_animal/proc/WalkPath(var/atom/target_thing, var/target_dist = 1, var/proc/steps_callback = null, var/every_steps = 4)
+ ai_log("WalkPath() (steps:[walk_list.len])",2)
+ if(!walk_list || !walk_list.len)
+ return
+
+ astarpathing = 1
+ var/step_count = 0
+ var/failed_steps = 0
+ while(1)
+ //We're supposed to stop
+ if(!astarpathing || incapacitated(INCAPACITATION_DISABLED))
+ astarpathing = 0
+ ai_log("WalkPath() was interrupted",2)
+ return 0
+ //Finished the path
+ if(!walk_list.len)
+ astarpathing = 0
+ ai_log("WalkPath() exited naturally",2)
+ return 1
+ if(failed_steps >= 3)
+ astarpathing = 0
+ ai_log("WalkPath() failed too many steps",2)
+ return 0
+
+ //Take a step
+ if(!MoveOnce())
+ ai_log("WalkPath() failed a step",3)
+ failed_steps++
+ else
+ ai_log("WalkPath() took a step",3)
+ failed_steps = 0
+ step_count++
+
+ //If we have a particular target we care about, look for them
+ if(target_thing && (get_dist(src,target_thing) <= target_dist))
+ ai_log("WalkPath() returning due to proximity",2)
+ return target_thing
+
+ //If we have a callback
+ if(steps_callback && (step_count >= every_steps))
+ ai_log("WalkPath() doing callback",3)
+ call(steps_callback)()
+
+ //And wait for the time to our next step
+ sleep(move_to_delay)
+
+//Take one step along a path
+/mob/living/simple_animal/proc/MoveOnce()
+ if(!walk_list.len)
+ return
+
+ if(path_display)
+ var/turf/T = src.walk_list[1]
+ T.overlays -= path_overlay
+
+ step_towards(src, src.walk_list[1])
+ if(src.loc != src.walk_list[1])
+ ai_log("MoveOnce() step_towards returning 0",3)
return 0
- if(get_dist(src, target_mob) <= 1) //Attacking
- AttackingTarget()
+ else
+ walk_list -= src.walk_list[1]
+ ai_log("MoveOnce() step_towards returning 1",3)
return 1
-/mob/living/simple_animal/proc/AttackingTarget()
+//Forget the path entirely
+/mob/living/simple_animal/proc/ForgetPath()
+ ai_log("ForgetPath()",2)
+ if(path_display)
+ for(var/turf/T in walk_list)
+ T.overlays -= path_overlay
+ astarpathing = 0
+ walk_list.Cut()
+
+//Giving up on moving
+/mob/living/simple_animal/proc/GiveUpMoving()
+ ai_log("GiveUpMoving()",1)
+ ForgetPath()
+ walk(src, 0)
+ stop_automated_movement = 0
+
+//Return home, all-in-one proc (though does target scan and drop out if they see one)
+/mob/living/simple_animal/proc/GoHome()
+ if(!home_turf) return
+ if(astarpathing) ForgetPath()
+ ai_log("GoHome()",1)
+ var/close_enough = 2
+ var/look_in = 250
+ if(GetPath(home_turf,close_enough,look_in))
+ stop_automated_movement = 1
+ spawn(1)
+ if(WalkPath()) //If we made it without interruption
+ ai_log("GoHome() got home",2)
+ GiveUpMoving() //Go back to wandering
+
+//Get into attack mode on a target
+/mob/living/simple_animal/proc/AttackTarget()
+ stop_automated_movement = 1
+ if(!target_mob || !SA_attackable(target_mob))
+ LoseTarget()
+ return 0
+ if(!(target_mob in ListTargets(view_range)))
+ LostTarget()
+ return 0
+
+ ai_log("AttackTarget() vs. [target_mob]",1)
+ var/distance = get_dist(src, target_mob)
+ face_atom(target_mob)
+
+ //Hadoooooken!
+ if(prob(spattack_prob) && (distance >= spattack_min_range) && (distance <= spattack_max_range))
+ ai_log("AttackTarget() special",3)
+ if(SpecialAtkTarget()) //Might not succeed/be allowed, do something else.
+ return 1
+ //AAAAH!
+ if(distance <= 1)
+ ai_log("AttackTarget() melee",3)
+ PunchTarget()
+ return 1
+ //Open fire!
+ else if(ranged && (distance <= shoot_range))
+ ai_log("AttackTarget() ranged",3)
+ ShootTarget(target_mob)
+ return 1
+ //They ran away!
+ else
+ ai_log("AttackTarget() out of range!",3)
+ handle_stance(STANCE_ATTACK)
+ return 0
+
+//Attack the target in melee
+/mob/living/simple_animal/proc/PunchTarget()
if(!Adjacent(target_mob))
return
if(isliving(target_mob))
@@ -531,30 +1111,17 @@
M.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
return M
-/mob/living/simple_animal/proc/LoseTarget()
- stance = STANCE_IDLE
- target_mob = null
- walk(src, 0)
-
-/mob/living/simple_animal/proc/LostTarget()
- stance = STANCE_IDLE
- walk(src, 0)
-
-
-/mob/living/simple_animal/proc/ListTargets(var/dist = 7)
- var/list/L = hearers(src, dist)
-
- for (var/obj/mecha/M in mechas_list)
- if (M.z == src.z && get_dist(src, M) <= dist)
- L += M
-
- return L
-
-/mob/living/simple_animal/proc/OpenFire(target_mob)
+//The actual top-level ranged attack proc
+/mob/living/simple_animal/proc/ShootTarget()
var/target = target_mob
- visible_message("\red [src] fires at [target]!", 1)
-
var/tturf = get_turf(target)
+
+ if(firing_lines && !CheckFiringLine(tturf))
+ step_rand(src)
+ face_atom(tturf)
+ return 0
+
+ visible_message("[src] fires at [target]! ", 1)
if(rapid)
spawn(1)
Shoot(tturf, src.loc, src)
@@ -573,11 +1140,34 @@
if(casingtype)
new casingtype
- stance = STANCE_IDLE
- target_mob = null
- return
+ return 1
+//Check firing lines for faction_friends (if we're not cooperative, we don't care)
+/mob/living/simple_animal/proc/CheckFiringLine(var/turf/tturf)
+ if(!tturf) return
+ var/turf/list/crosses = list()
+ var/this_turf = get_turf(src)
+
+ while(this_turf != tturf)
+ this_turf = get_step(this_turf,get_dir(this_turf,tturf))
+ crosses += this_turf
+
+ for(var/mob/living/FF in faction_friends)
+ if(FF.loc in crosses)
+ return 0
+
+ for(var/mob/living/F in friends)
+ if(F.loc in crosses)
+ return 0
+
+ return 1
+
+//Special attacks, like grenades or blinding spit or whatever
+/mob/living/simple_animal/proc/SpecialAtkTarget()
+ return 0
+
+//Shoot a bullet at someone
/mob/living/simple_animal/proc/Shoot(var/target, var/start, var/user, var/bullet = 0)
if(target == start)
return
@@ -592,18 +1182,62 @@
A.launch(target)
return
-/mob/living/simple_animal/proc/DestroySurroundings()
- if(prob(break_stuff_probability))
- for(var/dir in cardinal) // North, South, East, West
- for(var/obj/structure/window/obstacle in get_step(src, dir))
- if(obstacle.dir == reverse_dir[dir]) // So that windows get smashed in the right order
- obstacle.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
- return
- var/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))
- if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
- obstacle.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
+//We can't see the target
+/mob/living/simple_animal/proc/LoseTarget()
+ ai_log("LoseTarget() [target_mob]",2)
+ target_mob = null
+ handle_stance(STANCE_IDLE)
+ GiveUpMoving()
+//Target is no longer valid (?)
+/mob/living/simple_animal/proc/LostTarget()
+ handle_stance(STANCE_IDLE)
+ GiveUpMoving()
+//Forget a follow mode
+/mob/living/simple_animal/proc/LoseFollow()
+ ai_log("LoseFollow() [target_mob]",2)
+ follow_mob = null
+ handle_stance(STANCE_IDLE)
+ GiveUpMoving()
+
+//Find me some targets
+/mob/living/simple_animal/proc/ListTargets(var/dist = view_range)
+ var/list/L = hearers(src, dist)
+
+ for(var/obj/mecha/M in mechas_list)
+ if ((M.z == src.z) && (get_dist(src, M) <= dist) && (isInSight(src,M)))
+ L += M
+
+ return L
+
+//Break through windows/other things
+/mob/living/simple_animal/proc/DestroySurroundings(var/direction)
+ if(!direction)
+ direction = pick(cardinal) //FLAIL WILDLY
+
+ var/turf/problem_turf = get_step(src, direction)
+
+ ai_log("DestroySurroundings([direction])",3)
+ for(var/obj/structure/window/obstacle in problem_turf)
+ if(obstacle.dir == reverse_dir[dir]) // So that windows get smashed in the right order
+ ai_log("DestroySurroundings() directional window hit",3)
+ obstacle.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
+ return
+
+ var/obj/structure/obstacle = locate(/obj/structure, problem_turf)
+ if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
+ ai_log("DestroySurroundings() generic structure hit [obstacle]",3)
+ obstacle.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
+ return
+
+ for(var/obj/machinery/door/baddoor in problem_turf) //Required since firelocks take up the same turf
+ if(baddoor.density)
+ ai_log("DestroySurroundings() door hit [baddoor]",3)
+ baddoor.attack_generic(src,rand(melee_damage_lower,melee_damage_upper),attacktext)
+ return
+
+//Check for shuttle bumrush
/mob/living/simple_animal/proc/check_horde()
return 0
if(emergency_shuttle.shuttle.location)
@@ -620,6 +1254,7 @@
enroute = 0
stop_automated_movement = 0
+//Shuttle bumrush
/mob/living/simple_animal/proc/horde()
var/turf/T = get_step_to(src, shuttletarget)
for(var/atom/A in T)
@@ -641,6 +1276,7 @@
if(!src.stat)
horde()
+//Touches a wire, etc
/mob/living/simple_animal/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null)
shock_damage *= siemens_coeff
if (shock_damage < 1)
@@ -651,4 +1287,39 @@
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, loc)
- s.start()
\ No newline at end of file
+ s.start()
+
+//Shot with taser/stunvolver
+/mob/living/simple_animal/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null)
+ var/stunDam = 0
+ var/agonyDam = 0
+
+ if(stun_amount)
+ stunDam += stun_amount * 0.5
+ adjustFireLoss(stunDam)
+
+ if(agony_amount)
+ agonyDam += agony_amount * 0.5
+ adjustFireLoss(agonyDam)
+
+//Commands, reactions, etc
+/mob/living/simple_animal/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
+ ..()
+ if(reacts && speaker && (message in reactions) && (!hostile || isliving(speaker)) && say_understands(speaker,language))
+ var/mob/living/L = speaker
+ if(L.faction == faction)
+ spawn(10)
+ face_atom(speaker)
+ say(reactions[message])
+
+//Just some subpaths for easy searching
+/mob/living/simple_animal/hostile
+ faction = "not yours"
+ hostile = 1
+ retaliate = 1
+ stop_when_pulled = 0
+ destroy_surroundings = 1
+
+/mob/living/simple_animal/retaliate
+ retaliate = 1
+ destroy_surroundings = 1
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 7d969569d4..f27a73f404 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -341,7 +341,7 @@
if ((stat != 2 || !( ticker )))
usr << "You must be dead to use this! "
return
- if (ticker.mode.deny_respawn) //BS12 EDIT
+ if (ticker.mode && ticker.mode.deny_respawn) //BS12 EDIT
usr << "Respawn is disabled for this roundtype. "
return
else
@@ -706,12 +706,13 @@
/mob/proc/facedir(var/ndir)
- if(!canface() || client.moving || world.time < client.move_delay)
+ if(!canface() || (client && (client.moving || (world.time < client.move_delay))))
return 0
set_dir(ndir)
if(buckled && buckled.buckle_movable)
buckled.set_dir(ndir)
- client.move_delay += movement_delay()
+ if(client)
+ client.move_delay += movement_delay()
return 1
@@ -902,7 +903,7 @@ mob/proc/yank_out_object()
if(prob(selection.w_class * 5) && (affected.robotic < ORGAN_ROBOT)) //I'M SO ANEMIC I COULD JUST -DIE-.
var/datum/wound/internal_bleeding/I = new (min(selection.w_class * 5, 15))
affected.wounds += I
- H.custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1)
+ H.custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 50)
if (ishuman(U))
var/mob/living/carbon/human/human_user = U
diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm
index e7b75a2e5d..735d35fe7c 100644
--- a/code/modules/mob/mob_grab_specials.dm
+++ b/code/modules/mob/mob_grab_specials.dm
@@ -20,7 +20,7 @@
user << "You must stand still to feel [E] for fractures. "
else if(E.status & ORGAN_BROKEN)
user << "The [E.encased ? E.encased : "bone in the [E.name]"] moves slightly when you poke it! "
- H.custom_pain("Your [E.name] hurts where it's poked.")
+ H.custom_pain("Your [E.name] hurts where it's poked.", 40)
else
user << "The [E.encased ? E.encased : "bones in the [E.name]"] seem to be fine. "
@@ -56,7 +56,8 @@
return
var/armor = target.run_armor_check(target, "melee")
- if(armor < 60)
+ var/soaked = target.get_armor_soak(target, "melee")
+ if(armor + soaked < 60)
target << "You feel extreme pain! "
var/max_halloss = round(target.species.total_health * 0.8) //up to 80% of passing out
@@ -100,8 +101,9 @@
damage += hat.force * 3
var/armor = target.run_armor_check(BP_HEAD, "melee")
- target.apply_damage(damage, BRUTE, BP_HEAD, armor)
- attacker.apply_damage(10, BRUTE, BP_HEAD, attacker.run_armor_check(BP_HEAD, "melee"))
+ var/soaked = target.get_armor_soak(BP_HEAD, "melee")
+ target.apply_damage(damage, BRUTE, BP_HEAD, armor, soaked)
+ attacker.apply_damage(10, BRUTE, BP_HEAD, attacker.run_armor_check(BP_HEAD), attacker.get_armor_soak(BP_HEAD), "melee")
if(!armor && target.headcheck(BP_HEAD) && prob(damage))
target.apply_effect(20, PARALYZE)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 2f788862f8..4327840a47 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -535,7 +535,7 @@ proc/is_blind(A)
if(. == SAFE_PERP)
return SAFE_PERP
- if(!istype(src, /mob/living/simple_animal/hostile/retaliate/goat))
+ if(!istype(src, /mob/living/simple_animal/retaliate/goat))
threatcount += 4
return threatcount
diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm
index 6332b63d5a..ff69867548 100644
--- a/code/modules/mob/new_player/login.dm
+++ b/code/modules/mob/new_player/login.dm
@@ -5,13 +5,20 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
/obj/effect/lobby_image
name = "Polaris"
desc = "How are you reading this?"
- icon = 'icons/misc/title.dmi'
- icon_state = null //determined randomly later on.
screen_loc = "1,1"
- var/list/lobby_images = list("mockingjay00")
-/obj/effect/lobby_image/New()
- icon_state = pick(lobby_images)
+/obj/effect/lobby_image/initialize()
+ icon = using_map.lobby_icon
+ var/known_icon_states = icon_states(icon)
+ for(var/lobby_screen in using_map.lobby_screens)
+ if(!(lobby_screen in known_icon_states))
+ error("Lobby screen '[lobby_screen]' did not exist in the icon set [icon].")
+ using_map.lobby_screens -= lobby_screen
+
+ if(using_map.lobby_screens.len)
+ icon_state = pick(using_map.lobby_screens)
+ else
+ icon_state = known_icon_states[1]
/mob/new_player
var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index 066fd5b0a4..c052a76d3e 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -335,7 +335,6 @@
var/mob/living/character = create_character() //creates the human and transfers vars and mind
character = job_master.EquipRank(character, rank, 1) //equips the human
UpdateFactionList(character)
- equip_custom_items(character)
// AIs don't need a spawnpoint, they must spawn at an empty core
if(character.mind.assigned_role == "AI")
@@ -357,6 +356,8 @@
//Find our spawning point.
var/join_message = job_master.LateSpawn(character, rank)
+ // Equip our custom items only AFTER deploying to spawn points eh?
+ equip_custom_items(character)
character.lastarea = get_area(loc)
// Moving wheelchair if they have one
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 92f0f512bd..4cf3499b8a 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -30,7 +30,7 @@
backbag = rand(1,5)
- pdachoice = rand(1,3)
+ pdachoice = rand(1,4)
age = rand(current_species.min_age, current_species.max_age)
b_type = RANDOM_BLOOD_TYPE
if(H)
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index c799439421..e58c639b64 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -719,15 +719,25 @@
species_allowed = list("Unathi")
//Skrell 'hairstyles'
- skr_tentacle_m
- name = "Skrell Male Tentacles"
- icon_state = "skrell_hair_m"
+ skr_tentacle_veryshort
+ name = "Skrell Very Short Tentacles"
+ icon_state = "skrell_hair_veryshort"
species_allowed = list("Skrell")
gender = MALE
- skr_tentacle_f
- name = "Skrell Female Tentacles"
- icon_state = "skrell_hair_f"
+ skr_tentacle_short
+ name = "Skrell Short Tentacles"
+ icon_state = "skrell_hair_short"
+ species_allowed = list("Skrell")
+
+ skr_tentacle_average
+ name = "Skrell Average Tentacles"
+ icon_state = "skrell_hair_average"
+ species_allowed = list("Skrell")
+
+ skr_tentacle_verylong
+ name = "Skrell Long Tentacles"
+ icon_state = "skrell_hair_verylong"
species_allowed = list("Skrell")
gender = FEMALE
@@ -977,6 +987,207 @@
species_allowed = list("Teshari")
gender = NEUTER
+/*
+////////////////////////////
+/ =--------------------= /
+/ == Body Markings == /
+/ =--------------------= /
+////////////////////////////
+*/
+/datum/sprite_accessory/marking
+ icon = 'icons/mob/human_races/markings.dmi'
+ do_colouration = 1 //Almost all of them have it, COLOR_ADD
+
+ //Empty list is unrestricted. Should only restrict the ones that make NO SENSE on other species,
+ //like Tajara inner-ear coloring overlay stuff.
+ species_allowed = list()
+
+ var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines
+ //Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD
+
+ tat_heart
+ name = "Tattoo (Heart, Torso)"
+ icon_state = "tat_heart"
+ body_parts = list(BP_TORSO)
+
+ tat_hive
+ name = "Tattoo (Hive, Back)"
+ icon_state = "tat_hive"
+ body_parts = list(BP_TORSO)
+
+ tat_nightling
+ name = "Tattoo (Nightling, Back)"
+ icon_state = "tat_nightling"
+ body_parts = list(BP_TORSO)
+
+ tat_campbell
+ name = "Tattoo (Campbell, R.Arm)"
+ icon_state = "tat_campbell"
+ body_parts = list(BP_R_ARM)
+
+ tat_tiger
+ name = "Tattoo (Tiger Stripes, Body)"
+ icon_state = "tat_campbell"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN)
+
+ taj_paw_socks
+ name = "Socks Coloration (Taj)"
+ icon_state = "taj_pawsocks"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
+ species_allowed = list("Tajara")
+
+ una_paw_socks
+ name = "Socks Coloration (Una)"
+ icon_state = "una_pawsocks"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
+ species_allowed = list("Unathi")
+
+ paw_socks
+ name = "Socks Coloration (Generic)"
+ icon_state = "pawsocks"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
+ species_allowed = list("Tajara", "Unathi")
+
+ paw_socks_belly
+ name = "Socks,Belly Coloration (Generic)"
+ icon_state = "pawsocksbelly"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
+ species_allowed = list("Tajara", "Unathi")
+
+ belly_hands_feet
+ name = "Hands,Feet,Belly Color (Minor)"
+ icon_state = "bellyhandsfeetsmall"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
+ species_allowed = list("Tajara", "Unathi")
+
+ hands_feet_belly_full
+ name = "Hands,Feet,Belly Color (Major)"
+ icon_state = "bellyhandsfeet"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
+ species_allowed = list("Tajara", "Unathi")
+
+ hands_feet_belly_full_female
+ name = "Hands,Feet,Belly Color (Major, Female)"
+ icon_state = "bellyhandsfeet_female"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
+ species_allowed = list("Tajara")
+
+ patches
+ name = "Color Patches"
+ icon_state = "patches"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN)
+
+ patchesface
+ name = "Color Patches (Face)"
+ icon_state = "patchesface"
+ body_parts = list(BP_HEAD)
+
+ bands
+ name = "Color Bands"
+ icon_state = "bands"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN)
+
+ bandsface
+ name = "Color Bands (Face)"
+ icon_state = "bandsface"
+ body_parts = list(BP_HEAD)
+
+ tiger_stripes
+ name = "Tiger Stripes"
+ icon_state = "tiger"
+ body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
+ species_allowed = list("Tajara") //There's a tattoo for non-cats
+
+ tigerhead
+ name = "Tiger Stripes (Head, Minor)"
+ icon_state = "tigerhead"
+ body_parts = list(BP_HEAD)
+
+ tigerface
+ name = "Tiger Stripes (Head, Major)"
+ icon_state = "tigerface"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara") //There's a tattoo for non-cats
+
+ backstripe
+ name = "Back Stripe"
+ icon_state = "backstripe"
+ body_parts = list(BP_TORSO)
+
+ //Taj specific stuff
+ taj_belly
+ name = "Belly Fur (Taj)"
+ icon_state = "taj_belly"
+ body_parts = list(BP_TORSO)
+ species_allowed = list("Tajara")
+
+ taj_bellyfull
+ name = "Belly Fur Wide (Taj)"
+ icon_state = "taj_bellyfull"
+ body_parts = list(BP_TORSO)
+ species_allowed = list("Tajara")
+
+ taj_earsout
+ name = "Outer Ear (Taj)"
+ icon_state = "taj_earsout"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ taj_earsin
+ name = "Inner Ear (Taj)"
+ icon_state = "taj_earsin"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ taj_nose
+ name = "Nose Color (Taj)"
+ icon_state = "taj_nose"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ taj_crest
+ name = "Chest Fur Crest (Taj)"
+ icon_state = "taj_crest"
+ body_parts = list(BP_TORSO)
+ species_allowed = list("Tajara")
+
+ taj_muzzle
+ name = "Muzzle Color (Taj)"
+ icon_state = "taj_muzzle"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ taj_face
+ name = "Cheeks Color (Taj)"
+ icon_state = "taj_face"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ taj_all
+ name = "All Taj Head (Taj)"
+ icon_state = "taj_all"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Tajara")
+
+ //Una specific stuff
+ una_face
+ name = "Face Color (Una)"
+ icon_state = "una_face"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Unathi")
+
+ una_facelow
+ name = "Face Color Low (Una)"
+ icon_state = "una_facelow"
+ body_parts = list(BP_HEAD)
+ species_allowed = list("Unathi")
+
+ una_scutes
+ name = "Scutes (Una)"
+ icon_state = "una_scutes"
+ body_parts = list(BP_TORSO)
+ species_allowed = list("Unathi")
+
//skin styles - WIP
//going to have to re-integrate this with surgery
//let the icon_state hold an icon preview for now
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index f7aaa52f78..0a029cf316 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -44,6 +44,8 @@
usr << "You have deadchat muted. "
return
+ message = say_emphasis(message)
+
say_dead_direct("[pick("complains","moans","whines","laments","blubbers")], \"[message]\" ", src)
/mob/proc/say_understands(var/mob/other,var/datum/language/speaking = null)
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index ca8d1bffe1..ccf4678216 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -67,7 +67,7 @@
/mob/proc/AIize(move=1)
if(client)
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jams for AIs
- var/mob/living/silicon/ai/O = new (loc, base_law_type,,1)//No MMI but safety is in effect.
+ var/mob/living/silicon/ai/O = new (loc, using_map.default_law_type,,1)//No MMI but safety is in effect.
O.invisibility = 0
O.aiRestorePowerRoutine = 0
@@ -304,7 +304,7 @@
return 1
if(ispath(MP, /mob/living/simple_animal/shade))
return 1
- if(ispath(MP, /mob/living/simple_animal/tomato))
+ if(ispath(MP, /mob/living/simple_animal/hostile/tomato))
return 1
if(ispath(MP, /mob/living/simple_animal/mouse))
return 1 //It is impossible to pull up the player panel for mice (Fixed! - Nodrak)
diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm
index dd0a93fec1..586b624260 100644
--- a/code/modules/multiz/movement.dm
+++ b/code/modules/multiz/movement.dm
@@ -1,51 +1,194 @@
-/obj/item/weapon/tank/jetpack/verb/moveup()
+/mob/verb/up()
set name = "Move Upwards"
- set category = "Object"
+ set category = "IC"
- . = 1
- if(!allow_thrust(0.01, usr))
- usr << "\The [src] is disabled. "
+ if(zMove(UP))
+ to_chat(usr, "You move upwards. ")
+
+/mob/verb/down()
+ set name = "Move Down"
+ set category = "IC"
+
+ if(zMove(DOWN))
+ to_chat(usr, "You move down. ")
+
+/mob/proc/zMove(direction)
+ if(eyeobj)
+ return eyeobj.zMove(direction)
+ if(!can_ztravel())
+ to_chat(usr, "You lack means of travel in that direction. ")
return
- var/turf/above = GetAbove(src)
- if(!istype(above))
- usr << "There is nothing of interest in this direction. "
- return
+ var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
- if(!istype(above, /turf/space) && !istype(above, /turf/simulated/open))
- usr << "You bump against \the [above]. "
- return
+ if(!destination)
+ to_chat(usr, "There is nothing of interest in this direction. ")
+ return 0
- for(var/atom/A in above)
- if(A.density)
- usr << "\The [A] blocks you. "
- return
+ var/turf/start = get_turf(src)
+ if(!start.CanZPass(src, direction))
+ to_chat(usr, "\The [start] is in the way. ")
+ return 0
+ if(!destination.CanZPass(src, direction))
+ to_chat(usr, "\The [destination] blocks your way. ")
+ return 0
- usr.Move(above)
- usr << "You move upwards. "
+ var/area/area = get_area(src)
+ if(direction == UP && area.has_gravity)
+ var/obj/structure/lattice/lattice = locate() in destination.contents
+ if(lattice)
+ var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
+ to_chat(src, "You grab \the [lattice] and start pulling yourself upward... ")
+ destination.audible_message("You hear something climbing up \the [lattice]. ")
+ if(do_after(src, pull_up_time))
+ to_chat(src, "You pull yourself up. ")
+ else
+ to_chat(src, "You gave up on pulling yourself up. ")
+ return 0
+ else
+ to_chat(usr, "Gravity stops you from moving upward. ")
+ return 0
-/obj/item/weapon/tank/jetpack/verb/movedown()
- set name = "Move Downwards"
- set category = "Object"
+ for(var/atom/A in destination)
+ if(!A.CanPass(src, start, 1.5, 0))
+ to_chat(usr, "\The [A] blocks you. ")
+ return 0
+ Move(destination)
+ return 1
- . = 1
- if(!allow_thrust(0.01, usr))
- usr << "\The [src] is disabled. "
+/mob/observer/zMove(direction)
+ var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
+ if(destination)
+ forceMove(destination)
+ else
+ to_chat(usr, "There is nothing of interest in this direction. ")
+
+/mob/observer/eye/zMove(direction)
+ var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
+ if(destination)
+ setLoc(destination)
+ else
+ to_chat(usr, "There is nothing of interest in this direction. ")
+
+/mob/proc/can_ztravel()
+ return 0
+
+/mob/observer/can_ztravel()
+ return 1
+
+/mob/living/carbon/human/can_ztravel()
+ if(incapacitated())
+ return 0
+
+ if(Process_Spacemove())
+ return 1
+
+ if(Check_Shoegrip()) //scaling hull with magboots
+ for(var/turf/simulated/T in trange(1,src))
+ if(T.density)
+ return 1
+
+/mob/living/silicon/robot/can_ztravel()
+ if(incapacitated() || is_dead())
+ return 0
+
+ if(Process_Spacemove()) //Checks for active jetpack
+ return 1
+
+ for(var/turf/simulated/T in trange(1,src)) //Robots get "magboots"
+ if(T.density)
+ return 1
+
+
+
+
+//FALLING STUFF
+
+//Holds fall checks that should not be overriden by children
+/atom/movable/proc/fall()
+ if(!isturf(loc))
return
var/turf/below = GetBelow(src)
- if(!istype(below))
- usr << "There is nothing of interest in this direction. "
+ if(!below)
return
- if(below.density)
- usr << "You bump against \the [below]. "
+ var/turf/T = loc
+ if(!T.CanZPass(src, DOWN) || !below.CanZPass(src, DOWN))
return
+ // No gravity in space, apparently.
+ var/area/area = get_area(src)
+ if(!area.has_gravity())
+ return
+
+ if(throwing)
+ return
+
+ if(can_fall())
+ handle_fall(below)
+
+//For children to override
+/atom/movable/proc/can_fall()
+ if(anchored)
+ return FALSE
+
+ if(locate(/obj/structure/lattice, loc))
+ return FALSE
+
+ // See if something prevents us from falling.
+ var/turf/below = GetBelow(src)
for(var/atom/A in below)
- if(A.density)
- usr << "\The [A] blocks you. "
- return
+ if(!A.CanPass(src, src.loc))
+ return FALSE
- usr.Move(below)
- usr << "You move downwards. "
+ return TRUE
+
+/obj/effect/can_fall()
+ return FALSE
+
+/obj/effect/decal/cleanable/can_fall()
+ return TRUE
+
+/obj/item/pipe/can_fall()
+ var/turf/simulated/open/below = loc
+ below = below.below
+
+ . = ..()
+
+ if(anchored)
+ return FALSE
+
+ if((locate(/obj/structure/disposalpipe/up) in below) || locate(/obj/machinery/atmospherics/pipe/zpipe/up in below))
+ return FALSE
+
+/mob/living/simple_animal/parrot/can_fall() // Poly can fly.
+ return FALSE
+
+/mob/living/simple_animal/hostile/carp/can_fall() // So can carp apparently.
+ return FALSE
+
+/atom/movable/proc/handle_fall(var/turf/landing)
+ Move(landing)
+ if(locate(/obj/structure/stairs) in landing)
+ return 1
+
+ if(istype(landing, /turf/simulated/open))
+ visible_message("\The [src] falls from the deck above through \the [landing]!", "You hear a whoosh of displaced air.")
+ else
+ visible_message("\The [src] falls from the deck above and slams into \the [landing]!", "You hear something slam into the deck.")
+
+/mob/living/carbon/human/handle_fall(var/turf/landing)
+ if(..())
+ return
+ to_chat(src, "You fall off and hit \the [landing]! ")
+ playsound(loc, "punch", 25, 1, -1)
+ var/damage = 20 // Because wounds heal rather quickly, 20 should be enough to discourage jumping off but not be enough to ruin you, at least for the first time.
+ apply_damage(rand(0, damage), BRUTE, BP_HEAD)
+ apply_damage(rand(0, damage), BRUTE, BP_TORSO)
+ apply_damage(rand(0, damage), BRUTE, BP_L_LEG)
+ apply_damage(rand(0, damage), BRUTE, BP_R_LEG)
+ apply_damage(rand(0, damage), BRUTE, BP_L_ARM)
+ apply_damage(rand(0, damage), BRUTE, BP_R_ARM)
+ Weaken(4)
+ updatehealth()
\ No newline at end of file
diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm
index 36a606bfcf..5727808276 100644
--- a/code/modules/multiz/structures.dm
+++ b/code/modules/multiz/structures.dm
@@ -4,54 +4,127 @@
/obj/structure/ladder
name = "ladder"
- desc = "A ladder. You can climb it up and down."
- icon_state = "ladderdown"
+ desc = "A ladder. You can climb it up and down."
+ icon_state = "ladder01"
icon = 'icons/obj/structures.dmi'
density = 0
opacity = 0
anchored = 1
- var/obj/structure/ladder/target
+ var/allowed_directions = DOWN
+ var/obj/structure/ladder/target_up
+ var/obj/structure/ladder/target_down
- initialize()
- // the upper will connect to the lower
- if(icon_state == "ladderup")
- return
+ var/const/climb_time = 2 SECONDS
+/obj/structure/ladder/initialize()
+ // the upper will connect to the lower
+ if(allowed_directions & DOWN) //we only want to do the top one, as it will initialize the ones before it.
for(var/obj/structure/ladder/L in GetBelow(src))
- if(L.icon_state == "ladderup")
- target = L
- L.target = src
+ if(L.allowed_directions & UP)
+ target_down = L
+ L.target_up = src
return
+ update_icon()
- Destroy()
- if(target && icon_state == "ladderdown")
- qdel(target)
- return ..()
+/obj/structure/ladder/Destroy()
+ if(target_down)
+ target_down.target_up = null
+ target_down = null
+ if(target_up)
+ target_up.target_down = null
+ target_up = null
+ return ..()
- attackby(obj/item/C as obj, mob/user as mob)
- . = ..()
- attack_hand(user)
+/obj/structure/ladder/attackby(obj/item/C as obj, mob/user as mob)
+ attack_hand(user)
+ return
+
+/obj/structure/ladder/attack_hand(var/mob/M)
+ if(!M.may_climb_ladders(src))
return
- attack_hand(var/mob/M)
- if(!target || !istype(target.loc, /turf))
- M << "\The [src] is incomplete and can't be climbed. "
+ var/obj/structure/ladder/target_ladder = getTargetLadder(M)
+ if(!target_ladder)
+ return
+ if(!M.Move(get_turf(src)))
+ to_chat(M, "You fail to reach \the [src]. ")
+ return
+
+ var/direction = target_ladder == target_up ? "up" : "down"
+
+ M.visible_message("\The [M] begins climbing [direction] \the [src]! ",
+ "You begin climbing [direction] \the [src]!",
+ "You hear the grunting and clanging of a metal ladder being used.")
+
+ target_ladder.audible_message("You hear something coming [direction] \the [src] ")
+
+ if(do_after(M, climb_time, src))
+ climbLadder(M, target_ladder)
+
+/obj/structure/ladder/attack_ghost(var/mob/M)
+ var/target_ladder = getTargetLadder(M)
+ if(target_ladder)
+ M.forceMove(get_turf(target_ladder))
+
+/obj/structure/ladder/proc/getTargetLadder(var/mob/M)
+ if((!target_up && !target_down) || (target_up && !istype(target_up.loc, /turf) || (target_down && !istype(target_down.loc,/turf))))
+ to_chat(M, "\The [src] is incomplete and can't be climbed. ")
+ return
+ if(target_down && target_up)
+ var/direction = alert(M,"Do you want to go up or down?", "Ladder", "Up", "Down", "Cancel")
+
+ if(direction == "Cancel")
return
- var/turf/T = target.loc
- for(var/atom/A in T)
- if(A.density)
- M << "\A [A] is blocking \the [src]. "
- return
+ if(!M.may_climb_ladders(src))
+ return
+
+ switch(direction)
+ if("Up")
+ return target_up
+ if("Down")
+ return target_down
+ else
+ return target_down || target_up
+
+/mob/proc/may_climb_ladders(var/ladder)
+ if(!Adjacent(ladder))
+ to_chat(src, "You need to be next to \the [ladder] to start climbing. ")
+ return FALSE
+ if(incapacitated())
+ to_chat(src, "You are physically unable to climb \the [ladder]. ")
+ return FALSE
+ return TRUE
+
+/mob/observer/ghost/may_climb_ladders(var/ladder)
+ return TRUE
+
+/obj/structure/ladder/proc/climbLadder(var/mob/M, var/target_ladder)
+ var/turf/T = get_turf(target_ladder)
+ for(var/atom/A in T)
+ if(!A.CanPass(M, M.loc, 1.5, 0))
+ to_chat(M, "\The [A] is blocking \the [src]. ")
+ return FALSE
+ return M.Move(T)
+
+/obj/structure/ladder/CanPass(obj/mover, turf/source, height, airflow)
+ return airflow || !density
+
+/obj/structure/ladder/update_icon()
+ icon_state = "ladder[!!(allowed_directions & UP)][!!(allowed_directions & DOWN)]"
+
+/obj/structure/ladder/up
+ allowed_directions = UP
+ icon_state = "ladder10"
+
+/obj/structure/ladder/updown
+ allowed_directions = UP|DOWN
+ icon_state = "ladder11"
+
+
- M.visible_message("\A [M] climbs [icon_state == "ladderup" ? "up" : "down"] \a [src]! ",
- "You climb [icon_state == "ladderup" ? "up" : "down"] \the [src]!",
- "You hear the grunting and clanging of a metal ladder being used.")
- M.Move(T)
- CanPass(obj/mover, turf/source, height, airflow)
- return airflow || !density
/obj/structure/stairs
name = "Stairs"
@@ -61,46 +134,50 @@
opacity = 0
anchored = 1
- initialize()
- for(var/turf/turf in locs)
- var/turf/simulated/open/above = GetAbove(turf)
- if(!above)
- warning("Stair created without level above: ([loc.x], [loc.y], [loc.z])")
- return qdel(src)
- if(!istype(above))
- above.ChangeTurf(/turf/simulated/open)
+/obj/structure/stairs/initialize()
+ for(var/turf/turf in locs)
+ var/turf/simulated/open/above = GetAbove(turf)
+ if(!above)
+ warning("Stair created without level above: ([loc.x], [loc.y], [loc.z])")
+ return qdel(src)
+ if(!istype(above))
+ above.ChangeTurf(/turf/simulated/open)
- Uncross(atom/movable/A)
- if(A.dir == dir)
- // This is hackish but whatever.
- var/turf/target = get_step(GetAbove(A), dir)
- var/turf/source = A.loc
- if(target.Enter(A, source))
- A.loc = target
- target.Entered(A, source)
- return 0
- return 1
+/obj/structure/stairs/Uncross(atom/movable/A)
+ if(A.dir == dir)
+ // This is hackish but whatever.
+ var/turf/target = get_step(GetAbove(A), dir)
+ var/turf/source = A.loc
+ if(target.Enter(A, source))
+ A.loc = target
+ target.Entered(A, source)
+ if(isliving(A))
+ var/mob/living/L = A
+ if(L.pulling)
+ L.pulling.forceMove(target)
+ return 0
+ return 1
- CanPass(obj/mover, turf/source, height, airflow)
- return airflow || !density
+/obj/structure/stairs/CanPass(obj/mover, turf/source, height, airflow)
+ return airflow || !density
- // type paths to make mapping easier.
- north
- dir = NORTH
- bound_height = 64
- bound_y = -32
- pixel_y = -32
+// type paths to make mapping easier.
+/obj/structure/stairs/north
+ dir = NORTH
+ bound_height = 64
+ bound_y = -32
+ pixel_y = -32
- south
- dir = SOUTH
- bound_height = 64
+/obj/structure/stairs/south
+ dir = SOUTH
+ bound_height = 64
- east
- dir = EAST
- bound_width = 64
- bound_x = -32
- pixel_x = -32
+/obj/structure/stairs/east
+ dir = EAST
+ bound_width = 64
+ bound_x = -32
+ pixel_x = -32
- west
- dir = WEST
- bound_width = 64
\ No newline at end of file
+/obj/structure/stairs/west
+ dir = WEST
+ bound_width = 64
\ No newline at end of file
diff --git a/code/modules/multiz/turf.dm b/code/modules/multiz/turf.dm
index d85a464af2..8389df7112 100644
--- a/code/modules/multiz/turf.dm
+++ b/code/modules/multiz/turf.dm
@@ -1,87 +1,79 @@
+/turf/proc/CanZPass(atom/A, direction)
+ if(z == A.z) //moving FROM this turf
+ return direction == UP //can't go below
+ else
+ if(direction == UP) //on a turf below, trying to enter
+ return 0
+ if(direction == DOWN) //on a turf above, trying to enter
+ return !density
+
+/turf/simulated/open/CanZPass(atom, direction)
+ return 1
+
+/turf/space/CanZPass(atom, direction)
+ return 1
+
/turf/simulated/open
name = "open space"
icon = 'icons/turf/space.dmi'
- icon_state = "black"
- alpha = 16
+ icon_state = ""
layer = 0
density = 0
pathweight = 100000 //Seriously, don't try and path over this one numbnuts
var/turf/below
- var/list/underlay_references
- var/global/overlay_map = list()
+
+/turf/simulated/open/post_change()
+ ..()
+ update()
/turf/simulated/open/initialize()
..()
- below = GetBelow(src)
ASSERT(HasBelow(z))
+ update()
/turf/simulated/open/Entered(var/atom/movable/mover)
- // only fall down in defined areas (read: areas with artificial gravitiy)
- if(!istype(below)) //make sure that there is actually something below
- below = GetBelow(src)
- if(!below)
- return
+ ..()
+ mover.fall()
- // No gravity in space, apparently.
- var/area/area = get_area(src)
- if(area.name == "Space")
- return
-
- // Prevent pipes from falling into the void... if there is a pipe to support it.
- if(mover.anchored || istype(mover, /obj/item/pipe) && \
- (locate(/obj/structure/disposalpipe/up) in below) || \
- locate(/obj/machinery/atmospherics/pipe/zpipe/up in below))
- return
-
- // See if something prevents us from falling.
- var/soft = 0
- for(var/atom/A in below)
- if(A.density)
- if(!istype(A, /obj/structure/window))
- return
- else
- var/obj/structure/window/W = A
- if(W.is_fulltile())
- return
- // Dont break here, since we still need to be sure that it isnt blocked
- if(istype(A, /obj/structure/stairs))
- soft = 1
-
- // We've made sure we can move, now.
- mover.Move(below)
-
- if(!soft)
- if(!istype(mover, /mob))
- if(istype(below, /turf/simulated/open))
- mover.visible_message("\The [mover] falls from the deck above through \the [below]!", "You hear a whoosh of displaced air.")
- else
- mover.visible_message("\The [mover] falls from the deck above and slams into \the [below]!", "You hear something slam into the deck.")
- else
- var/mob/M = mover
- if(istype(below, /turf/simulated/open))
- below.visible_message("\The [mover] falls from the deck above through \the [below]!", "You hear a soft whoosh.[M.stat ? "" : ".. and some screaming."]")
- else
- M.visible_message("\The [mover] falls from the deck above and slams into \the [below]!", "You land on \the [below].", "You hear a soft whoosh and a crunch")
-
- // Handle people getting hurt, it's funny!
- if (istype(mover, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = mover
- var/damage = 5
- H.apply_damage(rand(0, damage), BRUTE, BP_HEAD)
- H.apply_damage(rand(0, damage), BRUTE, BP_TORSO)
- H.apply_damage(rand(0, damage), BRUTE, BP_L_LEG)
- H.apply_damage(rand(0, damage), BRUTE, BP_R_LEG)
- H.apply_damage(rand(0, damage), BRUTE, BP_L_ARM)
- H.apply_damage(rand(0, damage), BRUTE, BP_R_ARM)
- H.weakened = max(H.weakened,2)
- H.updatehealth()
+/turf/simulated/open/proc/update()
+ below = GetBelow(src)
+ turf_changed_event.register(below, src, /turf/simulated/open/update_icon)
+ var/turf/simulated/T = get_step(src,NORTH)
+ if(T)
+ turf_changed_event.register(T, src, /turf/simulated/open/update_icon)
+ levelupdate()
+ for(var/atom/movable/A in src)
+ A.fall()
+ update_icon()
// override to make sure nothing is hidden
/turf/simulated/open/levelupdate()
for(var/obj/O in src)
O.hide(0)
+/turf/simulated/open/update_icon()
+ if(below)
+ underlays = list(image(icon = below.icon, icon_state = below.icon_state))
+ underlays += below.overlays.Copy()
+
+ var/list/noverlays = list()
+ if(!istype(below,/turf/space))
+ noverlays += image(icon =icon, icon_state = "empty", layer = 2.2)
+
+ var/turf/simulated/T = get_step(src,NORTH)
+ if(istype(T) && !istype(T,/turf/simulated/open))
+ noverlays += image(icon ='icons/turf/cliff.dmi', icon_state = "metal", layer = 2.2)
+
+ var/obj/structure/stairs/S = locate() in below
+ if(S && S.loc == below)
+ var/image/I = image(icon = S.icon, icon_state = "below", dir = S.dir, layer = 2.2)
+ I.pixel_x = S.pixel_x
+ I.pixel_y = S.pixel_y
+ noverlays += I
+
+ overlays = noverlays
+
// Straight copy from space.
/turf/simulated/open/attackby(obj/item/C as obj, mob/user as mob)
if (istype(C, /obj/item/stack/rods))
@@ -108,4 +100,14 @@
return
else
user << "The plating is going to need some support. "
- return
\ No newline at end of file
+
+ //To lay cable.
+ if(istype(C, /obj/item/stack/cable_coil))
+ var/obj/item/stack/cable_coil/coil = C
+ coil.turf_place(src, user)
+ return
+ return
+
+//Most things use is_plating to test if there is a cover tile on top (like regular floors)
+/turf/simulated/open/is_plating()
+ return 1
\ No newline at end of file
diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm
index 157e0e9de1..e612ca9ca0 100644
--- a/code/modules/nano/interaction/default.dm
+++ b/code/modules/nano/interaction/default.dm
@@ -40,7 +40,7 @@
// Prevents the AI from using Topic on admin levels (by for example viewing through the court/thunderdome cameras)
// unless it's on the same level as the object it's interacting with.
var/turf/T = get_turf(src_object)
- if(!T || !(z == T.z || (T.z in config.player_levels)))
+ if(!T || !(z == T.z || (T.z in using_map.player_levels)))
return STATUS_CLOSE
// If an object is in view then we can interact with it
diff --git a/code/modules/nano/modules/crew_monitor.dm b/code/modules/nano/modules/crew_monitor.dm
index bb5e28ca04..e71dc5ac7e 100644
--- a/code/modules/nano/modules/crew_monitor.dm
+++ b/code/modules/nano/modules/crew_monitor.dm
@@ -3,8 +3,8 @@
/datum/nano_module/crew_monitor/Topic(href, href_list)
if(..()) return 1
- var/turf/T = get_turf(nano_host()) // TODO: Allow setting any config.contact_levels from the interface.
- if (!T || !(T.z in config.player_levels))
+ var/turf/T = get_turf(nano_host()) // TODO: Allow setting any using_map.contact_levels from the interface.
+ if (!T || !(T.z in using_map.player_levels))
usr << "Unable to establish a connection : You're too far away from the station!"
return 0
if(href_list["track"])
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index 12accd6dd4..0f5ea190f2 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -6,6 +6,7 @@ var/const/BLOOD_VOLUME_SAFE = 85
var/const/BLOOD_VOLUME_OKAY = 75
var/const/BLOOD_VOLUME_BAD = 60
var/const/BLOOD_VOLUME_SURVIVE = 40
+var/const/CE_STABLE_THRESHOLD = 0.5
/mob/living/carbon/human/var/datum/reagents/vessel // Container for blood and BLOOD ONLY. Do not transfer other chems here.
/mob/living/carbon/human/var/var/pale = 0 // Should affect how mob sprite is drawn, but currently doesn't.
@@ -68,14 +69,24 @@ var/const/BLOOD_VOLUME_SURVIVE = 40
if(!heart)
blood_volume = 0
- else if(heart.damage > 1 && heart.damage < heart.min_bruised_damage)
- blood_volume *= 0.8
- else if(heart.damage >= heart.min_bruised_damage && heart.damage < heart.min_broken_damage)
- blood_volume *= 0.6
- else if(heart.damage >= heart.min_broken_damage && heart.damage < INFINITY)
+ else if(heart.is_broken())
blood_volume *= 0.3
+ else if(heart.is_bruised())
+ blood_volume *= 0.7
+ else if(heart.damage)
+ blood_volume *= 0.8
//Effects of bloodloss
+ var/dmg_coef = 1 //Lower means less damage taken
+ var/threshold_coef = 1 //Lower means the damage caps off lower
+
+ if(CE_STABLE in chem_effects)
+ dmg_coef = 0.5
+ threshold_coef = 0.75
+// These are Bay bits, do some sort of calculation.
+// dmg_coef = min(1, 10/chem_effects[CE_STABLE]) //TODO: add effect for increased damage
+// threshold_coef = min(dmg_coef / CE_STABLE_THRESHOLD, 1)
+
if(blood_volume >= BLOOD_VOLUME_SAFE)
if(pale)
pale = 0
@@ -89,32 +100,34 @@ var/const/BLOOD_VOLUME_SURVIVE = 40
if(prob(1))
var/word = pick("dizzy","woosey","faint")
src << "\red You feel [word]"
- if(oxyloss < 20)
- oxyloss += 3
+ if(getOxyLoss() < 20 * threshold_coef)
+ adjustOxyLoss(3 * dmg_coef)
else if(blood_volume >= BLOOD_VOLUME_BAD)
if(!pale)
pale = 1
update_body()
eye_blurry = max(eye_blurry,6)
- if(oxyloss < 50)
- oxyloss += 10
- oxyloss += 1
+ if(getOxyLoss() < 50 * threshold_coef)
+ adjustOxyLoss(10 * dmg_coef)
+ adjustOxyLoss(1 * dmg_coef)
if(prob(15))
Paralyse(rand(1,3))
var/word = pick("dizzy","woosey","faint")
src << "\red You feel extremely [word]"
else if(blood_volume >= BLOOD_VOLUME_SURVIVE)
- oxyloss += 5
- toxloss += 3
+ adjustOxyLoss(5 * dmg_coef)
+ adjustToxLoss(3 * dmg_coef)
if(prob(15))
var/word = pick("dizzy","woosey","faint")
src << "\red You feel extremely [word]"
- else
- // There currently is a strange bug here. If the mob is not below -100 health
- // when death() is called, apparently they will be just fine, and this way it'll
- // spam deathgasp. Adjusting toxloss ensures the mob will stay dead.
- toxloss += 300 // just to be safe!
- death()
+ else //Not enough blood to survive (usually)
+ if(!pale)
+ pale = 1
+ update_body()
+ eye_blurry = max(eye_blurry,6)
+ Paralyse(3)
+ adjustToxLoss(3 * dmg_coef)
+ adjustOxyLoss(75 * dmg_coef) // 15 more than dexp fixes (also more than dex+dexp+tricord)
// Without enough blood you slowly go hungry.
if(blood_volume < BLOOD_VOLUME_SAFE)
@@ -142,6 +155,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 40
blood_loss_divisor += 5
else if((temp.organ_tag == BP_L_HAND) || (temp.organ_tag == BP_R_HAND) || (temp.organ_tag == BP_L_FOOT) || (temp.organ_tag == BP_R_FOOT))
blood_loss_divisor += 10
+ if(CE_STABLE in chem_effects) //Inaprov slows bloodloss
+ blood_loss_divisor += 10
if(temp.applied_pressure)
if(ishuman(temp.applied_pressure))
var/mob/living/carbon/human/H = temp.applied_pressure
diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm
index edc6f6e47f..6514092dfc 100644
--- a/code/modules/organs/internal/brain.dm
+++ b/code/modules/organs/internal/brain.dm
@@ -24,6 +24,19 @@
/obj/item/organ/internal/brain/digitize()
replace_self_with(/obj/item/organ/internal/mmi_holder/robot)
+/obj/item/organ/internal/brain/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Bacterial meningitis (more of a spine thing but 'brain infection' isn't a common thing)
+ if (. >= 1)
+ if(prob(1))
+ owner.custom_pain("Your neck aches, and feels very stiff!",0)
+ if (. >= 2)
+ if(prob(1))
+ owner.custom_pain("Your feel very dizzy for a moment!",0)
+ owner.confused = max(owner.confused, 2)
+
/obj/item/organ/internal/brain/proc/replace_self_with(replace_path)
var/mob/living/carbon/human/tmp_owner = owner
qdel(src)
diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm
index 064a668686..2a2b8305d3 100644
--- a/code/modules/organs/internal/eyes.dm
+++ b/code/modules/organs/internal/eyes.dm
@@ -67,9 +67,22 @@
/obj/item/organ/internal/eyes/process() //Eye damage replaces the old eye_stat var.
..()
- if(!owner)
- return
+ if(!owner) return
+
if(is_bruised())
owner.eye_blurry = 20
if(is_broken())
- owner.eye_blind = 20
\ No newline at end of file
+ owner.eye_blind = 20
+
+/obj/item/organ/internal/eyes/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Conjunctivitis
+ if (. >= 1)
+ if(prob(1))
+ owner.custom_pain("The corners of your eyes itch! It's quite frustrating.",0)
+ if (. >= 2)
+ if(prob(1))
+ owner.custom_pain("Your eyes are watering, making it harder to see clearly for a moment.",1)
+ owner.eye_blurry += 10
diff --git a/code/modules/organs/internal/heart.dm b/code/modules/organs/internal/heart.dm
index 99b7386403..8ca68878e3 100644
--- a/code/modules/organs/internal/heart.dm
+++ b/code/modules/organs/internal/heart.dm
@@ -5,4 +5,18 @@
icon_state = "heart-on"
organ_tag = O_HEART
parent_organ = BP_TORSO
- dead_icon = "heart-off"
\ No newline at end of file
+ dead_icon = "heart-off"
+
+
+/obj/item/organ/internal/heart/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Endocarditis (very rare, usually for artificially implanted heart valves/pacemakers)
+ if (. >= 1)
+ if(prob(1))
+ owner.custom_pain("Your chest feels uncomfortably tight!",0)
+ if (. >= 2)
+ if(prob(1))
+ owner.custom_pain("A stabbing pain rolls through your chest!",1)
+ owner.apply_damage(damage = 25, damagetype = HALLOSS, def_zone = parent_organ)
diff --git a/code/modules/organs/internal/kidneys.dm b/code/modules/organs/internal/kidneys.dm
index 5d3875ccf5..a547a2539f 100644
--- a/code/modules/organs/internal/kidneys.dm
+++ b/code/modules/organs/internal/kidneys.dm
@@ -8,11 +8,8 @@
parent_organ = BP_GROIN
/obj/item/organ/internal/kidneys/process()
-
..()
-
- if(!owner)
- return
+ if(!owner) return
// Coffee is really bad for you with busted kidneys.
// This should probably be expanded in some way, but fucked if I know
@@ -22,4 +19,18 @@
if(is_bruised())
owner.adjustToxLoss(0.1 * PROCESS_ACCURACY)
else if(is_broken())
- owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
\ No newline at end of file
+ owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
+
+/obj/item/organ/internal/kidneys/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Pyelonephritis
+ if (. >= 1)
+ if(prob(1))
+ owner.custom_pain("There's a stabbing pain in your lower back!",1)
+ if (. >= 2)
+ if(prob(1))
+ owner.custom_pain("You feel extremely tired, like you can't move!",1)
+ owner.m_intent = "walk"
+ owner.hud_used.move_intent.icon_state = "walking"
diff --git a/code/modules/organs/internal/liver.dm b/code/modules/organs/internal/liver.dm
index c3c2ef6eac..daa0a88f76 100644
--- a/code/modules/organs/internal/liver.dm
+++ b/code/modules/organs/internal/liver.dm
@@ -7,18 +7,8 @@
parent_organ = BP_GROIN
/obj/item/organ/internal/liver/process()
-
..()
-
- if(!owner)
- return
-
- if (germ_level > INFECTION_LEVEL_ONE)
- if(prob(1))
- owner << "Your skin itches. "
- if (germ_level > INFECTION_LEVEL_TWO)
- if(prob(1))
- spawn owner.vomit()
+ if(!owner) return
if(owner.life_tick % PROCESS_ACCURACY == 0)
@@ -52,4 +42,17 @@
if(filter_effect < 3)
owner.adjustToxLoss(owner.chem_effects[CE_ALCOHOL_TOXIC] * 0.1 * PROCESS_ACCURACY)
else
- take_damage(owner.chem_effects[CE_ALCOHOL_TOXIC] * 0.1 * PROCESS_ACCURACY, prob(1)) // Chance to warn them
\ No newline at end of file
+ take_damage(owner.chem_effects[CE_ALCOHOL_TOXIC] * 0.1 * PROCESS_ACCURACY, prob(1)) // Chance to warn them
+
+/obj/item/organ/internal/liver/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Pyogenic Abscess
+ if (. >= 1)
+ if(prob(1))
+ owner.custom_pain("There's a sharp pain in your upper-right abdomen!",1)
+ if (. >= 2)
+ if(prob(1) && owner.getToxLoss() < owner.maxHealth*0.3)
+ //owner << "" //Toxins provide their own messages for pain
+ owner.adjustToxLoss(5) //Not realistic to PA but there are basically no 'real' liver infections
diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm
index ab0b10ddf8..c00d5df7a8 100644
--- a/code/modules/organs/internal/lungs.dm
+++ b/code/modules/organs/internal/lungs.dm
@@ -13,10 +13,6 @@
if(!owner)
return
- if (germ_level > INFECTION_LEVEL_ONE)
- if(prob(5))
- owner.emote("cough") //respitory tract infection
-
if(is_bruised())
if(prob(4))
spawn owner.emote("me", 1, "coughs up blood!")
@@ -28,5 +24,18 @@
/obj/item/organ/internal/lungs/proc/rupture()
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
if(istype(parent))
- owner.custom_pain("You feel a stabbing pain in your [parent.name]!", 1)
- bruise()
\ No newline at end of file
+ owner.custom_pain("You feel a stabbing pain in your [parent.name]!", 50)
+ bruise()
+
+/obj/item/organ/internal/lungs/handle_germ_effects()
+ . = ..() //Up should return an infection level as an integer
+ if(!.) return
+
+ //Bacterial pneumonia
+ if (. >= 1)
+ if(prob(5))
+ owner.emote("cough")
+ if (. >= 2)
+ if(prob(1))
+ owner.custom_pain("You suddenly feel short of breath and take a sharp, painful breath!",1)
+ owner.adjustOxyLoss(30) //Look it's hard to simulate low O2 perfusion okay
diff --git a/code/modules/organs/internal/organ_internal.dm b/code/modules/organs/internal/organ_internal.dm
index edfa5f70b7..a3fdc511fc 100644
--- a/code/modules/organs/internal/organ_internal.dm
+++ b/code/modules/organs/internal/organ_internal.dm
@@ -47,4 +47,16 @@
if(dead_icon)
dead_icon = "[initial(dead_icon)]_assisted"
-// Brain is defined in brain.dm
\ No newline at end of file
+// Brain is defined in brain.dm
+/obj/item/organ/internal/handle_germ_effects()
+ . = ..() //Should be an interger value for infection level
+ if(!.) return
+
+ var/antibiotics = owner.reagents.get_reagent_amount("spaceacillin")
+
+ if(. >= 2 && antibiotics < 5) //INFECTION_LEVEL_TWO
+ if (prob(3))
+ take_damage(1,silent=prob(30))
+
+ //if(. >= 3 && antibiotics < 30) //INFECTION_LEVEL_THREE, others are handled on each specific organ
+ //Nothing that generic internal organs do for this
diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm
index ce4103268f..4639369c7c 100644
--- a/code/modules/organs/organ.dm
+++ b/code/modules/organs/organ.dm
@@ -139,8 +139,16 @@ var/list/organ_cache = list()
/obj/item/organ/proc/handle_germ_effects()
//** Handle the effects of infections
+ if(robotic >= ORGAN_ROBOT) //Just in case!
+ germ_level = 0
+ return 0
+
var/antibiotics = owner.reagents.get_reagent_amount("spaceacillin")
+ if((status & ORGAN_DEAD) && antibiotics < 30) //Sepsis from 'dead' organs
+ var/sepsis_severity = 1 + round((germ_level - INFECTION_LEVEL_THREE)/200,0.25) //1 Tox plus a little based on germ level
+ owner.adjustToxLoss(sepsis_severity)
+
if (germ_level > 0 && germ_level < INFECTION_LEVEL_ONE/2 && prob(30))
germ_level--
@@ -150,17 +158,20 @@ var/list/organ_cache = list()
germ_level++
if(germ_level >= INFECTION_LEVEL_ONE)
- var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
- owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature)
+ . = 1 //Organ qualifies for effect-specific processing
+ //var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
+ //owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature)
+ var/fever_temperature = owner.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10%
+ if(owner.bodytemperature < fever_temperature)
+ owner.bodytemperature += min(0.2,(fever_temperature - owner.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less
if (germ_level >= INFECTION_LEVEL_TWO)
- var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
- //spread germs
- if (antibiotics < 5 && parent.germ_level < germ_level && ( parent.germ_level < INFECTION_LEVEL_ONE*2 || prob(30) ))
- parent.germ_level++
+ . = 2 //Organ qualifies for effect-specific processing
+ //No particular effect on the general 'organ' at 3
- if (prob(3)) //about once every 30 seconds
- take_damage(1,silent=prob(30))
+ if (germ_level >= INFECTION_LEVEL_THREE && antibiotics < 30)
+ . = 3 //Organ qualifies for effect-specific processing
+ germ_level++ //Germ_level increases without overdose of antibiotics
/obj/item/organ/proc/handle_rejection()
// Process unsuitable transplants. TODO: consider some kind of
@@ -245,7 +256,7 @@ var/list/organ_cache = list()
if(owner && parent_organ && amount > 0)
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
if(parent && !silent)
- owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1)
+ owner.custom_pain("Something inside your [parent.name] hurts a lot.", amount)
/obj/item/organ/proc/bruise()
damage = max(damage, min_bruised_damage)
@@ -270,9 +281,13 @@ var/list/organ_cache = list()
return
switch (severity)
if (1)
- take_damage(5)
+ take_damage(rand(6,12))
if (2)
- take_damage(2)
+ take_damage(rand(4,8))
+ if (3)
+ take_damage(rand(3,6))
+ if (4)
+ take_damage(rand(1,4))
/obj/item/organ/proc/removed(var/mob/living/user)
@@ -357,5 +372,11 @@ var/list/organ_cache = list()
bitten(user)
return
-/obj/item/organ/proc/can_feel_pain()
- return !(robotic >= (ORGAN_ROBOT|ORGAN_DESTROYED)) && !(species.flags & NO_PAIN)
+/obj/item/organ/proc/organ_can_feel_pain()
+ if(species.flags & NO_PAIN)
+ return 0
+ if(status & ORGAN_DESTROYED)
+ return 0
+ if(robotic && robotic < ORGAN_LIFELIKE) //Super fancy humanlike robotics probably have sensors, or something?
+ return 0
+ return 1
\ No newline at end of file
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index b5def772b5..e3fabe82f5 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -39,6 +39,7 @@
var/list/h_col // hair colour
var/body_hair // Icon blend for body hair if any.
var/mob/living/applied_pressure
+ var/list/markings = list() // Markings (body_markings) to apply to the icon
// Wound and structural data.
var/wound_update_accuracy = 1 // how often wounds should be updated, a higher number means less often
@@ -102,11 +103,19 @@
/obj/item/organ/external/emp_act(severity)
if(!(robotic >= ORGAN_ROBOT))
return
+ var/burn_damage = 0
switch (severity)
if (1)
- take_damage(8)
+ burn_damage += rand(8, 13)
if (2)
- take_damage(4)
+ burn_damage += rand(6, 9)
+ if(3)
+ burn_damage += rand(4, 7)
+ if(4)
+ burn_damage += rand(1, 5)
+
+ if(burn_damage)
+ take_damage(0, burn_damage)
/obj/item/organ/external/attack_self(var/mob/living/user)
if(!contents.len)
@@ -243,12 +252,12 @@
return (vital || (robotic >= ORGAN_ROBOT) || brute_dam + burn_dam + additional_damage < max_damage)
/obj/item/organ/external/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list())
+ brute = round(brute * brute_mod, 0.1)
+ burn = round(burn * burn_mod, 0.1)
+
if((brute <= 0) && (burn <= 0))
return 0
- brute *= brute_mod
- burn *= burn_mod
-
// High brute damage or sharp objects may damage internal organs
if(internal_organs && (brute_dam >= max_damage || (((sharp && brute >= 5) || brute >= 10) && prob(5))))
// Damage an internal organ
@@ -259,7 +268,7 @@
if(status & ORGAN_BROKEN && brute)
jostle_bone(brute)
- if(can_feel_pain() && prob(40))
+ if(organ_can_feel_pain() && prob(40))
owner.emote("scream") //getting hit on broken hand hurts
if(used_weapon)
add_autopsy_data("[used_weapon]", brute + burn)
@@ -479,7 +488,7 @@ This function completely restores a damaged organ to perfect condition.
if((damage > 15) && (type != BURN) && (local_damage > 30) && prob(damage) && (robotic < ORGAN_ROBOT))
var/datum/wound/internal_bleeding/I = new (min(damage - 15, 15))
wounds += I
- owner.custom_pain("You feel something rip in your [name]!", 1)
+ owner.custom_pain("You feel something rip in your [name]!", 50)
//Burn damage can cause fluid loss due to blistering and cook-off
if((damage > 5 || damage + burn_dam >= 15) && type == BURN && (robotic < ORGAN_ROBOT))
@@ -622,13 +631,12 @@ Note that amputating the affected organ does in fact remove the infection from t
break //limit increase to a maximum of one per second
/obj/item/organ/external/handle_germ_effects()
-
- if(germ_level < INFECTION_LEVEL_TWO)
- return ..()
+ . = ..() //May be null or an infection level, if null then no specific processing needed here
+ if(!.) return
var/antibiotics = owner.reagents.get_reagent_amount("spaceacillin")
- if(germ_level >= INFECTION_LEVEL_TWO)
+ if(. >= 2 && antibiotics < 5) //INFECTION_LEVEL_TWO
//spread the infection to internal organs
var/obj/item/organ/target_organ = null //make internal organs become infected one at a time instead of all at once
for (var/obj/item/organ/I in internal_organs)
@@ -660,14 +668,13 @@ Note that amputating the affected organ does in fact remove the infection from t
if (parent.germ_level < INFECTION_LEVEL_ONE*2 || prob(30))
parent.germ_level++
- if(germ_level >= INFECTION_LEVEL_THREE && antibiotics < 30) //overdosing is necessary to stop severe infections
+ if(. >= 3 && antibiotics < 30) //INFECTION_LEVEL_THREE
if (!(status & ORGAN_DEAD))
status |= ORGAN_DEAD
owner << "You can't feel your [name] anymore... "
owner.update_body(1)
-
- germ_level++
- owner.adjustToxLoss(1)
+ for (var/obj/item/organ/external/child in children)
+ child.germ_level += 110 //Burst of infection from a parent organ becoming necrotic
//Updating wounds. Handles wound natural I had some free spachealing, internal bleedings and infections
/obj/item/organ/external/proc/update_wounds()
@@ -692,14 +699,13 @@ Note that amputating the affected organ does in fact remove the infection from t
if(W.internal && owner.bodytemperature >= 170)
var/bicardose = owner.reagents.get_reagent_amount("bicaridine")
var/inaprovaline = owner.reagents.get_reagent_amount("inaprovaline")
- if(!(W.can_autoheal() || (bicardose && inaprovaline))) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
+ var/myeldose = owner.reagents.get_reagent_amount("myelamine")
+ if(!(W.can_autoheal() || (bicardose && inaprovaline) || myeldose)) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
W.open_wound(0.1 * wound_update_accuracy)
- if(bicardose >= 30) //overdose of bicaridine begins healing IB
- W.damage = max(0, W.damage - 0.2)
owner.vessel.remove_reagent("blood", wound_update_accuracy * W.damage/40) //line should possibly be moved to handle_blood, so all the bleeding stuff is in one place.
if(prob(1 * wound_update_accuracy))
- owner.custom_pain("You feel a stabbing pain in your [name]!",1)
+ owner.custom_pain("You feel a stabbing pain in your [name]!", 50)
// slow healing
var/heal_amt = 0
@@ -1004,7 +1010,7 @@ Note that amputating the affected organ does in fact remove the infection from t
"Something feels like it shattered in your [name]! ",\
"You hear a sickening crack. ")
jostle_bone()
- if(can_feel_pain())
+ if(organ_can_feel_pain())
owner.emote("scream")
playsound(src.loc, "fracture", 10, 1, -2)
diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm
index 0fd12ad9ef..4e381d47ad 100644
--- a/code/modules/organs/organ_icon.dm
+++ b/code/modules/organs/organ_icon.dm
@@ -17,7 +17,9 @@ var/global/list/limb_icon_cache = list()
s_col = null
h_col = null
if(robotic >= ORGAN_ROBOT)
- return
+ var/datum/robolimb/franchise = all_robolimbs[model]
+ if(!(franchise && franchise.lifelike))
+ return
if(species && human.species && species.name != human.species.name)
return
if(!isnull(human.s_tone) && (human.species.appearance_flags & HAS_SKIN_TONE))
@@ -31,7 +33,9 @@ var/global/list/limb_icon_cache = list()
s_col = null
h_col = null
if(robotic >= ORGAN_ROBOT)
- return
+ var/datum/robolimb/franchise = all_robolimbs[model]
+ if(!(franchise && franchise.lifelike))
+ return
if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && (species.appearance_flags & HAS_SKIN_TONE))
s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE)
if(species.appearance_flags & HAS_SKIN_COLOR)
@@ -65,6 +69,15 @@ var/global/list/limb_icon_cache = list()
overlays |= lip_icon
mob_icon.Blend(lip_icon, ICON_OVERLAY)
+ //Head markings, duplicated (sadly) below.
+ for(var/M in markings)
+ var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
+ var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
+ mark_s.Blend(markings[M]["color"], ICON_ADD)
+ overlays |= mark_s //So when it's not on your body, it has icons
+ mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
+ icon_cache_key += "[M][markings[M]["color"]]"
+
if(owner.f_style)
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype(owner) in facial_hair_style.species_allowed))
@@ -110,10 +123,20 @@ var/global/list/limb_icon_cache = list()
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else if (robotic >= ORGAN_ROBOT)
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
+ apply_colouration(mob_icon)
else
mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
+ //Body markings, does not include head, duplicated (sadly) above.
+ for(var/M in markings)
+ var/datum/sprite_accessory/marking/mark_style = markings[M]["datum"]
+ var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]")
+ mark_s.Blend(markings[M]["color"], ICON_ADD)
+ overlays |= mark_s //So when it's not on your body, it has icons
+ mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons
+ icon_cache_key += "[M][markings[M]["color"]]"
+
if(body_hair && islist(h_col) && h_col.len >= 3)
var/cache_key = "[body_hair]-[icon_name]-[h_col[1]][h_col[2]][h_col[3]]"
if(!limb_icon_cache[cache_key])
@@ -124,6 +147,7 @@ var/global/list/limb_icon_cache = list()
if(model)
icon_cache_key += "_model_[model]"
+ apply_colouration(mob_icon)
dir = EAST
icon = mob_icon
diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm
index 6975e747d0..244c0b7971 100644
--- a/code/modules/organs/organ_internal.dm
+++ b/code/modules/organs/organ_internal.dm
@@ -248,20 +248,23 @@
if(inflamed == 1)
if(prob(5))
- owner << "You feel a stinging pain in your abdomen! "
- owner.emote("me", 1, "winces slightly.")
+ if(owner.can_feel_pain())
+ owner.custom_pain("You feel a stinging pain in your abdomen!", 25)
if(inflamed > 1)
if(prob(3))
- owner << "You feel a stabbing pain in your abdomen! "
- owner.emote("me", 1, "winces painfully.")
+ if(owner.can_feel_pain())
+ owner.custom_pain("You feel a stabbing pain in your abdomen!", 50)
owner.adjustToxLoss(1)
if(inflamed > 2)
if(prob(1))
owner.vomit()
+ if(owner.can_feel_pain())
+ owner.custom_pain("You feel a horrible pain in your abdomen!", 70)
if(inflamed > 3)
if(prob(1))
- owner << "Your abdomen is a world of pain! "
- owner.Weaken(10)
+ if(owner.can_feel_pain())
+ owner.custom_pain("You feel a stinging pain in your abdomen!", 100)
+ owner.Weaken(10)
var/obj/item/organ/external/groin = owner.get_organ(BP_GROIN)
var/datum/wound/W = new /datum/wound/internal_bleeding(20)
diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm
index ea9499fc43..5f3980d608 100644
--- a/code/modules/organs/pain.dm
+++ b/code/modules/organs/pain.dm
@@ -5,118 +5,73 @@ mob/var/list/pain_stored = list()
mob/var/last_pain_message = ""
mob/var/next_pain_time = 0
-// partname is the name of a body part
-// amount is a num from 1 to 100
-mob/living/carbon/proc/pain(var/partname, var/amount, var/force, var/burning = 0)
- if(stat >= 1)
- return
- if(!can_feel_pain())
- return
- if(analgesic > 40)
- return
- if(world.time < next_pain_time && !force)
- return
- if(amount > 10 && istype(src,/mob/living/carbon/human))
- if(src:paralysis)
- src:paralysis = max(0, src:paralysis-round(amount/10))
- if(amount > 50 && prob(amount / 5))
- src:drop_item()
- var/msg
- if(burning)
- switch(amount)
- if(1 to 10)
- msg = "Your [partname] burns. "
- if(11 to 90)
- flash_weak_pain()
- msg = "Your [partname] burns badly! "
- if(91 to 10000)
- flash_pain()
- msg = "OH GOD! Your [partname] is on fire! "
- else
- switch(amount)
- if(1 to 10)
- msg = "Your [partname] hurts. "
- if(11 to 90)
- flash_weak_pain()
- msg = "Your [partname] hurts badly. "
- if(91 to 10000)
- flash_pain()
- msg = "OH GOD! Your [partname] is hurting terribly! "
- if(msg && (msg != last_pain_message || prob(10)))
- last_pain_message = msg
- src << msg
- next_pain_time = world.time + (100 - amount)
-
-
// message is the custom message to be displayed
-// flash_strength is 0 for weak pain flash, 1 for strong pain flash
-mob/living/carbon/human/proc/custom_pain(var/message, var/flash_strength)
- if(stat >= 1)
- return
- if(!can_feel_pain())
- return
- if(reagents.has_reagent("tramadol"))
- return
- if(reagents.has_reagent("oxycodone"))
- return
- if(analgesic)
- return
- var/msg = "[message] "
- if(flash_strength >= 1)
- msg = "[message] "
+// power decides how much painkillers will stop the message
+// force means it ignores anti-spam timer
+mob/living/carbon/proc/custom_pain(message, power, force)
+ if(!message || stat || !can_feel_pain() || chem_effects[CE_PAINKILLER] > power)
+ return 0
+ message = "[message] "
+ if(power >= 50)
+ message = "[message] "
// Anti message spam checks
- if(msg && ((msg != last_pain_message) || (world.time >= next_pain_time)))
- last_pain_message = msg
- src << msg
- next_pain_time = world.time + 100
+ if(force || (message != last_pain_message) || (world.time >= next_pain_time))
+ last_pain_message = message
+ src << message
+ next_pain_time = world.time + (100-power)
mob/living/carbon/human/proc/handle_pain()
- // not when sleeping
+ if(stat)
+ return
- if(!can_feel_pain()) return
+ if(!can_feel_pain())
+ return
- if(stat >= 2) return
- if(analgesic > 70)
+ if(world.time < next_pain_time)
return
var/maxdam = 0
var/obj/item/organ/external/damaged_organ = null
for(var/obj/item/organ/external/E in organs)
- if((E.status & ORGAN_DEAD) || E.robotic >= ORGAN_ROBOT) continue
+ if(!E.organ_can_feel_pain()) continue
var/dam = E.get_damage()
// make the choice of the organ depend on damage,
// but also sometimes use one of the less damaged ones
if(dam > maxdam && (maxdam == 0 || prob(70)) )
damaged_organ = E
maxdam = dam
- if(damaged_organ)
- pain(damaged_organ.name, maxdam, 0)
+ if(damaged_organ && chem_effects[CE_PAINKILLER] < maxdam)
+ if(maxdam > 10 && paralysis)
+ paralysis = max(0, paralysis - round(maxdam/10))
+ if(maxdam > 50 && prob(maxdam / 5))
+ drop_item()
+ var/burning = damaged_organ.burn_dam > damaged_organ.brute_dam
+ var/msg
+ switch(maxdam)
+ if(1 to 10)
+ msg = "Your [damaged_organ.name] [burning ? "burns" : "hurts"]."
+ if(11 to 90)
+ flash_weak_pain()
+ msg = "Your [damaged_organ.name] [burning ? "burns" : "hurts"] badly! "
+ if(91 to 10000)
+ flash_pain()
+ msg = "OH GOD! Your [damaged_organ.name] is [burning ? "on fire" : "hurting terribly"]! "
+ custom_pain(msg, maxdam, prob(10))
// Damage to internal organs hurts a lot.
for(var/obj/item/organ/I in internal_organs)
if((I.status & ORGAN_DEAD) || I.robotic >= ORGAN_ROBOT) continue
if(I.damage > 2) if(prob(2))
var/obj/item/organ/external/parent = get_organ(I.parent_organ)
- src.custom_pain("You feel a sharp pain in your [parent.name]", 1)
+ src.custom_pain("You feel a sharp pain in your [parent.name]", 50)
- var/toxDamageMessage = null
- var/toxMessageProb = 1
- switch(getToxLoss())
- if(1 to 5)
- toxMessageProb = 1
- toxDamageMessage = "Your body stings slightly."
- if(6 to 10)
- toxMessageProb = 2
- toxDamageMessage = "Your whole body hurts a little."
- if(11 to 15)
- toxMessageProb = 2
- toxDamageMessage = "Your whole body hurts."
- if(15 to 25)
- toxMessageProb = 3
- toxDamageMessage = "Your whole body hurts badly."
- if(26 to INFINITY)
- toxMessageProb = 5
- toxDamageMessage = "Your body aches all over, it's driving you mad."
-
- if(toxDamageMessage && prob(toxMessageProb))
- src.custom_pain(toxDamageMessage, getToxLoss() >= 15)
\ No newline at end of file
+ if(prob(2))
+ switch(getToxLoss())
+ if(1 to 10)
+ custom_pain("Your body stings slightly.", getToxLoss())
+ if(11 to 30)
+ custom_pain("Your body hurts a little.", getToxLoss())
+ if(31 to 60)
+ custom_pain("Your whole body hurts badly.", getToxLoss())
+ if(61 to INFINITY)
+ custom_pain("Your body aches all over, it's driving you mad.", getToxLoss())
\ No newline at end of file
diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm
index f46326a53e..25db1953d6 100644
--- a/code/modules/organs/robolimbs.dm
+++ b/code/modules/organs/robolimbs.dm
@@ -70,30 +70,30 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
parts = list(BP_HEAD)
monitor_styles = standard_monitor_styles
-/datum/robolimb/hesphiastos
- company = "Hesphiastos"
+/datum/robolimb/hephaestus
+ company = "Hephaestus"
desc = "This limb has a militaristic black and green casing with gold stripes."
- icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi'
+ icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi'
unavailable_to_build = 1
-/datum/robolimb/hesphiastos_alt1
- company = "Hesphiastos - Frontier"
- desc = "A rugged prosthetic head featuring the standard Hesphiastos theme, a visor and an external display."
- icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi'
+/datum/robolimb/hephaestus_alt1
+ company = "Hephaestus - Frontier"
+ desc = "A rugged prosthetic head featuring the standard Hephaestus theme, a visor and an external display."
+ icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt1.dmi'
unavailable_to_build = 1
parts = list(BP_HEAD)
- monitor_styles = "blank=hesphiastos_alt_off;\
- pink=hesphiastos_alt_pink;\
- orange=hesphiastos_alt_orange;\
- goggles=hesphiastos_alt_goggles;\
- scroll=hesphiastos_alt_scroll;\
- rgb=hesphiastos_alt_rgb;\
- rainbow=hesphiastos_alt_rainbow"
+ monitor_styles = "blank=hephaestus_alt_off;\
+ pink=hephaestus_alt_pink;\
+ orange=hephaestus_alt_orange;\
+ goggles=hephaestus_alt_goggles;\
+ scroll=hephaestus_alt_scroll;\
+ rgb=hephaestus_alt_rgb;\
+ rainbow=hephaestus_alt_rainbow"
-/datum/robolimb/hesphiastos_monitor
- company = "Hesphiastos Monitor"
- desc = "Hesphiastos' unique spin on a popular prosthetic head model. It looks rugged and sturdy."
- icon = 'icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi'
+/datum/robolimb/hephaestus_monitor
+ company = "Hephaestus Monitor"
+ desc = "Hephaestus' unique spin on a popular prosthetic head model. It looks rugged and sturdy."
+ icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi'
unavailable_to_build = 1
parts = list(BP_HEAD)
monitor_styles = standard_monitor_styles
@@ -112,6 +112,13 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
unavailable_to_build = 1
parts = list(BP_HEAD)
+/datum/robolimb/morpheus_alt2
+ company = "Morpheus - Skeleton Crew"
+ desc = "This limb is simple and functional; it's basically just a case for a brain."
+ icon = 'icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt2.dmi'
+ unavailable_to_build = 1
+ parts = list(BP_HEAD)
+
/datum/robolimb/veymed
company = "Vey-Med"
desc = "This high quality limb is nearly indistinguishable from an organic one."
@@ -183,8 +190,8 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/obj/item/weapon/disk/limb/bishop
company = "Bishop"
-/obj/item/weapon/disk/limb/hesphiastos
- company = "Hesphiastos"
+/obj/item/weapon/disk/limb/hephaestus
+ company = "Hephaestus"
/obj/item/weapon/disk/limb/morpheus
company = "Morpheus"
diff --git a/code/modules/organs/subtypes/diona.dm b/code/modules/organs/subtypes/diona.dm
index 4ae5e964ac..cdb963e35b 100644
--- a/code/modules/organs/subtypes/diona.dm
+++ b/code/modules/organs/subtypes/diona.dm
@@ -52,7 +52,7 @@
name = "left upper tendril"
organ_tag = "l_arm"
icon_name = "l_arm"
- max_damage = 50
+ max_damage = 30
min_broken_damage = 20
w_class = ITEMSIZE_NORMAL
body_part = ARM_LEFT
@@ -69,7 +69,7 @@
name = "left lower tendril"
organ_tag = "l_leg"
icon_name = "l_leg"
- max_damage = 50
+ max_damage = 30
min_broken_damage = 20
w_class = ITEMSIZE_NORMAL
body_part = LEG_LEFT
@@ -88,7 +88,7 @@
name = "left foot"
organ_tag = "l_foot"
icon_name = "l_foot"
- max_damage = 35
+ max_damage = 25
min_broken_damage = 10
w_class = ITEMSIZE_SMALL
body_part = FOOT_LEFT
@@ -110,7 +110,7 @@
name = "left grasper"
organ_tag = "l_hand"
icon_name = "l_hand"
- max_damage = 40
+ max_damage = 25
min_broken_damage = 15
w_class = ITEMSIZE_SMALL
body_part = HAND_LEFT
diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm
index df692c4a97..45b0b8be28 100644
--- a/code/modules/organs/subtypes/machine.dm
+++ b/code/modules/organs/subtypes/machine.dm
@@ -1,7 +1,6 @@
/obj/item/organ/internal/cell
name = "microbattery"
desc = "A small, powerful cell for use in fully prosthetic bodies."
- icon = 'icons/obj/power.dmi'
icon_state = "scell"
organ_tag = "cell"
parent_organ = BP_TORSO
@@ -27,6 +26,7 @@
vital = 1
var/brain_type = /obj/item/device/mmi
var/obj/item/device/mmi/stored_mmi
+ robotic = ORGAN_ASSISTED
/obj/item/organ/internal/mmi_holder/Destroy()
if(stored_mmi && (stored_mmi.loc == src))
@@ -84,7 +84,7 @@
/obj/item/organ/internal/mmi_holder/posibrain
name = "positronic brain interface"
brain_type = /obj/item/device/mmi/digital/posibrain
-
+ robotic = ORGAN_ROBOT
/obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi()
..()
@@ -94,6 +94,7 @@
/obj/item/organ/internal/mmi_holder/robot
name = "digital brain interface"
brain_type = /obj/item/device/mmi/digital/robot
+ robotic = ORGAN_ROBOT
/obj/item/organ/internal/mmi_holder/robot/update_from_mmi()
..()
diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm
index e84e39bc95..90567f2363 100644
--- a/code/modules/organs/subtypes/standard.dm
+++ b/code/modules/organs/subtypes/standard.dm
@@ -28,6 +28,19 @@
// Give them a new cell.
owner.internal_organs_by_name["cell"] = new /obj/item/organ/internal/cell(owner,1)
+/obj/item/organ/external/chest/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for CHEST
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+
/obj/item/organ/external/groin
name = "lower body"
organ_tag = BP_GROIN
@@ -45,6 +58,19 @@
cannot_amputate = 1
organ_rel_size = 30
+/obj/item/organ/external/groin/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for GROIN
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+
/obj/item/organ/external/arm
organ_tag = "l_arm"
name = "left arm"
@@ -60,6 +86,23 @@
force = 7
throwforce = 10
+/obj/item/organ/external/arm/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for ARM
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+ if(organ_tag == "l_arm") //Specific level 2 'feature
+ owner.drop_l_hand()
+ else if(organ_tag == "r_arm")
+ owner.drop_r_hand()
+
/obj/item/organ/external/arm/right
organ_tag = "r_arm"
name = "right arm"
@@ -84,6 +127,20 @@
force = 10
throwforce = 12
+/obj/item/organ/external/leg/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for LEG
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+ owner.Weaken(5)
+
/obj/item/organ/external/leg/right
organ_tag = "r_leg"
name = "right leg"
@@ -114,6 +171,20 @@
owner.drop_from_inventory(owner.shoes)
..()
+/obj/item/organ/external/foot/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for FOOT
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+ owner.Weaken(5)
+
/obj/item/organ/external/foot/right
organ_tag = "r_foot"
name = "right foot"
@@ -146,6 +217,23 @@
owner.drop_from_inventory(owner.gloves)
..()
+/obj/item/organ/external/hand/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for HAND
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+ if(organ_tag == "l_hand") //Specific level 2 'feature
+ owner.drop_l_hand()
+ else if(organ_tag == "r_hand")
+ owner.drop_r_hand()
+
/obj/item/organ/external/hand/right
organ_tag = "r_hand"
name = "right hand"
@@ -202,6 +290,20 @@
if (burn_dam > 40)
disfigure("burn")
+/obj/item/organ/external/head/handle_germ_effects()
+ . = ..() //Should return an infection level
+ if(!. || (status & ORGAN_DEAD)) return //If it's already above 2, it's become necrotic and we can just not worry about it.
+
+ //Staph infection symptoms for HEAD
+ if (. >= 1)
+ if(prob(.))
+ owner.custom_pain("Your [name] [pick("aches","itches","throbs")]!",0)
+
+ if (. >= 2)
+ if(prob(.))
+ owner.custom_pain("A jolt of pain surges through your [name]!",1)
+ owner.eye_blurry += 20 //Specific level 2 'feature
+
/obj/item/organ/external/head/skrell
eye_icon = "skrell_eyes_s"
diff --git a/code/modules/paperwork/adminpaper.dm b/code/modules/paperwork/adminpaper.dm
index 230d8984e8..b17bdf29f2 100644
--- a/code/modules/paperwork/adminpaper.dm
+++ b/code/modules/paperwork/adminpaper.dm
@@ -58,7 +58,7 @@
text = ""
text += "This transmission is intended only for the addressee and may contain confidential information. Any unauthorized disclosure is strictly prohibited. "
- text += "If this transmission is recieved in error, please notify both the sender and the office of [boss_name] Internal Affairs immediately so that corrective action may be taken."
+ text += "If this transmission is recieved in error, please notify both the sender and the office of [using_map.boss_name] Internal Affairs immediately so that corrective action may be taken."
text += "Failure to comply is a breach of regulation and may be prosecuted to the fullest extent of the law, where applicable."
text += " "
diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm
index f2c309ff03..778abc4ee0 100644
--- a/code/modules/paperwork/faxmachine.dm
+++ b/code/modules/paperwork/faxmachine.dm
@@ -1,5 +1,5 @@
var/list/obj/machinery/photocopier/faxmachine/allfaxes = list()
-var/list/admin_departments = list("[boss_name]", "Sif Governmental Authority", "Supply")
+var/list/admin_departments = list("[using_map.boss_name]", "Sif Governmental Authority", "Supply")
var/list/alldepartments = list()
var/list/adminfaxes = list() //cache for faxes that have been sent to admins
@@ -24,7 +24,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
/obj/machinery/photocopier/faxmachine/New()
allfaxes += src
- if(!destination) destination = "[boss_name]"
+ if(!destination) destination = "[using_map.boss_name]"
if( !(("[department]" in alldepartments) || ("[department]" in admin_departments)) )
alldepartments |= department
..()
@@ -47,7 +47,7 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
data["scanName"] = scan.name
else
data["scanName"] = null
- data["bossName"] = boss_name
+ data["bossName"] = using_map.boss_name
data["authenticated"] = authenticated
data["copyItem"] = copyitem
if(copyitem)
@@ -180,12 +180,12 @@ var/list/adminfaxes = list() //cache for faxes that have been sent to admins
adminfaxes += rcvdcopy
//message badmins that a fax has arrived
- if (destination == boss_name)
- message_admins(sender, "[uppertext(boss_short)] FAX", rcvdcopy, "CentComFaxReply", "#006100")
+ if (destination == using_map.boss_name)
+ message_admins(sender, "[uppertext(using_map.boss_short)] FAX", rcvdcopy, "CentComFaxReply", "#006100")
else if ("Sif Governmental Authority")
message_admins(sender, "SIF GOVERNMENT FAX", rcvdcopy, "CentComFaxReply", "#1F66A0")
else if ("Supply")
- message_admins(sender, "[uppertext(boss_short)] SUPPLY FAX", rcvdcopy, "CentComFaxReply", "#5F4519")
+ message_admins(sender, "[uppertext(using_map.boss_short)] SUPPLY FAX", rcvdcopy, "CentComFaxReply", "#5F4519")
else
message_admins(sender, "[uppertext(destination)] FAX", rcvdcopy, "UNKNOWN")
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index e183c3b282..a7d1ad04ab 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -233,7 +233,7 @@
t = replacetext(t, "\[u\]", "")
t = replacetext(t, "\[/u\]", " ")
t = replacetext(t, "\[time\]", "[stationtime2text()]")
- t = replacetext(t, "\[date\]", "[stationtime2text()]")
+ t = replacetext(t, "\[date\]", "[station_date]")
t = replacetext(t, "\[large\]", "")
t = replacetext(t, "\[/large\]", " ")
if(findtext(t, "\[sign\]"))
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 350aab3414..29a62f6f36 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -180,7 +180,7 @@
update_icon()
else
usr << "You need to hold it in hands! "
- if (istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
+ if (src.loc && istype(src.loc, /mob) ||istype(src.loc.loc, /mob))
src.attack_self(usr)
updateUsrDialog()
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 48e95071c5..3283e67f7d 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -1,10 +1,19 @@
+//
+// Paper Shredder Machine
+//
/obj/machinery/papershredder
name = "paper shredder"
desc = "For those documents you don't want seen."
- icon = 'icons/obj/bureaucracy.dmi'
- icon_state = "papershredder0"
+ icon = 'icons/obj/papershredder.dmi'
+ icon_state = "shredder-off"
+ var/shred_anim = "shredder-shredding"
density = 1
anchored = 1
+ use_power = 1
+ idle_power_usage = 10
+ active_power_usage = 200
+ power_channel = EQUIP
+ circuit = /obj/item/weapon/circuitboard/papershredder
var/max_paper = 10
var/paperamount = 0
var/list/shred_amounts = list(
@@ -16,17 +25,40 @@
/obj/item/weapon/paper_bundle = 3,
)
+/obj/machinery/papershredder/New()
+ ..()
+ component_parts = list()
+ component_parts += new /obj/item/weapon/stock_parts/motor(src)
+ component_parts += new /obj/item/weapon/stock_parts/gear(src)
+ component_parts += new /obj/item/weapon/stock_parts/gear(src)
+ component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
+ RefreshParts()
+ update_icon()
+
/obj/machinery/papershredder/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/weapon/storage))
empty_bin(user, W)
return
+ else if(istype(W, /obj/item/weapon/wrench))
+ playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ anchored = !anchored
+ user << "You [anchored ? "wrench" : "unwrench"] \the [src]. "
+ return
+ else if(default_part_replacement(user, W))
+ return
+ else if(default_deconstruction_screwdriver(user, W))
+ return
+ else if(default_deconstruction_crowbar(user, W))
+ return
else
var/paper_result
for(var/shred_type in shred_amounts)
if(istype(W, shred_type))
paper_result = shred_amounts[shred_type]
if(paper_result)
+ if(inoperable())
+ return // Need powah!
if(paperamount == max_paper)
user << "\The [src] is full; please empty it before you continue. "
return
@@ -34,6 +66,7 @@
user.drop_from_inventory(W)
qdel(W)
playsound(src.loc, 'sound/items/pshred.ogg', 75, 1)
+ flick(shred_anim, src)
if(paperamount > max_paper)
user <<"\The [src] was too full, and shredded paper goes everywhere! "
for(var/i=(paperamount-max_paper);i>0;i--)
@@ -92,8 +125,40 @@
paperamount--
return PoolOrNew(/obj/item/weapon/shreddedp, get_turf(src))
+/obj/machinery/papershredder/power_change()
+ ..()
+ spawn(rand(0,15))
+ update_icon()
+
/obj/machinery/papershredder/update_icon()
- icon_state = "papershredder[max(0,min(5,Floor(paperamount/2)))]"
+ overlays.Cut()
+ if(operable())
+ icon_state = "shredder-on"
+ else
+ icon_state = "shredder-off"
+ // Fullness overlay
+ overlays += "shredder-[max(0,min(5,Floor(paperamount/max_paper*5)))]"
+ if (panel_open)
+ overlays += "panel_open"
+
+//
+// Shredded Paper Item
+//
+
+/obj/item/weapon/shreddedp
+ name = "shredded paper"
+ icon = 'icons/obj/bureaucracy.dmi'
+ icon_state = "shredp"
+ throwforce = 0
+ w_class = ITEMSIZE_TINY
+ throw_range = 3
+ throw_speed = 1
+
+/obj/item/weapon/shreddedp/New()
+ ..()
+ pixel_x = rand(-5,5)
+ pixel_y = rand(-5,5)
+ if(prob(65)) color = pick("#BABABA","#7F7F7F")
/obj/item/weapon/shreddedp/attackby(var/obj/item/W as obj, var/mob/user)
if(istype(W, /obj/item/weapon/flame/lighter))
@@ -122,18 +187,3 @@
M.drop_from_inventory(src)
PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src))
qdel(src)
-
-/obj/item/weapon/shreddedp
- name = "shredded paper"
- icon = 'icons/obj/bureaucracy.dmi'
- icon_state = "shredp"
- throwforce = 0
- w_class = ITEMSIZE_TINY
- throw_range = 3
- throw_speed = 1
-
-/obj/item/weapon/shreddedp/New()
- ..()
- pixel_x = rand(-5,5)
- pixel_y = rand(-5,5)
- if(prob(65)) color = pick("#BABABA","#7F7F7F")
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 5373a71781..74acf07ddb 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -67,14 +67,18 @@
break
if (istype(copyitem, /obj/item/weapon/paper))
+ playsound(loc, "sound/machines/copier.ogg", 100, 1)
+ sleep(11)
copy(copyitem)
- sleep(15)
else if (istype(copyitem, /obj/item/weapon/photo))
+ playsound(loc, "sound/machines/copier.ogg", 100, 1)
+ sleep(11)
photocopy(copyitem)
- sleep(15)
else if (istype(copyitem, /obj/item/weapon/paper_bundle))
+ sleep(11)
+ playsound(loc, "sound/machines/copier.ogg", 100, 1)
var/obj/item/weapon/paper_bundle/B = bundlecopy(copyitem)
- sleep(15*B.pages.len)
+ sleep(11*B.pages.len)
else
usr << "\The [copyitem] can't be copied by \the [src]. "
break
@@ -123,6 +127,7 @@
copyitem = O
O.loc = src
user << "You insert \the [O] into \the [src]. "
+ playsound(loc, "sound/machines/click.ogg", 100, 1)
flick(insert_anim, src)
else
user << "There is already something in \the [src]. "
diff --git a/code/modules/planet/planet.dm b/code/modules/planet/planet.dm
new file mode 100644
index 0000000000..65a2de9845
--- /dev/null
+++ b/code/modules/planet/planet.dm
@@ -0,0 +1,42 @@
+// This holds information about a specific 'planetside' area, such as its time, weather, etc. This will most likely be used to model Sif,
+// but away missions may also have use for this.
+
+/datum/planet
+ var/name = "a rock"
+ var/desc = "Someone neglected to write a nice description for this poor rock."
+
+ var/datum/time/current_time = new() // Holds the current time for sun positioning. Note that we assume day and night is the same length because simplicity.
+ var/sun_process_interval = 1 HOUR
+ var/sun_last_process = null // world.time
+
+ var/datum/weather_holder/weather_holder
+
+ var/sun_position = 0 // 0 means midnight, 1 means noon.
+ var/expected_z_levels = list()
+
+/datum/planet/New()
+ ..()
+ weather_holder = new(src)
+ current_time = current_time.make_random_time()
+ update_sun()
+
+/datum/planet/proc/process(amount)
+ if(current_time)
+ current_time = current_time.add_seconds(amount)
+ update_weather() // We update this first, because some weather types decease the brightness of the sun.
+ if(sun_last_process <= world.time - sun_process_interval)
+ update_sun()
+
+// This changes the position of the sun on the planet.
+/datum/planet/proc/update_sun()
+ sun_last_process = world.time
+
+
+/datum/planet/proc/update_weather()
+ if(weather_holder)
+ weather_holder.process()
+
+// Returns the time datum of Sif.
+/proc/get_sif_time()
+ if(planet_sif)
+ return planet_sif.current_time
\ No newline at end of file
diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm
new file mode 100644
index 0000000000..7b95d387bf
--- /dev/null
+++ b/code/modules/planet/sif.dm
@@ -0,0 +1,106 @@
+var/datum/planet/sif/planet_sif = null
+
+/datum/planet/sif
+ name = "Sif"
+
+/datum/planet/sif
+ name = "Sif"
+ desc = "Sif is a terrestrial planet in the Vir system. It is somewhat earth-like, in that it has oceans, a \
+ breathable atmosphere, a magnetic field, weather, and similar gravity to Earth. It is currently the capital planet of Vir. \
+ Its center of government is the equatorial city and site of first settlement, New Reykjavik." // Ripped straight from the wiki.
+ current_time = new /datum/time/sif() // 32 hour clocks are nice.
+ expected_z_levels = list(1) // To be changed when real map is finished.
+
+/datum/planet/sif/New()
+ ..()
+ weather_holder = new /datum/weather_holder/sif(src) // Cold weather is also nice.
+
+// This code is horrible.
+/datum/planet/sif/update_sun()
+ ..()
+ var/datum/time/time = current_time
+ var/length_of_day = time.seconds_in_day / 10 / 60 / 60 // 32
+ var/noon = length_of_day / 2
+ var/distance_from_noon = abs(text2num(time.show_time("hh")) - noon)
+ sun_position = distance_from_noon / noon
+ sun_position = abs(sun_position - 1)
+
+ var/low_brightness = null
+ var/high_brightness = null
+
+ var/low_color = null
+ var/high_color = null
+ var/min = 0
+
+ switch(sun_position)
+ if(0 to 0.40) // Night
+ low_brightness = 0.2
+ low_color = "#000066"
+
+ high_brightness = 0.5
+ high_color = "#66004D"
+ min = 0
+
+ if(0.40 to 0.50) // Twilight
+ low_brightness = 0.6
+ low_color = "#66004D"
+
+ high_brightness = 0.8
+ high_color = "#CC3300"
+ min = 0.40
+
+ if(0.50 to 0.70) // Sunrise/set
+ low_brightness = 0.8
+ low_color = "#CC3300"
+
+ high_brightness = 0.9
+ high_color = "#FF9933"
+ min = 0.50
+
+ if(0.70 to 1.00) // Noon
+ low_brightness = 0.9
+ low_color = "#DDDDDD"
+
+ high_brightness = 1.0
+ high_color = "#FFFFFF"
+ min = 0.70
+
+ var/lerp_weight = (abs(min - sun_position)) * 4
+ var/weather_light_modifier = 1
+ if(weather_holder && weather_holder.current_weather)
+ weather_light_modifier = weather_holder.current_weather.light_modifier
+
+ var/new_brightness = (Interpolate(low_brightness, high_brightness, weight = lerp_weight) ) * weather_light_modifier
+
+ var/new_color = null
+ if(weather_holder && weather_holder.current_weather && weather_holder.current_weather.light_color)
+ new_color = weather_holder.current_weather.light_color
+ else
+ var/list/low_color_list = hex2rgb(low_color)
+ var/low_r = low_color_list[1]
+ var/low_g = low_color_list[2]
+ var/low_b = low_color_list[3]
+
+ var/list/high_color_list = hex2rgb(high_color)
+ var/high_r = high_color_list[1]
+ var/high_g = high_color_list[2]
+ var/high_b = high_color_list[3]
+
+ var/new_r = Interpolate(low_r, high_r, weight = lerp_weight)
+ var/new_g = Interpolate(low_g, high_g, weight = lerp_weight)
+ var/new_b = Interpolate(low_b, high_b, weight = lerp_weight)
+
+ new_color = rgb(new_r, new_g, new_b)
+
+ spawn(1)
+ update_sun_deferred(2, new_brightness, new_color)
+
+/datum/planet/proc/update_sun_deferred(var/new_range, var/new_brightness, var/new_color)
+ set background = 1
+ set waitfor = 0
+ var/i = 0
+ for(var/turf/simulated/floor/T in outdoor_turfs)
+ T.set_light(new_range, new_brightness, new_color)
+ i++
+ if(i % 30 == 0)
+ sleep(1)
diff --git a/code/modules/planet/time.dm b/code/modules/planet/time.dm
new file mode 100644
index 0000000000..936ae0eadd
--- /dev/null
+++ b/code/modules/planet/time.dm
@@ -0,0 +1,76 @@
+// This datum allows one to add and subtract various lengths of time. It really shines when using an alternate time system.
+
+/datum/time
+ // Note that the following is actually measured in 10ths of a second.
+ var/seconds_in_day = 60 * 60 * 24 * 10 // 86,400 seconds
+ var/seconds_in_hour = 60 * 60 * 10 // 3,600 seconds
+ var/seconds_in_minute = 60 * 10
+
+ // This holds the amount of seconds.
+ var/seconds_stored = 0
+
+/datum/time/New(new_time)
+ if(new_time)
+ seconds_stored = new_time
+ ..()
+
+/datum/time/proc/add_seconds(amount)
+ var/answer = seconds_stored + amount * 10
+ if(answer >= seconds_in_day)
+ rollover(answer)
+ return new type(answer)
+
+/datum/time/proc/add_minutes(amount)
+ var/real_amount = amount * seconds_in_minute
+ var/answer = real_amount + seconds_stored
+ if(answer >= seconds_in_day)
+ rollover(answer)
+ return new type(answer)
+
+/datum/time/proc/add_hours(amount)
+ var/real_amount = amount * seconds_in_hour
+ var/answer = real_amount + seconds_stored
+ if(answer >= seconds_in_day)
+ rollover(answer)
+ return new type(answer)
+
+/datum/time/proc/rollover(time)
+ return max(time - seconds_in_day, 0)
+
+/datum/time/proc/make_random_time()
+ return new type(rand(0, seconds_in_day - 1))
+
+// This works almost exactly like time2text.
+// The advantage of this is that it can handle time systems beyond 24h.
+// The downside is a lack of date capability.
+/datum/time/proc/show_time(format)
+ var/time = seconds_stored
+ while(time >= seconds_in_day) // First, get rid of extra days.
+ time = rollover(time)
+
+ var/hours = time / seconds_in_hour
+ var/remaining_hour = time % seconds_in_hour
+ var/minutes = remaining_hour / seconds_in_minute
+ var/seconds = remaining_hour % seconds_in_minute / 10
+
+
+ var/hour_text = num2text(Floor(hours))
+ if(length(hour_text) < 2)
+ hour_text = "0[hour_text]" // Add padding if needed, to look more like time2text().
+
+ var/minute_text = num2text(Floor(minutes))
+ if(length(minute_text) < 2)
+ minute_text = "0[minute_text]"
+
+ var/second_text = num2text(Floor(seconds))
+ if(length(second_text) < 2)
+ second_text = "0[second_text]"
+
+ var/answer = replacetext(format, "hh", hour_text)
+ answer = replacetext(answer, "mm", minute_text)
+ answer = replacetext(answer, "ss", second_text)
+ return answer
+
+// We're gonna pretend there are 32 hours in a Sif day instead of 32.64 for the purposes of not losing sanity. We lose 38m 24s but the alternative is a path to madness.
+/datum/time/sif
+ seconds_in_day = 60 * 60 * 32 * 10 // 115,200 seconds. If we did 32.64 hours/day it would be around 117,504 seconds instead.
\ No newline at end of file
diff --git a/code/modules/planet/weather.dm b/code/modules/planet/weather.dm
new file mode 100644
index 0000000000..c98383a242
--- /dev/null
+++ b/code/modules/planet/weather.dm
@@ -0,0 +1,285 @@
+#define WEATHER_CLEAR "clear"
+#define WEATHER_OVERCAST "overcast"
+#define WEATHER_LIGHT_SNOW "light snow"
+#define WEATHER_SNOW "snow"
+#define WEATHER_BLIZZARD "blizzard"
+#define WEATHER_RAIN "rain"
+#define WEATHER_STORM "storm"
+#define WEATHER_HAIL "hail"
+#define WEATHER_WINDY "windy"
+#define WEATHER_HOT "hot"
+#define WEATHER_BLOOD_MOON "blood moon" // For admin fun or cult later on.
+
+/datum/weather_holder
+ var/datum/planet/our_planet = null
+ var/datum/weather/current_weather = null
+ var/temperature = T20C
+ var/wind_dir = 0
+ var/wind_speed = 0
+ var/list/allowed_weather_types = list()
+ var/list/roundstart_weather_chances = list()
+ var/next_weather_shift = null
+ var/planetary_wall_type = null // Which walls to look for when updating temperature.
+
+/datum/weather_holder/New(var/source)
+ ..()
+ our_planet = source
+ for(var/A in allowed_weather_types)
+ var/datum/weather/W = allowed_weather_types[A]
+ if(istype(W))
+ W.holder = src
+
+/datum/weather_holder/proc/change_weather(var/new_weather)
+ var/old_light_modifier = null
+ if(current_weather)
+ old_light_modifier = current_weather.light_modifier // We store the old one, so we can determine if recalculating the sun is needed.
+ current_weather = allowed_weather_types[new_weather]
+ next_weather_shift = world.time + rand(20, 30) MINUTES
+
+ update_icon_effects()
+ update_temperature()
+ if(old_light_modifier && current_weather.light_modifier != old_light_modifier) // Updating the sun should be done sparingly.
+ our_planet.update_sun()
+ message_admins("[our_planet.name]'s weather is now [new_weather], with a temperature of [temperature]°K ([temperature - T0C]°C | [temperature * 1.8 - 459.67]°F).")
+
+/datum/weather_holder/proc/process()
+ if(world.time >= next_weather_shift)
+ var/new_weather
+ if(!current_weather)
+ new_weather = pickweight(roundstart_weather_chances)
+ else
+ new_weather = pickweight(current_weather.transition_chances)
+ change_weather(new_weather)
+ else
+ current_weather.process_effects()
+
+/datum/weather_holder/proc/update_icon_effects()
+ set background = 1
+ set waitfor = 0
+ if(current_weather)
+ for(var/turf/simulated/floor/T in outdoor_turfs)
+ if(T.z in our_planet.expected_z_levels)
+ T.overlays -= T.weather_overlay
+ T.weather_overlay = image(icon = current_weather.icon, icon_state = current_weather.icon_state, layer = LIGHTING_LAYER - 1)
+ T.overlays += T.weather_overlay
+
+/datum/weather_holder/proc/update_temperature()
+ temperature = Interpolate(current_weather.temp_low, current_weather.temp_high, weight = our_planet.sun_position)
+
+ for(var/turf/unsimulated/wall/planetary/wall in planetary_walls)
+ if(ispath(wall.type, planetary_wall_type))
+ wall.temperature = temperature
+ for(var/dir in cardinal)
+ var/turf/simulated/T = get_step(wall, dir)
+ if(istype(T))
+ if(T.zone)
+ T.zone.rebuild()
+
+
+/datum/weather_holder/proc/get_weather_datum(desired_type)
+ return allowed_weather_types[desired_type]
+
+/datum/weather_holder/sif
+ temperature = T0C
+ allowed_weather_types = list(
+ WEATHER_CLEAR = new /datum/weather/sif/clear(),
+ WEATHER_OVERCAST = new /datum/weather/sif/overcast(),
+ WEATHER_LIGHT_SNOW = new /datum/weather/sif/light_snow(),
+ WEATHER_SNOW = new /datum/weather/sif/snow(),
+ WEATHER_BLIZZARD = new /datum/weather/sif/blizzard(),
+ WEATHER_RAIN = new /datum/weather/sif/rain(),
+ WEATHER_STORM = new /datum/weather/sif/storm(),
+ WEATHER_HAIL = new /datum/weather/sif/hail(),
+ WEATHER_BLOOD_MOON = new /datum/weather/sif/blood_moon()
+ )
+ planetary_wall_type = /turf/unsimulated/wall/planetary/sif
+ roundstart_weather_chances = list(
+ WEATHER_CLEAR = 30,
+ WEATHER_OVERCAST = 30,
+ WEATHER_LIGHT_SNOW = 20,
+ WEATHER_SNOW = 5,
+ WEATHER_BLIZZARD = 5,
+ WEATHER_RAIN = 5,
+ WEATHER_STORM = 2.5,
+ WEATHER_HAIL = 2.5
+ )
+
+/datum/weather
+ var/name = "weather base"
+ var/icon = 'icons/effects/weather.dmi'
+ var/icon_state = null // Icon to apply to turf undergoing weather.
+ var/temp_high = T20C
+ var/temp_low = T0C
+ var/light_modifier = 1.0 // Lower numbers means more darkness.
+ var/light_color = null // If set, changes how the day/night light looks.
+ var/transition_chances = list() // Assoc list
+ var/datum/weather_holder/holder = null
+
+/datum/weather/proc/process_effects()
+ return
+
+/datum/weather/sif
+ name = "sif base"
+ temp_high = 243.15 // -20c
+ temp_low = 233.15 // -30c
+
+/datum/weather/sif/clear
+ name = "clear"
+ transition_chances = list(
+ WEATHER_CLEAR = 60,
+ WEATHER_OVERCAST = 40
+ )
+
+/datum/weather/sif/overcast
+ name = "overcast"
+ light_modifier = 0.8
+ transition_chances = list(
+ WEATHER_CLEAR = 25,
+ WEATHER_OVERCAST = 50,
+ WEATHER_LIGHT_SNOW = 10,
+ WEATHER_SNOW = 5,
+ WEATHER_RAIN = 5,
+ WEATHER_HAIL = 5
+ )
+
+/datum/weather/sif/light_snow
+ name = "light snow"
+ icon_state = "snowfall_light"
+ temp_high = 238.15 // -25c
+ temp_low = 228.15 // -35c
+ light_modifier = 0.7
+ transition_chances = list(
+ WEATHER_OVERCAST = 20,
+ WEATHER_LIGHT_SNOW = 50,
+ WEATHER_SNOW = 25,
+ WEATHER_HAIL = 5
+ )
+
+/datum/weather/sif/snow
+ name = "moderate snow"
+ icon_state = "snowfall_med"
+ temp_high = 233.15 // -30c
+ temp_low = 223.15 // -40c
+ light_modifier = 0.5
+ transition_chances = list(
+ WEATHER_LIGHT_SNOW = 20,
+ WEATHER_SNOW = 50,
+ WEATHER_BLIZZARD = 20,
+ WEATHER_HAIL = 5,
+ WEATHER_OVERCAST = 5
+ )
+
+/datum/weather/sif/snow/process_effects()
+ for(var/turf/simulated/floor/outdoors/snow/S in outdoor_turfs)
+ for(var/dir_checked in cardinal)
+ var/turf/simulated/floor/T = get_step(S, dir_checked)
+ if(istype(T))
+ if(istype(T, /turf/simulated/floor/outdoors) && prob(33))
+ T.chill()
+
+/datum/weather/sif/blizzard
+ name = "blizzard"
+ icon_state = "snowfall_heavy"
+ temp_high = 223.15 // -40c
+ temp_low = 203.15 // -60c
+ light_modifier = 0.3
+ transition_chances = list(
+ WEATHER_SNOW = 45,
+ WEATHER_BLIZZARD = 40,
+ WEATHER_HAIL = 10,
+ WEATHER_OVERCAST = 5
+ )
+
+/datum/weather/sif/blizzard/process_effects()
+ for(var/turf/simulated/floor/outdoors/snow/S in outdoor_turfs)
+ for(var/dir_checked in cardinal)
+ var/turf/simulated/floor/T = get_step(S, dir_checked)
+ if(istype(T))
+ if(istype(T, /turf/simulated/floor/outdoors) && prob(50))
+ T.chill()
+
+/datum/weather/sif/rain
+ name = "rain"
+ icon_state = "rain"
+ light_modifier = 0.5
+ transition_chances = list(
+ WEATHER_OVERCAST = 25,
+ WEATHER_LIGHT_SNOW = 10,
+ WEATHER_RAIN = 50,
+ WEATHER_STORM = 10,
+ WEATHER_HAIL = 5
+ )
+
+/datum/weather/sif/rain/process_effects()
+ for(var/mob/living/L in living_mob_list)
+ if(L.z in holder.our_planet.expected_z_levels)
+ var/turf/T = get_turf(L)
+ if(!T.outdoors)
+ return // They're indoors, so no need to rain on them.
+
+ L.adjust_fire_stacks(-5)
+ to_chat(L, "Rain falls on you. ")
+
+/datum/weather/sif/storm
+ name = "storm"
+ icon_state = "storm"
+ temp_high = 233.15 // -30c
+ temp_low = 213.15 // -50c
+ light_modifier = 0.3
+ transition_chances = list(
+ WEATHER_RAIN = 45,
+ WEATHER_STORM = 40,
+ WEATHER_HAIL = 10,
+ WEATHER_OVERCAST = 5
+ )
+
+/datum/weather/sif/rain/process_effects()
+ for(var/mob/living/L in living_mob_list)
+ if(L.z in holder.our_planet.expected_z_levels)
+ var/turf/T = get_turf(L)
+ if(!T.outdoors)
+ return // They're indoors, so no need to rain on them.
+
+ L.adjust_fire_stacks(-10)
+ to_chat(L, "Rain falls on you, drenching you in water. ")
+
+/datum/weather/sif/hail
+ name = "hail"
+ icon_state = "hail"
+ temp_high = 233.15 // -30c
+ temp_low = 213.15 // -50c
+ light_modifier = 0.3
+ transition_chances = list(
+ WEATHER_RAIN = 45,
+ WEATHER_STORM = 10,
+ WEATHER_HAIL = 40,
+ WEATHER_OVERCAST = 5
+ )
+
+/datum/weather/sif/hail/process_effects()
+ for(var/mob/living/L in living_mob_list)
+ if(L.z in holder.our_planet.expected_z_levels)
+ var/turf/T = get_turf(L)
+ if(!T.outdoors)
+ return // They're indoors, so no need to pelt them with ice.
+
+ var/target_zone = pick(BP_ALL)
+ var/amount_blocked = L.run_armor_check(target_zone, "melee")
+ var/amount_soaked = L.get_armor_soak(target_zone, "melee")
+
+ if(amount_blocked >= 100)
+ return // No need to apply damage.
+
+ if(amount_soaked >= 10)
+ return // No need to apply damage.
+
+ L.apply_damage(rand(5, 10), BRUTE, target_zone, amount_blocked, amount_soaked, used_weapon = "hail")
+ to_chat(L, "The hail raining down on you [L.can_feel_pain() ? "hurts" : "damages you"]! ")
+
+/datum/weather/sif/blood_moon
+ name = "blood moon"
+ light_modifier = 0.5
+ light_color = "#FF0000"
+ transition_chances = list(
+ WEATHER_BLOODMOON = 100
+ )
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index 8c7af58346..c1defc1c75 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -97,6 +97,12 @@
if(2)
if(active) toggle_power()
stability -= rand(10,20)
+ if(3)
+ if(active) toggle_power()
+ stability -= rand(8,15)
+ if(4)
+ if(active) toggle_power()
+ stability -= rand(5,10)
..()
return 0
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 184a1731f5..72fbccaa57 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -1193,22 +1193,27 @@ obj/machinery/power/apc/proc/autoset(var/cur_state, var/on)
/obj/machinery/power/apc/ex_act(severity)
switch(severity)
- if(1.0)
+ if(1)
//set_broken() //now qdel() do what we need
if (cell)
- cell.ex_act(1.0) // more lags woohoo
+ cell.ex_act(1) // more lags woohoo
qdel(src)
return
- if(2.0)
+ if(2)
+ if (prob(75))
+ set_broken()
+ if (cell && prob(50))
+ cell.ex_act(2)
+ if(3)
if (prob(50))
set_broken()
if (cell && prob(50))
- cell.ex_act(2.0)
- if(3.0)
+ cell.ex_act(3)
+ if(4)
if (prob(25))
set_broken()
- if (cell && prob(25))
- cell.ex_act(3.0)
+ if (cell && prob(50))
+ cell.ex_act(3)
return
/obj/machinery/power/apc/disconnect_terminal()
diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm
index 203227e613..56e2a485ca 100644
--- a/code/modules/power/batteryrack.dm
+++ b/code/modules/power/batteryrack.dm
@@ -165,7 +165,7 @@
return
if (overcharge_percent >= 140)
if (prob(1))
- empulse(src.loc, 3, 8, 1)
+ empulse(src.loc, 2, 3, 6, 8, 1)
if ((2.4e6+1) to 3.6e6)
if (overcharge_percent >= 115)
if (prob(7))
@@ -174,7 +174,7 @@
return
if (overcharge_percent >= 130)
if (prob(1))
- empulse(src.loc, 3, 8, 1)
+ empulse(src.loc, 2, 3, 6, 8, 1)
if (overcharge_percent >= 150)
if (prob(1))
explosion(src.loc, 0, 1, 3, 5)
@@ -186,7 +186,7 @@
return
if (overcharge_percent >= 125)
if (prob(2))
- empulse(src.loc, 4, 10, 1)
+ empulse(src.loc, 2, 4, 7, 10, 1)
if (overcharge_percent >= 140)
if (prob(1))
explosion(src.loc, 1, 3, 5, 8)
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index c837f502dd..671d57e04e 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -129,12 +129,12 @@ var/list/possible_cable_coil_colours = list(
/obj/structure/cable/hide(var/i)
if(istype(loc, /turf))
invisibility = i ? 101 : 0
- updateicon()
+ update_icon()
/obj/structure/cable/hides_under_flooring()
return 1
-/obj/structure/cable/proc/updateicon()
+/obj/structure/cable/update_icon()
icon_state = "[d1]-[d2]"
alpha = invisibility ? 127 : 255
@@ -635,102 +635,75 @@ obj/structure/cable/proc/cableColor(var/colorC)
//////////////////////////////////////////////
// called when cable_coil is clicked on a turf/simulated/floor
-/obj/item/stack/cable_coil/proc/turf_place(turf/simulated/floor/F, mob/user)
+/obj/item/stack/cable_coil/proc/turf_place(turf/simulated/F, mob/user)
if(!isturf(user.loc))
return
if(get_amount() < 1) // Out of cable
- user << "There is no cable left."
+ to_chat(user, "There is no cable left.")
return
if(get_dist(F,user) > 1) // Too far
- user << "You can't lay cable at a place that far away."
+ to_chat(user, "You can't lay cable at a place that far away.")
return
if(!F.is_plating()) // Ff floor is intact, complain
- user << "You can't lay cable there unless the floor tiles are removed."
+ to_chat(user, "You can't lay cable there unless the floor tiles are removed.")
return
+ var/dirn
+ if(user.loc == F)
+ dirn = user.dir // if laying on the tile we're on, lay in the direction we're facing
else
- var/dirn
+ dirn = get_dir(F, user)
- if(user.loc == F)
- dirn = user.dir // if laying on the tile we're on, lay in the direction we're facing
- else
- dirn = get_dir(F, user)
+ var/end_dir = 0
+ if(istype(F, /turf/simulated/open))
+ if(!can_use(2))
+ to_chat(user, "You don't have enough cable to do this!")
+ return
+ end_dir = DOWN
- for(var/obj/structure/cable/LC in F)
- if((LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0))
- user << "There's already a cable at that position. "
- return
-///// Z-Level Stuff
- // check if the target is open space
- if(istype(F, /turf/simulated/open))
- for(var/obj/structure/cable/LC in F)
- if((LC.d1 == dirn && LC.d2 == 11 ) || ( LC.d2 == dirn && LC.d1 == 11))
- user << "There's already a cable at that position. "
- return
+ for(var/obj/structure/cable/LC in F)
+ if((LC.d1 == dirn && LC.d2 == end_dir ) || ( LC.d2 == dirn && LC.d1 == end_dir))
+ to_chat(user, "There's already a cable at that position. ")
+ return
- var/obj/structure/cable/C = new(F)
- var/obj/structure/cable/D = new(GetBelow(F))
+ put_cable(F, user, end_dir, dirn)
+ if(end_dir == DOWN)
+ put_cable(GetBelow(F), user, UP, 0)
+ to_chat(user, "You slide some cable downward.")
- C.cableColor(color)
+/obj/item/stack/cable_coil/proc/put_cable(turf/simulated/F, mob/user, d1, d2)
+ if(!istype(F))
+ return
- C.d1 = 11
- C.d2 = dirn
- C.add_fingerprint(user)
- C.updateicon()
+ var/obj/structure/cable/C = new(F)
+ C.cableColor(color)
+ C.d1 = d1
+ C.d2 = d2
+ C.add_fingerprint(user)
+ C.update_icon()
- var/datum/powernet/PN = new()
- PN.add_cable(C)
+ //create a new powernet with the cable, if needed it will be merged later
+ var/datum/powernet/PN = new()
+ PN.add_cable(C)
- C.mergeConnectedNetworks(C.d2)
- C.mergeConnectedNetworksOnTurf()
+ C.mergeConnectedNetworks(C.d1) //merge the powernets...
+ C.mergeConnectedNetworks(C.d2) //...in the two new cable directions
+ C.mergeConnectedNetworksOnTurf()
- D.cableColor(color)
+ if(C.d1 & (C.d1 - 1))// if the cable is layed diagonally, check the others 2 possible directions
+ C.mergeDiagonalsNetworks(C.d1)
- D.d1 = 12
- D.d2 = 0
- D.add_fingerprint(user)
- D.updateicon()
+ if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
+ C.mergeDiagonalsNetworks(C.d2)
- PN.add_cable(D)
- D.mergeConnectedNetworksOnTurf()
-
- // do the normal stuff
- else
-///// Z-Level Stuff
- for(var/obj/structure/cable/LC in F)
- if((LC.d1 == dirn && LC.d2 == 0 ) || ( LC.d2 == dirn && LC.d1 == 0))
- user << "There's already a cable at that position."
- return
-
- var/obj/structure/cable/C = new(F)
-
- C.cableColor(color)
-
- //set up the new cable
- C.d1 = 0 //it's a O-X node cable
- C.d2 = dirn
- C.add_fingerprint(user)
- C.updateicon()
-
- //create a new powernet with the cable, if needed it will be merged later
- var/datum/powernet/PN = new()
- PN.add_cable(C)
-
- C.mergeConnectedNetworks(C.d2) //merge the powernet with adjacents powernets
- C.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets
-
- if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
- C.mergeDiagonalsNetworks(C.d2)
-
-
- use(1)
- if (C.shock(user, 50))
- if (prob(50)) //fail
- new/obj/item/stack/cable_coil(C.loc, 1, C.color)
- qdel(C)
+ use(1)
+ if (C.shock(user, 50))
+ if (prob(50)) //fail
+ new/obj/item/stack/cable_coil(C.loc, 1, C.color)
+ qdel(C)
// called when cable_coil is click on an installed obj/cable
// or click on a turf that already contains a "node" cable
@@ -745,10 +718,9 @@ obj/structure/cable/proc/cableColor(var/colorC)
return
if(get_dist(C, user) > 1) // make sure it's close enough
- user << "You can't lay cable at a place that far away."
+ to_chat(user, "You can't lay cable at a place that far away.")
return
-
if(U == T) //if clicked on the turf we're standing on, try to put a cable in the direction we're facing
turf_place(T,user)
return
@@ -758,7 +730,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
// one end of the clicked cable is pointing towards us
if(C.d1 == dirn || C.d2 == dirn)
if(!U.is_plating()) // can't place a cable if the floor is complete
- user << "You can't lay cable there unless the floor tiles are removed."
+ to_chat(user, "You can't lay cable there unless the floor tiles are removed.")
return
else
// cable is pointing at us, we're standing on an open tile
@@ -768,34 +740,9 @@ obj/structure/cable/proc/cableColor(var/colorC)
for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already
if(LC.d1 == fdirn || LC.d2 == fdirn)
- user << "There's already a cable at that position."
+ to_chat(user, "There's already a cable at that position.")
return
-
- var/obj/structure/cable/NC = new(U)
- NC.cableColor(color)
-
- NC.d1 = 0
- NC.d2 = fdirn
- NC.add_fingerprint()
- NC.updateicon()
-
- //create a new powernet with the cable, if needed it will be merged later
- var/datum/powernet/newPN = new()
- newPN.add_cable(NC)
-
- NC.mergeConnectedNetworks(NC.d2) //merge the powernet with adjacents powernets
- NC.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets
-
- if(NC.d2 & (NC.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
- NC.mergeDiagonalsNetworks(NC.d2)
-
- use(1)
-
- if (NC.shock(user, 50))
- if (prob(50)) //fail
- new/obj/item/stack/cable_coil(NC.loc, 1, NC.color)
- qdel(NC)
-
+ put_cable(U,user,0,fdirn)
return
// exisiting cable doesn't point at our position, so see if it's a stub
@@ -814,7 +761,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
if(LC == C) // skip the cable we're interacting with
continue
if((LC.d1 == nd1 && LC.d2 == nd2) || (LC.d1 == nd2 && LC.d2 == nd1) ) // make sure no cable matches either direction
- user << "There's already a cable at that position."
+ to_chat(user, "There's already a cable at that position.")
return
@@ -824,7 +771,7 @@ obj/structure/cable/proc/cableColor(var/colorC)
C.d2 = nd2
C.add_fingerprint()
- C.updateicon()
+ C.update_icon()
C.mergeConnectedNetworks(C.d1) //merge the powernets...
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 41e182b91b..f900f6fcf4 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -10,7 +10,6 @@
var/active = 0
var/power_gen = 5000
- var/open = 0
var/recent_fault = 0
var/power_output = 1
@@ -52,9 +51,9 @@
if(!..(user,1 ))
return
if(active)
- usr << "\blue The generator is on."
+ usr << "The generator is on. "
else
- usr << "\blue The generator is off."
+ usr << "The generator is off. "
/obj/machinery/power/port_gen/emp_act(severity)
var/duration = 6000 //ten minutes
@@ -63,9 +62,12 @@
stat &= BROKEN
if(prob(75)) explode()
if(2)
- if(prob(25)) stat &= BROKEN
+ if(prob(50)) stat &= BROKEN
if(prob(10)) explode()
if(3)
+ if(prob(25)) stat &= BROKEN
+ duration = 300
+ if(4)
if(prob(10)) stat &= BROKEN
duration = 300
@@ -85,10 +87,9 @@
/obj/machinery/power/port_gen/pacman
name = "\improper P.A.C.M.A.N.-type Portable Generator"
desc = "A power generator that runs on solid phoron sheets. Rated for 80 kW max safe output."
-
+ circuit = /obj/item/weapon/circuitboard/pacman
var/sheet_name = "Phoron Sheets"
var/sheet_path = /obj/item/stack/material/phoron
- var/board_path = "/obj/item/weapon/circuitboard/pacman"
/*
These values were chosen so that the generator can run safely up to 80 kW
@@ -119,16 +120,19 @@
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
- component_parts += new /obj/item/stack/cable_coil(src)
- component_parts += new /obj/item/stack/cable_coil(src)
+ component_parts += new /obj/item/stack/cable_coil(src, 2)
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
- component_parts += new board_path(src)
RefreshParts()
/obj/machinery/power/port_gen/pacman/Destroy()
DropFuel()
return ..()
+/obj/machinery/power/port_gen/pacman/dismantle()
+ while ( sheets > 0 )
+ DropFuel()
+ return ..()
+
/obj/machinery/power/port_gen/pacman/RefreshParts()
var/temp_rating = 0
for(var/obj/item/weapon/stock_parts/SP in component_parts)
@@ -259,44 +263,30 @@
var/obj/item/stack/addstack = O
var/amount = min((max_sheets - sheets), addstack.amount)
if(amount < 1)
- user << "\blue The [src.name] is full!"
+ user << "The [src.name] is full! "
return
- user << "\blue You add [amount] sheet\s to the [src.name]."
+ user << "You add [amount] sheet\s to the [src.name]. "
sheets += amount
addstack.use(amount)
updateUsrDialog()
return
else if(!active)
if(istype(O, /obj/item/weapon/wrench))
-
if(!anchored)
connect_to_network()
- user << "\blue You secure the generator to the floor."
+ user << "You secure the generator to the floor. "
else
disconnect_from_network()
- user << "\blue You unsecure the generator from the floor."
-
+ user << "You unsecure the generator from the floor. "
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
anchored = !anchored
-
- else if(istype(O, /obj/item/weapon/screwdriver))
- open = !open
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- if(open)
- user << "\blue You open the access panel."
- else
- user << "\blue You close the access panel."
- else if(istype(O, /obj/item/weapon/crowbar) && open)
- var/obj/structure/frame/new_frame = new /obj/structure/frame(src.loc)
- for(var/obj/item/I in component_parts)
- I.loc = src.loc
- while ( sheets > 0 )
- DropFuel()
-
- new_frame.frame_type = "machine"
- new_frame.state = 2
- new_frame.icon_state = "machine_1"
- qdel(src)
+ else if(default_deconstruction_screwdriver(user, O))
+ return
+ else if(default_deconstruction_crowbar(user, O))
+ return
+ else if(default_part_replacement(user, O))
+ return
+ return ..()
/obj/machinery/power/port_gen/pacman/attack_hand(mob/user as mob)
..()
@@ -401,7 +391,7 @@
sheet_path = /obj/item/stack/material/uranium
sheet_name = "Uranium Sheets"
time_per_sheet = 576 //same power output, but a 50 sheet stack will last 2 hours at max safe power
- board_path = "/obj/item/weapon/circuitboard/pacman/super"
+ circuit = /obj/item/weapon/circuitboard/pacman/super
/obj/machinery/power/port_gen/pacman/super/UseFuel()
//produces a tiny amount of radiation when in use
@@ -436,7 +426,7 @@
time_per_sheet = 576
max_temperature = 800
temperature_gain = 90
- board_path = "/obj/item/weapon/circuitboard/pacman/mrs"
+ circuit = /obj/item/weapon/circuitboard/pacman/mrs
/obj/machinery/power/port_gen/pacman/mrs/explode()
//no special effects, but the explosion is pretty big (same as a supermatter shard).
diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm
index d244c4eeaa..6683b48377 100644
--- a/code/modules/power/singularity/act.dm
+++ b/code/modules/power/singularity/act.dm
@@ -29,7 +29,7 @@
if(current_size >= STAGE_THREE)
var/list/handlist = list(l_hand, r_hand)
for(var/obj/item/hand in handlist)
- if(prob(current_size*5) && hand.w_class >= ((11-current_size)/2) && u_equip(hand))
+ if(prob(current_size*5) && hand.w_class >= ((11-current_size)/2) && unEquip(hand))
step_towards(hand, src)
src << "The [S] pulls \the [hand] from your grip! "
apply_effect(current_size * 3, IRRADIATE)
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index ecdfc0841e..39090ceac5 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -298,7 +298,7 @@
if(target && prob(60))
movement_dir = get_dir(src,target) //moves to a singulo beacon, if there is one
- if(current_size >= 9)//The superlarge one does not care about things in its way
+ if(current_size >= STAGE_FIVE)//The superlarge one does not care about things in its way
spawn(0)
step(src, movement_dir)
spawn(1)
@@ -319,17 +319,17 @@
var/steps = 0
if(!step)
switch(current_size)
- if(1)
+ if(STAGE_ONE)
steps = 1
- if(3)
+ if(STAGE_TWO)
steps = 3//Yes this is right
- if(5)
+ if(STAGE_THREE)
steps = 3
- if(7)
+ if(STAGE_FOUR)
steps = 4
- if(9)
+ if(STAGE_FIVE)
steps = 5
- if(11)
+ if(STAGE_SUPER)
steps = 6
else
steps = step
@@ -397,7 +397,7 @@
mezzer()
else
return 0
- if(current_size == 11)
+ if(current_size == STAGE_SUPER)
smwave()
return 1
@@ -429,21 +429,21 @@
if(M.stat == CONSCIOUS)
if (istype(M,/mob/living/carbon/human))
var/mob/living/carbon/human/H = M
- if(istype(H.glasses,/obj/item/clothing/glasses/meson) && current_size != 11)
+ if(istype(H.glasses,/obj/item/clothing/glasses/meson) && current_size != STAGE_SUPER)
H << "You look directly into The [src.name], good thing you had your protective eyewear on! "
return
else
H << "You look directly into The [src.name], but your eyewear does absolutely nothing to protect you from it! "
- M << "You look directly into The [src.name] and feel [current_size == 11 ? "helpless" : "weak"]. "
+ M << "You look directly into The [src.name] and feel [current_size == STAGE_SUPER ? "helpless" : "weak"]. "
M.apply_effect(3, STUN)
for(var/mob/O in viewers(M, null))
O.show_message(text("[] stares blankly at The []! ", M, src), 1)
/obj/singularity/proc/emp_area()
- if(current_size != 11)
- empulse(src, 8, 10)
+ if(current_size != STAGE_SUPER)
+ empulse(src, 4, 6, 8, 10)
else
- empulse(src, 12, 16)
+ empulse(src, 12, 14, 16, 18)
/obj/singularity/proc/smwave()
for(var/mob/living/M in view(10, src.loc))
@@ -467,15 +467,15 @@
overlays = 0
move_self = 0
switch (current_size)
- if(1)
+ if(STAGE_ONE)
overlays += image('icons/obj/singularity.dmi',"chain_s1")
- if(3)
+ if(STAGE_TWO)
overlays += image('icons/effects/96x96.dmi',"chain_s3")
- if(5)
+ if(STAGE_THREE)
overlays += image('icons/effects/160x160.dmi',"chain_s5")
- if(7)
+ if(STAGE_FOUR)
overlays += image('icons/effects/224x224.dmi',"chain_s7")
- if(9)
+ if(STAGE_FIVE)
overlays += image('icons/effects/288x288.dmi',"chain_s9")
/obj/singularity/proc/on_release()
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 12076ac499..61d5374cad 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -377,7 +377,7 @@
/obj/machinery/power/smes/proc/ion_act()
- if(src.z in config.station_levels)
+ if(src.z in using_map.station_levels)
if(prob(1)) //explosion
for(var/mob/M in viewers(src))
M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2)
@@ -393,10 +393,14 @@
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
- if(prob(50))
+ if(prob(25))
emp_act(1)
- else
+ else if(prob(25))
emp_act(2)
+ else if(prob(25))
+ emp_act(3)
+ else
+ emp_act(4)
if(prob(5)) //smoke only
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(3, 0, src.loc)
diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm
index 2f0fe9419d..de0c339c7c 100644
--- a/code/modules/power/smes_construction.dm
+++ b/code/modules/power/smes_construction.dm
@@ -212,7 +212,7 @@
h_user.adjustFireLoss(rand(10,25))
h_user.Paralyse(5)
spawn(0)
- empulse(src.loc, 2, 4)
+ empulse(src.loc, 1, 2, 3, 4)
charge = 0
if (36 to 60)
@@ -229,7 +229,7 @@
h_user.adjustFireLoss(rand(35,75))
h_user.Paralyse(12)
spawn(0)
- empulse(src.loc, 8, 16)
+ empulse(src.loc, 6, 8, 12, 16)
charge = 0
apcs_overload(1, 10)
src.ping("Caution. Output regulators malfunction. Uncontrolled discharge detected.")
@@ -345,7 +345,10 @@
usr << "\red You have disassembled the SMES cell!"
var/obj/structure/frame/M = new /obj/structure/frame(src.loc)
- M.frame_type = "machine"
+ M.frame_type = new /datum/frame/frame_types/machine
+ M.anchored = 1
+ var/obj/item/weapon/circuitboard/C = new /obj/item/weapon/circuitboard/smes
+ M.circuit = C
M.state = 2
M.icon_state = "machine_1"
for(var/obj/I in component_parts)
diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm
index 2ca770dff5..ae55edeb00 100644
--- a/code/modules/projectiles/ammunition/boxes.dm
+++ b/code/modules/projectiles/ammunition/boxes.dm
@@ -26,6 +26,10 @@
name = "speedloader (.38 rubber)"
ammo_type = /obj/item/ammo_casing/c38r
+/obj/item/ammo_magazine/c38/emp
+ name = "ammunition box (.38 haywire)"
+ ammo_type = /obj/item/ammo_casing/c38/emp
+
///////// .45 /////////
/obj/item/ammo_magazine/c45m
@@ -57,6 +61,10 @@
name = "magazine (.45 AP)"
ammo_type = /obj/item/ammo_casing/c45ap
+/obj/item/ammo_magazine/box/emp/c45
+ name = "ammunition box (.45 haywire)"
+ ammo_type = /obj/item/ammo_casing/c45/emp
+
/obj/item/ammo_magazine/c45uzi
name = "stick magazine (.45)"
icon_state = "uzi45"
@@ -272,6 +280,10 @@
max_ammo = 9
multiple_sprites = 1
+/obj/item/ammo_magazine/box/emp/a10mm
+ name = "ammunition box (10mm haywire)"
+ ammo_type = /obj/item/ammo_casing/a10mm/emp
+
///////// 5.56mm /////////
/obj/item/ammo_magazine/a556
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 2fca9a3ffd..ace4cb1fb8 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -24,6 +24,13 @@
icon_state = "r-casing"
projectile_type = /obj/item/projectile/bullet/pistol/rubber
+/obj/item/ammo_casing/c38/emp
+ name = ".38 haywire round"
+ desc = "A .38 bullet casing fitted with a single-use ion pulse generator."
+ icon_state = "empcasing"
+ projectile_type = /obj/item/projectile/ion/small
+ matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
+
/obj/item/ammo_casing/c9mm
desc = "A 9mm bullet casing."
caliber = "9mm"
@@ -87,11 +94,24 @@
icon_state = "r-casing"
projectile_type = /obj/item/projectile/energy/flash
+/obj/item/ammo_casing/c45/emp
+ name = ".45 haywire round"
+ desc = "A .45 bullet casing fitted with a single-use ion pulse generator."
+ projectile_type = /obj/item/projectile/ion/small
+ icon_state = "empcasing"
+ matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
+
/obj/item/ammo_casing/a10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = /obj/item/projectile/bullet/pistol/medium
+/obj/item/ammo_casing/a10mm/emp
+ name = "10mm haywire round"
+ desc = "A 10mm bullet casing fitted with a single-use ion pulse generator."
+ projectile_type = /obj/item/projectile/ion/small
+ icon_state = "empcasing"
+ matter = list(DEFAULT_WALL_MATERIAL = 130, "uranium" = 100)
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
@@ -150,13 +170,13 @@
projectile_type = /obj/item/projectile/energy/flash/flare
matter = list(DEFAULT_WALL_MATERIAL = 90, "glass" = 90)
-
/obj/item/ammo_casing/shotgun/emp
name = "ion shell"
desc = "An advanced shotgun round that creates a small EMP when it strikes a target."
icon_state = "empshell"
- projectile_type = /obj/item/projectile/bullet/shotgun/ion
- matter = list(DEFAULT_WALL_MATERIAL = 360, "glass" = 720)
+ projectile_type = /obj/item/projectile/ion
+// projectile_type = /obj/item/projectile/bullet/shotgun/ion
+ matter = list(DEFAULT_WALL_MATERIAL = 360, "uranium" = 240)
/obj/item/ammo_casing/a762
desc = "A 7.62mm bullet casing."
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 98dd1f987c..75d574ed63 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -223,6 +223,38 @@
attached_lock.stored_dna = list()
return 1
+/obj/item/weapon/gun/MouseDrop(obj/over_object as obj)
+ if(!canremove)
+ return
+
+ if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
+
+ if (istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech. why?
+ return
+
+ if (!( istype(over_object, /obj/screen) ))
+ return ..()
+
+ //makes sure that the thing is equipped, so that we can't drag it into our hand from miles away.
+ //there's got to be a better way of doing this.
+ if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
+ return
+
+ if (( usr.restrained() ) || ( usr.stat ))
+ return
+
+ if ((src.loc == usr) && !(istype(over_object, /obj/screen)) && !usr.unEquip(src))
+ return
+
+ switch(over_object.name)
+ if("r_hand")
+ usr.u_equip(src)
+ usr.put_in_r_hand(src)
+ if("l_hand")
+ usr.u_equip(src)
+ usr.put_in_l_hand(src)
+ src.add_fingerprint(usr)
+
/obj/item/weapon/gun/proc/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0)
if(!user || !target) return
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 4443775df5..faafd2e8c9 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -12,14 +12,18 @@
projectile_type = /obj/item/projectile/ion
/obj/item/weapon/gun/energy/ionrifle/emp_act(severity)
- ..(max(severity, 2)) //so it doesn't EMP itself, I guess
+ ..(max(severity, 4)) //so it doesn't EMP itself, I guess
-/obj/item/weapon/gun/energy/ionrifle/update_icon()
- ..()
- if(power_supply.charge < charge_cost)
- item_state = "ionrifle0"
- else
- item_state = initial(item_state)
+/obj/item/weapon/gun/energy/ionrifle/pistol
+ name = "ion pistol"
+ desc = "The NT Mk63 EW Pan is a man portable anti-armor weapon designed to disable mechanical threats, produced by NT. This model sacrifices capacity for portability.."
+ icon_state = "ionpistol"
+ item_state = null
+ w_class = ITEMSIZE_NORMAL
+ force = 5
+ slot_flags = SLOT_BELT
+ charge_cost = 480
+ projectile_type = /obj/item/projectile/ion
/obj/item/weapon/gun/energy/decloner
name = "biological demolecularisor"
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 6c00f9431a..0be77be543 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -301,7 +301,7 @@
/obj/item/weapon/gun/projectile/automatic/p90
name = "personal defense weapon"
- desc = "The H90K is a compact, high capacity submachine gun produced by Hephaistos Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
+ desc = "The H90K is a compact, high capacity submachine gun produced by Hephaestus Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
icon_state = "p90smg"
item_state = "p90"
w_class = ITEMSIZE_NORMAL
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 7de8e7b877..1e95f4a213 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -76,6 +76,10 @@
fire_sound = 'sound/weapons/Gunshot_light.ogg'
ammo_type = /obj/item/ammo_casing/c38
+/obj/item/weapon/gun/projectile/revolver/deckard/emp
+ ammo_type = /obj/item/ammo_casing/c38/emp
+
+
/obj/item/weapon/gun/projectile/revolver/deckard/update_icon()
..()
if(loaded.len)
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 29d130612f..f87f726bf3 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -172,7 +172,8 @@
range_step = 1
spread_step = 10
-//EMP shotgun 'slug', it's basically a beanbag that pops a tiny emp when it hits.
+
+//EMP shotgun 'slug', it's basically a beanbag that pops a tiny emp when it hits. //Not currently used
/obj/item/projectile/bullet/shotgun/ion
name = "ion slug"
damage = 15
@@ -182,9 +183,10 @@
/obj/item/projectile/bullet/shotgun/ion/on_hit(var/atom/target, var/blocked = 0)
..()
- empulse(target, 0, 0) //Only affects what it hits
+ empulse(target, 0, 0, 0, 0) //Only affects what it hits
return 1
+
/* "Rifle" rounds */
/obj/item/projectile/bullet/rifle
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 5345f06dc9..54a2d301c7 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -6,7 +6,6 @@
check_armour = "energy"
var/flash_strength = 10
-
//releases a burst of light on impact or after travelling a distance
/obj/item/projectile/energy/flash
name = "chemical shell"
@@ -64,10 +63,8 @@
/obj/item/projectile/energy/electrode
name = "electrode"
icon_state = "spark"
- nodamage = 1
taser_effect = 1
agony = 40
- damage_type = HALLOSS
light_range = 2
light_power = 0.5
light_color = "#FFFFFF"
@@ -79,7 +76,6 @@
/obj/item/projectile/energy/electrode/stunshot
name = "stunshot"
damage = 5
- taser_effect = 1
agony = 80
/obj/item/projectile/energy/declone
@@ -107,7 +103,6 @@
icon_state = "cbbolt"
damage = 10
damage_type = TOX
- nodamage = 0
agony = 40
stutter = 10
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 8aba3c0928..b507afc316 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -8,12 +8,16 @@
light_range = 2
light_power = 0.5
light_color = "#55AAFF"
+ var/pulse_range = 1
on_hit(var/atom/target, var/blocked = 0)
- empulse(target, 1, 1)
+ empulse(target, pulse_range, pulse_range, pulse_range, pulse_range)
return 1
+/obj/item/projectile/ion/small
+ pulse_range = 0
+
/obj/item/projectile/bullet/gyro
name ="explosive bolt"
icon_state= "bolter"
diff --git a/code/modules/random_map/drop/drop_types.dm b/code/modules/random_map/drop/drop_types.dm
index d125fcebbf..514e173896 100644
--- a/code/modules/random_map/drop/drop_types.dm
+++ b/code/modules/random_map/drop/drop_types.dm
@@ -112,7 +112,7 @@ datum/supply_drop_loot/riot
/obj/item/weapon/melee/baton,
/obj/item/clothing/glasses/sunglasses/sechud/tactical,
/obj/item/weapon/storage/belt/security,
- /obj/item/clothing/shoes/jackboots,
+ /obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/gloves/black,
/obj/item/weapon/gun/projectile/shotgun/pump,
/obj/item/weapon/gun/energy/gun,
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 38f558721e..78b33ef36e 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -47,27 +47,27 @@
/obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
- if(istype(B, /obj/item/weapon/reagent_containers/glass))
+ if(istype(B, /obj/item/weapon/reagent_containers/glass) || istype(B, /obj/item/weapon/reagent_containers/food))
if(src.beaker)
- user << "A beaker is already loaded into the machine."
+ user << "\A [beaker] is already loaded into the machine."
return
src.beaker = B
user.drop_item()
B.loc = src
- user << "You add the beaker to the machine!"
+ user << "You add \the [B] to the machine!"
icon_state = "mixer1"
else if(istype(B, /obj/item/weapon/storage/pill_bottle))
if(src.loaded_pill_bottle)
- user << "A pill bottle is already loaded into the machine."
+ user << "A \the [loaded_pill_bottle] s already loaded into the machine."
return
src.loaded_pill_bottle = B
user.drop_item()
B.loc = src
- user << "You add the pill bottle into the dispenser slot!"
+ user << "You add \the [loaded_pill_bottle] into the dispenser slot!"
return
/obj/machinery/chem_master/attack_hand(mob/user as mob)
@@ -372,9 +372,6 @@
src.updateUsrDialog()
return 0
-/obj/machinery/reagentgrinder/attack_ai(mob/user as mob)
- return 0
-
/obj/machinery/reagentgrinder/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 9e7fbd461f..723db2ace7 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -26,7 +26,8 @@
var/touch_met = 0
var/dose = 0
var/max_dose = 0
- var/overdose = 0
+ var/overdose = 0 //Amount at which overdose starts
+ var/overdose_mod = 2 //Modifier to overdose damage
var/scannable = 0 // Shows up on health analyzers.
var/affects_dead = 0
var/cup_icon_state = null
@@ -60,8 +61,6 @@
return
if(!affects_dead && M.stat == DEAD)
return
- if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
- overdose(M, alien)
var/removed = metabolism
if(!mrate_static == TRUE)
removed *= M.species.metabolic_rate
@@ -80,6 +79,8 @@
affect_ingest(M, alien, removed)
if(CHEM_TOUCH)
affect_touch(M, alien, removed)
+ if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
+ overdose(M, alien, removed)
remove_self(removed)
return
@@ -93,9 +94,13 @@
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
return
-/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien) // Overdose effect. Doesn't happen instantly.
- M.adjustToxLoss(REM)
- return
+/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien, var/removed) // Overdose effect. Doesn't happen instantly.
+ if(alien == IS_DIONA)
+ return
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ overdose_mod *= H.species.chemOD_mod
+ M.adjustToxLoss(removed * overdose_mod)
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
if(!isnull(newdata))
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index 44ad6f24a2..091842663d 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -349,7 +349,7 @@
if(affecting.take_damage(0, removed * power * 0.1))
H.UpdateDamageIcon()
if(prob(100 * removed / meltdose)) // Applies disfigurement
- if (affecting.can_feel_pain())
+ if (affecting.organ_can_feel_pain())
H.emote("scream")
H.status_flags |= DISFIGURED
else
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 5cff9231a1..95f661d7a5 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -28,9 +28,10 @@
var/totalFlavor = 0
for(var/taste in data)
totalFlavor += data[taste]
- for(var/taste in data)
- if(data[taste]/totalFlavor < 0.1)
- data -= taste
+ if(totalFlavor) //Let's not divide by zero for things w/o taste
+ for(var/taste in data)
+ if(data[taste]/totalFlavor < 0.1)
+ data -= taste
/datum/reagent/nutriment/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(!injectable)
@@ -114,7 +115,7 @@
M.drowsyness = max(M.drowsyness, 60)
/datum/reagent/nutriment/flour
- name = "flour"
+ name = "Flour"
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
taste_description = "chalky wheat"
@@ -699,6 +700,71 @@
cup_name = "cup of iced tea"
cup_desc = "No relation to a certain rap artist/ actor."
+/datum/reagent/drink/tea/minttea
+ name = "Mint Tea"
+ id = "minttea"
+ description = "A tasty mixture of mint and tea. It's apparently good for you!"
+ color = "#A8442C"
+ taste_description = "black tea with tones of mint"
+
+ glass_name = "mint tea"
+ glass_desc = "A tasty mixture of mint and tea. It's apparently good for you!"
+
+ cup_name = "cup of mint tea"
+ cup_desc = "A tasty mixture of mint and tea. It's apparently good for you!"
+
+/datum/reagent/drink/tea/lemontea
+ name = "Lemon Tea"
+ id = "lemontea"
+ description = "A tasty mixture of lemon and tea. It's apparently good for you!"
+ color = "#FC6A00"
+ taste_description = "black tea with tones of lemon"
+
+ glass_name = "lemon tea"
+ glass_desc = "A tasty mixture of lemon and tea. It's apparently good for you!"
+
+ cup_name = "cup of lemon tea"
+ cup_desc = "A tasty mixture of lemon and tea. It's apparently good for you!"
+
+/datum/reagent/drink/tea/limetea
+ name = "Lime Tea"
+ id = "limetea"
+ description = "A tasty mixture of lime and tea. It's apparently good for you!"
+ color = "#DE4300"
+ taste_description = "black tea with tones of lime"
+
+ glass_name = "lime tea"
+ glass_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
+
+ cup_name = "cup of berry tea"
+ cup_desc = "A tasty mixture of lime and tea. It's apparently good for you!"
+
+/datum/reagent/drink/tea/orangetea
+ name = "Orange Tea"
+ id = "orangetea"
+ description = "A tasty mixture of orange and tea. It's apparently good for you!"
+ color = "#FB4F06"
+ taste_description = "black tea with tones of orange"
+
+ glass_name = "orange tea"
+ glass_desc = "A tasty mixture of orange and tea. It's apparently good for you!"
+
+ cup_name = "cup of orange tea"
+ cup_desc = "A tasty mixture of orange and tea. It's apparently good for you!"
+
+/datum/reagent/drink/tea/berrytea
+ name = "Berry Tea"
+ id = "berrytea"
+ description = "A tasty mixture of berries and tea. It's apparently good for you!"
+ color = "#A60735"
+ taste_description = "black tea with tones of berries"
+
+ glass_name = "berry tea"
+ glass_desc = "A tasty mixture of berries and tea. It's apparently good for you!"
+
+ cup_name = "cup of berry tea"
+ cup_desc = "A tasty mixture of berries and tea. It's apparently good for you!"
+
/datum/reagent/drink/coffee
name = "Coffee"
id = "coffee"
@@ -2165,3 +2231,4 @@
glass_name = "special blend whiskey"
glass_desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
+
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index c049f3c0e9..6760f8a9d9 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -14,8 +14,8 @@
/datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien != IS_DIONA)
- M.add_chemical_effect(CE_STABLE)
- M.add_chemical_effect(CE_PAINKILLER, 25)
+ M.add_chemical_effect(CE_STABLE, 15)
+ M.add_chemical_effect(CE_PAINKILLER, 10)
/datum/reagent/bicaridine
name = "Bicaridine"
@@ -32,6 +32,23 @@
if(alien != IS_DIONA)
M.heal_organ_damage(6 * removed, 0)
+/datum/reagent/bicaridine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ var/wound_heal = 1.5 * removed
+ M.eye_blurry += (wound_heal)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ for(var/obj/item/organ/external/O in H.bad_external_organs)
+ for(var/datum/wound/W in O.wounds)
+ if(W.bleeding())
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+ if(W.internal)
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+
/datum/reagent/kelotane
name = "Kelotane"
id = "kelotane"
@@ -76,6 +93,29 @@
M.hallucination = max(0, M.hallucination - 9 * removed)
M.adjustToxLoss(-4 * removed)
+/datum/reagent/carthatoline
+ name = "carthatoline"
+ id = "carthatoline"
+ description = "Carthatoline is strong evacuant used to treat severe poisoning."
+ reagent_state = LIQUID
+ color = "#225722"
+ scannable = 1
+
+/datum/reagent/carthatoline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
+ if(M.getToxLoss() && prob(10))
+ M.vomit(1)
+ M.adjustToxLoss(-8 * removed)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/obj/item/organ/internal/liver/L = H.internal_organs_by_name[O_LIVER]
+ if(istype(L))
+ if(L.robotic >= ORGAN_ROBOT)
+ return
+ if(L.damage > 0)
+ L.damage = max(L.damage - 2 * removed, 0)
+
/datum/reagent/dexalin
name = "Dexalin"
id = "dexalin"
@@ -109,7 +149,7 @@
if(alien == IS_VOX)
M.adjustToxLoss(removed * 9)
else if(alien != IS_DIONA)
- M.adjustOxyLoss(-300 * removed)
+ M.adjustOxyLoss(-150 * removed)
holder.remove_reagent("lexorin", 3 * removed)
@@ -179,7 +219,7 @@
mrate_static = TRUE
/datum/reagent/paracetamol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- M.add_chemical_effect(CE_PAINKILLER, 50)
+ M.add_chemical_effect(CE_PAINKILLER, 25)
/datum/reagent/paracetamol/overdose(var/mob/living/carbon/M, var/alien)
..()
@@ -217,6 +257,8 @@
/datum/reagent/oxycodone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.add_chemical_effect(CE_PAINKILLER, 200)
+ M.eye_blurry += 10
+ M.confused += 5
/datum/reagent/oxycodone/overdose(var/mob/living/carbon/M, var/alien)
..()
@@ -246,7 +288,7 @@
holder.remove_reagent("mindbreaker", 5)
M.hallucination = max(0, M.hallucination - 10)
M.adjustToxLoss(5 * removed) // It used to be incredibly deadly due to an oversight. Not anymore!
- M.add_chemical_effect(CE_PAINKILLER, 40)
+ M.add_chemical_effect(CE_PAINKILLER, 20)
/datum/reagent/alkysine
name = "Alkysine"
@@ -307,9 +349,62 @@
continue
if(I.damage > 0) //Peridaxon heals only non-robotic organs
I.damage = max(I.damage - removed, 0)
+ H.confused += 5
if(I.damage <= 5 && I.organ_tag == O_EYES)
+ H.eye_blurry += 10 //Eyes need to reset, or something
H.sdisabilities &= ~BLIND
+/datum/reagent/osteodaxon
+ name = "Osteodaxon"
+ id = "osteodaxon"
+ description = "An experimental drug used to heal bone fractures."
+ reagent_state = LIQUID
+ color = "#C9BCE3"
+ metabolism = REM * 0.5
+ overdose = REAGENTS_OVERDOSE * 0.5
+ scannable = 1
+
+/datum/reagent/osteodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
+ M.heal_organ_damage(3 * removed, 0) //Gives the bones a chance to set properly even without other meds
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ for(var/obj/item/organ/external/O in H.bad_external_organs)
+ if(O.status & ORGAN_BROKEN)
+ O.mend_fracture() //Only works if the bone won't rebreak, as usual
+ H.custom_pain("You feel a terrible agony tear through your bones!",60)
+ H.AdjustWeakened(1) //Bones being regrown will knock you over
+
+/datum/reagent/myelamine
+ name = "Myelamine"
+ id = "myelamine"
+ description = "Used to rapidly clot internal hemorrhages by increasing the effectiveness of platelets."
+ reagent_state = LIQUID
+ color = "#4246C7"
+ metabolism = REM * 0.5
+ overdose = REAGENTS_OVERDOSE * 0.5
+ scannable = 1
+ var/repair_strength = 3
+
+/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
+ M.eye_blurry += (repair_strength * removed)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/wound_heal = removed * repair_strength
+ for(var/obj/item/organ/external/O in H.bad_external_organs)
+ for(var/datum/wound/W in O.wounds)
+ if(W.bleeding())
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+ if(W.internal)
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+
/datum/reagent/ryetalyn
name = "Ryetalyn"
id = "ryetalyn"
@@ -364,6 +459,8 @@
scannable = 1
/datum/reagent/hyronalin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
M.radiation = max(M.radiation - 30 * removed, 0)
/datum/reagent/arithrazine
@@ -378,6 +475,8 @@
scannable = 1
/datum/reagent/arithrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
M.radiation = max(M.radiation - 70 * removed, 0)
M.adjustToxLoss(-10 * removed)
if(prob(60))
@@ -432,11 +531,35 @@
scannable = 1
/datum/reagent/leporazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
else if(M.bodytemperature < 311)
M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
+/datum/reagent/rezadone
+ name = "Rezadone"
+ id = "rezadone"
+ description = "A powder with almost magical properties, this substance can effectively treat genetic damage in humanoids, though excessive consumption has side effects."
+ reagent_state = SOLID
+ color = "#669900"
+ overdose = REAGENTS_OVERDOSE
+ scannable = 1
+
+/datum/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_DIONA)
+ return
+ M.adjustCloneLoss(-20 * removed)
+ M.adjustOxyLoss(-2 * removed)
+ M.heal_organ_damage(20 * removed, 20 * removed)
+ M.adjustToxLoss(-20 * removed)
+ if(dose > 3)
+ M.status_flags &= ~DISFIGURED
+ if(dose > 10)
+ M.make_dizzy(5)
+ M.make_jittery(5)
+
/* Antidepressants */
#define ANTIDEPRESSANT_MESSAGE_DELAY 5*60*10
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 15ff2e4f80..6e34257e4a 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -43,6 +43,13 @@
color = "#003333"
strength = 10
+/datum/reagent/toxin/spidertoxin
+ name = "Spidertoxin"
+ id = "spidertoxin"
+ description = "A liquifying toxin produced by giant spiders."
+ color = "#2CE893"
+ strength = 5
+
/datum/reagent/toxin/phoron
name = "Phoron"
id = "phoron"
@@ -381,6 +388,7 @@
color = "#000067"
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 5 //For that good, lethal feeling
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -406,6 +414,11 @@
if(effective_dose > 1 * threshold)
M.adjustToxLoss(removed)
+/datum/reagent/chloralhydrate/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ M.losebreath = (min(M.losebreath + 1, 10))
+ M.adjustOxyLoss(removed * overdose_mod)
+
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
name = "Beer"
id = "beer2"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 4d7d13e5b3..a0a6a89cb2 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -160,6 +160,14 @@
required_reagents = list("silicon" = 1, "potassium" = 1, "nitrogen" = 1)
result_amount = 3
+/datum/chemical_reaction/carthatoline
+ name = "Carthatoline"
+ id = "carthatoline"
+ result = "carthatoline"
+ required_reagents = list("dylovene" = 1, "carbon" = 2, "phoron" = 0.1)
+ catalysts = list("phoron" = 1)
+ result_amount = 2
+
/datum/chemical_reaction/tramadol
name = "Tramadol"
id = "tramadol"
@@ -282,6 +290,15 @@
catalysts = list("phoron" = 5)
result_amount = 2
+/datum/chemical_reaction/osteodaxon
+ name = "Osteodaxon"
+ id = "osteodaxon"
+ result = "osteodaxon"
+ required_reagents = list("bicaridine" = 2, "phoron" = 0.1, "carpotoxin" = 1)
+ catalysts = list("phoron" = 5)
+ inhibitors = list("clonexadone" = 1) // Messes with cryox
+ result_amount = 2
+
/datum/chemical_reaction/virus_food
name = "Virus Food"
id = "virusfood"
@@ -349,6 +366,13 @@
inhibitors = list("sugar" = 1) // Messes up with inaprovaline
result_amount = 2
+/datum/chemical_reaction/myelamine
+ name = "Myelamine"
+ id = "myelamine"
+ result = "myelamine"
+ required_reagents = list("bicaridine" = 1, "iron" = 2, "spidertoxin" = 1)
+ result_amount = 2
+
/datum/chemical_reaction/hyperzine
name = "Hyperzine"
id = "hyperzine"
@@ -557,7 +581,6 @@
required_reagents = list("mindbreaker" = 1, "carbon" = 1)
result_amount = 3
-
/datum/chemical_reaction/paroxetine
name = "Paroxetine"
id = "paroxetine"
@@ -565,6 +588,20 @@
required_reagents = list("mindbreaker" = 1, "oxygen" = 1, "inaprovaline" = 1)
result_amount = 3
+/datum/chemical_reaction/neurotoxin
+ name = "Neurotoxin"
+ id = "neurotoxin"
+ result = "neurotoxin"
+ required_reagents = list("gargleblaster" = 1, "stoxin" = 1)
+ result_amount = 2
+
+/datum/chemical_reaction/luminol
+ name = "Luminol"
+ id = "luminol"
+ result = "luminol"
+ required_reagents = list("hydrogen" = 2, "carbon" = 2, "ammonia" = 2)
+ result_amount = 6
+
/* Solidification */
/datum/chemical_reaction/phoronsolidification
@@ -652,7 +689,7 @@
var/location = get_turf(holder.my_atom)
// 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
// 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
- empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
+ empulse(location, round(created_volume / 24), round(created_volume / 20), round(created_volume / 18), round(created_volume / 14), 1)
holder.clear_reagents()
return
@@ -1027,7 +1064,7 @@
/* Food */
-/datum/chemical_reaction/tofu
+/datum/chemical_reaction/food/tofu
name = "Tofu"
id = "tofu"
result = null
@@ -1035,60 +1072,60 @@
catalysts = list("enzyme" = 5)
result_amount = 1
-/datum/chemical_reaction/tofu/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/tofu/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/tofu(location)
return
-/datum/chemical_reaction/chocolate_bar
+/datum/chemical_reaction/food/chocolate_bar
name = "Chocolate Bar"
id = "chocolate_bar"
result = null
required_reagents = list("soymilk" = 2, "coco" = 2, "sugar" = 2)
result_amount = 1
-/datum/chemical_reaction/chocolate_bar/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/chocolate_bar/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
-/datum/chemical_reaction/chocolate_bar2
+/datum/chemical_reaction/food/chocolate_bar2
name = "Chocolate Bar"
id = "chocolate_bar"
result = null
required_reagents = list("milk" = 2, "coco" = 2, "sugar" = 2)
result_amount = 1
-/datum/chemical_reaction/chocolate_bar2/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/chocolate_bar2/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
-/datum/chemical_reaction/hot_coco
+/datum/chemical_reaction/drinks/hot_coco
name = "Hot Coco"
id = "hot_coco"
result = "hot_coco"
required_reagents = list("water" = 5, "coco" = 1)
result_amount = 5
-/datum/chemical_reaction/soysauce
+/datum/chemical_reaction/food/soysauce
name = "Soy Sauce"
id = "soysauce"
result = "soysauce"
required_reagents = list("soymilk" = 4, "sacid" = 1)
result_amount = 5
-/datum/chemical_reaction/ketchup
+/datum/chemical_reaction/food/ketchup
name = "Ketchup"
id = "ketchup"
result = "ketchup"
required_reagents = list("tomatojuice" = 2, "water" = 1, "sugar" = 1)
result_amount = 4
-/datum/chemical_reaction/cheesewheel
+/datum/chemical_reaction/food/cheesewheel
name = "Cheesewheel"
id = "cheesewheel"
result = null
@@ -1096,46 +1133,46 @@
catalysts = list("enzyme" = 5)
result_amount = 1
-/datum/chemical_reaction/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel(location)
return
-/datum/chemical_reaction/meatball
+/datum/chemical_reaction/food/meatball
name = "Meatball"
id = "meatball"
result = null
required_reagents = list("protein" = 3, "flour" = 5)
result_amount = 3
-/datum/chemical_reaction/meatball/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/meatball/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meatball(location)
return
-/datum/chemical_reaction/dough
+/datum/chemical_reaction/food/dough
name = "Dough"
id = "dough"
result = null
required_reagents = list("egg" = 3, "flour" = 10)
result_amount = 1
-/datum/chemical_reaction/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/dough/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
return
-/datum/chemical_reaction/syntiflesh
+/datum/chemical_reaction/food/syntiflesh
name = "Syntiflesh"
id = "syntiflesh"
result = null
required_reagents = list("blood" = 5, "clonexadone" = 1)
result_amount = 1
-/datum/chemical_reaction/syntiflesh/on_reaction(var/datum/reagents/holder, var/created_volume)
+/datum/chemical_reaction/food/syntiflesh/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
@@ -1157,49 +1194,49 @@
/* Alcohol */
-/datum/chemical_reaction/goldschlager
+/datum/chemical_reaction/drinks/goldschlager
name = "Goldschlager"
id = "goldschlager"
result = "goldschlager"
required_reagents = list("vodka" = 10, "gold" = 1)
result_amount = 10
-/datum/chemical_reaction/patron
+/datum/chemical_reaction/drinks/patron
name = "Patron"
id = "patron"
result = "patron"
required_reagents = list("tequilla" = 10, "silver" = 1)
result_amount = 10
-/datum/chemical_reaction/bilk
+/datum/chemical_reaction/drinks/bilk
name = "Bilk"
id = "bilk"
result = "bilk"
required_reagents = list("milk" = 1, "beer" = 1)
result_amount = 2
-/datum/chemical_reaction/icetea
+/datum/chemical_reaction/drinks/icetea
name = "Iced Tea"
id = "icetea"
result = "icetea"
required_reagents = list("ice" = 1, "tea" = 2)
result_amount = 3
-/datum/chemical_reaction/icecoffee
+/datum/chemical_reaction/drinks/icecoffee
name = "Iced Coffee"
id = "icecoffee"
result = "icecoffee"
required_reagents = list("ice" = 1, "coffee" = 2)
result_amount = 3
-/datum/chemical_reaction/nuka_cola
+/datum/chemical_reaction/drinks/nuka_cola
name = "Nuka Cola"
id = "nuka_cola"
result = "nuka_cola"
required_reagents = list("uranium" = 1, "cola" = 5)
result_amount = 5
-/datum/chemical_reaction/moonshine
+/datum/chemical_reaction/drinks/moonshine
name = "Moonshine"
id = "moonshine"
result = "moonshine"
@@ -1207,7 +1244,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/grenadine
+/datum/chemical_reaction/drinks/grenadine
name = "Grenadine Syrup"
id = "grenadine"
result = "grenadine"
@@ -1215,7 +1252,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/wine
+/datum/chemical_reaction/drinks/wine
name = "Wine"
id = "wine"
result = "wine"
@@ -1223,7 +1260,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/pwine
+/datum/chemical_reaction/drinks/pwine
name = "Poison Wine"
id = "pwine"
result = "pwine"
@@ -1231,7 +1268,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/melonliquor
+/datum/chemical_reaction/drinks/melonliquor
name = "Melon Liquor"
id = "melonliquor"
result = "melonliquor"
@@ -1239,7 +1276,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/bluecuracao
+/datum/chemical_reaction/drinks/bluecuracao
name = "Blue Curacao"
id = "bluecuracao"
result = "bluecuracao"
@@ -1247,7 +1284,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/spacebeer
+/datum/chemical_reaction/drinks/spacebeer
name = "Space Beer"
id = "spacebeer"
result = "beer"
@@ -1255,7 +1292,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/vodka
+/datum/chemical_reaction/drinks/vodka
name = "Vodka"
id = "vodka"
result = "vodka"
@@ -1263,7 +1300,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/sake
+/datum/chemical_reaction/drinks/sake
name = "Sake"
id = "sake"
result = "sake"
@@ -1271,7 +1308,7 @@
catalysts = list("enzyme" = 5)
result_amount = 10
-/datum/chemical_reaction/kahlua
+/datum/chemical_reaction/drinks/kahlua
name = "Kahlua"
id = "kahlua"
result = "kahlua"
@@ -1279,287 +1316,287 @@
catalysts = list("enzyme" = 5)
result_amount = 5
-/datum/chemical_reaction/gin_tonic
+/datum/chemical_reaction/drinks/gin_tonic
name = "Gin and Tonic"
id = "gintonic"
result = "gintonic"
required_reagents = list("gin" = 2, "tonic" = 1)
result_amount = 3
-/datum/chemical_reaction/cuba_libre
+/datum/chemical_reaction/drinks/cuba_libre
name = "Cuba Libre"
id = "cubalibre"
result = "cubalibre"
required_reagents = list("rum" = 2, "cola" = 1)
result_amount = 3
-/datum/chemical_reaction/martini
+/datum/chemical_reaction/drinks/martini
name = "Classic Martini"
id = "martini"
result = "martini"
required_reagents = list("gin" = 2, "vermouth" = 1)
result_amount = 3
-/datum/chemical_reaction/vodkamartini
+/datum/chemical_reaction/drinks/vodkamartini
name = "Vodka Martini"
id = "vodkamartini"
result = "vodkamartini"
required_reagents = list("vodka" = 2, "vermouth" = 1)
result_amount = 3
-/datum/chemical_reaction/white_russian
+/datum/chemical_reaction/drinks/white_russian
name = "White Russian"
id = "whiterussian"
result = "whiterussian"
required_reagents = list("blackrussian" = 2, "cream" = 1)
result_amount = 3
-/datum/chemical_reaction/whiskey_cola
+/datum/chemical_reaction/drinks/whiskey_cola
name = "Whiskey Cola"
id = "whiskeycola"
result = "whiskeycola"
required_reagents = list("whiskey" = 2, "cola" = 1)
result_amount = 3
-/datum/chemical_reaction/screwdriver
+/datum/chemical_reaction/drinks/screwdriver
name = "Screwdriver"
id = "screwdrivercocktail"
result = "screwdrivercocktail"
required_reagents = list("vodka" = 2, "orangejuice" = 1)
result_amount = 3
-/datum/chemical_reaction/bloody_mary
+/datum/chemical_reaction/drinks/bloody_mary
name = "Bloody Mary"
id = "bloodymary"
result = "bloodymary"
required_reagents = list("vodka" = 2, "tomatojuice" = 3, "limejuice" = 1)
result_amount = 6
-/datum/chemical_reaction/gargle_blaster
+/datum/chemical_reaction/drinks/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
id = "gargleblaster"
result = "gargleblaster"
required_reagents = list("vodka" = 2, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1)
result_amount = 6
-/datum/chemical_reaction/brave_bull
+/datum/chemical_reaction/drinks/brave_bull
name = "Brave Bull"
id = "bravebull"
result = "bravebull"
required_reagents = list("tequilla" = 2, "kahlua" = 1)
result_amount = 3
-/datum/chemical_reaction/tequilla_sunrise
+/datum/chemical_reaction/drinks/tequilla_sunrise
name = "Tequilla Sunrise"
id = "tequillasunrise"
result = "tequillasunrise"
required_reagents = list("tequilla" = 2, "orangejuice" = 1)
result_amount = 3
-/datum/chemical_reaction/phoron_special
+/datum/chemical_reaction/drinks/phoron_special
name = "Toxins Special"
id = "phoronspecial"
result = "phoronspecial"
required_reagents = list("rum" = 2, "vermouth" = 2, "phoron" = 2)
result_amount = 6
-/datum/chemical_reaction/beepsky_smash
+/datum/chemical_reaction/drinks/beepsky_smash
name = "Beepksy Smash"
id = "beepksysmash"
result = "beepskysmash"
required_reagents = list("limejuice" = 1, "whiskey" = 1, "iron" = 1)
result_amount = 2
-/datum/chemical_reaction/doctor_delight
+/datum/chemical_reaction/drinks/doctor_delight
name = "The Doctor's Delight"
id = "doctordelight"
result = "doctorsdelight"
required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 2, "tricordrazine" = 1)
result_amount = 6
-/datum/chemical_reaction/irish_cream
+/datum/chemical_reaction/drinks/irish_cream
name = "Irish Cream"
id = "irishcream"
result = "irishcream"
required_reagents = list("whiskey" = 2, "cream" = 1)
result_amount = 3
-/datum/chemical_reaction/manly_dorf
+/datum/chemical_reaction/drinks/manly_dorf
name = "The Manly Dorf"
id = "manlydorf"
result = "manlydorf"
required_reagents = list ("beer" = 1, "ale" = 2)
result_amount = 3
-/datum/chemical_reaction/hooch
+/datum/chemical_reaction/drinks/hooch
name = "Hooch"
id = "hooch"
result = "hooch"
required_reagents = list ("sugar" = 1, "ethanol" = 2, "fuel" = 1)
result_amount = 3
-/datum/chemical_reaction/irish_coffee
+/datum/chemical_reaction/drinks/irish_coffee
name = "Irish Coffee"
id = "irishcoffee"
result = "irishcoffee"
required_reagents = list("irishcream" = 1, "coffee" = 1)
result_amount = 2
-/datum/chemical_reaction/b52
+/datum/chemical_reaction/drinks/b52
name = "B-52"
id = "b52"
result = "b52"
required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1)
result_amount = 3
-/datum/chemical_reaction/atomicbomb
+/datum/chemical_reaction/drinks/atomicbomb
name = "Atomic Bomb"
id = "atomicbomb"
result = "atomicbomb"
required_reagents = list("b52" = 10, "uranium" = 1)
result_amount = 10
-/datum/chemical_reaction/margarita
+/datum/chemical_reaction/drinks/margarita
name = "Margarita"
id = "margarita"
result = "margarita"
required_reagents = list("tequilla" = 2, "limejuice" = 1)
result_amount = 3
-/datum/chemical_reaction/longislandicedtea
+/datum/chemical_reaction/drinks/longislandicedtea
name = "Long Island Iced Tea"
id = "longislandicedtea"
result = "longislandicedtea"
required_reagents = list("vodka" = 1, "gin" = 1, "tequilla" = 1, "cubalibre" = 3)
result_amount = 6
-/datum/chemical_reaction/icedtea
+/datum/chemical_reaction/drinks/icedtea
name = "Long Island Iced Tea"
id = "longislandicedtea"
result = "longislandicedtea"
required_reagents = list("vodka" = 1, "gin" = 1, "tequilla" = 1, "cubalibre" = 3)
result_amount = 6
-/datum/chemical_reaction/threemileisland
+/datum/chemical_reaction/drinks/threemileisland
name = "Three Mile Island Iced Tea"
id = "threemileisland"
result = "threemileisland"
required_reagents = list("longislandicedtea" = 10, "uranium" = 1)
result_amount = 10
-/datum/chemical_reaction/whiskeysoda
+/datum/chemical_reaction/drinks/whiskeysoda
name = "Whiskey Soda"
id = "whiskeysoda"
result = "whiskeysoda"
required_reagents = list("whiskey" = 2, "sodawater" = 1)
result_amount = 3
-/datum/chemical_reaction/black_russian
+/datum/chemical_reaction/drinks/black_russian
name = "Black Russian"
id = "blackrussian"
result = "blackrussian"
required_reagents = list("vodka" = 2, "kahlua" = 1)
result_amount = 3
-/datum/chemical_reaction/manhattan
+/datum/chemical_reaction/drinks/manhattan
name = "Manhattan"
id = "manhattan"
result = "manhattan"
required_reagents = list("whiskey" = 2, "vermouth" = 1)
result_amount = 3
-/datum/chemical_reaction/manhattan_proj
+/datum/chemical_reaction/drinks/manhattan_proj
name = "Manhattan Project"
id = "manhattan_proj"
result = "manhattan_proj"
required_reagents = list("manhattan" = 10, "uranium" = 1)
result_amount = 10
-/datum/chemical_reaction/vodka_tonic
+/datum/chemical_reaction/drinks/vodka_tonic
name = "Vodka and Tonic"
id = "vodkatonic"
result = "vodkatonic"
required_reagents = list("vodka" = 2, "tonic" = 1)
result_amount = 3
-/datum/chemical_reaction/gin_fizz
+/datum/chemical_reaction/drinks/gin_fizz
name = "Gin Fizz"
id = "ginfizz"
result = "ginfizz"
required_reagents = list("gin" = 1, "sodawater" = 1, "limejuice" = 1)
result_amount = 3
-/datum/chemical_reaction/bahama_mama
+/datum/chemical_reaction/drinks/bahama_mama
name = "Bahama mama"
id = "bahama_mama"
result = "bahama_mama"
required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1)
result_amount = 6
-/datum/chemical_reaction/singulo
+/datum/chemical_reaction/drinks/singulo
name = "Singulo"
id = "singulo"
result = "singulo"
required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5)
result_amount = 10
-/datum/chemical_reaction/alliescocktail
+/datum/chemical_reaction/drinks/alliescocktail
name = "Allies Cocktail"
id = "alliescocktail"
result = "alliescocktail"
required_reagents = list("martini" = 1, "vodka" = 1)
result_amount = 2
-/datum/chemical_reaction/demonsblood
+/datum/chemical_reaction/drinks/demonsblood
name = "Demons Blood"
id = "demonsblood"
result = "demonsblood"
required_reagents = list("rum" = 3, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1)
result_amount = 6
-/datum/chemical_reaction/booger
+/datum/chemical_reaction/drinks/booger
name = "Booger"
id = "booger"
result = "booger"
required_reagents = list("cream" = 2, "banana" = 1, "rum" = 1, "watermelonjuice" = 1)
result_amount = 5
-/datum/chemical_reaction/antifreeze
+/datum/chemical_reaction/drinks/antifreeze
name = "Anti-freeze"
id = "antifreeze"
result = "antifreeze"
required_reagents = list("vodka" = 1, "cream" = 1, "ice" = 1)
result_amount = 3
-/datum/chemical_reaction/barefoot
+/datum/chemical_reaction/drinks/barefoot
name = "Barefoot"
id = "barefoot"
result = "barefoot"
required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1)
result_amount = 3
-/datum/chemical_reaction/grapesoda
+/datum/chemical_reaction/drinks/grapesoda
name = "Grape Soda"
id = "grapesoda"
result = "grapesoda"
required_reagents = list("grapejuice" = 2, "cola" = 1)
result_amount = 3
-/datum/chemical_reaction/sbiten
+/datum/chemical_reaction/drinks/sbiten
name = "Sbiten"
id = "sbiten"
result = "sbiten"
required_reagents = list("vodka" = 10, "capsaicin" = 1)
result_amount = 10
-/datum/chemical_reaction/red_mead
+/datum/chemical_reaction/drinks/red_mead
name = "Red Mead"
id = "red_mead"
result = "red_mead"
required_reagents = list("blood" = 1, "mead" = 1)
result_amount = 2
-/datum/chemical_reaction/mead
+/datum/chemical_reaction/drinks/mead
name = "Mead"
id = "mead"
result = "mead"
@@ -1567,219 +1604,240 @@
catalysts = list("enzyme" = 5)
result_amount = 2
-/datum/chemical_reaction/iced_beer
+/datum/chemical_reaction/drinks/iced_beer
name = "Iced Beer"
id = "iced_beer"
result = "iced_beer"
required_reagents = list("beer" = 10, "frostoil" = 1)
result_amount = 10
-/datum/chemical_reaction/iced_beer2
+/datum/chemical_reaction/drinks/iced_beer2
name = "Iced Beer"
id = "iced_beer"
result = "iced_beer"
required_reagents = list("beer" = 5, "ice" = 1)
result_amount = 6
-/datum/chemical_reaction/grog
+/datum/chemical_reaction/drinks/grog
name = "Grog"
id = "grog"
result = "grog"
required_reagents = list("rum" = 1, "water" = 1)
result_amount = 2
-/datum/chemical_reaction/soy_latte
+/datum/chemical_reaction/drinks/soy_latte
name = "Soy Latte"
id = "soy_latte"
result = "soy_latte"
required_reagents = list("coffee" = 1, "soymilk" = 1)
result_amount = 2
-/datum/chemical_reaction/cafe_latte
+/datum/chemical_reaction/drinks/cafe_latte
name = "Cafe Latte"
id = "cafe_latte"
result = "cafe_latte"
required_reagents = list("coffee" = 1, "milk" = 1)
result_amount = 2
-/datum/chemical_reaction/acidspit
+/datum/chemical_reaction/drinks/acidspit
name = "Acid Spit"
id = "acidspit"
result = "acidspit"
required_reagents = list("sacid" = 1, "wine" = 5)
result_amount = 6
-/datum/chemical_reaction/amasec
+/datum/chemical_reaction/drinks/amasec
name = "Amasec"
id = "amasec"
result = "amasec"
required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5)
result_amount = 10
-/datum/chemical_reaction/changelingsting
+/datum/chemical_reaction/drinks/changelingsting
name = "Changeling Sting"
id = "changelingsting"
result = "changelingsting"
required_reagents = list("screwdrivercocktail" = 1, "limejuice" = 1, "lemonjuice" = 1)
result_amount = 3
-/datum/chemical_reaction/aloe
+/datum/chemical_reaction/drinks/aloe
name = "Aloe"
id = "aloe"
result = "aloe"
required_reagents = list("cream" = 1, "whiskey" = 1, "watermelonjuice" = 1)
result_amount = 3
-/datum/chemical_reaction/andalusia
+/datum/chemical_reaction/drinks/andalusia
name = "Andalusia"
id = "andalusia"
result = "andalusia"
required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1)
result_amount = 3
-/datum/chemical_reaction/neurotoxin
- name = "Neurotoxin"
- id = "neurotoxin"
- result = "neurotoxin"
- required_reagents = list("gargleblaster" = 1, "stoxin" = 1)
- result_amount = 2
-
-/datum/chemical_reaction/snowwhite
+/datum/chemical_reaction/drinks/snowwhite
name = "Snow White"
id = "snowwhite"
result = "snowwhite"
required_reagents = list("beer" = 1, "lemon_lime" = 1)
result_amount = 2
-/datum/chemical_reaction/irishcarbomb
+/datum/chemical_reaction/drinks/irishcarbomb
name = "Irish Car Bomb"
id = "irishcarbomb"
result = "irishcarbomb"
required_reagents = list("ale" = 1, "irishcream" = 1)
result_amount = 2
-/datum/chemical_reaction/syndicatebomb
+/datum/chemical_reaction/drinks/syndicatebomb
name = "Syndicate Bomb"
id = "syndicatebomb"
result = "syndicatebomb"
required_reagents = list("beer" = 1, "whiskeycola" = 1)
result_amount = 2
-/datum/chemical_reaction/erikasurprise
+/datum/chemical_reaction/drinks/erikasurprise
name = "Erika Surprise"
id = "erikasurprise"
result = "erikasurprise"
required_reagents = list("ale" = 2, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1)
result_amount = 6
-/datum/chemical_reaction/devilskiss
+/datum/chemical_reaction/drinks/devilskiss
name = "Devils Kiss"
id = "devilskiss"
result = "devilskiss"
required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1)
result_amount = 3
-/datum/chemical_reaction/hippiesdelight
+/datum/chemical_reaction/drinks/hippiesdelight
name = "Hippies Delight"
id = "hippiesdelight"
result = "hippiesdelight"
required_reagents = list("psilocybin" = 1, "gargleblaster" = 1)
result_amount = 2
-/datum/chemical_reaction/bananahonk
+/datum/chemical_reaction/drinks/bananahonk
name = "Banana Honk"
id = "bananahonk"
result = "bananahonk"
required_reagents = list("banana" = 1, "cream" = 1, "sugar" = 1)
result_amount = 3
-/datum/chemical_reaction/silencer
+/datum/chemical_reaction/drinks/silencer
name = "Silencer"
id = "silencer"
result = "silencer"
required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1)
result_amount = 3
-/datum/chemical_reaction/driestmartini
+/datum/chemical_reaction/drinks/driestmartini
name = "Driest Martini"
id = "driestmartini"
result = "driestmartini"
required_reagents = list("nothing" = 1, "gin" = 1)
result_amount = 2
-/datum/chemical_reaction/lemonade
+/datum/chemical_reaction/drinks/lemonade
name = "Lemonade"
id = "lemonade"
result = "lemonade"
required_reagents = list("lemonjuice" = 1, "sugar" = 1, "water" = 1)
result_amount = 3
-/datum/chemical_reaction/kiraspecial
+/datum/chemical_reaction/drinks/kiraspecial
name = "Kira Special"
id = "kiraspecial"
result = "kiraspecial"
required_reagents = list("orangejuice" = 1, "limejuice" = 1, "sodawater" = 1)
result_amount = 3
-/datum/chemical_reaction/brownstar
+/datum/chemical_reaction/drinks/brownstar
name = "Brown Star"
id = "brownstar"
result = "brownstar"
required_reagents = list("orangejuice" = 2, "cola" = 1)
result_amount = 3
-/datum/chemical_reaction/milkshake
+/datum/chemical_reaction/drinks/milkshake
name = "Milkshake"
id = "milkshake"
result = "milkshake"
required_reagents = list("cream" = 1, "ice" = 2, "milk" = 2)
result_amount = 5
-/datum/chemical_reaction/rewriter
+/datum/chemical_reaction/drinks/rewriter
name = "Rewriter"
id = "rewriter"
result = "rewriter"
required_reagents = list("spacemountainwind" = 1, "coffee" = 1)
result_amount = 2
-/datum/chemical_reaction/suidream
+/datum/chemical_reaction/drinks/suidream
name = "Sui Dream"
id = "suidream"
result = "suidream"
required_reagents = list("space_up" = 1, "bluecuracao" = 1, "melonliquor" = 1)
result_amount = 3
-/datum/chemical_reaction/luminol
- name = "Luminol"
- id = "luminol"
- result = "luminol"
- required_reagents = list("hydrogen" = 2, "carbon" = 2, "ammonia" = 2)
- result_amount = 6
-
-/datum/chemical_reaction/shirleytemple
+/datum/chemical_reaction/drinks/shirleytemple
name = "Shirley Temple"
id = "shirley_temple"
result = "shirley_temple"
required_reagents = list("lemon_lime" = 4, "grenadine" = 1)
result_amount = 5
-/datum/chemical_reaction/royrogers
+/datum/chemical_reaction/drinks/royrogers
name = "Roy Rogers"
id = "roy_rogers"
result = "roy_rogers"
required_reagents = list("cola" = 4, "grenadine" = 1)
result_amount = 5
-/datum/chemical_reaction/collinsmix
+/datum/chemical_reaction/drinks/collinsmix
name = "Collins Mix"
id = "collins_mix"
result = "collins_mix"
required_reagents = list("lemon_lime" = 3, "sodawater" = 1)
result_amount = 4
-/datum/chemical_reaction/arnoldpalmer
+/datum/chemical_reaction/drinks/arnoldpalmer
name = "Arnold Palmer"
id = "arnold_palmer"
result = "arnold_palmer"
required_reagents = list("icetea" = 1, "lemonade" = 1)
- result_amount = 2
\ No newline at end of file
+ result_amount = 2
+
+/datum/chemical_reaction/drinks/minttea
+ name = "Mint Tea"
+ id = "minttea"
+ result = "minttea"
+ required_reagents = list("tea" = 5, "mint" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/lemontea
+ name = "Lemon Tea"
+ id = "lemontea"
+ result = "lemontea"
+ required_reagents = list("tea" = 5, "lemonjuice" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/limetea
+ name = "Lime Tea"
+ id = "limetea"
+ result = "limetea"
+ required_reagents = list("tea" = 5, "limejuice" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/limetea
+ name = "Orange Tea"
+ id = "orangetea"
+ result = "orangetea"
+ required_reagents = list("tea" = 5, "orangejuice" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/berrytea
+ name = "Berry Tea"
+ id = "berrytea"
+ result = "berrytea"
+ required_reagents = list("tea" = 5, "berryjuice" = 1)
+ result_amount = 6
\ No newline at end of file
diff --git a/code/modules/reagents/dispenser/cartridge_presets.dm b/code/modules/reagents/dispenser/cartridge_presets.dm
index ab82dc53f4..4e23410ac2 100644
--- a/code/modules/reagents/dispenser/cartridge_presets.dm
+++ b/code/modules/reagents/dispenser/cartridge_presets.dm
@@ -68,6 +68,8 @@
hot_coco spawn_reagent = "hot_coco"
milk spawn_reagent = "milk"
cream spawn_reagent = "cream"
+ mint spawn_reagent = "mint"
+ berry spawn_reagent = "berryjuice"
// ERT
inaprov spawn_reagent = "inaprovaline"
diff --git a/code/modules/reagents/dispenser/dispenser2_energy.dm b/code/modules/reagents/dispenser/dispenser2_energy.dm
index 2ab4c5641d..d29ed6bbe9 100644
--- a/code/modules/reagents/dispenser/dispenser2_energy.dm
+++ b/code/modules/reagents/dispenser/dispenser2_energy.dm
@@ -57,5 +57,6 @@
/obj/machinery/chemical_dispenser/bar_coffee
dispense_reagents = list(
- "coffee", "cafe_latte", "soy_latte", "hot_coco", "milk", "cream", "tea", "ice"
+ "coffee", "cafe_latte", "soy_latte", "hot_coco", "milk", "cream", "tea", "ice",
+ "orangejuice", "lemonjuice", "limejuice", "berryjuice", "mint"
)
\ No newline at end of file
diff --git a/code/modules/reagents/dispenser/dispenser_presets.dm b/code/modules/reagents/dispenser/dispenser_presets.dm
index 63f65335f4..05477d9cdd 100644
--- a/code/modules/reagents/dispenser/dispenser_presets.dm
+++ b/code/modules/reagents/dispenser/dispenser_presets.dm
@@ -131,5 +131,12 @@
/obj/item/weapon/reagent_containers/chem_disp_cartridge/milk,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/cream,
/obj/item/weapon/reagent_containers/chem_disp_cartridge/tea,
- /obj/item/weapon/reagent_containers/chem_disp_cartridge/ice
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/ice,
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/mint,
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/orange,
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/lemon,
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/lime,
+ /obj/item/weapon/reagent_containers/chem_disp_cartridge/berry,
+
+
)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index 558e860913..9949550182 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -18,6 +18,7 @@
desc = "Contains blood used for transfusion."
icon = 'icons/obj/bloodpack.dmi'
icon_state = "empty"
+ item_state = "bloodpack_empty"
volume = 200
var/blood_type = null
@@ -34,10 +35,15 @@
/obj/item/weapon/reagent_containers/blood/update_icon()
var/percent = round((reagents.total_volume / volume) * 100)
- switch(percent)
- if(0 to 9) icon_state = "empty"
- if(10 to 50) icon_state = "half"
- if(51 to INFINITY) icon_state = "full"
+ if(percent >= 0 && percent <= 9)
+ icon_state = "empty"
+ item_state = "bloodpack_empty"
+ else if(percent >= 10 && percent <= 50)
+ icon_state = "half"
+ item_state = "bloodpack_half"
+ else if(percent >= 51 && percent < INFINITY)
+ icon_state = "full"
+ item_state = "bloodpack_full"
/obj/item/weapon/reagent_containers/blood/APlus
blood_type = "A+"
@@ -60,4 +66,5 @@
/obj/item/weapon/reagent_containers/blood/empty
name = "Empty BloodPack"
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
- icon_state = "empty"
\ No newline at end of file
+ icon_state = "empty"
+ item_state = "bloodpack_empty"
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index 09897729f9..0a1816e4c8 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -12,13 +12,6 @@
slot_flags = SLOT_EARS
volume = 5
-
-/obj/item/weapon/reagent_containers/dropper/do_surgery(mob/living/carbon/M, mob/living/user)
- if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
- return ..()
- afterattack(M, user, 1)
- return 1
-
/obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/proximity)
if(!target.reagents || !proximity) return
diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm
index 794d7f69dd..1ab8cf3a43 100644
--- a/code/modules/reagents/reagent_containers/food/lunch.dm
+++ b/code/modules/reagents/reagent_containers/food/lunch.dm
@@ -1,11 +1,11 @@
var/list/lunchables_lunches_ = list(/obj/item/weapon/reagent_containers/food/snacks/sandwich,
- /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice,
- /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice,
- /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice,
- /obj/item/weapon/reagent_containers/food/snacks/margheritaslice,
- /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice,
- /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,
- /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled,
/obj/item/weapon/reagent_containers/food/snacks/tastybread,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry,
@@ -26,17 +26,17 @@ var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snac
/obj/item/weapon/reagent_containers/food/snacks/cherrypie,
/obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit,
/obj/item/weapon/reagent_containers/food/snacks/appletart,
- /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/limecakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/limecake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake/filled,
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice,
- /obj/item/weapon/reagent_containers/food/snacks/applecakeslice,
- /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/applecake/filled,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie/filled,
/obj/item/weapon/reagent_containers/food/snacks/skrellsnacks)
var/list/lunchables_drinks_ = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola,
diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm
index 48356172ca..f2b783f90f 100644
--- a/code/modules/reagents/reagent_containers/food/sandwich.dm
+++ b/code/modules/reagents/reagent_containers/food/sandwich.dm
@@ -1,4 +1,4 @@
-/obj/item/weapon/reagent_containers/food/snacks/breadslice/attackby(obj/item/W as obj, mob/user as mob)
+/obj/item/weapon/reagent_containers/food/snacks/slice/bread/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/material/shard) || istype(W,/obj/item/weapon/reagent_containers/food/snacks))
var/obj/item/weapon/reagent_containers/food/snacks/csandwich/S = new(get_turf(src))
@@ -19,7 +19,7 @@
var/sandwich_limit = 4
for(var/obj/item/O in ingredients)
- if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/breadslice))
+ if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/slice/bread))
sandwich_limit += 4
if(istype(W,/obj/item/weapon/material/shard))
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 2e0dd06132..5ea2372731 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -179,24 +179,23 @@
if (W.w_class >= src.w_class || is_robot_module(W))
return
- user << "\red You slip [W] inside [src]."
- user.remove_from_mob(W)
- W.dropped(user)
+ to_chat(user, "You slip \the [W] inside \the [src]. ")
+ user.drop_from_inventory(W, src)
add_fingerprint(user)
contents += W
return
if (has_edge(W))
if (!can_slice_here)
- user << "\red You cannot slice [src] here! You need a table or at least a tray to do it."
+ to_chat(user, "You cannot slice \the [src] here! You need a table or at least a tray to do it. ")
return
var/slices_lost = 0
if (W.w_class > 3)
- user.visible_message("\blue [user] crudely slices \the [src] with [W]!", "\blue You crudely slice \the [src] with your [W]!")
+ user.visible_message("\The [user] crudely slices \the [src] with [W]! ", "You crudely slice \the [src] with your [W]! ")
slices_lost = rand(1,min(1,round(slices_num/2)))
else
- user.visible_message("\blue [user] slices \the [src]!", "\blue You slice \the [src]!")
+ user.visible_message("\The [user] slices \the [src]! ", "You slice \the [src]! ")
var/reagents_per_slice = reagents.total_volume/slices_num
for(var/i=1 to (slices_num-slices_lost))
@@ -723,7 +722,7 @@
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
- name = "meat"
+ name = "xenomeat"
desc = "A slab of green meat. Smells like acid."
icon_state = "xenomeat"
filling_color = "#43DE18"
@@ -735,6 +734,19 @@
reagents.add_reagent("pacid",6)
src.bitesize = 6
+/obj/item/weapon/reagent_containers/food/snacks/spidermeat
+ name = "meat"
+ desc = "A slab of green meat."
+ icon_state = "xenomeat"
+ filling_color = "#43DE18"
+ center_of_mass = list("x"=16, "y"=10)
+
+/obj/item/weapon/reagent_containers/food/snacks/spidermeat/New()
+ ..()
+ reagents.add_reagent("protein", 6)
+ reagents.add_reagent("spidertoxin",6)
+ src.bitesize = 6
+
/obj/item/weapon/reagent_containers/food/snacks/meatball
name = "meatball"
desc = "A great meal all round."
@@ -2313,54 +2325,81 @@
/obj/item/weapon/reagent_containers/food/snacks/sliceable
w_class = ITEMSIZE_NORMAL //Whole pizzas and cakes shouldn't fit in a pocket, you can slice them if you want to do that.
+/**
+ * A food item slice
+ *
+ * This path contains some extra code for spawning slices pre-filled with
+ * reagents.
+ */
+/obj/item/weapon/reagent_containers/food/snacks/slice
+ name = "slice of... something"
+ var/whole_path // path for the item from which this slice comes
+ var/filled = FALSE // should the slice spawn with any reagents
+
+/**
+ * Spawn a new slice of food
+ *
+ * If the slice's filled is TRUE, this will also fill the slice with the
+ * appropriate amount of reagents. Note that this is done by spawning a new
+ * whole item, transferring the reagents and deleting the whole item, which may
+ * have performance implications.
+ */
+/obj/item/weapon/reagent_containers/food/snacks/slice/New()
+ ..()
+ if(filled)
+ var/obj/item/weapon/reagent_containers/food/snacks/whole = new whole_path()
+ if(whole && whole.slices_num)
+ var/reagent_amount = whole.reagents.total_volume/whole.slices_num
+ whole.reagents.trans_to_obj(src, reagent_amount)
+
+ qdel(whole)
+
/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled
slices_num = 5
filling_color = "#FF7575"
- center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 10
+ center_of_mass = list("x"=19, "y"=9)
nutriment_desc = list("bread" = 10)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread/New()
..()
reagents.add_reagent("protein", 20)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon_state = "meatbreadslice"
trash = /obj/item/trash/plate
filling_color = "#FF7575"
bitesize = 2
- center_of_mass = list("x"=16, "y"=13)
+ center_of_mass = list("x"=16, "y"=16)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
-/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 4)
- reagents.add_reagent("nutriment", 2)
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatbread/filled/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
name = "xenomeatbread loaf"
desc = "The culinary base of every self-respecting eloquent gentleman. Extra Heretical."
icon_state = "xenomeatbread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled
slices_num = 5
filling_color = "#8AFF75"
center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 10
nutriment_desc = list("bread" = 10)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread/New()
..()
reagents.add_reagent("protein", 20)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
icon_state = "xenobreadslice"
@@ -2368,30 +2407,29 @@
filling_color = "#8AFF75"
bitesize = 2
center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
-/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 4)
- reagents.add_reagent("nutriment", 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/xenomeatbread/filled/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
name = "Banana-nut bread"
desc = "A heavenly and filling treat."
icon_state = "bananabread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/bananabread
slices_num = 5
filling_color = "#EDE5AD"
center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 10
nutriment_desc = list("bread" = 10)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread/New()
..()
reagents.add_reagent("banana", 20)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread
name = "Banana-nut bread slice"
desc = "A slice of delicious banana bread."
icon_state = "bananabreadslice"
@@ -2399,30 +2437,27 @@
filling_color = "#EDE5AD"
bitesize = 2
center_of_mass = list("x"=16, "y"=8)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
-/obj/item/weapon/reagent_containers/food/snacks/bananabreadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("banana", 4)
- reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/slice/bananabread/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread
name = "Tofubread"
icon_state = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
icon_state = "tofubread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/tofubread
slices_num = 5
filling_color = "#F7FFE0"
center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 30
- nutriment_desc = list("bread" = 15, "tofu" = 15)
+ nutriment_desc = list("tofu" = 10)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread/New()
..()
- reagents.add_reagent("nutriment", 30)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread
name = "Tofubread slice"
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
@@ -2430,30 +2465,29 @@
filling_color = "#F7FFE0"
bitesize = 2
center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/tofubread
-/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 6)
+/obj/item/weapon/reagent_containers/food/snacks/slice/tofubread/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
name = "Carrot Cake"
desc = "A favorite desert of a certain wascally wabbit. Not a lie."
icon_state = "carrotcake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake
slices_num = 5
filling_color = "#FFD675"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 25
nutriment_desc = list("cake" = 10, "sweetness" = 10, "carrot" = 15)
+ nutriment_amt = 25
/obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake/New()
..()
reagents.add_reagent("imidazoline", 10)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake
name = "Carrot Cake slice"
desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie."
icon_state = "carrotcake_slice"
@@ -2461,23 +2495,21 @@
filling_color = "#FFD675"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
-/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("imidazoline", 2)
- reagents.add_reagent("nutriment", 5)
+/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
name = "Brain Cake"
desc = "A squishy cake-thing."
icon_state = "braincake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/braincakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/braincake
slices_num = 5
filling_color = "#E6AEDB"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 5
nutriment_desc = list("cake" = 10, "sweetness" = 10, "slime" = 15)
+ nutriment_amt = 5
/obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake/New()
..()
@@ -2485,7 +2517,7 @@
reagents.add_reagent("alkysine", 10)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/braincakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/braincake
name = "Brain Cake slice"
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
icon_state = "braincakeslice"
@@ -2493,60 +2525,52 @@
filling_color = "#E6AEDB"
bitesize = 2
center_of_mass = list("x"=16, "y"=12)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
-/obj/item/weapon/reagent_containers/food/snacks/braincakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 5)
- reagents.add_reagent("nutriment", 1)
- reagents.add_reagent("alkysine", 2)
+/obj/item/weapon/reagent_containers/food/snacks/slice/braincake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
name = "Cheese Cake"
desc = "DANGEROUSLY cheesy."
icon_state = "cheesecake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake
slices_num = 5
filling_color = "#FAF7AF"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 10
nutriment_desc = list("cake" = 10, "cream" = 10, "cheese" = 15)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake/New()
..()
reagents.add_reagent("protein", 15)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake
name = "Cheese Cake slice"
- desc = "Slice of pure cheestisfaction"
+ desc = "Slice of pure cheestisfaction."
icon_state = "cheesecake_slice"
trash = /obj/item/trash/plate
filling_color = "#FAF7AF"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
-/obj/item/weapon/reagent_containers/food/snacks/cheesecakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 3)
- reagents.add_reagent("nutriment", 2)
+/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
name = "Vanilla Cake"
desc = "A plain cake, not a lie."
icon_state = "plaincake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/plaincake
slices_num = 5
filling_color = "#F7EDD5"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10, "vanilla" = 15)
+ nutriment_amt = 20
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake/New()
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake
name = "Vanilla Cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "plaincake_slice"
@@ -2554,27 +2578,23 @@
filling_color = "#F7EDD5"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
-/obj/item/weapon/reagent_containers/food/snacks/plaincakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/slice/plaincake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
name = "Orange Cake"
desc = "A cake with added orange."
icon_state = "orangecake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/orangecake
slices_num = 5
filling_color = "#FADA8E"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10, "orange" = 15)
+ nutriment_amt = 20
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake/New()
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake
name = "Orange Cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "orangecake_slice"
@@ -2582,28 +2602,25 @@
filling_color = "#FADA8E"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled
+ filled = TRUE
-/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
/obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
name = "Lime Cake"
desc = "A cake with added lime."
icon_state = "limecake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/limecakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/limecake
slices_num = 5
filling_color = "#CBFA8E"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10, "lime" = 15)
+ nutriment_amt = 20
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake/New()
- ..()
- reagents.add_reagent("nutriment", 20)
-/obj/item/weapon/reagent_containers/food/snacks/limecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/limecake
name = "Lime Cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "limecake_slice"
@@ -2611,27 +2628,24 @@
filling_color = "#CBFA8E"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
-/obj/item/weapon/reagent_containers/food/snacks/limecakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/slice/limecake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
name = "Lemon Cake"
desc = "A cake with added lemon."
icon_state = "lemoncake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake
slices_num = 5
filling_color = "#FAFA8E"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10, "lemon" = 15)
+ nutriment_amt = 20
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake/New()
- ..()
-/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake
name = "Lemon Cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "lemoncake_slice"
@@ -2639,27 +2653,23 @@
filling_color = "#FAFA8E"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
-/obj/item/weapon/reagent_containers/food/snacks/lemoncakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/slice/lemoncake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
name = "Chocolate Cake"
- desc = "A cake with added chocolate"
+ desc = "A cake with added chocolate."
icon_state = "chocolatecake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake
slices_num = 5
filling_color = "#805930"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10, "chocolate" = 15)
+ nutriment_amt = 20
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake/New()
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake
name = "Chocolate Cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "chocolatecake_slice"
@@ -2667,11 +2677,10 @@
filling_color = "#805930"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
-/obj/item/weapon/reagent_containers/food/snacks/chocolatecakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/slice/chocolatecake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel
name = "Cheese wheel"
@@ -2681,8 +2690,8 @@
slices_num = 5
filling_color = "#FFF700"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 10
nutriment_desc = list("cheese" = 10)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesewheel/New()
..()
@@ -2701,19 +2710,19 @@
name = "Birthday Cake"
desc = "Happy Birthday..."
icon_state = "birthdaycake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake
slices_num = 5
filling_color = "#FFD6D6"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 20
nutriment_desc = list("cake" = 10, "sweetness" = 10)
+ nutriment_amt = 20
/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake/New()
..()
reagents.add_reagent("sprinkles", 10)
bitesize = 3
-/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake
name = "Birthday Cake slice"
desc = "A slice of your birthday."
icon_state = "birthdaycakeslice"
@@ -2721,29 +2730,27 @@
filling_color = "#FFD6D6"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
-/obj/item/weapon/reagent_containers/food/snacks/birthdaycakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("sprinkles", 2)
+/obj/item/weapon/reagent_containers/food/snacks/slice/birthdaycake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
name = "Bread"
icon_state = "Some plain old Earthen bread."
icon_state = "bread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/bread
slices_num = 5
filling_color = "#FFE396"
center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 6
nutriment_desc = list("bread" = 6)
+ nutriment_amt = 6
/obj/item/weapon/reagent_containers/food/snacks/sliceable/bread/New()
..()
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/breadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/bread
name = "Bread slice"
desc = "A slice of home."
icon_state = "breadslice"
@@ -2751,43 +2758,42 @@
filling_color = "#D27332"
bitesize = 2
center_of_mass = list("x"=16, "y"=4)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
-/obj/item/weapon/reagent_containers/food/snacks/breadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 1)
+/obj/item/weapon/reagent_containers/food/snacks/slice/bread/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
name = "Cream Cheese Bread"
desc = "Yum yum yum!"
icon_state = "creamcheesebread"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread
slices_num = 5
filling_color = "#FFF896"
center_of_mass = list("x"=16, "y"=9)
- nutriment_amt = 5
nutriment_desc = list("bread" = 6, "cream" = 3, "cheese" = 3)
+ nutriment_amt = 5
/obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread/New()
..()
reagents.add_reagent("protein", 15)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread
name = "Cream Cheese Bread slice"
desc = "A slice of yum!"
icon_state = "creamcheesebreadslice"
trash = /obj/item/trash/plate
filling_color = "#FFF896"
bitesize = 2
- center_of_mass = list("x"=16, "y"=13)
+ center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/creamcheesebread
+
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/creamcheesebread/filled
+ filled = TRUE
-/obj/item/weapon/reagent_containers/food/snacks/creamcheesebreadslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 3)
- reagents.add_reagent("nutriment", 1)
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice
name = "Watermelon Slice"
@@ -2797,26 +2803,18 @@
bitesize = 2
center_of_mass = list("x"=16, "y"=10)
-/obj/item/weapon/reagent_containers/food/snacks/watermelonslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("watermelonjuice", 1)
-
/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
name = "Apple Cake"
- desc = "A cake centred with Apple"
+ desc = "A cake centred with apples."
icon_state = "applecake"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/applecakeslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/applecake
slices_num = 5
filling_color = "#EBF5B8"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 15
nutriment_desc = list("cake" = 10, "sweetness" = 10, "apple" = 15)
+ nutriment_amt = 15
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake/New()
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/applecakeslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/applecake
name = "Apple Cake slice"
desc = "A slice of heavenly cake."
icon_state = "applecakeslice"
@@ -2824,27 +2822,23 @@
filling_color = "#EBF5B8"
bitesize = 2
center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
-/obj/item/weapon/reagent_containers/food/snacks/applecakeslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 3)
+/obj/item/weapon/reagent_containers/food/snacks/slice/applecake/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
name = "Pumpkin Pie"
desc = "A delicious treat for the autumn months."
icon_state = "pumpkinpie"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie
slices_num = 5
filling_color = "#F5B951"
center_of_mass = list("x"=16, "y"=10)
- nutriment_amt = 15
nutriment_desc = list("pie" = 5, "cream" = 5, "pumpkin" = 5)
+ nutriment_amt = 15
-/obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie/New()
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie
name = "Pumpkin Pie slice"
desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
icon_state = "pumpkinpieslice"
@@ -2852,23 +2846,21 @@
filling_color = "#F5B951"
bitesize = 2
center_of_mass = list("x"=16, "y"=12)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
-/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 3)
+/obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/cracker
name = "Cracker"
desc = "It's a salted cracker."
icon_state = "cracker"
filling_color = "#F5DEB8"
- center_of_mass = list("x"=17, "y"=6)
- nutriment_amt = 1
+ center_of_mass = list("x"=16, "y"=6)
nutriment_desc = list("salt" = 1, "cracker" = 2)
+ nutriment_amt = 1
+
-/obj/item/weapon/reagent_containers/food/snacks/cracker/New()
- ..()
/////////////////////////////////////////////////PIZZA////////////////////////////////////////
@@ -2880,11 +2872,11 @@
name = "Margherita"
desc = "The golden standard of pizzas."
icon_state = "pizzamargherita"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/margheritaslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/margherita
slices_num = 6
center_of_mass = list("x"=16, "y"=11)
- nutriment_amt = 35
nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15)
+ nutriment_amt = 35
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita/New()
..()
@@ -2892,30 +2884,27 @@
reagents.add_reagent("tomatojuice", 6)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/margheritaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/margherita
name = "Margherita slice"
desc = "A slice of the classic pizza."
icon_state = "pizzamargheritaslice"
filling_color = "#BAA14C"
bitesize = 2
- center_of_mass = list("x"=18, "y"=13)
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
-/obj/item/weapon/reagent_containers/food/snacks/margheritaslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("protein", 1)
- reagents.add_reagent("tomatojuice", 1)
+/obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
name = "Meatpizza"
desc = "A pizza with meat topping."
icon_state = "meatpizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza
slices_num = 6
center_of_mass = list("x"=16, "y"=11)
- nutriment_amt = 10
nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15)
+ nutriment_amt = 10
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza/New()
..()
@@ -2923,58 +2912,54 @@
reagents.add_reagent("tomatojuice", 6)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza
name = "Meatpizza slice"
desc = "A slice of a meaty pizza."
icon_state = "meatpizzaslice"
filling_color = "#BAA14C"
bitesize = 2
- center_of_mass = list("x"=18, "y"=13)
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
-/obj/item/weapon/reagent_containers/food/snacks/meatpizzaslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("protein", 7)
- reagents.add_reagent("tomatojuice", 1)
+/obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
name = "Mushroompizza"
- desc = "Very special pizza"
+ desc = "Very special pizza."
icon_state = "mushroompizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza
slices_num = 6
center_of_mass = list("x"=16, "y"=11)
- nutriment_amt = 35
nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 5, "mushroom" = 10)
+ nutriment_amt = 35
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza/New()
..()
reagents.add_reagent("protein", 5)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza
name = "Mushroompizza slice"
desc = "Maybe it is the last slice of pizza in your life."
icon_state = "mushroompizzaslice"
filling_color = "#BAA14C"
bitesize = 2
- center_of_mass = list("x"=18, "y"=13)
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
-/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 5)
- reagents.add_reagent("protein", 1)
+/obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza/filled
+ filled = TRUE
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
name = "Vegetable pizza"
- desc = "No one of Tomato Sapiens were harmed during making this pizza"
+ desc = "No one of Tomato Sapiens were harmed during making this pizza."
icon_state = "vegetablepizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza
slices_num = 6
center_of_mass = list("x"=16, "y"=11)
- nutriment_amt = 25
nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 5, "eggplant" = 5, "carrot" = 5, "corn" = 5)
+ nutriment_amt = 25
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza/New()
..()
@@ -2983,21 +2968,17 @@
reagents.add_reagent("imidazoline", 12)
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice
+/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza
name = "Vegetable pizza slice"
- desc = "A slice of the most green pizza of all pizzas not containing green ingredients "
+ desc = "A slice of the most green pizza of all pizzas not containing green ingredients."
icon_state = "vegetablepizzaslice"
filling_color = "#BAA14C"
bitesize = 2
- center_of_mass = list("x"=18, "y"=13)
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
-/obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice/New()
- ..()
- if(!(reagents.total_volume))
- reagents.add_reagent("nutriment", 4)
- reagents.add_reagent("protein", 1)
- reagents.add_reagent("tomatojuice", 1)
- reagents.add_reagent("imidazoline", 2)
+/obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled
+ filled = TRUE
/obj/item/pizzabox
name = "pizza box"
@@ -3011,46 +2992,34 @@
var/list/boxes = list() // If the boxes are stacked, they come here
var/boxtag = ""
-/obj/item/pizzabox/proc/closepizzabox()
-
- if(boxes.len > 0)
- return
-
- open = !open
-
- if(open && pizza)
- ismessy = 1
-
- update_icon()
-
/obj/item/pizzabox/update_icon()
overlays = list()
// Set appropriate description
- if(open && pizza)
+ if( open && pizza )
desc = "A box suited for pizzas. It appears to have a [pizza.name] inside."
- else if(boxes.len > 0)
+ else if( boxes.len > 0 )
desc = "A pile of boxes suited for pizzas. There appears to be [boxes.len + 1] boxes in the pile."
var/obj/item/pizzabox/topbox = boxes[boxes.len]
var/toptag = topbox.boxtag
- if(toptag != "")
+ if( toptag != "" )
desc = "[desc] The box on top has a tag, it reads: '[toptag]'."
else
desc = "A box suited for pizzas."
- if(boxtag != "")
+ if( boxtag != "" )
desc = "[desc] The box has a tag, it reads: '[boxtag]'."
// Icon states and overlays
- if(open)
- if(ismessy)
+ if( open )
+ if( ismessy )
icon_state = "pizzabox_messy"
else
icon_state = "pizzabox_open"
- if(pizza)
+ if( pizza )
var/image/pizzaimg = image("food.dmi", icon_state = pizza.icon_state)
pizzaimg.pixel_y = -3
overlays += pizzaimg
@@ -3059,33 +3028,33 @@
else
// Stupid code because byondcode sucks
var/doimgtag = 0
- if(boxes.len > 0)
+ if( boxes.len > 0 )
var/obj/item/pizzabox/topbox = boxes[boxes.len]
- if(topbox.boxtag != "")
+ if( topbox.boxtag != "" )
doimgtag = 1
else
- if(boxtag != "")
+ if( boxtag != "" )
doimgtag = 1
- if(doimgtag)
+ if( doimgtag )
var/image/tagimg = image("food.dmi", icon_state = "pizzabox_tag")
tagimg.pixel_y = boxes.len * 3
overlays += tagimg
icon_state = "pizzabox[boxes.len+1]"
-/obj/item/pizzabox/attack_hand(mob/user as mob)
+/obj/item/pizzabox/attack_hand( mob/user as mob )
if( open && pizza )
- user.put_in_hands(pizza)
+ user.put_in_hands( pizza )
- user << "You take \the [src.pizza] out of the [src]. "
+ to_chat(user, "You take \the [src.pizza] out of \the [src]. ")
src.pizza = null
update_icon()
return
- if(boxes.len > 0)
- if(user.get_inactive_hand() != src)
+ if( boxes.len > 0 )
+ if( user.get_inactive_hand() != src )
..()
return
@@ -3093,74 +3062,76 @@
boxes -= box
user.put_in_hands( box )
- user << "You remove \the topmost [src] from your hand. "
+ to_chat(user, "You remove the topmost [src] from your hand. ")
box.update_icon()
update_icon()
return
..()
-/obj/item/pizzabox/attack_self(mob/user as mob)
+/obj/item/pizzabox/attack_self( mob/user as mob )
- closepizzabox()
+ if( boxes.len > 0 )
+ return
-/obj/item/pizzabox/AltClick()
+ open = !open
- if(Adjacent(usr))
- closepizzabox()
+ if( open && pizza )
+ ismessy = 1
+
+ update_icon()
/obj/item/pizzabox/attackby( obj/item/I as obj, mob/user as mob )
- if(istype(I, /obj/item/pizzabox/))
+ if( istype(I, /obj/item/pizzabox/) )
var/obj/item/pizzabox/box = I
- if(!box.open && !src.open)
+ if( !box.open && !src.open )
// Make a list of all boxes to be added
var/list/boxestoadd = list()
boxestoadd += box
for(var/obj/item/pizzabox/i in box.boxes)
boxestoadd += i
- if((boxes.len+1) + boxestoadd.len <= 5)
+ if( (boxes.len+1) + boxestoadd.len <= 5 )
user.drop_item()
box.loc = src
box.boxes = list() // Clear the box boxes so we don't have boxes inside boxes. - Xzibit
- src.boxes.Add(boxestoadd)
+ src.boxes.Add( boxestoadd )
box.update_icon()
update_icon()
- user << "You put \the [box] ontop of the [src]! "
+ to_chat(user, "You put \the [box] ontop of \the [src]! ")
else
- user << "\The stack is too high! "
+ to_chat(user, "The stack is too high! ")
else
- user << "Close \the [box] first! "
+ to_chat(user, "Close \the [box] first! ")
return
- if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/)) // Long ass fucking object name
+ if( istype(I, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/) ) // Long ass fucking object name
- if(open)
- if(!pizza)
- user.drop_item()
- I.loc = src
- pizza = I
- update_icon()
- user << "You put \the [I] in \the [src]! "
- else
- user << "\The [src] is full! It already has a [pizza] inside. "
+ if( src.open )
+ user.drop_item()
+ I.loc = src
+ src.pizza = I
+
+ update_icon()
+
+ to_chat(user, "You put \the [I] in \the [src]! ")
else
- user << "You try to push \the [I] through the lid but it doesn't work! "
-
+ to_chat(user, "You try to push \the [I] through the lid but it doesn't work! ")
return
- if(istype(I, /obj/item/weapon/pen/))
- if(open)
+ if( istype(I, /obj/item/weapon/pen/) )
+
+ if( src.open )
return
var/t = sanitize(input("Enter what you want to add to the tag:", "Write", null, null) as text, 30)
var/obj/item/pizzabox/boxtotagto = src
- if(boxes.len > 0)
+ if( boxes.len > 0 )
boxtotagto = boxes[boxes.len]
boxtotagto.boxtag = copytext("[boxtotagto.boxtag][t]", 1, 30)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 483defc398..ed27e1a259 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -36,7 +36,7 @@
/obj/machinery/disease2/incubator,
/obj/machinery/disposal,
/mob/living/simple_animal/cow,
- /mob/living/simple_animal/hostile/retaliate/goat,
+ /mob/living/simple_animal/retaliate/goat,
/obj/machinery/computer/centrifuge,
/obj/machinery/sleeper,
/obj/machinery/smartfridge/,
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 771ce4cc27..e9e3c62dad 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -88,3 +88,33 @@
user << "It is currently loaded. "
else
user << "It is spent. "
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/clotting
+ name = "clotting agent"
+ desc = "A rapid and safe way to administer clotting drugs by untrained or trained personnel."
+ icon_state = "autoinjector"
+ item_state = "autoinjector"
+ amount_per_transfer_from_this = 10
+ volume = 10
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/clotting/New()
+ ..()
+ reagents.remove_reagent("inaprovaline", 5)
+ reagents.add_reagent("myelamine", 10)
+ update_icon()
+ return
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed
+ name = "bone repair injector"
+ desc = "A rapid and safe way to administer advanced drugs by untrained or trained personnel."
+ icon_state = "autoinjector"
+ item_state = "autoinjector"
+ amount_per_transfer_from_this = 10
+ volume = 10
+
+/obj/item/weapon/reagent_containers/hypospray/autoinjector/bonemed/New()
+ ..()
+ reagents.remove_reagent("inaprovaline", 5)
+ reagents.add_reagent("osteodaxon", 10)
+ update_icon()
+ return
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 5c7459e3b2..058e09c6f7 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -76,7 +76,6 @@
switch(mode)
if(SYRINGE_DRAW)
-
if(!reagents.get_free_space())
user << "The syringe is full. "
mode = SYRINGE_INJECT
@@ -137,7 +136,7 @@
user << "[target] is empty. "
return
- if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract))
+ if(!target.is_open_container() && !istype(target, /obj/structure/reagent_dispensers) && !istype(target, /obj/item/slime_extract) && !istype(target, /obj/item/weapon/reagent_containers/food))
user << "You cannot directly remove reagents from this object. "
return
@@ -209,7 +208,7 @@
trans = reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD)
admin_inject_log(user, target, src, contained, trans)
else
- trans = reagents.trans_to(target, amount_per_transfer_from_this)
+ trans = reagents.trans_to_obj(target, amount_per_transfer_from_this)
if(trans)
user << "You inject [trans] units of the solution. The syringe now contains [src.reagents.total_volume] units. "
else
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index ee1bbcaf2f..49678c966c 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1586,6 +1586,14 @@ CIRCUITS BELOW
build_path = /obj/item/weapon/implant/integrated_circuit
sort_string = "VCAAE"
+/datum/design/item/translator
+ name = "handheld translator"
+ id = "translator"
+ req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000)
+ build_path = /obj/item/device/universal_translator
+ sort_string = "HABBA"
+
/* Uncomment if someone makes these buildable
/datum/design/circuit/general_alert
name = "general alert console"
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index f89e8a20cd..53d534a619 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -242,6 +242,7 @@ var/obj/machinery/blackbox_recorder/blackbox
var/list/msg_security = list()
var/list/msg_deathsquad = list()
var/list/msg_syndicate = list()
+ var/list/msg_raider = list()
var/list/msg_cargo = list()
var/list/msg_service = list()
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 60aabdf3f8..be489f9637 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -85,6 +85,8 @@
else if(busy)
icon_state = "protolathe_n"
else
+ if(icon_state == "protolathe_n")
+ flick("protolathe_u", src) // If lid WAS closed, show opening animation
icon_state = "protolathe"
/obj/machinery/r_n_d/protolathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm
index 4b73c0dd28..32d752c773 100644
--- a/code/modules/security levels/security levels.dm
+++ b/code/modules/security levels/security levels.dm
@@ -47,9 +47,14 @@
var/newlevel = get_security_level()
for(var/obj/machinery/firealarm/FA in machines)
- if(FA.z in config.contact_levels)
+ if(FA.z in using_map.contact_levels)
FA.set_security_level(newlevel)
+ if(level >= SEC_LEVEL_RED)
+ atc.reroute_traffic(yes = 1) // Tell them fuck off we're busy.
+ else
+ atc.reroute_traffic(yes = 0)
+
/proc/get_security_level()
switch(security_level)
diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm
index 9e8a752122..3690a1f2ba 100644
--- a/code/modules/shieldgen/emergency_shield.dm
+++ b/code/modules/shieldgen/emergency_shield.dm
@@ -84,8 +84,14 @@
if(1)
qdel(src)
if(2)
+ if(prob(75))
+ qdel(src)
+ if(3)
if(prob(50))
qdel(src)
+ if(4)
+ if(prob(25))
+ qdel(src)
/obj/machinery/shield/hitby(AM as mob|obj)
@@ -264,7 +270,7 @@
else
user << "The device must first be secured to the floor."
return
-
+
/obj/machinery/shieldgen/emag_act(var/remaining_charges, var/mob/user)
if(!malfunction)
malfunction = 1
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 03942ee5f0..8c6e611886 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -104,8 +104,6 @@
var/turf/D = locate(T.x, throwy - 1, 1)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
- if(istype(T, /turf/simulated))
- qdel(T)
for(var/mob/living/carbon/bug in destination)
bug.gib()
@@ -119,7 +117,7 @@
if(M.client)
spawn(0)
if(M.buckled)
- M << "\red Sudden acceleration presses you into your chair!"
+ M << "\red Sudden acceleration presses you into \the [M.buckled]!"
shake_camera(M, 3, 1)
else
M << "\red The floor lurches beneath you!"
diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm
index c468bbb017..bd2eaaa770 100644
--- a/code/modules/shuttles/shuttle_emergency.dm
+++ b/code/modules/shuttles/shuttle_emergency.dm
@@ -26,11 +26,12 @@
if (origin == area_station) //leaving the station
emergency_shuttle.departed = 1
+ var/estimated_time = round(emergency_shuttle.estimate_arrival_time()/60,1)
if (emergency_shuttle.evac)
- priority_announcement.Announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [dock_name].")
+ priority_announcement.Announce(replacetext(replacetext(using_map.emergency_shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETD%", "[estimated_time] minute\s"))
else
- priority_announcement.Announce("The Scheduled Transfer Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at [dock_name].")
+ priority_announcement.Announce(replacetext(replacetext(using_map.shuttle_leaving_dock, "%dock_name%", "[using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
/datum/shuttle/ferry/emergency/can_launch(var/user)
if (istype(user, /obj/machinery/computer/shuttle_control/emergency))
@@ -183,9 +184,9 @@
if (shuttle.in_use)
shuttle_status = "Busy."
else if (!shuttle.location)
- shuttle_status = "Standing-by at [station_name]."
+ shuttle_status = "Standing-by at [station_name()]."
else
- shuttle_status = "Standing-by at [dock_name]."
+ shuttle_status = "Standing-by at [using_map.dock_name]."
if(WAIT_LAUNCH, FORCE_LAUNCH)
shuttle_status = "Shuttle has recieved command and will depart shortly."
if(WAIT_ARRIVE)
diff --git a/code/modules/shuttles/shuttle_specops.dm b/code/modules/shuttles/shuttle_specops.dm
index 5ef0c92170..434bb37f42 100644
--- a/code/modules/shuttles/shuttle_specops.dm
+++ b/code/modules/shuttles/shuttle_specops.dm
@@ -62,7 +62,7 @@
var/obj/machinery/computer/C = user
if(world.time <= reset_time)
- C.visible_message("\blue [boss_name] will not allow the Special Operations shuttle to launch yet.")
+ C.visible_message("\blue [using_map.boss_name] will not allow the Special Operations shuttle to launch yet.")
if (((world.time - reset_time)/10) > 60)
C.visible_message("\blue [-((world.time - reset_time)/10)/60] minutes remain!")
else
@@ -88,18 +88,18 @@
/datum/shuttle/ferry/multidock/specops/move(var/area/origin,var/area/destination)
..(origin, destination)
-
+
spawn(20)
if (!location) //just arrived home
for(var/turf/T in get_area_turfs(destination))
var/mob/M = locate(/mob) in T
- M << "You have arrived at [boss_name]. Operation has ended! "
+ M << "You have arrived at [using_map.boss_name]. Operation has ended! "
else //just left for the station
launch_mauraders()
for(var/turf/T in get_area_turfs(destination))
var/mob/M = locate(/mob) in T
- M << "You have arrived at [station_name]. Commence operation! "
-
+ M << "You have arrived at [station_name()]. Commence operation! "
+
var/obj/machinery/light/small/readylight/light = locate() in T
if(light) light.set_state(1)
diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm
index 35bc9a8315..47b430329a 100644
--- a/code/modules/shuttles/shuttles_multi.dm
+++ b/code/modules/shuttles/shuttles_multi.dm
@@ -59,14 +59,14 @@
if(cloaked || isnull(departure_message))
return
- command_announcement.Announce(departure_message,(announcer ? announcer : "[boss_name]"))
+ command_announcement.Announce(departure_message,(announcer ? announcer : "[using_map.boss_name]"))
/datum/shuttle/multi_shuttle/proc/announce_arrival()
if(cloaked || isnull(arrival_message))
return
- command_announcement.Announce(arrival_message,(announcer ? announcer : "[boss_name]"))
+ command_announcement.Announce(arrival_message,(announcer ? announcer : "[using_map.boss_name]"))
/obj/machinery/computer/shuttle_control/multi
diff --git a/code/modules/spells/aoe_turf/disable_tech.dm b/code/modules/spells/aoe_turf/disable_tech.dm
index 5192ecb664..9acbf95369 100644
--- a/code/modules/spells/aoe_turf/disable_tech.dm
+++ b/code/modules/spells/aoe_turf/disable_tech.dm
@@ -11,13 +11,15 @@
cooldown_min = 200 //50 deciseconds reduction per rank
- var/emp_heavy = 6
- var/emp_light = 10
+ var/emp_heavy = 3
+ var/emp_med = 5
+ var/emp_light = 8
+ var/emp_long = 10
hud_state = "wiz_tech"
/spell/aoe_turf/disable_tech/cast(list/targets)
for(var/turf/target in targets)
- empulse(get_turf(target), emp_heavy, emp_light)
+ empulse(get_turf(target), emp_heavy, emp_med, emp_light, emp_long)
return
\ No newline at end of file
diff --git a/code/modules/spells/spell_code.dm b/code/modules/spells/spell_code.dm
index 6b648fb392..4ebf2def64 100644
--- a/code/modules/spells/spell_code.dm
+++ b/code/modules/spells/spell_code.dm
@@ -190,7 +190,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now
if(!user_turf)
user << "You cannot cast spells in null space! "
- if(spell_flags & Z2NOCAST && (user_turf.z in config.admin_levels)) //Certain spells are not allowed on the centcomm zlevel
+ if(spell_flags & Z2NOCAST && (user_turf.z in using_map.admin_levels)) //Certain spells are not allowed on the centcomm zlevel
return 0
if(spell_flags & CONSTRUCT_CHECK)
diff --git a/code/modules/spells/spellbook.dm b/code/modules/spells/spellbook.dm
index 34923745a4..a28f03e8fe 100644
--- a/code/modules/spells/spellbook.dm
+++ b/code/modules/spells/spellbook.dm
@@ -432,4 +432,4 @@
/obj/item/weapon/spellbook/oneuse/charge/recoil(mob/user as mob)
..()
user <<"[src] suddenly feels very warm! "
- empulse(src, 1, 1)
+ empulse(src, 1, 1, 1, 1)
diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm
index bf147afd7e..df9c900d38 100644
--- a/code/modules/supermatter/supermatter.dm
+++ b/code/modules/supermatter/supermatter.dm
@@ -50,7 +50,7 @@
var/public_alert = 0 //Stick to Engineering frequency except for big warnings when integrity bad
var/warning_point = 100
var/warning_alert = "Danger! Crystal hyperstructure instability!"
- var/emergency_point = 700
+ var/emergency_point = 500
var/emergency_alert = "CRYSTAL DELAMINATION IMMINENT."
var/explosion_point = 1000
@@ -152,8 +152,8 @@
/obj/machinery/power/supermatter/get_transit_zlevel()
//don't send it back to the station -- most of the time
if(prob(99))
- var/list/candidates = accessible_z_levels.Copy()
- for(var/zlevel in config.station_levels)
+ var/list/candidates = using_map.accessible_z_levels.Copy()
+ for(var/zlevel in using_map.station_levels)
candidates.Remove("[zlevel]")
candidates.Remove("[src.z]")
diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm
index 015661351f..80a7a1f820 100644
--- a/code/modules/surgery/bones.dm
+++ b/code/modules/surgery/bones.dm
@@ -25,7 +25,7 @@
if (affected.stage == 0)
user.visible_message("[user] starts applying medication to the damaged bones in [target]'s [affected.name] with \the [tool]." , \
"You start applying medication to the damaged bones in [target]'s [affected.name] with \the [tool].")
- target.custom_pain("Something in your [affected.name] is causing you a lot of pain!",1)
+ target.custom_pain("Something in your [affected.name] is causing you a lot of pain!", 50)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -58,7 +58,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] is beginning to set the bone in [target]'s [affected.name] in place with \the [tool]." , \
"You are beginning to set the bone in [target]'s [affected.name] in place with \the [tool].")
- target.custom_pain("The pain in your [affected.name] is going to make you pass out!",1)
+ target.custom_pain("The pain in your [affected.name] is going to make you pass out!", 50)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/encased.dm b/code/modules/surgery/encased.dm
index 51200b52bf..abcc0621da 100644
--- a/code/modules/surgery/encased.dm
+++ b/code/modules/surgery/encased.dm
@@ -38,7 +38,7 @@
user.visible_message("[user] begins to cut through [target]'s [affected.encased] with \the [tool].", \
"You begin to cut through [target]'s [affected.encased] with \the [tool].")
- target.custom_pain("Something hurts horribly in your [affected.name]!",1)
+ target.custom_pain("Something hurts horribly in your [affected.name]!", 60)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -88,7 +88,7 @@
var/msg = "[user] starts to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]."
var/self_msg = "You start to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]."
user.visible_message(msg, self_msg)
- target.custom_pain("Something hurts horribly in your [affected.name]!",1)
+ target.custom_pain("Something hurts horribly in your [affected.name]!", 40)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -145,7 +145,7 @@
var/msg = "[user] starts bending [target]'s [affected.encased] back into place with \the [tool]."
var/self_msg = "You start bending [target]'s [affected.encased] back into place with \the [tool]."
user.visible_message(msg, self_msg)
- target.custom_pain("Something hurts horribly in your [affected.name]!",1)
+ target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -202,7 +202,7 @@
var/msg = "[user] starts applying \the [tool] to [target]'s [affected.encased]."
var/self_msg = "You start applying \the [tool] to [target]'s [affected.encased]."
user.visible_message(msg, self_msg)
- target.custom_pain("Something hurts horribly in your [affected.name]!",1)
+ target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index 81a105a544..513b6096dc 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -42,7 +42,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts the bloodless incision on [target]'s [affected.name] with \the [tool].", \
"You start the bloodless incision on [target]'s [affected.name] with \the [tool].")
- target.custom_pain("You feel a horrible, searing pain in your [affected.name]!",1)
+ target.custom_pain("You feel a horrible, searing pain in your [affected.name]!", 50)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -81,7 +81,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].", \
"You start to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].")
- target.custom_pain("You feel a horrible, searing pain in your [affected.name] as it is pushed apart!",1)
+ target.custom_pain("You feel a horrible, searing pain in your [affected.name] as it is pushed apart!", 50)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -124,7 +124,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts the incision on [target]'s [affected.name] with \the [tool].", \
"You start the incision on [target]'s [affected.name] with \the [tool].")
- target.custom_pain("You feel a horrible pain as if from a sharp knife in your [affected.name]!",1)
+ target.custom_pain("You feel a horrible pain as if from a sharp knife in your [affected.name]!", 40)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -163,7 +163,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts clamping bleeders in [target]'s [affected.name] with \the [tool].", \
"You start clamping bleeders in [target]'s [affected.name] with \the [tool].")
- target.custom_pain("The pain in your [affected.name] is maddening!",1)
+ target.custom_pain("The pain in your [affected.name] is maddening!", 40)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -205,7 +205,7 @@
msg = "[user] starts to pry open the incision and rearrange the organs in [target]'s lower abdomen with \the [tool]."
self_msg = "You start to pry open the incision and rearrange the organs in [target]'s lower abdomen with \the [tool]."
user.visible_message(msg, self_msg)
- target.custom_pain("It feels like the skin on your [affected.name] is on fire!",1)
+ target.custom_pain("It feels like the skin on your [affected.name] is on fire!", 40)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -254,7 +254,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] is beginning to cauterize the incision on [target]'s [affected.name] with \the [tool]." , \
"You are beginning to cauterize the incision on [target]'s [affected.name] with \the [tool].")
- target.custom_pain("Your [affected.name] is being burned!",1)
+ target.custom_pain("Your [affected.name] is being burned!", 40)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -295,7 +295,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] is beginning to amputate [target]'s [affected.name] with \the [tool]." , \
"You are beginning to cut through [target]'s [affected.amputation_point] with \the [tool].")
- target.custom_pain("Your [affected.amputation_point] is being ripped apart!",1)
+ target.custom_pain("Your [affected.amputation_point] is being ripped apart!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index 6abe4c3646..205089773d 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -56,7 +56,7 @@
user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \
"You start treating damage to [target]'s [I.name] with [tool_name]." )
- target.custom_pain("The pain in your [affected.name] is living hell!",1)
+ target.custom_pain("The pain in your [affected.name] is living hell!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -146,7 +146,7 @@
user.visible_message("[user] starts to separate [target]'s [target.op_stage.current_organ] with \the [tool].", \
"You start to separate [target]'s [target.op_stage.current_organ] with \the [tool]." )
- target.custom_pain("The pain in your [affected.name] is living hell!",1)
+ target.custom_pain("The pain in your [affected.name] is living hell!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -197,7 +197,7 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
user.visible_message("[user] starts removing [target]'s [target.op_stage.current_organ] with \the [tool].", \
"You start removing [target]'s [target.op_stage.current_organ] with \the [tool].")
- target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!",1)
+ target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -271,7 +271,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts transplanting \the [tool] into [target]'s [affected.name].", \
"You start transplanting \the [tool] into [target]'s [affected.name].")
- target.custom_pain("Someone's rooting around in your [affected.name]!",1)
+ target.custom_pain("Someone's rooting around in your [affected.name]!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -322,7 +322,7 @@
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
user.visible_message("[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].", \
"You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].")
- target.custom_pain("Someone's digging needles into your [target.op_stage.current_organ]!",1)
+ target.custom_pain("Someone's digging needles into your [target.op_stage.current_organ]!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm
index 303dcfc141..176724290f 100644
--- a/code/modules/surgery/other.dm
+++ b/code/modules/surgery/other.dm
@@ -33,7 +33,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts patching the damaged vein in [target]'s [affected.name] with \the [tool]." , \
"You start patching the damaged vein in [target]'s [affected.name] with \the [tool].")
- target.custom_pain("The pain in [affected.name] is unbearable!",1)
+ target.custom_pain("The pain in [affected.name] is unbearable!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -81,7 +81,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts cutting away necrotic tissue in [target]'s [affected.name] with \the [tool]." , \
"You start cutting away necrotic tissue in [target]'s [affected.name] with \the [tool].")
- target.custom_pain("The pain in [affected.name] is unbearable!",1)
+ target.custom_pain("The pain in [affected.name] is unbearable!", 100)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -133,7 +133,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts applying medication to the affected tissue in [target]'s [affected.name] with \the [tool]." , \
"You start applying medication to the affected tissue in [target]'s [affected.name] with \the [tool].")
- target.custom_pain("Something in your [affected.name] is causing you a lot of pain!",1)
+ target.custom_pain("Something in your [affected.name] is causing you a lot of pain!", 50)
..()
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -146,10 +146,8 @@
var/trans = container.reagents.trans_to_mob(target, container.amount_per_transfer_from_this, CHEM_BLOOD) //technically it's contact, but the reagents are being applied to internal tissue
if (trans > 0)
-
- if(container.reagents.has_reagent("peridaxon"))
- affected.status &= ~ORGAN_DEAD
- affected.owner.update_body(1)
+ affected.status &= ~ORGAN_DEAD
+ affected.owner.update_body(1)
user.visible_message("\blue [user] applies [trans] units of the solution to affected tissue in [target]'s [affected.name]", \
"\blue You apply [trans] units of the solution to affected tissue in [target]'s [affected.name] with \the [tool].")
diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm
index 933f54ea8b..688bff4def 100644
--- a/code/modules/tables/presets.dm
+++ b/code/modules/tables/presets.dm
@@ -1,73 +1,186 @@
-/obj/structure/table
+//TABLE PRESETS
+/obj/structure/table/standard
+ icon_state = "plain_preview"
+ color = "#EEEEEE"
- standard
- icon_state = "plain_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- ..()
+/obj/structure/table/standard/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ ..()
- steel
- icon_state = "plain_preview"
- color = "#666666"
- New()
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/steel
+ icon_state = "plain_preview"
+ color = "#666666"
- marble
- icon_state = "stone_preview"
- color = "#CCCCCC"
- New()
- material = get_material_by_name("marble")
- ..()
+/obj/structure/table/steel/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
- reinforced
- icon_state = "reinf_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
-
- steel_reinforced
- icon_state = "reinf_preview"
- color = "#666666"
- New()
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/marble
+ icon_state = "stone_preview"
+ color = "#CCCCCC"
- woodentable
- icon_state = "plain_preview"
- color = "#824B28"
- New()
- material = get_material_by_name("wood")
- ..()
+/obj/structure/table/marble/New()
+ material = get_material_by_name("marble")
+ ..()
- gamblingtable
- icon_state = "gamble_preview"
- New()
- material = get_material_by_name("wood")
- carpeted = 1
- ..()
+/obj/structure/table/reinforced
+ icon_state = "reinf_preview"
+ color = "#EEEEEE"
- glass
- icon_state = "plain_preview"
- color = "#00E1FF"
- alpha = 77 // 0.3 * 255
- New()
- material = get_material_by_name("glass")
- ..()
+/obj/structure/table/reinforced/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
- holotable
- icon_state = "holo_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
- ..()
+/obj/structure/table/steel_reinforced
+ icon_state = "reinf_preview"
+ color = "#666666"
- woodentable/holotable
- icon_state = "holo_preview"
- New()
- material = get_material_by_name("holowood")
- ..()
+/obj/structure/table/steel_reinforced/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/wooden_reinforced
+ icon_state = "reinf_preview"
+ color = "#824B28"
+
+/obj/structure/table/wooden_reinforced/New()
+ material = get_material_by_name("wood")
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/woodentable
+ icon_state = "plain_preview"
+ color = "#824B28"
+
+/obj/structure/table/woodentable/New()
+ material = get_material_by_name("wood")
+ ..()
+
+/obj/structure/table/gamblingtable
+ icon_state = "gamble_preview"
+
+/obj/structure/table/gamblingtable/New()
+ material = get_material_by_name("wood")
+ carpeted = 1
+ ..()
+
+/obj/structure/table/glass
+ icon_state = "plain_preview"
+ color = "#00E1FF"
+ alpha = 77 // 0.3 * 255
+
+/obj/structure/table/glass/New()
+ material = get_material_by_name("glass")
+ ..()
+
+/obj/structure/table/holotable
+ icon_state = "holo_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/holotable/New()
+ material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ ..()
+
+/obj/structure/table/woodentable/holotable
+ icon_state = "holo_preview"
+
+/obj/structure/table/woodentable/holotable/New()
+ material = get_material_by_name("holowood")
+ ..()
+
+//BENCH PRESETS
+/obj/structure/table/bench/standard
+ icon_state = "plain_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/standard/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/steel
+ icon_state = "plain_preview"
+ color = "#666666"
+
+/obj/structure/table/bench/steel/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+
+/obj/structure/table/bench/marble
+ icon_state = "stone_preview"
+ color = "#CCCCCC"
+
+/obj/structure/table/bench/marble/New()
+ material = get_material_by_name("marble")
+ ..()
+/*
+/obj/structure/table/bench/reinforced
+ icon_state = "reinf_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/reinforced/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/steel_reinforced
+ icon_state = "reinf_preview"
+ color = "#666666"
+
+/obj/structure/table/bench/steel_reinforced/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/wooden_reinforced
+ icon_state = "reinf_preview"
+ color = "#824B28"
+
+/obj/structure/table/bench/wooden_reinforced/New()
+ material = get_material_by_name("wood")
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+*/
+/obj/structure/table/bench/wooden
+ icon_state = "plain_preview"
+ color = "#824B28"
+
+/obj/structure/table/bench/wooden/New()
+ material = get_material_by_name("wood")
+ ..()
+
+/obj/structure/table/bench/padded
+ icon_state = "padded_preview"
+
+/obj/structure/table/bench/padded/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ carpeted = 1
+ ..()
+
+/obj/structure/table/bench/glass
+ icon_state = "plain_preview"
+ color = "#00E1FF"
+ alpha = 77 // 0.3 * 255
+
+/obj/structure/table/bench/glass/New()
+ material = get_material_by_name("glass")
+ ..()
+
+/*
+/obj/structure/table/bench/holotable
+ icon_state = "holo_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/holotable/New()
+ material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ ..()
+
+/obj/structure/table/bench/wooden/holotable
+ icon_state = "holo_preview"
+
+/obj/structure/table/bench/wooden/holotable/New()
+ material = get_material_by_name("holowood")
+ ..()
+*/
\ No newline at end of file
diff --git a/code/modules/turbolift/_turbolift.dm b/code/modules/turbolift/_turbolift.dm
new file mode 100644
index 0000000000..088bf39c8c
--- /dev/null
+++ b/code/modules/turbolift/_turbolift.dm
@@ -0,0 +1,12 @@
+/*
+ * Turbolifts! Sort of like multishuttles-lite.
+ *
+ * How-to: Map /obj/turbolift_map_holder in at the bottom of the shaft, give it a depth
+ * value equivalent to the number of floors it should span (inclusive of the first),
+ * and at runtime it will update the map, set areas and create control panels and
+ * wifi-set doors appropriate to itself. You will save time at init if you map the
+ * elevator shaft in properly before runtime, but ultimately you're just avoiding a
+ * bunch of ChangeTurf() calls.
+ */
+
+var/list/turbolifts = list()
\ No newline at end of file
diff --git a/code/modules/turbolift/turbolift.dm b/code/modules/turbolift/turbolift.dm
new file mode 100644
index 0000000000..7d2f3c11a8
--- /dev/null
+++ b/code/modules/turbolift/turbolift.dm
@@ -0,0 +1,122 @@
+// Lift master datum. One per turbolift.
+/datum/turbolift
+ var/datum/turbolift_floor/target_floor // Where are we going?
+ var/datum/turbolift_floor/current_floor // Where is the lift currently?
+ var/list/doors = list() // Doors inside the lift structure.
+ var/list/queued_floors = list() // Where are we moving to next?
+ var/list/floors = list() // All floors in this system.
+ var/move_delay = 30 // Time between floor changes.
+ var/floor_wait_delay = 85 // Time to wait at floor stops.
+ var/obj/structure/lift/panel/control_panel_interior // Lift control panel.
+ var/doors_closing = 0 // Whether doors are in the process of closing
+
+ var/tmp/moving_upwards
+ var/tmp/busy
+
+/datum/turbolift/proc/emergency_stop()
+ queued_floors.Cut()
+ target_floor = null
+ open_doors()
+
+/datum/turbolift/proc/doors_are_open(var/datum/turbolift_floor/use_floor = current_floor)
+ for(var/obj/machinery/door/airlock/door in (use_floor ? (doors + use_floor.doors) : doors))
+ if(!door.density)
+ return 1
+ return 0
+
+/datum/turbolift/proc/open_doors(var/datum/turbolift_floor/use_floor = current_floor)
+ for(var/obj/machinery/door/airlock/door in (use_floor ? (doors + use_floor.doors) : doors))
+ //door.command("open")
+ spawn(0)
+ door.open()
+ return
+
+/datum/turbolift/proc/close_doors(var/datum/turbolift_floor/use_floor = current_floor)
+ for(var/obj/machinery/door/airlock/door in (use_floor ? (doors + use_floor.doors) : doors))
+ //door.command("close")
+ spawn(0)
+ door.close()
+ return
+
+/datum/turbolift/proc/do_move()
+
+ var/current_floor_index = floors.Find(current_floor)
+
+ if(!target_floor)
+ if(!queued_floors || !queued_floors.len)
+ return 0
+ target_floor = queued_floors[1]
+ queued_floors -= target_floor
+ if(current_floor_index < floors.Find(target_floor))
+ moving_upwards = 1
+ else
+ moving_upwards = 0
+
+ if(doors_are_open())
+ if(!doors_closing)
+ close_doors()
+ doors_closing = 1
+ return 1
+ else // We failed to close the doors - probably, someone is blocking them; stop trying to move
+ doors_closing = 0
+ open_doors()
+ control_panel_interior.audible_message("\The [current_floor.ext_panel] buzzes loudly.")
+ playsound(control_panel_interior.loc, "sound/machines/buzz-two.ogg", 50, 1)
+ return 0
+
+ doors_closing = 0 // The doors weren't open, so they are done closing
+
+ var/area/turbolift/origin = locate(current_floor.area_ref)
+
+ if(target_floor == current_floor)
+
+ playsound(control_panel_interior.loc, origin.arrival_sound, 50, 1)
+ target_floor.arrived(src)
+ target_floor = null
+
+ sleep(15)
+ control_panel_interior.visible_message("The elevator announces, \"[origin.lift_announce_str]\"")
+ sleep(floor_wait_delay)
+
+ return 1
+
+ // Work out where we're headed.
+ var/datum/turbolift_floor/next_floor
+ if(moving_upwards)
+ next_floor = floors[current_floor_index+1]
+ else
+ next_floor = floors[current_floor_index-1]
+
+ var/area/turbolift/destination = locate(next_floor.area_ref)
+
+ if(!istype(origin) || !istype(destination) || (origin == destination))
+ return 0
+
+ for(var/turf/T in destination)
+ for(var/atom/movable/AM in T)
+ if(istype(AM, /mob/living))
+ var/mob/living/M = AM
+ M.gib()
+ else if(AM.simulated)
+ qdel(AM)
+
+ origin.move_contents_to(destination)
+
+ if((locate(/obj/machinery/power) in destination) || (locate(/obj/structure/cable) in destination))
+ makepowernets()
+
+ current_floor = next_floor
+ control_panel_interior.visible_message("The elevator [moving_upwards ? "rises" : "descends"] smoothly.")
+
+ return 1
+
+/datum/turbolift/proc/queue_move_to(var/datum/turbolift_floor/floor)
+ if(!floor || !(floor in floors) || (floor in queued_floors))
+ return // STOP PRESSING THE BUTTON.
+ floor.pending_move(src)
+ queued_floors |= floor
+ turbolift_controller.lift_is_moving(src)
+
+// TODO: dummy machine ('lift mechanism') in powered area for functionality/blackout checks.
+/datum/turbolift/proc/is_functional()
+ return 1
\ No newline at end of file
diff --git a/code/modules/turbolift/turbolift_areas.dm b/code/modules/turbolift/turbolift_areas.dm
new file mode 100644
index 0000000000..dbf568aec2
--- /dev/null
+++ b/code/modules/turbolift/turbolift_areas.dm
@@ -0,0 +1,11 @@
+// Used for creating the exchange areas.
+/area/turbolift
+ name = "Turbolift"
+ base_turf = /turf/simulated/open
+ requires_power = 0
+ sound_env = SMALL_ENCLOSED
+
+ var/lift_floor_label = null
+ var/lift_floor_name = null
+ var/lift_announce_str = "Ding!"
+ var/arrival_sound = 'sound/machines/ding.ogg'
diff --git a/code/modules/turbolift/turbolift_console.dm b/code/modules/turbolift/turbolift_console.dm
new file mode 100644
index 0000000000..4cbee6a773
--- /dev/null
+++ b/code/modules/turbolift/turbolift_console.dm
@@ -0,0 +1,155 @@
+// Base type, do not use.
+/obj/structure/lift
+ name = "turbolift control component"
+ icon = 'icons/obj/turbolift.dmi'
+ anchored = 1
+ density = 0
+ layer = 4
+
+ var/datum/turbolift/lift
+
+/obj/structure/lift/set_dir(var/newdir)
+ . = ..()
+ pixel_x = 0
+ pixel_y = 0
+ if(dir & NORTH)
+ pixel_y = -32
+ else if(dir & SOUTH)
+ pixel_y = 32
+ else if(dir & EAST)
+ pixel_x = -32
+ else if(dir & WEST)
+ pixel_x = 32
+
+/obj/structure/lift/proc/pressed(var/mob/user)
+ if(!istype(user, /mob/living/silicon))
+ if(user.a_intent == I_HURT)
+ user.visible_message("\The [user] hammers on the lift button! ")
+ else
+ user.visible_message("\The [user] presses the lift button. ")
+
+
+/obj/structure/lift/New(var/newloc, var/datum/turbolift/_lift)
+ lift = _lift
+ return ..(newloc)
+
+/obj/structure/lift/attack_ai(var/mob/user)
+ return attack_hand(user)
+
+/obj/structure/lift/attack_generic(var/mob/user)
+ return attack_hand(user)
+
+/obj/structure/lift/attack_hand(var/mob/user)
+ return interact(user)
+
+/obj/structure/lift/interact(var/mob/user)
+ if(!lift.is_functional())
+ return 0
+ return 1
+// End base.
+
+// Button. No HTML interface, just calls the associated lift to its floor.
+/obj/structure/lift/button
+ name = "elevator button"
+ desc = "A call button for an elevator. Be sure to hit it three hundred times."
+ icon_state = "button"
+ var/light_up = FALSE
+ var/datum/turbolift_floor/floor
+
+/obj/structure/lift/button/Destroy()
+ if(floor && floor.ext_panel == src)
+ floor.ext_panel = null
+ floor = null
+ return ..()
+
+/obj/structure/lift/button/proc/reset()
+ light_up = FALSE
+ update_icon()
+
+/obj/structure/lift/button/interact(var/mob/user)
+ if(!..())
+ return
+ light_up()
+ pressed(user)
+ if(floor == lift.current_floor)
+ lift.open_doors()
+ spawn(3)
+ reset()
+ return
+ lift.queue_move_to(floor)
+
+/obj/structure/lift/button/proc/light_up()
+ light_up = TRUE
+ update_icon()
+
+/obj/structure/lift/button/update_icon()
+ if(light_up)
+ icon_state = "button_lit"
+ else
+ icon_state = initial(icon_state)
+
+// End button.
+
+// Panel. Lists floors (HTML), moves with the elevator, schedules a move to a given floor.
+/obj/structure/lift/panel
+ name = "elevator control panel"
+ icon_state = "panel"
+
+
+/obj/structure/lift/panel/attack_ghost(var/mob/user)
+ return interact(user)
+
+/obj/structure/lift/panel/interact(var/mob/user)
+ if(!..())
+ return
+
+ var/dat = list()
+ dat += "Lift panel "
+
+ //the floors list stores levels in order of increasing Z
+ //therefore, to display upper levels at the top of the menu and
+ //lower levels at the bottom, we need to go through the list in reverse
+ for(var/i in lift.floors.len to 1 step -1)
+ var/datum/turbolift_floor/floor = lift.floors[i]
+ var/label = floor.label? floor.label : "Level #[i]"
+ dat += ""
+ dat += "[label] : [floor.name] "
+
+ dat += " "
+ if(lift.doors_are_open())
+ dat += "Close Doors "
+ else
+ dat += "Open Doors "
+ dat += "Emergency Stop "
+ dat += " "
+
+ var/datum/browser/popup = new(user, "turbolift_panel", "Lift Panel", 230, 260)
+ popup.set_content(jointext(dat, null))
+ popup.open()
+ return
+
+/obj/structure/lift/panel/Topic(href, href_list)
+ . = ..()
+ if(.)
+ return
+
+ var/panel_interact
+ if(href_list["move_to_floor"])
+ lift.queue_move_to(locate(href_list["move_to_floor"]))
+ panel_interact = 1
+ if(href_list["open_doors"])
+ panel_interact = 1
+ lift.open_doors()
+ if(href_list["close_doors"])
+ panel_interact = 1
+ lift.close_doors()
+ if(href_list["emergency_stop"])
+ panel_interact = 1
+ lift.emergency_stop()
+
+ if(panel_interact)
+ pressed(usr)
+
+ return 0
+
+// End panel.
\ No newline at end of file
diff --git a/code/modules/turbolift/turbolift_door.dm b/code/modules/turbolift/turbolift_door.dm
new file mode 100644
index 0000000000..79bf1d0c51
--- /dev/null
+++ b/code/modules/turbolift/turbolift_door.dm
@@ -0,0 +1,44 @@
+/obj/machinery/door/airlock/lift
+ name = "Elevator Door"
+ desc = "Ding."
+ req_access = list(access_maint_tunnels)
+ opacity = 0
+ autoclose = 0
+ glass = 1
+ icon = 'icons/obj/doors/doorlift.dmi'
+
+ var/datum/turbolift/lift
+ var/datum/turbolift_floor/floor
+
+/obj/machinery/door/airlock/lift/Destroy()
+ if(lift)
+ lift.doors -= src
+ if(floor)
+ floor.doors -= src
+ return ..()
+
+/obj/machinery/door/airlock/lift/bumpopen(var/mob/user)
+ return // No accidental sprinting into open elevator shafts.
+
+/obj/machinery/door/airlock/lift/allowed(mob/M)
+ return FALSE //only the lift machinery is allowed to operate this door
+
+/obj/machinery/door/airlock/lift/close(var/forced=0)
+ for(var/turf/turf in locs)
+ for(var/mob/living/LM in turf)
+ if(LM.mob_size <= MOB_TINY)
+ var/moved = 0
+ for(dir in shuffle(cardinal.Copy()))
+ var/dest = get_step(LM,dir)
+ if(!(locate(/obj/machinery/door/airlock/lift) in dest))
+ if(LM.Move(dest))
+ moved = 1
+ LM.visible_message("\The [LM] scurries away from the closing doors.")
+ break
+ if(!moved) // nowhere to go....
+ LM.gib()
+ else // the mob is too big to just move, so we need to give up what we're doing
+ audible_message("\The [src]'s motors grind as they quickly reverse direction, unable to safely close.")
+ cur_command = null // the door will just keep trying otherwise
+ return 0
+ return ..()
\ No newline at end of file
diff --git a/code/modules/turbolift/turbolift_floor.dm b/code/modules/turbolift/turbolift_floor.dm
new file mode 100644
index 0000000000..7761f09284
--- /dev/null
+++ b/code/modules/turbolift/turbolift_floor.dm
@@ -0,0 +1,33 @@
+// Simple holder for each floor in the lift.
+/datum/turbolift_floor
+ var/area_ref
+ var/label
+ var/name
+ var/announce_str
+ var/arrival_sound
+
+ var/list/doors = list()
+ var/obj/structure/lift/button/ext_panel
+
+/datum/turbolift_floor/proc/set_area_ref(var/ref)
+ var/area/turbolift/A = locate(ref)
+ if(!istype(A))
+ log_debug("Turbolift floor area was of the wrong type: ref=[ref]")
+ return
+
+ area_ref = ref
+ label = A.lift_floor_label
+ name = A.lift_floor_name ? A.lift_floor_name : A.name
+ announce_str = A.lift_announce_str
+ arrival_sound = A.arrival_sound
+
+//called when a lift has queued this floor as a destination
+/datum/turbolift_floor/proc/pending_move(var/datum/turbolift/lift)
+ if(ext_panel)
+ ext_panel.light_up()
+
+//called when a lift arrives at this floor
+/datum/turbolift_floor/proc/arrived(var/datum/turbolift/lift)
+ lift.open_doors(src)
+ if(ext_panel)
+ ext_panel.reset()
\ No newline at end of file
diff --git a/code/modules/turbolift/turbolift_map.dm b/code/modules/turbolift/turbolift_map.dm
new file mode 100644
index 0000000000..2e2498f88d
--- /dev/null
+++ b/code/modules/turbolift/turbolift_map.dm
@@ -0,0 +1,228 @@
+// Map object.
+/obj/turbolift_map_holder
+ name = "turbolift map placeholder"
+ icon = 'icons/obj/turbolift_preview_3x3.dmi'
+ dir = SOUTH // Direction of the holder determines the placement of the lift control panel and doors.
+ var/depth = 1 // Number of floors to generate, including the initial floor.
+ var/lift_size_x = 2 // Number of turfs on each axis to generate in addition to the first
+ var/lift_size_y = 2 // ie. a 3x3 lift would have a value of 2 in each of these variables.
+
+ // Various turf and door types used when generating the turbolift floors.
+ var/wall_type = /turf/simulated/wall/elevator
+ var/floor_type = /turf/simulated/floor/tiled/dark
+ var/door_type = /obj/machinery/door/airlock/lift
+
+ var/list/areas_to_use = list()
+
+/obj/turbolift_map_holder/Destroy()
+ turbolifts -= src
+ return ..()
+
+/obj/turbolift_map_holder/New()
+ turbolifts += src
+ ..()
+
+/obj/turbolift_map_holder/initialize()
+
+ // Create our system controller.
+ var/datum/turbolift/lift = new()
+
+ // Holder values since we're moving this object to null ASAP.
+ var/ux = x
+ var/uy = y
+ var/uz = z
+ var/udir = dir
+ forceMove(null)
+
+ // These modifiers are used in relation to the origin
+ // to place the system control panels and doors.
+ var/int_panel_x
+ var/int_panel_y
+ var/ext_panel_x
+ var/ext_panel_y
+ var/door_x1
+ var/door_y1
+ var/door_x2
+ var/door_y2
+ var/light_x1
+ var/light_x2
+ var/light_y1
+ var/light_y2
+
+ var/az = 1
+ var/ex = (ux+lift_size_x)
+ var/ey = (uy+lift_size_y)
+ var/ez = (uz+(depth-1))
+
+ switch(dir)
+
+ if(NORTH)
+
+ int_panel_x = ux + Floor(lift_size_x/2)
+ int_panel_y = uy + 1
+ ext_panel_x = ux
+ ext_panel_y = ey + 2
+
+ door_x1 = ux + 1
+ door_y1 = ey
+ door_x2 = ex - 1
+ door_y2 = ey + 1
+
+ light_x1 = ux + 1
+ light_y1 = uy + 1
+ light_x2 = ux + lift_size_x - 1
+ light_y2 = uy + 1
+
+ if(SOUTH)
+
+ int_panel_x = ux + Floor(lift_size_x/2)
+ int_panel_y = ey - 1
+ ext_panel_x = ex
+ ext_panel_y = uy - 2
+
+ door_x1 = ux + 1
+ door_y1 = uy - 1
+ door_x2 = ex - 1
+ door_y2 = uy
+
+ light_x1 = ux + 1
+ light_y1 = uy + 2
+ light_x2 = ux + lift_size_x - 1
+ light_y2 = uy + lift_size_y - 1
+
+ if(EAST)
+
+ int_panel_x = ux+1
+ int_panel_y = uy + Floor(lift_size_y/2)
+ ext_panel_x = ex+2
+ ext_panel_y = ey
+
+ door_x1 = ex
+ door_y1 = uy + 1
+ door_x2 = ex + 1
+ door_y2 = ey - 1
+
+ light_x1 = ux + 1
+ light_y1 = uy + 1
+ light_x2 = ux + 1
+ light_y2 = uy + lift_size_x - 1
+
+ if(WEST)
+
+ int_panel_x = ex-1
+ int_panel_y = uy + Floor(lift_size_y/2)
+ ext_panel_x = ux-2
+ ext_panel_y = uy
+
+ door_x1 = ux - 1
+ door_y1 = uy + 1
+ door_x2 = ux
+ door_y2 = ey - 1
+
+ light_x1 = ux + lift_size_x - 1
+ light_y1 = uy + 1
+ light_x2 = ux + lift_size_x - 1
+ light_y2 = uy + lift_size_y - 1
+
+ // Generate each floor and store it in the controller datum.
+ for(var/cz = uz;cz<=ez;cz++)
+
+ var/datum/turbolift_floor/cfloor = new()
+ lift.floors += cfloor
+
+ var/list/floor_turfs = list()
+ // Update the appropriate turfs.
+ for(var/tx = ux to ex)
+ for(var/ty = uy to ey)
+
+ var/turf/checking = locate(tx,ty,cz)
+
+ if(!istype(checking))
+ log_debug("[name] cannot find a component turf at [tx],[ty] on floor [cz]. Aborting.")
+ qdel(src)
+ return
+
+ // Update path appropriately if needed.
+ var/swap_to = /turf/simulated/open
+ if(cz == uz) // Elevator.
+ if((tx == ux || ty == uy || tx == ex || ty == ey) && !(tx >= door_x1 && tx <= door_x2 && ty >= door_y1 && ty <= door_y2))
+ swap_to = wall_type
+ else
+ swap_to = floor_type
+
+ if(checking.type != swap_to)
+ checking.ChangeTurf(swap_to)
+ // Let's make absolutely sure that we have the right turf.
+ checking = locate(tx,ty,cz)
+
+ // Clear out contents.
+ for(var/atom/movable/thing in checking.contents)
+ if(thing.simulated)
+ qdel(thing)
+
+ if(tx >= ux && tx <= ex && ty >= uy && ty <= ey)
+ floor_turfs += checking
+
+ // Place exterior doors.
+ for(var/tx = door_x1 to door_x2)
+ for(var/ty = door_y1 to door_y2)
+ var/turf/checking = locate(tx,ty,cz)
+ var/internal = 1
+ if(!(checking in floor_turfs))
+ internal = 0
+ if(checking.type != floor_type)
+ checking.ChangeTurf(floor_type)
+ checking = locate(tx,ty,cz)
+ for(var/atom/movable/thing in checking.contents)
+ if(thing.simulated)
+ qdel(thing)
+ if(checking.type == floor_type) // Don't build over empty space on lower levels.
+ var/obj/machinery/door/airlock/lift/newdoor = new door_type(checking)
+ if(internal)
+ lift.doors += newdoor
+ newdoor.lift = cfloor
+ else
+ cfloor.doors += newdoor
+ newdoor.floor = cfloor
+
+ // Place exterior control panel.
+ var/turf/placing = locate(ext_panel_x, ext_panel_y, cz)
+ var/obj/structure/lift/button/panel_ext = new(placing, lift)
+ panel_ext.floor = cfloor
+ panel_ext.set_dir(udir)
+ cfloor.ext_panel = panel_ext
+
+ // Place lights
+ var/turf/placing1 = locate(light_x1, light_y1, cz)
+ var/turf/placing2 = locate(light_x2, light_y2, cz)
+ var/obj/machinery/light/light1 = new(placing1, light)
+ var/obj/machinery/light/light2 = new(placing2, light)
+ if(udir == NORTH || udir == SOUTH)
+ light1.set_dir(WEST)
+ light2.set_dir(EAST)
+ else
+ light1.set_dir(SOUTH)
+ light2.set_dir(NORTH)
+
+ // Update area.
+ if(az > areas_to_use.len)
+ log_debug("Insufficient defined areas in turbolift datum, aborting.")
+ qdel(src)
+ return
+
+ var/area_path = areas_to_use[az]
+ for(var/thing in floor_turfs)
+ new area_path(thing)
+ var/area/A = locate(area_path)
+ cfloor.set_area_ref("\ref[A]")
+ az++
+
+ // Place lift panel.
+ var/turf/T = locate(int_panel_x, int_panel_y, uz)
+ lift.control_panel_interior = new(T, lift)
+ lift.control_panel_interior.set_dir(udir)
+ lift.current_floor = lift.floors[uz]
+
+ lift.open_doors()
+
+ qdel(src) // We're done.
diff --git a/code/modules/turbolift/turbolift_process.dm b/code/modules/turbolift/turbolift_process.dm
new file mode 100644
index 0000000000..83ce1b9faf
--- /dev/null
+++ b/code/modules/turbolift/turbolift_process.dm
@@ -0,0 +1,35 @@
+var/datum/controller/process/turbolift/turbolift_controller
+
+/datum/controller/process/turbolift
+ var/list/moving_lifts = list()
+
+/datum/controller/process/turbolift/New()
+ ..()
+ turbolift_controller = src
+
+/datum/controller/process/turbolift/setup()
+ name = "turbolift controller"
+ schedule_interval = 10
+
+/datum/controller/process/turbolift/doWork()
+ for(var/liftref in moving_lifts)
+ if(world.time < moving_lifts[liftref])
+ continue
+ var/datum/turbolift/lift = locate(liftref)
+ if(lift.busy)
+ continue
+ spawn(0)
+ lift.busy = 1
+ if(!lift.do_move())
+ moving_lifts[liftref] = null
+ moving_lifts -= liftref
+ if(lift.target_floor)
+ lift.target_floor.ext_panel.reset()
+ lift.target_floor = null
+ else
+ lift_is_moving(lift)
+ lift.busy = 0
+ SCHECK
+
+/datum/controller/process/turbolift/proc/lift_is_moving(var/datum/turbolift/lift)
+ moving_lifts["\ref[lift]"] = world.time + lift.move_delay
diff --git a/code/modules/turbolift/turbolift_turfs.dm b/code/modules/turbolift/turbolift_turfs.dm
new file mode 100644
index 0000000000..632160efaa
--- /dev/null
+++ b/code/modules/turbolift/turbolift_turfs.dm
@@ -0,0 +1,2 @@
+/turf/simulated/wall/elevator/New(var/newloc)
+ ..(newloc,"elevatorium")
diff --git a/code/modules/ventcrawl/ventcrawl_atmospherics.dm b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
index bb2d121125..1fd9dd077c 100644
--- a/code/modules/ventcrawl/ventcrawl_atmospherics.dm
+++ b/code/modules/ventcrawl/ventcrawl_atmospherics.dm
@@ -55,6 +55,12 @@
/obj/machinery/atmospherics/proc/can_crawl_through()
return 1
+/obj/machinery/atmospherics/unary/can_crawl_through()
+ if(welded)
+ return 0
+
+ . = ..()
+
/obj/machinery/atmospherics/proc/findConnecting(var/direction)
for(var/obj/machinery/atmospherics/target in get_step(src,direction))
if(target.initialize_directions & get_dir(target,src))
diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm
index 8ca82b96a1..5243bae35f 100644
--- a/code/modules/virus2/effect.dm
+++ b/code/modules/virus2/effect.dm
@@ -121,13 +121,11 @@
stage = 4
badness = 3
activate(var/mob/living/carbon/mob,var/multiplier)
- mob.suiciding = 1
+ mob.suiciding = 30
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
viewers(mob) << "\red [mob.name] is holding \his breath. It looks like \he's trying to commit suicide. "
mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss())
mob.updatehealth()
- spawn(200) //in case they get revived by cryo chamber or something stupid like that, let them suicide again in 20 seconds
- mob.suiciding = 0
/datum/disease2/effect/killertoxins
name = "Toxification Syndrome"
diff --git a/code/modules/xenoarcheaology/artifacts/autocloner.dm b/code/modules/xenoarcheaology/artifacts/autocloner.dm
index 89c653516f..5f56ece8ee 100644
--- a/code/modules/xenoarcheaology/artifacts/autocloner.dm
+++ b/code/modules/xenoarcheaology/artifacts/autocloner.dm
@@ -37,7 +37,7 @@
/mob/living/simple_animal/slime,
/mob/living/simple_animal/crab,
/mob/living/simple_animal/mouse,
- /mob/living/simple_animal/hostile/retaliate/goat)
+ /mob/living/simple_animal/retaliate/goat)
//todo: how the hell is the asteroid permanently powered?
/obj/machinery/auto_cloner/process()
diff --git a/code/modules/xenoarcheaology/effects/emp.dm b/code/modules/xenoarcheaology/effects/emp.dm
index d6d402efe4..fd30420b57 100644
--- a/code/modules/xenoarcheaology/effects/emp.dm
+++ b/code/modules/xenoarcheaology/effects/emp.dm
@@ -9,5 +9,5 @@
/datum/artifact_effect/emp/DoEffectPulse()
if(holder)
var/turf/T = get_turf(holder)
- empulse(T, effectrange/2, effectrange)
+ empulse(T, effectrange/4, effectrange/3, effectrange/2, effectrange)
return 1
diff --git a/code/modules/xenobio2/machinery/injector_computer.dm b/code/modules/xenobio2/machinery/injector_computer.dm
index 12887506c2..2f0144d37b 100644
--- a/code/modules/xenobio2/machinery/injector_computer.dm
+++ b/code/modules/xenobio2/machinery/injector_computer.dm
@@ -20,8 +20,8 @@
var/active
/obj/machinery/computer/xenobio2/Destroy()
- ..()
injector.computer = null
+ ..()
/obj/machinery/computer/xenobio2/attack_hand(mob/user)
if(..())
@@ -109,5 +109,5 @@
/obj/item/weapon/circuitboard/xenobio2computer
name = T_BOARD("injector control console")
- build_path = /obj/item/weapon/circuitboard/xenobio2computer
- origin_tech = list() //To be filled,
+ build_path = /obj/machinery/computer/xenobio2
+ origin_tech = list() //To be filled
diff --git a/code/modules/xgm/xgm_gas_mixture.dm b/code/modules/xgm/xgm_gas_mixture.dm
index 18c210a6dc..cb600f254f 100644
--- a/code/modules/xgm/xgm_gas_mixture.dm
+++ b/code/modules/xgm/xgm_gas_mixture.dm
@@ -96,10 +96,16 @@
update_values()
+// Used to equalize the mixture between two zones before sleeping an edge.
/datum/gas_mixture/proc/equalize(datum/gas_mixture/sharer)
var/our_heatcap = heat_capacity()
var/share_heatcap = sharer.heat_capacity()
+ // Special exception: there isn't enough air around to be worth processing this edge next tick, zap both to zero.
+ if(total_moles + sharer.total_moles <= MINIMUM_AIR_TO_SUSPEND)
+ gas.Cut()
+ sharer.gas.Cut()
+
for(var/g in gas|sharer.gas)
var/comb = gas[g] + sharer.gas[g]
comb /= volume + sharer.volume
@@ -110,6 +116,9 @@
temperature = ((temperature * our_heatcap) + (sharer.temperature * share_heatcap)) / (our_heatcap + share_heatcap)
sharer.temperature = temperature
+ update_values()
+ sharer.update_values()
+
return 1
@@ -279,9 +288,16 @@
//Checks if we are within acceptable range of another gas_mixture to suspend processing or merge.
-/datum/gas_mixture/proc/compare(const/datum/gas_mixture/sample)
+/datum/gas_mixture/proc/compare(const/datum/gas_mixture/sample, var/vacuum_exception = 0)
if(!sample) return 0
+ if(vacuum_exception)
+ // Special case - If one of the two is zero pressure, the other must also be zero.
+ // This prevents suspending processing when an air-filled room is next to a vacuum,
+ // an edge case which is particually obviously wrong to players
+ if(total_moles == 0 && sample.total_moles != 0 || sample.total_moles == 0 && total_moles != 0)
+ return 0
+
var/list/marked = list()
for(var/g in gas)
if((abs(gas[g] - sample.gas[g]) > MINIMUM_AIR_TO_SUSPEND) && \
diff --git a/code/unit_tests/zas_tests.dm b/code/unit_tests/zas_tests.dm
index cbf26f061f..638de10036 100644
--- a/code/unit_tests/zas_tests.dm
+++ b/code/unit_tests/zas_tests.dm
@@ -19,7 +19,7 @@
var/list/GM_checked = list()
for(var/turf/simulated/T in A)
- if(!istype(T) || isnull(T.zone) || istype(T, /turf/simulated/floor/airless))
+ if(!istype(T) || isnull(T.zone) || istype(T, /turf/simulated/floor/airless) || istype(T,/turf/simulated/shuttle/plating/airless))
continue
if(T.zone.air in GM_checked)
continue
diff --git a/code/world.dm b/code/world.dm
index 7e7633f8e1..02ec2669a9 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -83,6 +83,10 @@ var/global/datum/global_init/init = new ()
// This is kinda important. Set up details of what the hell things are made of.
populate_material_list()
+ if(config.generate_map)
+ if(using_map.perform_map_generation())
+ using_map.refresh_mining_turfs()
+/*
if(config.generate_asteroid)
// These values determine the specific area that the map is applied to.
// Because we do not use Bay's default map, we check the config file to see if custom parameters are needed, so we need to avoid hardcoding.
@@ -103,7 +107,7 @@ var/global/datum/global_init/init = new ()
// it's brute-forcey, but frankly the alternative is a mine turf rewrite.
for(var/turf/simulated/mineral/M in world) // Ugh.
M.update_icon()
-
+*/
// Create frame types.
populate_frame_types()
diff --git a/config/example/config.txt b/config/example/config.txt
index 884316c45c..8437829fd3 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -372,13 +372,11 @@ STARLIGHT 0
# LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010
-## Enable asteroid tunnel/cave generation. Will behave strangely if turned off with a map that expects it on.
-# GENERATE_ASTEROID
-
+## Enables specific procedural map generation, generally for mining, however it is specific to the loaded map. Uncomment to enable it, however it can
+## worth it to keep it disabled if you are not hosting an actual server, to speed up start-up time for testing code.
+# GENERATE_MAP
+
-## If you've enabled asteroid generation, you need to supply which z-levels to apply it to, in integer form, and seperated using ;
-## An example: 1;4;5
-# ASTEROID_Z_LEVELS 1;4;5
## Uncomment to enable organ decay outside of a body or storage item.
#ORGANS_CAN_DECAY
diff --git a/html/changelog.html b/html/changelog.html
index ae6ba88f27..b75510ad4f 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -53,6 +53,100 @@
-->
+
31 March 2017
+
Anewbe updated:
+
+ Added a number of crates to cargo.
+ Added the electric welder as a hidden autolathe recipe.
+ Added a few colored (in sprite, not in color) flashlights, to the loadout. Sprites c/o Schnayy.
+ Maps in a pair of jumper cable kits. Use these to revive FBPs.
+
+
+
30 March 2017
+
Anewbe updated:
+
+ Italics in chat are now trigged with | , rather than / .
+ Energy weapons, flashlights, stunbatons, and welders can now be moved from hand to hand by click+dragging.
+ Flashlights can now be placed in wall rechargers.
+ Adds jumper cables, that act a bit like a defib for FBPs.
+ Bicaridine and Myelamine should now properly repair internal bleeding.
+ Overdoses are now more dangerous.
+ Chloral Hydrate overdoses are now even more dangerous.
+
+
Arokha updated:
+
+ Adds body markings and tattoos.
+
+
MagmaRam updated:
+
+ Borgs and assorted robits can now use grinders in chemistry and the kitchen.
+
+
+
28 March 2017
+
Anewbe updated:
+
+ Disregard the last changelog on the spelling of HI, the correct spelling is Hephaestus. My bad.
+ Added a changelog editing system that should cause fewer conflicts and more accurate timestamps.
+ Added Myelamine, a blood clotting chemical. This is available to antags, and can be ordered from cargo or mixed.
+ Added Osteodaxon, a bone fixing medicine. This is available to antags, and can be mixed.
+ Added Carthatoline, a stronger anti-toxin.
+ Added Spidertoxin, which comes from spiders (duh), and is used in making Myelamine.
+ Death Alarms can now be ordered from cargo.
+ Dexalin Plus is half as strong (still pretty strong, though).
+ Ninja, Merc, and ERT-M Hardsuits can now inject myelamine.
+ Inaprovaline now decreases the effects of bloodloss, and lessens brain damage taken from OxyLoss.
+ Prosthetic organs now take randomised damage when emp'd, this should roughly average out to the old values.
+ The effects of heart damage have been tweaked, should be slightly easier to survive now.
+ Some of the stronger chems have side effects, like confusion or blurry vision. These should be fairly minor, and we may be tweaking them in the future.
+ The suiciding var now wears off, making it possible to save suicide victims if quick action is taken.
+ Death Alarms now announce on General comms again.
+ Borgs can climb tables.
+ Skrell can now be up to 130 years old.
+ Skrell are more vulnerable to flashes, due to their large eyes.
+ Tajaran no longer have appendicies.
+ Tajaran are more vulnerable to flashes.
+ Unathi have less brute resist, but some burn resist.
+ Unathi gender is now unclear to non-Unathi.
+
+
+
22 March 2017
+
Anewbe updated:
+
+ Oxyloss now shows up as cyan in scanners.
+
+
Arokha updated:
+
+ Having less than 30% blood (as a result of literally having that little blood, or a broken heart) causes 75 oxyloss per tick rather than 300 toxins and instant death, to allow for heart transplants.
+ Infections now spread and process properly between external organs.
+ Infections now have appropriate symptoms that indicate to a player that they have one.
+ Infections are now diagnosable more accurately in a medscanner, or visually for high level infections or dead limbs.
+
+
Atermonera updated:
+
+ EAL, Sign language, and emotes will no longer use autohiss
+ Surgeon Borgs now have a proper medical hud module
+
+
+
24 February 2017
+
Anewbe updated:
+
+ Fake command reports now make the paper show up.
+ Mining cameras should work now.
+
+
MagmaRam updated:
+
+ There is now a short delay before being able to fire when using hostage-taking mode, and a short delay between shots. This should make hostage mode useful for taking hostages and ambushes, rather than as an aimbot in actual firefights.
+ Sandwiches at max size can be eaten with a fork.
+
+
Yosh updated:
+
+ Some vending machines now log the items they've vended and had stocked, storing the name of the user, the time and the item. These can be found by using the new verb for vending machines, or from the right click menu.
+
+
Zuhayr updated:
+
+ Adminhelps now have a TAKE button that allow an admin to claim it, and inform the adminhelper that someone is on the case.
+
+
28 January 2017
Anewbe updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index dc20965687..3c69878eb1 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -3279,3 +3279,89 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- rscadd: Resetting a character slot now requires confirmation.
Zuhayr:
- rscadd: Added a reset slot button to chargen.
+2017-02-24:
+ Anewbe:
+ - rscadd: Fake command reports now make the paper show up.
+ - bugfix: Mining cameras should work now.
+ MagmaRam:
+ - tweak: There is now a short delay before being able to fire when using hostage-taking
+ mode, and a short delay between shots. This should make hostage mode useful
+ for taking hostages and ambushes, rather than as an aimbot in actual firefights.
+ - bugfix: Sandwiches at max size can be eaten with a fork.
+ Yosh:
+ - rscadd: Some vending machines now log the items they've vended and had stocked,
+ storing the name of the user, the time and the item. These can be found by using
+ the new verb for vending machines, or from the right click menu.
+ Zuhayr:
+ - rscadd: Adminhelps now have a TAKE button that allow an admin to claim it, and
+ inform the adminhelper that someone is on the case.
+2017-03-22:
+ Anewbe:
+ - tweak: Oxyloss now shows up as cyan in scanners.
+ Arokha:
+ - tweak: Having less than 30% blood (as a result of literally having that little
+ blood, or a broken heart) causes 75 oxyloss per tick rather than 300 toxins
+ and instant death, to allow for heart transplants.
+ - bugfix: Infections now spread and process properly between external organs.
+ - rscadd: Infections now have appropriate symptoms that indicate to a player that
+ they have one.
+ - rscadd: Infections are now diagnosable more accurately in a medscanner, or visually
+ for high level infections or dead limbs.
+ Atermonera:
+ - bugfix: EAL, Sign language, and emotes will no longer use autohiss
+ - rscadd: Surgeon Borgs now have a proper medical hud module
+2017-03-28:
+ Anewbe:
+ - spellcheck: Disregard the last changelog on the spelling of HI, the correct spelling
+ is Hephaestus. My bad.
+ - rscadd: Added a changelog editing system that should cause fewer conflicts and
+ more accurate timestamps.
+ - rscadd: Added Myelamine, a blood clotting chemical. This is available to antags,
+ and can be ordered from cargo or mixed.
+ - rscadd: Added Osteodaxon, a bone fixing medicine. This is available to antags,
+ and can be mixed.
+ - rscadd: Added Carthatoline, a stronger anti-toxin.
+ - rscadd: Added Spidertoxin, which comes from spiders (duh), and is used in making
+ Myelamine.
+ - rscadd: Death Alarms can now be ordered from cargo.
+ - rscdel: Dexalin Plus is half as strong (still pretty strong, though).
+ - rscadd: Ninja, Merc, and ERT-M Hardsuits can now inject myelamine.
+ - tweak: Inaprovaline now decreases the effects of bloodloss, and lessens brain
+ damage taken from OxyLoss.
+ - tweak: Prosthetic organs now take randomised damage when emp'd, this should roughly
+ average out to the old values.
+ - tweak: The effects of heart damage have been tweaked, should be slightly easier
+ to survive now.
+ - tweak: Some of the stronger chems have side effects, like confusion or blurry
+ vision. These should be fairly minor, and we may be tweaking them in the future.
+ - tweak: The suiciding var now wears off, making it possible to save suicide victims
+ if quick action is taken.
+ - tweak: Death Alarms now announce on General comms again.
+ - rscadd: Borgs can climb tables.
+ - tweak: Skrell can now be up to 130 years old.
+ - tweak: Skrell are more vulnerable to flashes, due to their large eyes.
+ - tweak: Tajaran no longer have appendicies.
+ - tweak: Tajaran are more vulnerable to flashes.
+ - tweak: Unathi have less brute resist, but some burn resist.
+ - tweak: Unathi gender is now unclear to non-Unathi.
+2017-03-30:
+ Anewbe:
+ - tweak: Italics in chat are now trigged with | , rather than / .
+ - rscadd: Energy weapons, flashlights, stunbatons, and welders can now be moved
+ from hand to hand by click+dragging.
+ - rscadd: Flashlights can now be placed in wall rechargers.
+ - rscadd: Adds jumper cables, that act a bit like a defib for FBPs.
+ - bugfix: Bicaridine and Myelamine should now properly repair internal bleeding.
+ - rscadd: Overdoses are now more dangerous.
+ - rscadd: Chloral Hydrate overdoses are now even more dangerous.
+ Arokha:
+ - rscadd: Adds body markings and tattoos.
+ MagmaRam:
+ - bugfix: Borgs and assorted robits can now use grinders in chemistry and the kitchen.
+2017-03-31:
+ Anewbe:
+ - rscadd: Added a number of crates to cargo.
+ - rscadd: Added the electric welder as a hidden autolathe recipe.
+ - rscadd: Added a few colored (in sprite, not in color) flashlights, to the loadout.
+ Sprites c/o Schnayy.
+ - rscadd: Maps in a pair of jumper cable kits. Use these to revive FBPs.
diff --git a/html/changelogs/Anewbe - Mining Cameras.yml b/html/changelogs/Anewbe - Mining Cameras.yml
deleted file mode 100644
index 2171ac81ed..0000000000
--- a/html/changelogs/Anewbe - Mining Cameras.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Anewbe
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - bugfix: "Mining cameras should work now."
\ No newline at end of file
diff --git a/html/changelogs/MagmaRam - Aimbot.yml b/html/changelogs/MagmaRam - Aimbot.yml
deleted file mode 100644
index dbe59cb09d..0000000000
--- a/html/changelogs/MagmaRam - Aimbot.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: MagmaRam
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - tweak: "There is now a short delay before being able to fire when using hostage-taking mode, and a short delay between shots. This should make hostage mode useful for taking hostages and ambushes, rather than as an aimbot in actual firefights."
diff --git a/html/changelogs/MagmaRam - Sandwich.yml b/html/changelogs/MagmaRam - Sandwich.yml
deleted file mode 100644
index b9482e6bff..0000000000
--- a/html/changelogs/MagmaRam - Sandwich.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: MagmaRam
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - bugfix: "Sandwiches at max size can be eaten with a fork."
diff --git a/html/changelogs/Anewbe - Announcement.yml b/html/changelogs/MagmaRam - Splints.yml
similarity index 91%
rename from html/changelogs/Anewbe - Announcement.yml
rename to html/changelogs/MagmaRam - Splints.yml
index 1bda432be2..07d627e02f 100644
--- a/html/changelogs/Anewbe - Announcement.yml
+++ b/html/changelogs/MagmaRam - Splints.yml
@@ -22,7 +22,7 @@
#################################
# Your name.
-author: Anewbe
+author: Magmaram
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
@@ -33,4 +33,4 @@ delete-after: True
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- - rscadd: "Fake command reports now make the paper show up."
+ - bugfix: "Splints will now show up in examine text on hands and feet as well as arms and legs."
diff --git a/html/changelogs/Yoshax-Logs.yml b/html/changelogs/Yoshax-Logs.yml
deleted file mode 100644
index eab0fe6fd3..0000000000
--- a/html/changelogs/Yoshax-Logs.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Yosh
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Some vending machines now log the items they've vended and had stocked, storing the name of the user, the time and the item. These can be found by using the new verb for vending machines, or from the right click menu."
diff --git a/html/changelogs/zuhayr-dibs.yml b/html/changelogs/zuhayr-dibs.yml
deleted file mode 100644
index 54cf379ed3..0000000000
--- a/html/changelogs/zuhayr-dibs.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Zuhayr
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Adminhelps now have a TAKE button that allow an admin to claim it, and inform the adminhelper that someone is on the case."
diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi
index b08f1ac3de..8529bdc816 100644
Binary files a/icons/effects/tile_effects.dmi and b/icons/effects/tile_effects.dmi differ
diff --git a/icons/effects/weather.dmi b/icons/effects/weather.dmi
new file mode 100644
index 0000000000..d0df90a44a
Binary files /dev/null and b/icons/effects/weather.dmi differ
diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi
index 7fe7877cda..f5fbc438a7 100644
Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ
diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi
index 7326be690e..14823c7801 100644
Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ
diff --git a/icons/mob/fish.dmi b/icons/mob/fish.dmi
new file mode 100644
index 0000000000..22978494dc
Binary files /dev/null and b/icons/mob/fish.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 8799515814..dff3abd7d7 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index faedbce1d9..5442b3b4a8 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ
diff --git a/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt1.dmi
similarity index 100%
rename from icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_alt1.dmi
rename to icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt1.dmi
diff --git a/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi
similarity index 100%
rename from icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_main.dmi
rename to icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_main.dmi
diff --git a/icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi b/icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi
similarity index 100%
rename from icons/mob/human_races/cyberlimbs/hesphiastos/hesphiastos_monitor.dmi
rename to icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi
diff --git a/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt2.dmi b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt2.dmi
new file mode 100644
index 0000000000..6bee009356
Binary files /dev/null and b/icons/mob/human_races/cyberlimbs/morpheus/morpheus_alt2.dmi differ
diff --git a/icons/mob/human_races/markings.dmi b/icons/mob/human_races/markings.dmi
new file mode 100644
index 0000000000..636c829bd5
Binary files /dev/null and b/icons/mob/human_races/markings.dmi differ
diff --git a/icons/mob/human_races/r_def_skrell.dmi b/icons/mob/human_races/r_def_skrell.dmi
index 1dd654054b..7b24ba3b4d 100644
Binary files a/icons/mob/human_races/r_def_skrell.dmi and b/icons/mob/human_races/r_def_skrell.dmi differ
diff --git a/icons/mob/human_races/r_skrell.dmi b/icons/mob/human_races/r_skrell.dmi
index 131fe57507..ea04d05b30 100644
Binary files a/icons/mob/human_races/r_skrell.dmi and b/icons/mob/human_races/r_skrell.dmi differ
diff --git a/icons/mob/human_races/r_tajaran.dmi b/icons/mob/human_races/r_tajaran.dmi
index 69fa8ce5c0..9986979b74 100644
Binary files a/icons/mob/human_races/r_tajaran.dmi and b/icons/mob/human_races/r_tajaran.dmi differ
diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi
index 140f573f69..ff49dc5577 100644
Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ
diff --git a/icons/mob/items/lefthand_hats.dmi b/icons/mob/items/lefthand_hats.dmi
index 620da132c0..58572857fc 100644
Binary files a/icons/mob/items/lefthand_hats.dmi and b/icons/mob/items/lefthand_hats.dmi differ
diff --git a/icons/mob/items/lefthand_masks.dmi b/icons/mob/items/lefthand_masks.dmi
index 316661dd36..f35288c06f 100644
Binary files a/icons/mob/items/lefthand_masks.dmi and b/icons/mob/items/lefthand_masks.dmi differ
diff --git a/icons/mob/items/lefthand_material.dmi b/icons/mob/items/lefthand_material.dmi
index 70127575ee..dc642311e5 100644
Binary files a/icons/mob/items/lefthand_material.dmi and b/icons/mob/items/lefthand_material.dmi differ
diff --git a/icons/mob/items/lefthand_shoes.dmi b/icons/mob/items/lefthand_shoes.dmi
index d177c3ce62..b88be1fed7 100644
Binary files a/icons/mob/items/lefthand_shoes.dmi and b/icons/mob/items/lefthand_shoes.dmi differ
diff --git a/icons/mob/items/lefthand_storage.dmi b/icons/mob/items/lefthand_storage.dmi
index 5cc6bfadd4..9cd0cb1d52 100644
Binary files a/icons/mob/items/lefthand_storage.dmi and b/icons/mob/items/lefthand_storage.dmi differ
diff --git a/icons/mob/items/lefthand_suits.dmi b/icons/mob/items/lefthand_suits.dmi
index 6d335ccdbc..3658248f88 100644
Binary files a/icons/mob/items/lefthand_suits.dmi and b/icons/mob/items/lefthand_suits.dmi differ
diff --git a/icons/mob/items/lefthand_uniforms.dmi b/icons/mob/items/lefthand_uniforms.dmi
index 64a18812f7..3eef346891 100644
Binary files a/icons/mob/items/lefthand_uniforms.dmi and b/icons/mob/items/lefthand_uniforms.dmi differ
diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi
index 192798733f..44521ed36e 100644
Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ
diff --git a/icons/mob/items/righthand_hats.dmi b/icons/mob/items/righthand_hats.dmi
index be3ed9b8ee..7d089a8a0f 100644
Binary files a/icons/mob/items/righthand_hats.dmi and b/icons/mob/items/righthand_hats.dmi differ
diff --git a/icons/mob/items/righthand_masks.dmi b/icons/mob/items/righthand_masks.dmi
index e69f1594d0..30fe71f2d2 100644
Binary files a/icons/mob/items/righthand_masks.dmi and b/icons/mob/items/righthand_masks.dmi differ
diff --git a/icons/mob/items/righthand_material.dmi b/icons/mob/items/righthand_material.dmi
index db11ee211f..44904c68c7 100644
Binary files a/icons/mob/items/righthand_material.dmi and b/icons/mob/items/righthand_material.dmi differ
diff --git a/icons/mob/items/righthand_shoes.dmi b/icons/mob/items/righthand_shoes.dmi
index 59b85b78d9..3dd044488f 100644
Binary files a/icons/mob/items/righthand_shoes.dmi and b/icons/mob/items/righthand_shoes.dmi differ
diff --git a/icons/mob/items/righthand_storage.dmi b/icons/mob/items/righthand_storage.dmi
index ea73375a20..16cb0d762f 100644
Binary files a/icons/mob/items/righthand_storage.dmi and b/icons/mob/items/righthand_storage.dmi differ
diff --git a/icons/mob/items/righthand_suits.dmi b/icons/mob/items/righthand_suits.dmi
index f3310d2f77..7b4f3eada5 100644
Binary files a/icons/mob/items/righthand_suits.dmi and b/icons/mob/items/righthand_suits.dmi differ
diff --git a/icons/mob/items/righthand_uniforms.dmi b/icons/mob/items/righthand_uniforms.dmi
index 5b16babfbb..3fa28bca6b 100644
Binary files a/icons/mob/items/righthand_uniforms.dmi and b/icons/mob/items/righthand_uniforms.dmi differ
diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi
index 8e84c82060..00f14c373e 100644
Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 89392d81f7..2b3dfe51d8 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi
index cf74d73796..2071c634d1 100644
Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ
diff --git a/icons/mob/species/tajaran/tail - old.dmi b/icons/mob/species/tajaran/tail - old.dmi
new file mode 100644
index 0000000000..62a432ae76
Binary files /dev/null and b/icons/mob/species/tajaran/tail - old.dmi differ
diff --git a/icons/mob/species/tajaran/tail.dmi b/icons/mob/species/tajaran/tail.dmi
index 62a432ae76..a33ca7c60b 100644
Binary files a/icons/mob/species/tajaran/tail.dmi and b/icons/mob/species/tajaran/tail.dmi differ
diff --git a/icons/mob/species/unathi/tail - old.dmi b/icons/mob/species/unathi/tail - old.dmi
new file mode 100644
index 0000000000..eba37dba6a
Binary files /dev/null and b/icons/mob/species/unathi/tail - old.dmi differ
diff --git a/icons/mob/species/unathi/tail.dmi b/icons/mob/species/unathi/tail.dmi
index eba37dba6a..09e3cce0c5 100644
Binary files a/icons/mob/species/unathi/tail.dmi and b/icons/mob/species/unathi/tail.dmi differ
diff --git a/icons/mob/submerged.dmi b/icons/mob/submerged.dmi
new file mode 100644
index 0000000000..0aaa1f3ebb
Binary files /dev/null and b/icons/mob/submerged.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index faf2c6bb2e..cad42f3b4f 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/mob/uniform_huge_old.dmi b/icons/mob/uniform_huge_old.dmi
new file mode 100644
index 0000000000..3bac93b933
Binary files /dev/null and b/icons/mob/uniform_huge_old.dmi differ
diff --git a/icons/mob/uniform_rolled_down.dmi b/icons/mob/uniform_rolled_down.dmi
new file mode 100644
index 0000000000..e379946851
Binary files /dev/null and b/icons/mob/uniform_rolled_down.dmi differ
diff --git a/icons/mob/uniform_sleeves_rolled.dmi b/icons/mob/uniform_sleeves_rolled.dmi
new file mode 100644
index 0000000000..83a759ff80
Binary files /dev/null and b/icons/mob/uniform_sleeves_rolled.dmi differ
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index a129056404..a1f1fb20eb 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi
index 370fb582e7..8767b66127 100644
Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ
diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi
index a80de32c0c..b00173777f 100644
Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ
diff --git a/icons/obj/bench.dmi b/icons/obj/bench.dmi
index fb8c2123b3..451d22c9c7 100644
Binary files a/icons/obj/bench.dmi and b/icons/obj/bench.dmi differ
diff --git a/icons/obj/buildingobject.dmi b/icons/obj/buildingobject.dmi
index 76fa0e4350..d55e9ec99f 100644
Binary files a/icons/obj/buildingobject.dmi and b/icons/obj/buildingobject.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 88105392b5..920e73a891 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index ad962d394c..b6b28fdfbe 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index f1d94ddb0e..3669a4702e 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi
index 6c8ddd9d39..af40b1c6ff 100644
Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 3c5b0ce667..5e6d88e0a3 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi
index 3721d37a58..6c91045161 100644
Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ
diff --git a/icons/obj/doors/doorlift.dmi b/icons/obj/doors/doorlift.dmi
new file mode 100644
index 0000000000..5617a988f7
Binary files /dev/null and b/icons/obj/doors/doorlift.dmi differ
diff --git a/icons/obj/doors/shuttledoors.dmi b/icons/obj/doors/shuttledoors.dmi
new file mode 100644
index 0000000000..85c1d05343
Binary files /dev/null and b/icons/obj/doors/shuttledoors.dmi differ
diff --git a/icons/obj/doors/shuttledoors_vertical.dmi b/icons/obj/doors/shuttledoors_vertical.dmi
new file mode 100644
index 0000000000..c4eb67826d
Binary files /dev/null and b/icons/obj/doors/shuttledoors_vertical.dmi differ
diff --git a/icons/obj/flora/deadtrees.dmi b/icons/obj/flora/deadtrees.dmi
index f76ffd442f..2ae1a5a6e0 100644
Binary files a/icons/obj/flora/deadtrees.dmi and b/icons/obj/flora/deadtrees.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 09fb9b6b7a..c1410bfcd4 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 88457f09c2..dc3456ba67 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/jukebox.dmi b/icons/obj/jukebox.dmi
index 9109049704..52386940e9 100644
Binary files a/icons/obj/jukebox.dmi and b/icons/obj/jukebox.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index dbaf4a5890..736308440d 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi
index f85b00bcfd..00bb9d9e13 100644
Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ
diff --git a/icons/obj/papershredder.dmi b/icons/obj/papershredder.dmi
new file mode 100644
index 0000000000..36764945df
Binary files /dev/null and b/icons/obj/papershredder.dmi differ
diff --git a/icons/obj/pda_rugged.dmi b/icons/obj/pda_rugged.dmi
new file mode 100644
index 0000000000..ab43c99ca1
Binary files /dev/null and b/icons/obj/pda_rugged.dmi differ
diff --git a/icons/obj/podwindows.dmi b/icons/obj/podwindows.dmi
index 75bd1d9805..50388e1c0d 100644
Binary files a/icons/obj/podwindows.dmi and b/icons/obj/podwindows.dmi differ
diff --git a/icons/obj/power_cond_white.dmi b/icons/obj/power_cond_white.dmi
index 8d17183bfa..f9f3d9da7a 100644
Binary files a/icons/obj/power_cond_white.dmi and b/icons/obj/power_cond_white.dmi differ
diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi
index 94f46b9c2c..401be8bb3c 100644
Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index f8aede48f2..b2ff3108ea 100644
Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ
diff --git a/icons/obj/tables.dmi b/icons/obj/tables.dmi
index 3f8ac59ad7..30012e04f1 100644
Binary files a/icons/obj/tables.dmi and b/icons/obj/tables.dmi differ
diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi
index c1b956645b..33cde91a1d 100644
Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ
diff --git a/icons/obj/turbolift.dmi b/icons/obj/turbolift.dmi
new file mode 100644
index 0000000000..cffc8aa140
Binary files /dev/null and b/icons/obj/turbolift.dmi differ
diff --git a/icons/obj/turbolift_preview_3x3.dmi b/icons/obj/turbolift_preview_3x3.dmi
new file mode 100644
index 0000000000..f0f1ec491e
Binary files /dev/null and b/icons/obj/turbolift_preview_3x3.dmi differ
diff --git a/icons/obj/turbolift_preview_5x5.dmi b/icons/obj/turbolift_preview_5x5.dmi
new file mode 100644
index 0000000000..e054a6b9aa
Binary files /dev/null and b/icons/obj/turbolift_preview_5x5.dmi differ
diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi
index 884b8ac41e..1e7a4ba8a7 100644
Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ
diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi
index f7a9f0a290..c36c76632a 100755
Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ
diff --git a/icons/turf/cliff.dmi b/icons/turf/cliff.dmi
new file mode 100644
index 0000000000..40e8885771
Binary files /dev/null and b/icons/turf/cliff.dmi differ
diff --git a/icons/turf/flooring/decals.dmi b/icons/turf/flooring/decals.dmi
index c5b2a54b0b..c3441b5714 100644
Binary files a/icons/turf/flooring/decals.dmi and b/icons/turf/flooring/decals.dmi differ
diff --git a/icons/turf/flooring/shuttle.dmi b/icons/turf/flooring/shuttle.dmi
new file mode 100644
index 0000000000..8f8cfde5c6
Binary files /dev/null and b/icons/turf/flooring/shuttle.dmi differ
diff --git a/icons/turf/outdoors.dmi b/icons/turf/outdoors.dmi
new file mode 100644
index 0000000000..bcd81c28c9
Binary files /dev/null and b/icons/turf/outdoors.dmi differ
diff --git a/icons/turf/outdoors_edge.dmi b/icons/turf/outdoors_edge.dmi
new file mode 100644
index 0000000000..02a52195c2
Binary files /dev/null and b/icons/turf/outdoors_edge.dmi differ
diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi
deleted file mode 100644
index 1718a4303a..0000000000
Binary files a/icons/turf/shuttle.dmi and /dev/null differ
diff --git a/icons/turf/shuttle_dark.dmi b/icons/turf/shuttle_dark.dmi
new file mode 100644
index 0000000000..559260f5ad
Binary files /dev/null and b/icons/turf/shuttle_dark.dmi differ
diff --git a/icons/turf/shuttle_orange.dmi b/icons/turf/shuttle_orange.dmi
new file mode 100644
index 0000000000..e7cd8cb714
Binary files /dev/null and b/icons/turf/shuttle_orange.dmi differ
diff --git a/icons/turf/shuttle_parts.dmi b/icons/turf/shuttle_parts.dmi
new file mode 100644
index 0000000000..f7f1308d70
Binary files /dev/null and b/icons/turf/shuttle_parts.dmi differ
diff --git a/icons/turf/shuttle_tubed.dmi b/icons/turf/shuttle_tubed.dmi
new file mode 100644
index 0000000000..1b85309242
Binary files /dev/null and b/icons/turf/shuttle_tubed.dmi differ
diff --git a/icons/turf/shuttle_void.dmi b/icons/turf/shuttle_void.dmi
new file mode 100644
index 0000000000..f5a0554ecb
Binary files /dev/null and b/icons/turf/shuttle_void.dmi differ
diff --git a/icons/turf/shuttle_white.dmi b/icons/turf/shuttle_white.dmi
new file mode 100644
index 0000000000..a088e574aa
Binary files /dev/null and b/icons/turf/shuttle_white.dmi differ
diff --git a/icons/turf/space.dmi b/icons/turf/space.dmi
index 30d0d1428a..e11f256d88 100644
Binary files a/icons/turf/space.dmi and b/icons/turf/space.dmi differ
diff --git a/icons/turf/wall_masks.dmi b/icons/turf/wall_masks.dmi
index bd6e1abe6d..220e1b87e5 100644
Binary files a/icons/turf/wall_masks.dmi and b/icons/turf/wall_masks.dmi differ
diff --git a/maps/example/example-1.dmm b/maps/example/example-1.dmm
new file mode 100644
index 0000000000..26c7e4bd46
--- /dev/null
+++ b/maps/example/example-1.dmm
@@ -0,0 +1,74 @@
+"a" = (/turf/space,/area/space)
+"b" = (/turf/simulated/wall,/area/aisat)
+"c" = (/obj/machinery/atmospherics/pipe/zpipe/up{tag = "icon-up (EAST)"; icon_state = "up"; dir = 4},/obj/structure/disposalpipe/up,/turf/simulated/floor/plating,/area/aisat)
+"d" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"e" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"f" = (/obj/machinery/atmospherics/binary/pump/high_power{dir = 8},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"g" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"h" = (/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"i" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/aisat)
+"j" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/aisat)
+"k" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/meter,/turf/simulated/floor/tiled/dark,/area/aisat)
+"l" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"m" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/meter,/turf/simulated/floor/tiled/dark,/area/aisat)
+"n" = (/turf/simulated/floor/tiled/dark,/area/aisat)
+"o" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/aisat)
+"p" = (/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/aisat)
+"q" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"r" = (/obj/machinery/atmospherics/binary/pump/high_power{tag = "icon-map_off (EAST)"; icon_state = "map_off"; dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"s" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"t" = (/obj/structure/ladder/up,/turf/simulated/floor/tiled/dark,/area/aisat)
+"u" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/aisat)
+"v" = (/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/aisat)
+"w" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{tag = "icon-pipe-t (NORTH)"; icon_state = "pipe-t"; dir = 1},/turf/simulated/floor/tiled/dark,/area/aisat)
+"x" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/aisat)
+"y" = (/obj/machinery/light_switch,/turf/simulated/wall,/area/aisat)
+"z" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/dark,/area/aisat)
+"A" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled/dark,/area/aisat)
+"B" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/standard,/obj/item/device/multitool,/turf/simulated/floor/tiled/dark,/area/aisat)
+"C" = (/obj/machinery/light{dir = 1},/obj/structure/table/standard,/obj/item/weapon/storage/belt/utility/full,/turf/simulated/floor/tiled/dark,/area/aisat)
+"D" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/tiled/dark,/area/aisat)
+"E" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"F" = (/obj/effect/landmark{name = "JoinLate"},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"G" = (/obj/effect/landmark/start,/turf/simulated/floor/tiled/dark,/area/aisat)
+"H" = (/obj/structure/stairs/south,/turf/simulated/floor/tiled/dark,/area/aisat)
+"I" = (/obj/effect/floor_decal/sign/a,/turf/simulated/floor/tiled/dark,/area/aisat)
+"J" = (/obj/machinery/light,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat)
+"K" = (/obj/structure/cable/yellow,/obj/structure/cable/yellow{d1 = 16; d2 = 0; icon_state = "16-0"},/turf/simulated/floor/plating,/area/aisat)
+"L" = (/turf/simulated/floor/tiled/red,/area/aisat)
+"M" = (/obj/turbolift_map_holder/example{dir = 1; icon = 'icons/obj/turbolift_preview_5x5.dmi'},/turf/simulated/floor/tiled/red,/area/aisat)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaabbbbbbbbbbbbbbbaaaaaaaaa
+aaaaaaaabcdefghihhhhhhbaaaaaaaaa
+aaaaaaaabjhklmhnhhooohbaaaaaaaaa
+aaaaaaaabphqrshthhooohbaaaaaaaaa
+aaaaaaaabphhhhhnhhooohbaaaaaaaaa
+aaaaaaaabuhhhhhnhhhhhhbaaaaaaaaa
+aaaaaaaabuhhhhhvhhhhhhbaaaaaaaaa
+aaaaaaaabwnnnnxyznnnnAbaaaaaaaaa
+aaaaaaaabhhhhhBCDhhhhEbaaaaaaaaa
+aaaaaaaabhhFFFhnhhhhhEbaaaaaaaaa
+aaaaaaaabhhFFFhGhhhhhEbaaaaaaaaa
+aaaaaaaabnbFFFhnhhhhhEbaaaaaaaaa
+aaaaaaaabHbhhhhIhhhhhEbaaaaaaaaa
+aaaaaaaabbbhJhhnhhJhhKbaaaaaaaaa
+aaaaaaaabbbbbbnnnbbbbbbaaaaaaaaa
+aaaaaaaaaaaabLLLLLbaaaaaaaaaaaaa
+aaaaaaaaaaaabLLLLLbaaaaaaaaaaaaa
+aaaaaaaaaaaabLLLLLbaaaaaaaaaaaaa
+aaaaaaaaaaaabLLLLLbaaaaaaaaaaaaa
+aaaaaaaaaaaabMLLLLbaaaaaaaaaaaaa
+aaaaaaaaaaaabbbbbbbaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/example/example-2.dmm b/maps/example/example-2.dmm
new file mode 100644
index 0000000000..9c0fd272dc
--- /dev/null
+++ b/maps/example/example-2.dmm
@@ -0,0 +1,69 @@
+"a" = (/turf/space,/area/space)
+"b" = (/obj/effect/landmark/map_data{height = 2},/turf/space,/area/space)
+"c" = (/turf/simulated/wall,/area/aisat_interior)
+"d" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/zpipe/down{tag = "icon-down (EAST)"; icon_state = "down"; dir = 4},/obj/structure/disposalpipe/down,/turf/simulated/open,/area/aisat_interior)
+"e" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"f" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"g" = (/obj/machinery/atmospherics/binary/pump/high_power{dir = 8},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"h" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"i" = (/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"j" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"k" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/aisat_interior)
+"l" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/corner/lime/diagonal,/obj/machinery/meter,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"m" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"n" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/effect/floor_decal/corner/lime/diagonal,/obj/machinery/meter,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"o" = (/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"p" = (/turf/simulated/open,/area/aisat_interior)
+"q" = (/obj/machinery/portable_atmospherics/canister/empty,/obj/effect/floor_decal/corner/lime/diagonal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"r" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"s" = (/obj/machinery/atmospherics/binary/pump/high_power{tag = "icon-map_off (EAST)"; icon_state = "map_off"; dir = 4},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"t" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"u" = (/obj/structure/ladder,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"v" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/corner/lime/diagonal,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"w" = (/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"x" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{tag = "icon-pipe-t (NORTH)"; icon_state = "pipe-t"; dir = 1},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"y" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"z" = (/obj/machinery/light_switch,/turf/simulated/wall,/area/aisat_interior)
+"A" = (/obj/machinery/power/fractal_reactor,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"B" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"C" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"D" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"E" = (/turf/simulated/floor/tiled/red,/area/aisat_interior)
+"F" = (/obj/effect/floor_decal/sign/two,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"G" = (/obj/machinery/light,/obj/effect/floor_decal/corner/lime/diagonal,/turf/simulated/floor/tiled/dark,/area/aisat_interior)
+"H" = (/obj/structure/lattice,/obj/structure/cable/yellow{d1 = 32; icon_state = "32-1"},/turf/simulated/open,/area/aisat_interior)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaabaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaacccccccccccccccaaaaaaaaa
+aaaaaaaacdefghijiiiiiicaaaaaaaaa
+aaaaaaaackilmnioiipppicaaaaaaaaa
+aaaaaaaacqirstiuiipppicaaaaaaaaa
+aaaaaaaacqiiiiioiipppicaaaaaaaaa
+aaaaaaaacviiiiioiiiiiicaaaaaaaaa
+aaaaaaaacviiiiiwiiiiiicaaaaaaaaa
+aaaaaaaacxooooyzABBBBCcaaaaaaaaa
+aaaaaaaaciiiiiijiiiiiDcaaaaaaaaa
+aaaaaaaaciiiiiioiiiiiDcaaaaaaaaa
+aaaaaaaaccciiiioiiiiiDcaaaaaaaaa
+aaaaaaaacEciiiioiiiiiDcaaaaaaaaa
+aaaaaaaacEciiiiFiiiiiDcaaaaaaaaa
+aaaaaaaaciiiGiioiiGiiHcaaaaaaaaa
+aaaaaaaaccccccoooccccccaaaaaaaaa
+aaaaaaaaaaaacEEEEEcaaaaaaaaaaaaa
+aaaaaaaaaaaacEEEEEcaaaaaaaaaaaaa
+aaaaaaaaaaaacEEEEEcaaaaaaaaaaaaa
+aaaaaaaaaaaacEEEEEcaaaaaaaaaaaaa
+aaaaaaaaaaaacEEEEEcaaaaaaaaaaaaa
+aaaaaaaaaaaacccccccaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/maps/example/example.dm b/maps/example/example.dm
new file mode 100644
index 0000000000..a103a32625
--- /dev/null
+++ b/maps/example/example.dm
@@ -0,0 +1,16 @@
+#if !defined(USING_MAP_DATUM)
+
+ #include "example-1.dmm"
+ #include "example-2.dmm"
+
+ #include "example_defines.dm"
+ #include "example_elevator.dm"
+ #include "example_areas.dm"
+
+ #define USING_MAP_DATUM /datum/map/example
+
+#elif !defined(MAP_OVERRIDE)
+
+ #warn A map has already been included, ignoring Northern Star
+
+#endif
\ No newline at end of file
diff --git a/maps/example/example_areas.dm b/maps/example/example_areas.dm
new file mode 100644
index 0000000000..8e01e14055
--- /dev/null
+++ b/maps/example/example_areas.dm
@@ -0,0 +1,13 @@
+// Elevator areas.
+/area/turbolift/example_top
+ name = "lift (top floor)"
+ lift_floor_label = "Floor 2"
+ lift_floor_name = "Top Floor"
+ lift_announce_str = "Arriving at Top Floor."
+
+/area/turbolift/example_ground
+ name = "lift (ground floor)"
+ lift_floor_label = "Floor 1"
+ lift_floor_name = "First Floor"
+ lift_announce_str = "Arriving at First Floor."
+ base_turf = /turf/simulated/floor
\ No newline at end of file
diff --git a/maps/example/example_defines.dm b/maps/example/example_defines.dm
new file mode 100644
index 0000000000..3c7ae5d30e
--- /dev/null
+++ b/maps/example/example_defines.dm
@@ -0,0 +1,49 @@
+#define Z_LEVEL_FIRST_EXAMPLE 1
+#define Z_LEVEL_SECOND_EXAMPLE 2
+
+/datum/map/example
+ name = "Test Map"
+ full_name = "The Test Map"
+ path = "example"
+
+ lobby_icon = 'icons/misc/title.dmi'
+ lobby_screens = list("mockingjay00")
+
+ station_levels = list(
+ Z_LEVEL_FIRST_EXAMPLE,
+ Z_LEVEL_SECOND_EXAMPLE
+ )
+
+ admin_levels = list()
+ contact_levels = list(
+ Z_LEVEL_FIRST_EXAMPLE,
+ Z_LEVEL_SECOND_EXAMPLE
+ )
+
+ player_levels = list(
+ Z_LEVEL_FIRST_EXAMPLE,
+ Z_LEVEL_SECOND_EXAMPLE
+ )
+
+ sealed_levels = list()
+ empty_levels = list()
+ accessible_z_levels = list("1" = 50, "2" = 50) // The defines can't be used here sadly.
+ base_turf_by_z = list("2" = /turf/simulated/open)
+
+ station_name = "The Funhouse"
+ station_short = "Funhouse"
+ dock_name = "the Maximum Fun Chamber"
+ boss_name = "Mister Fun"
+ boss_short = "Mr. Fun"
+ company_name = "Fun Inc."
+ company_short = "FI"
+ starsys_name = "Vir"
+
+ shuttle_docked_message = "The scheduled shuttle to the %dock_name% has docked with the station at docks one and two. It will depart in approximately %ETD%."
+ shuttle_leaving_dock = "The Crew Transfer Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ shuttle_called_message = "A crew transfer to %Dock_name% has been scheduled. The shuttle has been called. Those leaving should procede to docks one and two in approximately %ETA%"
+ shuttle_recall_message = "The scheduled crew transfer has been cancelled."
+ emergency_shuttle_docked_message = "The Emergency Shuttle has docked with the station at docks one and two. You have approximately %ETD% to board the Emergency Shuttle."
+ emergency_shuttle_leaving_dock = "The Emergency Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately %ETA%"
+ emergency_shuttle_recall_message = "The emergency shuttle has been recalled."
\ No newline at end of file
diff --git a/maps/example/example_elevator.dm b/maps/example/example_elevator.dm
new file mode 100644
index 0000000000..4e279f3df7
--- /dev/null
+++ b/maps/example/example_elevator.dm
@@ -0,0 +1,11 @@
+/obj/turbolift_map_holder/example
+ name = "Example turbolift map placeholder"
+ depth = 2
+ lift_size_x = 4
+ lift_size_y = 4
+ icon = 'icons/obj/turbolift_preview_5x5.dmi'
+
+ areas_to_use = list(
+ /area/turbolift/example_ground,
+ /area/turbolift/example_top
+ )
\ No newline at end of file
diff --git a/maps/northern_star/northern_star.dm b/maps/northern_star/northern_star.dm
new file mode 100644
index 0000000000..2212774657
--- /dev/null
+++ b/maps/northern_star/northern_star.dm
@@ -0,0 +1,17 @@
+#if !defined(USING_MAP_DATUM)
+
+ #include "polaris-1.dmm"
+ #include "polaris-2.dmm"
+ #include "polaris-3.dmm"
+ #include "polaris-4.dmm"
+ #include "polaris-5.dmm"
+
+ #include "northern_star_defines.dm"
+
+ #define USING_MAP_DATUM /datum/map/northern_star
+
+#elif !defined(MAP_OVERRIDE)
+
+ #warn A map has already been included, ignoring Northern Star
+
+#endif
\ No newline at end of file
diff --git a/maps/northern_star/northern_star_defines.dm b/maps/northern_star/northern_star_defines.dm
new file mode 100644
index 0000000000..aeb1426de2
--- /dev/null
+++ b/maps/northern_star/northern_star_defines.dm
@@ -0,0 +1,95 @@
+
+#define Z_LEVEL_MAIN_NORTHERN_STAR 1
+#define Z_LEVEL_CENTCOM_NORTHERN_STAR 2
+#define Z_LEVEL_TELECOMMS_NORTHERN_STAR 3
+#define Z_LEVEL_ABANDONED_ASTEROID_NORTHERN_STAR 4
+#define Z_LEVEL_MINING_NORTHERN_STAR 5
+#define Z_LEVEL_EMPTY_NORTHERN_STAR 6
+
+/datum/map/northern_star
+ name = "Northern Star"
+ full_name = "NCS Northern Star"
+ path = "northern_star"
+
+ lobby_icon = 'icons/misc/title.dmi'
+ lobby_screens = list("mockingjay00")
+
+ station_levels = list(
+ Z_LEVEL_MAIN_NORTHERN_STAR,
+ Z_LEVEL_MINING_NORTHERN_STAR
+ )
+
+ admin_levels = list(Z_LEVEL_CENTCOM_NORTHERN_STAR)
+ contact_levels = list(
+ Z_LEVEL_MAIN_NORTHERN_STAR,
+ Z_LEVEL_CENTCOM_NORTHERN_STAR,
+ Z_LEVEL_MINING_NORTHERN_STAR
+ )
+
+ player_levels = list(
+ Z_LEVEL_MAIN_NORTHERN_STAR,
+ Z_LEVEL_TELECOMMS_NORTHERN_STAR,
+ Z_LEVEL_ABANDONED_ASTEROID_NORTHERN_STAR,
+ Z_LEVEL_MINING_NORTHERN_STAR,
+ Z_LEVEL_EMPTY_NORTHERN_STAR
+ )
+
+ sealed_levels = list()
+ empty_levels = list()
+ accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = 60) // The defines can't be used here sadly.
+ base_turf_by_z = list(
+ "1" = /turf/simulated/mineral/floor,
+ "4" = /turf/simulated/mineral/floor,
+ "5" = /turf/simulated/mineral/floor
+ )
+
+ station_name = "NCS Northern Star"
+ station_short = "Northern Star"
+ dock_name = "Vir Interstellar Spaceport"
+ boss_name = "Central Command"
+ boss_short = "Centcomm"
+ company_name = "NanoTrasen"
+ company_short = "NT"
+ starsys_name = "Vir"
+
+ shuttle_docked_message = "The scheduled shuttle to the %dock_name% has docked with the station at docks one and two. It will depart in approximately %ETD%."
+ shuttle_leaving_dock = "The Crew Transfer Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ shuttle_called_message = "A crew transfer to %Dock_name% has been scheduled. The shuttle has been called. Those leaving should procede to docks one and two in approximately %ETA%"
+ shuttle_recall_message = "The scheduled crew transfer has been cancelled."
+ emergency_shuttle_docked_message = "The Emergency Shuttle has docked with the station at docks one and two. You have approximately %ETD% to board the Emergency Shuttle."
+ emergency_shuttle_leaving_dock = "The Emergency Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately %ETA%"
+ emergency_shuttle_recall_message = "The emergency shuttle has been recalled."
+
+ station_networks = list(
+ NETWORK_CARGO,
+ NETWORK_CIVILIAN,
+ NETWORK_COMMAND,
+ NETWORK_ENGINE,
+ NETWORK_ENGINEERING,
+ NETWORK_ENGINEERING_OUTPOST,
+ NETWORK_DEFAULT,
+ NETWORK_MEDICAL,
+ NETWORK_MINE,
+ NETWORK_NORTHERN_STAR,
+ NETWORK_RESEARCH,
+ NETWORK_RESEARCH_OUTPOST,
+ NETWORK_ROBOTS,
+ NETWORK_PRISON,
+ NETWORK_SECURITY,
+ NETWORK_INTERROGATION
+ )
+
+ allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage", "Elevator")
+
+
+/datum/map/northern_star/perform_map_generation()
+ new /datum/random_map/automata/cave_system(null, 1, 1, Z_LEVEL_MAIN_NORTHERN_STAR, world.maxx, world.maxy) // Create the mining Z-level.
+ new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_MAIN_NORTHERN_STAR, 64, 64) // Create the mining ore distribution map.
+
+ new /datum/random_map/automata/cave_system(null, 1, 1, Z_LEVEL_ABANDONED_ASTEROID_NORTHERN_STAR, world.maxx, world.maxy) // Create the mining Z-level.
+ new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_ABANDONED_ASTEROID_NORTHERN_STAR, 64, 64) // Create the mining ore distribution map.
+
+ new /datum/random_map/automata/cave_system(null, 1, 1, Z_LEVEL_MINING_NORTHERN_STAR, world.maxx, world.maxy) // Create the mining Z-level.
+ new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_MINING_NORTHERN_STAR, 64, 64) // Create the mining ore distribution map.
+ return 1
\ No newline at end of file
diff --git a/maps/polaris-1.dmm b/maps/northern_star/polaris-1.dmm
similarity index 98%
rename from maps/polaris-1.dmm
rename to maps/northern_star/polaris-1.dmm
index 2063109c1b..476433112b 100644
--- a/maps/polaris-1.dmm
+++ b/maps/northern_star/polaris-1.dmm
@@ -8,13 +8,13 @@
"aah" = (/turf/simulated/mineral,/area/mine/unexplored/upper_level)
"aai" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/airless,/area/mine/unexplored/upper_level)
"aaj" = (/turf/simulated/shuttle/wall,/area/shuttle/cryo/station)
-"aak" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/cryo/station)
+"aak" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/cryo/station)
"aal" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/airless,/area/mine/unexplored/upper_level)
-"aam" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/shuttle/cryo/station)
-"aan" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/shuttle/cryo/station)
-"aao" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/cryo/station)
-"aap" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/cryo/station)
-"aaq" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/cryo/station)
+"aam" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/cryo/station)
+"aan" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/cryo/station)
+"aao" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station)
+"aap" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
+"aaq" = (/obj/machinery/cryopod/robot/door/dorms,/turf/simulated/shuttle/floor/white,/area/crew_quarters/sleep/elevator)
"aar" = (/obj/structure/cryofeed{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
"aas" = (/obj/machinery/cryopod{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
"aat" = (/obj/effect/landmark{name = "JoinLateCryo"},/obj/machinery/requests_console{department = "Crew Quarters"; pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
@@ -31,10 +31,10 @@
"aaE" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light,/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
"aaF" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/light,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
"aaG" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/shuttle/cryo/station)
-"aaH" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/shuttle/cryo/station)
-"aaI" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/cryo/station)
+"aaH" = (/turf/simulated/shuttle/wall/dark,/area/crew_quarters/sleep/elevator)
+"aaI" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; invisibility = 60; layer = 1; name = "Blocker"},/turf/simulated/shuttle/floor/white,/area/crew_quarters/sleep/elevator)
"aaJ" = (/obj/machinery/door/airlock/external{frequency = 1380; id_tag = "cryostorage_shuttle_hatch"; name = "Cryogenic Storage Hatch"},/turf/simulated/shuttle/floor,/area/shuttle/cryo/station)
-"aaK" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/shuttle/cryo/station)
+"aaK" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; invisibility = 60; layer = 1; name = "Blocker"},/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/crew_quarters/sleep/elevator)
"aaL" = (/obj/machinery/door/airlock/glass{frequency = 1380; id_tag = "cryostorage_shuttle_berth_hatch"; name = "Cryogenic Storage"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_fore)
"aaM" = (/obj/machinery/door/airlock/glass{name = "Cryogenic Storage"},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/hallway/secondary/civilian_hallway_fore)
"aaN" = (/turf/simulated/wall,/area/hallway/secondary/civilian_hallway_fore)
@@ -108,8 +108,8 @@
"acd" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/maintenance/library)
"ace" = (/obj/structure/lattice,/obj/machinery/light/small{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/hallway/secondary/civilian_hallway_fore)
"acf" = (/obj/structure/lattice,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/mineral/floor/ignore_mapgen,/area/hallway/secondary/civilian_hallway_fore)
-"acg" = (/turf/simulated/mineral/floor/ignore_mapgen,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/cryo/station)
-"ach" = (/turf/simulated/mineral/floor/ignore_mapgen,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2; layer = 2},/area/shuttle/cryo/station)
+"acg" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/crew_quarters/sleep/elevator)
+"ach" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Starboard"; dir = 8},/obj/item/device/defib_kit/jumper_kit,/obj/item/device/defib_kit/jumper_kit,/turf/simulated/floor/tiled,/area/assembly/robotics)
"aci" = (/obj/machinery/lapvend,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"acj" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/inflatable/door,/turf/simulated/floor,/area/maintenance/locker)
"ack" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/random/maintenance/cargo,/obj/structure/closet/crate,/obj/random/maintenance/cargo,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor,/area/maintenance/library)
@@ -615,12 +615,12 @@
"alQ" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue)
"alR" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue)
"alS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/chapel/chapel_morgue)
-"alT" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod1/station)
-"alU" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod1/station)
-"alV" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2; layer = 2},/area/shuttle/escape_pod1/station)
-"alW" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod2/station)
-"alX" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod2/station)
-"alY" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2; layer = 2},/area/shuttle/escape_pod2/station)
+"alT" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station)
+"alU" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod1/station)
+"alV" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station)
+"alW" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod2/station)
+"alX" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall,/area/shuttle/escape_pod1/station)
+"alY" = (/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall,/area/shuttle/escape_pod2/station)
"alZ" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/tiled,/area/maintenance/engineering/pumpstation)
"ama" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/empty,/turf/simulated/floor/tiled,/area/maintenance/engineering/pumpstation)
"amb" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor/tiled,/area/maintenance/engineering/pumpstation)
@@ -643,10 +643,10 @@
"ams" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue)
"amt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/chapel/chapel_morgue)
"amu" = (/turf/simulated/wall/r_wall,/area/security/detectives_office)
-"amv" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod1/station)
+"amv" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod2/station)
"amw" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_1"; pixel_x = -25; pixel_y = 0; tag_door = "escape_pod_1_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station)
"amx" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/escape/fore_escape_pod_hallway)
-"amy" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod2/station)
+"amy" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"amz" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_2"; pixel_x = -25; pixel_y = 0; tag_door = "escape_pod_2_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station)
"amA" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/maintenance/engineering/pumpstation)
"amB" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/tiled,/area/maintenance/engineering/pumpstation)
@@ -740,12 +740,12 @@
"aol" = (/turf/simulated/floor/tiled/freezer,/area/security/detectives_office)
"aom" = (/obj/structure/table/reinforced,/obj/item/weapon/forensics/sample_kit/powder,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/freezer,/area/security/detectives_office)
"aon" = (/obj/structure/table/reinforced,/obj/item/weapon/forensics/sample_kit,/obj/item/device/radio/intercom{broadcasting = 0; dir = 4; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/security/detectives_office)
-"aoo" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod1/station)
+"aoo" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aop" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_hatch"; locked = 1; name = "Escape Pod 1 Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station)
-"aoq" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod1/station)
-"aor" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod2/station)
+"aoq" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
+"aor" = (/obj/structure/table/standard,/obj/item/bodybag/cryobag,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aos" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_hatch"; locked = 1; name = "Escape Pod 2 Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station)
-"aot" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod2/station)
+"aot" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aou" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{req_access = list(12)},/turf/simulated/floor/tiled,/area/ai_monitored/storage/emergency/eva)
"aov" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled/dark,/area/ai_monitored/storage/emergency/eva)
"aow" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/ai_monitored/storage/emergency/eva)
@@ -891,7 +891,7 @@
"arg" = (/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/structure/closet/crate/secure{name = "Gold Crate"; req_access = list(19)},/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
"arh" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/storage/primary)
"ari" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/turf/simulated/floor/tiled,/area/storage/primary)
-"arj" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/storage/primary)
+"arj" = (/obj/machinery/navbeacon/delivery/west{location = "Tool Storage"},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/storage/primary)
"ark" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/storage/primary)
"arl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/storage/primary)
"arm" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/storage/primary)
@@ -1167,7 +1167,7 @@
"aww" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/research_shuttle)
"awx" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/light/small{dir = 1},/obj/structure/plasticflaps/mining,/turf/simulated/floor,/area/maintenance/disposal)
"awy" = (/obj/machinery/conveyor{dir = 2; id = "garbage"},/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/maintenance/disposal)
-"awz" = (/obj/effect/floor_decal/industrial/loading,/obj/machinery/door/firedoor/border_only,/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Command"},/turf/simulated/floor/tiled,/area/bridge_hallway)
+"awz" = (/obj/effect/floor_decal/industrial/loading,/obj/machinery/door/firedoor/border_only,/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/south{location = "Command"},/turf/simulated/floor/tiled,/area/bridge_hallway)
"awA" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/interrogation{c_tag = "INT - Interrogation"},/turf/simulated/floor/tiled/dark,/area/security/interrogation)
"awB" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/dark,/area/security/interrogation)
"awC" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/security/interrogation)
@@ -1515,7 +1515,7 @@
"aDg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/security/security_cell_hallway)
"aDh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/security/security_cell_hallway)
"aDi" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/window/westright{name = "Security Delivery"; req_access = list(1)},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/security/security_cell_hallway)
-"aDj" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 1; freq = 1400; location = "Security"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/plating,/area/security/security_cell_hallway)
+"aDj" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/west{location = "Security"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/plating,/area/security/security_cell_hallway)
"aDk" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/security_starboard)
"aDl" = (/obj/effect/decal/cleanable/blood/oil,/obj/item/trash/tastybread,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"aDm" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/maintenance/holodeck)
@@ -1789,7 +1789,7 @@
"aIu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/corner/red,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/security/brig)
"aIv" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/security/brig)
"aIw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/red{dir = 8},/obj/machinery/camera/network/security{c_tag = "SEC - Brig Port"; dir = 1},/turf/simulated/floor/tiled,/area/security/brig)
-"aIx" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH2"; location = "CH1"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
+"aIx" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/navbeacon/patrol{next_patrol = "CH2"; location = "CH1"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aIy" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/obj/effect/floor_decal/corner/red,/turf/simulated/floor/tiled,/area/security/brig)
"aIz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/red{dir = 10},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/security/brig)
"aIA" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/turf/simulated/floor/tiled,/area/security/brig)
@@ -1882,7 +1882,7 @@
"aKj" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/security/prison)
"aKk" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/security/prison)
"aKl" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/maintenance/security_starboard)
-"aKm" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/janitor)
+"aKm" = (/obj/machinery/navbeacon/delivery/east{location = "Janitor"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/janitor)
"aKn" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10)
"aKo" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/janitor)
"aKp" = (/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_10)
@@ -2274,9 +2274,9 @@
"aRL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool)
"aRM" = (/obj/machinery/door/airlock/maintenance{req_access = list(12)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/maintenance/pool)
"aRN" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"aRO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/large_escape_pod2/station)
+"aRO" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod2/station)
"aRP" = (/turf/simulated/shuttle/wall,/area/shuttle/large_escape_pod2/station)
-"aRQ" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_r"},/turf/space,/area/shuttle/large_escape_pod2/station)
+"aRQ" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aRR" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "security_lockdown"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/maintenance/security_port)
"aRS" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "security_lockdown"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/maintenance/security_port)
"aRT" = (/turf/simulated/wall,/area/maintenance/security_port)
@@ -2300,15 +2300,15 @@
"aSl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom)
"aSm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom)
"aSn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool)
-"aSo" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
-"aSp" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
-"aSq" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"aSo" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod2/station)
+"aSp" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
+"aSq" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSr" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSs" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
-"aSt" = (/obj/structure/table/standard,/obj/item/bodybag/cryobag,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
-"aSu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"aSt" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/obj/random/medical/lite,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
+"aSu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSv" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/shuttle/large_escape_pod2/station)
-"aSw" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/space,/area/shuttle/large_escape_pod2/station)
+"aSw" = (/obj/structure/bed/chair{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSx" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/security)
"aSy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/security_port)
"aSz" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/red/full,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/machinery/door/window/brigdoor/northleft{name = "Ammo"; req_access = list(2)},/turf/simulated/floor/tiled/dark,/area/security/armoury)
@@ -2330,11 +2330,11 @@
"aSP" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station)
"aSQ" = (/obj/structure/table/glass,/obj/machinery/light,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool)
"aSR" = (/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai_cyborg_station)
-"aSS" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/combat,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/cargo,/obj/random/maintenance/medical,/turf/simulated/floor/plating,/area/mine/unexplored/upper_level)
+"aSS" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/boots/combat,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/weapon/tank/air,/obj/item/clothing/mask/gas,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/cargo,/obj/random/maintenance/medical,/turf/simulated/floor/plating,/area/mine/unexplored/upper_level)
"aST" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/turf/simulated/floor/plating,/area/mine/unexplored/upper_level)
"aSU" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/standard,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/item/weapon/storage/fancy/cigarettes{pixel_y = 2},/obj/machinery/atm{pixel_x = 0; pixel_y = -30},/obj/item/weapon/deck/cards,/turf/simulated/floor/tiled,/area/gateway)
-"aSV" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod2/station)
-"aSW" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"aSV" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod2/station)
+"aSW" = (/turf/simulated/shuttle/wall{hard_corner = 1},/area/shuttle/research/station)
"aSX" = (/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSY" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aSZ" = (/obj/machinery/power/breakerbox/activated{RCon_tag = "Security Substation Bypass"},/turf/simulated/floor,/area/maintenance/substation/security)
@@ -2358,13 +2358,11 @@
"aTr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_two)
"aTs" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/simulated/floor/grass,/area/hydroponics/garden)
"aTt" = (/obj/item/inflatable/door/torn,/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/maintenance/pool)
-"aTu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/large_escape_pod2/station)
-"aTv" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
-"aTw" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"aTv" = (/turf/simulated/shuttle/wall{hard_corner = 1},/area/shuttle/mining/station)
"aTx" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "large_escape_pod_2"; pixel_x = 26; pixel_y = -26; tag_door = "large_escape_pod_2_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
"aTy" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage)
-"aTz" = (/obj/structure/bed/chair{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
-"aTA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"aTz" = (/obj/structure/closet/crate,/obj/random/maintenance/cargo,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/shuttle/mining/station)
+"aTA" = (/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/shuttle/mining/station)
"aTB" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/substation/security)
"aTC" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/maintenance/substation/security)
"aTD" = (/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/sensor{name = "Powernet Sensor - Security Subgrid"; name_tag = "Security Subgrid"},/turf/simulated/floor,/area/maintenance/substation/security)
@@ -2385,7 +2383,7 @@
"aTS" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor,/area/maintenance/pool)
"aTT" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/maintenance/pool)
"aTU" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_2_hatch"; locked = 1; name = "Large Escape Pod Hatch 2"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod2/station)
-"aTV" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/space,/area/shuttle/large_escape_pod2/station)
+"aTV" = (/obj/structure/ore_box,/obj/machinery/light{dir = 8},/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/shuttle/mining/station)
"aTW" = (/turf/simulated/wall,/area/mine/unexplored/upper_level)
"aTX" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/maintenance/substation/security)
"aTY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/maintenance/substation/security)
@@ -2494,7 +2492,7 @@
"aVX" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aVY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aVZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
-"aWa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH3"; location = "CH2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
+"aWa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon/patrol{next_patrol = "CH3"; location = "CH2"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aWb" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aWc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aWd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
@@ -2510,7 +2508,7 @@
"aWn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aWo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"aWp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
-"aWq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH4"; location = "CH3"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
+"aWq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon/patrol{next_patrol = "CH4"; location = "CH3"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aWr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"aWs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"aWt" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
@@ -3068,7 +3066,7 @@
"bgZ" = (/turf/simulated/wall,/area/medical/cryo)
"bha" = (/obj/structure/bookcase/manuals/medical,/obj/item/weapon/book/manual/stasis,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/lime{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hydroponics)
-"bhc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH5"; location = "CH4"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
+"bhc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/navbeacon/patrol{next_patrol = "CH5"; location = "CH4"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bhd" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhe" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/paleblue/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/medbreak)
"bhf" = (/turf/simulated/wall,/area/crew_quarters/medical_restroom)
@@ -3341,8 +3339,8 @@
"bmm" = (/turf/simulated/floor/tiled/white,/area/medical/virology)
"bmn" = (/obj/machinery/washing_machine,/obj/effect/floor_decal/corner/lime/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/virology)
"bmo" = (/turf/simulated/shuttle/wall,/area/shuttle/research/station)
-"bmp" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/research/station)
-"bmq" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/research/station)
+"bmp" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod1/station)
+"bmq" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod1/station)
"bmr" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server)
"bms" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/server)
"bmt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/server)
@@ -3419,7 +3417,7 @@
"bnM" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/lime{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology)
"bnN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access = list(1)},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/security/prison)
"bnO" = (/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/simulated/mineral/floor/ignore_mapgen,/area/rnd/docking)
-"bnP" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/research/station)
+"bnP" = (/obj/structure/bed/roller,/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bnQ" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor,/area/shuttle/research/station)
"bnR" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/research/station)
"bnS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/shuttle/plating,/area/rnd/docking)
@@ -3753,8 +3751,8 @@
"bui" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/rnd/lab)
"buj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/starboard)
"buk" = (/turf/simulated/floor/bluegrid,/area/ai)
-"bul" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/arrival/station)
-"bum" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/shuttle/arrival/station)
+"bul" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
+"bum" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bun" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"buo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Lockdown Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/reception)
"bup" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/kitchen)
@@ -3768,7 +3766,7 @@
"bux" = (/obj/structure/table/standard,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage)
"buy" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage)
"buz" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/medbay_primary_storage)
-"buA" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/arrival/station)
+"buA" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"buB" = (/obj/machinery/vending/cola,/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"buC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay_primary_storage)
"buD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
@@ -3888,7 +3886,7 @@
"bwN" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Research Hallway"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bwO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/rnd/research)
"bwP" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Research Hallway"; req_access = list(47)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research)
-"bwQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/shuttle/arrival/station)
+"bwQ" = (/obj/structure/bed/chair,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bwR" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/rnd/research)
"bwS" = (/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/structure/table/glass,/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/reception)
"bwT" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/rnd/research)
@@ -4300,7 +4298,7 @@
"bEJ" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/structure/closet/wardrobe/virology_white,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = 28; req_access = list(39)},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/virology)
"bEK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/white,/area/medical/virology)
"bEL" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/steel,/area/medical/virology)
-"bEM" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 5},/area/shuttle/arrival/station)
+"bEM" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 1; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bEN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"bEO" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 0},/turf/simulated/floor,/area/maintenance/auxsolarport)
"bEP" = (/obj/item/weapon/stool,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor,/area/maintenance/auxsolarport)
@@ -4343,12 +4341,12 @@
"bFA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/maintenance/central)
"bFB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/maintenance/central)
"bFC" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/security/tactical)
-"bFD" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/crew_quarters/kitchen)
+"bFD" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/south{location = "Kitchen"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/crew_quarters/kitchen)
"bFE" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/table/marble,/obj/item/weapon/book/manual/chef_recipes,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{pixel_x = 3},/obj/machinery/camera/network/civilian{c_tag = "CIV - Kitchen Port"; dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bFF" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bFG" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/grill,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bFH" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/machinery/cooker/fryer,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bFI" = (/turf/simulated/shuttle/wall{tag = "icon-swall"; icon_state = "swall"},/area/shuttle/arrival/station)
+"bFI" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod1/station)
"bFJ" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bFK" = (/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table/standard,/obj/effect/floor_decal/corner/brown,/obj/item/weapon/stamp/cargo,/turf/simulated/floor/tiled,/area/quartermaster/office)
"bFL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
@@ -4356,7 +4354,7 @@
"bFN" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/closet/secure_closet/freezer/fridge,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bFO" = (/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for shutters."; id = "hop_office_desk"; name = "Desk Privacy Shutter"; pixel_x = 16; pixel_y = 28},/obj/machinery/button/windowtint{id = "hop_office"; pixel_x = 26; pixel_y = 29},/obj/structure/bed/chair/office/dark{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 9},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop)
"bFP" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"bFQ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/hydroponics)
+"bFQ" = (/obj/machinery/navbeacon/delivery/south{location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled,/area/hydroponics)
"bFR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
"bFS" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/sign/directions/medical{dir = 4; pixel_x = 32; pixel_y = 0},/obj/structure/sign/directions/cargo{dir = 2; pixel_x = 32; pixel_z = 8},/obj/structure/sign/directions/engineering{dir = 2; pixel_x = 32; pixel_z = -8},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two)
"bFT" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/effect/floor_decal/corner/paleblue{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/medical/reception)
@@ -4718,7 +4716,7 @@
"bML" = (/obj/machinery/vending/medical,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bMM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/corner/paleblue{dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"bMN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/rnd/research)
-"bMO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH1"; location = "CH12"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
+"bMO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon/patrol{next_patrol = "CH1"; location = "CH12"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
"bMP" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/patient_wing)
"bMQ" = (/obj/effect/floor_decal/corner/paleblue{dir = 9},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "medbayquar"; name = "Medbay Emergency Lockdown Shutters"; opacity = 0},/turf/simulated/floor/tiled/dark,/area/medical/virologyaccess)
"bMR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/virologyaccess)
@@ -4735,8 +4733,8 @@
"bNc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/medical/virologyaccess)
"bNd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/auxport)
"bNe" = (/turf/simulated/shuttle/wall,/area/shuttle/mining/station)
-"bNf" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/mining/station)
-"bNg" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
+"bNf" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
+"bNg" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/obj/random/medical/lite,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bNh" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/meson/prescription,/obj/item/weapon/storage/box/lights/mixed,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/security_starboard)
"bNi" = (/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/vending/cigarette,/turf/simulated/floor/tiled/white,/area/rnd/research)
"bNj" = (/obj/effect/floor_decal/corner/purple{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/rnd/research)
@@ -4819,7 +4817,7 @@
"bOI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/medical/virologyaccess)
"bOJ" = (/turf/simulated/floor/tiled,/area/medical/virologyaccess)
"bOK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/medical/virologyaccess)
-"bOL" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/mining/station)
+"bOL" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bOM" = (/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/crew_quarters/cafeteria)
"bON" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
"bOO" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
@@ -4831,7 +4829,7 @@
"bOU" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Research Dock Hallway"; req_access = list(47)},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled/white,/area/rnd/docking)
"bOV" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/research)
"bOW" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/research)
-"bOX" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Research Division"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/rnd/research)
+"bOX" = (/obj/machinery/navbeacon/delivery/east{location = "Research Division"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/rnd/research)
"bOY" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/window/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 4; icon_state = "left"; name = "Research Division Delivery"; req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/rnd/research)
"bOZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bPa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research)
@@ -4917,7 +4915,7 @@
"bQC" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/security/main)
"bQD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/medical/virologyaccess)
"bQE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/medical/virologyaccess)
-"bQF" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/mining/station)
+"bQF" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bQG" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
"bQH" = (/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
"bQI" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
@@ -4975,14 +4973,14 @@
"bRI" = (/obj/machinery/vending/boozeomat,/obj/machinery/status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/lino,/area/crew_quarters/bar)
"bRJ" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"bRK" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/quartermaster/delivery)
-"bRL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH6"; location = "CH5"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
+"bRL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon/patrol{next_patrol = "CH6"; location = "CH5"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bRM" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Robotics Desk"; req_access = list(29)},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/assembly/robotics)
"bRN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/lino,/area/crew_quarters/bar)
"bRO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/lino,/area/crew_quarters/bar)
"bRP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/neutral,/area/crew_quarters/cafeteria)
-"bRQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH12"; location = "CH11"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
+"bRQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon/patrol{next_patrol = "CH12"; location = "CH11"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
"bRR" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/camera/network/northern_star{c_tag = "Hall - Port Primary 3"; dir = 4},/turf/simulated/floor/tiled/dark,/area/hallway/primary/port)
-"bRS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH7"; location = "CH6"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
+"bRS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon/patrol{next_patrol = "CH7"; location = "CH6"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bRT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria)
"bRU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"bRV" = (/obj/machinery/power/apc/super/critical{dir = 4; is_critical = 1; name = "east bump"; pixel_x = 24; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/bluegrid,/area/ai)
@@ -5016,7 +5014,7 @@
"bSx" = (/turf/simulated/wall,/area/hallway/secondary/escape/medical_escape_pod_hallway)
"bSy" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Escape Pod"},/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/secondary/escape/medical_escape_pod_hallway)
"bSz" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/table/standard,/obj/item/stack/cable_coil,/obj/item/weapon/weldingtool/hugetank,/turf/simulated/floor/tiled/white,/area/assembly/robotics)
-"bSA" = (/obj/structure/ore_box,/obj/machinery/light{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/mining/station)
+"bSA" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"bSB" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_shuttle"; pixel_x = 25; pixel_y = -8; req_one_access = list(13,48); tag_door = "mining_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
"bSC" = (/turf/simulated/floor/tiled/dark,/area/security/tactical)
"bSD" = (/obj/effect/decal/cleanable/generic,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/maintenance/research)
@@ -5138,7 +5136,7 @@
"bUP" = (/turf/simulated/wall/r_wall,/area/bridge_hallway)
"bUQ" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/device/megaphone,/obj/machinery/requests_console{announcementConsole = 1; department = "Colony Director's Desk"; departmentType = 5; name = "Station Administrator RC"; pixel_x = 30; pixel_y = 0},/obj/structure/window/reinforced,/obj/item/weapon/pen/multi,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bUR" = (/turf/simulated/wall,/area/crew_quarters/cafeteria)
-"bUS" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; dir = 1; freq = 1400; location = "Medbay"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/plating,/area/medical/patient_wing)
+"bUS" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon/delivery/west{location = "Medbay"},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/plating,/area/medical/patient_wing)
"bUT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/lino,/area/crew_quarters/bar)
"bUU" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria)
"bUV" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/grey/diagonal{dir = 4},/obj/item/clothing/head/cakehat,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/cafeteria)
@@ -5370,7 +5368,6 @@
"bZn" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/device/taperecorder,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bZo" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bZp" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"bZq" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research{c_tag = "SCI - Robotics Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/assembly/robotics)
"bZr" = (/obj/structure/table/woodentable,/obj/machinery/computer/skills,/obj/item/weapon/hand_tele,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bZs" = (/obj/machinery/door/window/southright{name = "Captain's Desk Door"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bZt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engineering/atmos/storage)
@@ -5658,11 +5655,11 @@
"ceP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/pink{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/medical_emergency_hallway)
"ceQ" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/medbay_aft)
"ceR" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/maintenance/medbay_aft)
-"ceS" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/space,/area/shuttle/large_escape_pod1/station)
+"ceS" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"ceT" = (/turf/simulated/shuttle/wall,/area/shuttle/large_escape_pod1/station)
"ceU" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_1_hatch"; locked = 1; name = "Large Escape Pod Hatch 1"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"ceV" = (/obj/structure/sign/redcross,/turf/simulated/shuttle/wall,/area/shuttle/large_escape_pod1/station)
-"ceW" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/large_escape_pod1/station)
+"ceW" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"ceX" = (/turf/simulated/floor,/area/quartermaster/miningdock)
"ceY" = (/obj/machinery/mech_recharger,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/miningdock)
"ceZ" = (/obj/effect/floor_decal/corner/brown{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/quartermaster/miningdock)
@@ -5732,16 +5729,16 @@
"cgl" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/maintenance/medbay_aft)
"cgm" = (/turf/simulated/floor/plating,/area/maintenance/medbay_aft)
"cgn" = (/turf/simulated/floor,/area/maintenance/medbay_aft)
-"cgo" = (/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/space,/area/shuttle/large_escape_pod1/station)
+"cgo" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod1/station)
"cgp" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/large_escape_pod1/station)
"cgq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/medical_emergency_hallway)
-"cgr" = (/obj/structure/bed/roller,/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
-"cgs" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cgr" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod6/station)
+"cgs" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod5/station)
"cgt" = (/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "large_escape_pod_1"; pixel_x = -26; pixel_y = 26; tag_door = "large_escape_pod_1_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"cgu" = (/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
-"cgv" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cgv" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod6/station)
"cgw" = (/obj/structure/table/woodentable,/obj/item/weapon/stamp/captain,/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"cgx" = (/obj/structure/bed/chair,/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cgx" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod5/station)
"cgy" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock)
"cgz" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock)
"cgA" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock)
@@ -5763,7 +5760,7 @@
"cgQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
"cgR" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
"cgS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
-"cgT" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cgT" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod6/station)
"cgU" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/tiled,/area/bridge)
"cgV" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/simulated/floor/tiled,/area/bridge)
"cgW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
@@ -5808,8 +5805,8 @@
"chJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/maintenance/medbay_aft)
"chK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/medbay_aft)
"chL" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/barman_recipes,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/weapon/screwdriver,/obj/item/weapon/flame/lighter/zippo,/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/machinery/button/remote/blast_door{id = "bar"; name = "Bar Shutters"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/lino,/area/crew_quarters/bar)
-"chM" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
-"chN" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod1/station)
+"chM" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station)
+"chN" = (/turf/simulated/shuttle/wall,/area/shuttle/arrival/station)
"chO" = (/obj/effect/floor_decal/corner/brown/full,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock)
"chP" = (/obj/effect/floor_decal/corner/brown{dir = 8},/turf/simulated/floor/tiled/steel,/area/quartermaster/miningdock)
"chQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/miningdock)
@@ -5873,13 +5870,13 @@
"ciW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/pink{dir = 6},/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 4; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"ciX" = (/obj/machinery/camera/network/civilian{c_tag = "CIV - Bar Aft Starboard"; dir = 8},/obj/machinery/floor_light{anchored = 1},/turf/simulated/floor,/area/crew_quarters/bar)
"ciY" = (/obj/structure/table/rack,/obj/effect/floor_decal/corner/blue/full{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/machinery/light{dir = 4},/obj/machinery/door/window/brigdoor/westleft{name = "Energy"; req_access = list(1)},/obj/random/energy,/turf/simulated/floor/tiled/dark,/area/security/tactical)
-"ciZ" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"ciZ" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"cja" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
"cjb" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor,/area/shuttle/large_escape_pod1/station)
-"cjc" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
-"cjd" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
-"cje" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
-"cjf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/large_escape_pod1/station)
+"cjc" = (/turf/simulated/shuttle/wall{hard_corner = 1},/area/shuttle/arrival/station)
+"cjd" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"cje" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"cjf" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/arrival/station)
"cjg" = (/turf/simulated/wall,/area/quartermaster/office)
"cjh" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/floor_decal/corner/brown/full,/turf/simulated/floor/tiled,/area/quartermaster/miningdock)
"cji" = (/obj/structure/ore_box,/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled,/area/quartermaster/miningdock)
@@ -5900,7 +5897,7 @@
"cjx" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 10; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor,/area/maintenance/cargo)
"cjy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/maintenance/substation/research)
"cjz" = (/turf/simulated/wall,/area/storage/tech)
-"cjA" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cjA" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/constructionsite/station)
"cjB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/central_four)
"cjC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
"cjD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
@@ -5913,7 +5910,7 @@
"cjK" = (/obj/machinery/door/firedoor/glass,/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
"cjL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/central_two)
"cjM" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_two)
-"cjN" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/space,/area/shuttle/large_escape_pod1/station)
+"cjN" = (/turf/simulated/shuttle/wall{hard_corner = 1},/area/shuttle/constructionsite/station)
"cjO" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/corner/brown/full{dir = 8},/turf/simulated/floor/tiled,/area/quartermaster/office)
"cjP" = (/obj/machinery/photocopier,/obj/effect/floor_decal/corner/brown/full{dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/office)
"cjQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/miningdock)
@@ -6239,7 +6236,7 @@
"cpY" = (/obj/machinery/door/airlock{name = "Cargo Emergency Storage"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/storage/emergency_storage/emergency6)
"cpZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/storage/tools)
"cqa" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos)
-"cqb" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; dir = 1; frequency = 1487; icon_state = "intercom"; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = 21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
+"cqb" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod4/station)
"cqc" = (/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/soap/nanotrasen,/obj/structure/table/standard,/obj/random/soap,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/recreation_area_restroom)
"cqd" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/hallway/primary/port)
"cqe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/quartermaster/office)
@@ -6327,8 +6324,6 @@
"crI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/port)
"crJ" = (/obj/structure/flora/pottedplant{tag = "icon-plant-01"; icon_state = "plant-01"},/turf/simulated/floor/tiled/dark,/area/hallway/primary/central_three)
"crK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/crew_quarters/sleep/elevator)
-"crL" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/crew_quarters/sleep/elevator)
-"crM" = (/obj/machinery/cryopod/robot/door/dorms,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/crew_quarters/sleep/elevator)
"crN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central_three)
"crO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway)
"crP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway)
@@ -6380,7 +6375,6 @@
"csJ" = (/obj/structure/table/glass,/obj/machinery/camera/network/northern_star{c_tag = "Hall - Port Primary 5"; dir = 8},/turf/simulated/floor/tiled/dark,/area/hallway/primary/port)
"csK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/docking_hallway)
"csL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/bar)
-"csM" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/crew_quarters/sleep/elevator)
"csN" = (/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway2)
"csO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/docking_hallway)
"csP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway)
@@ -6388,13 +6382,13 @@
"csR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/port)
"csS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/docking_hallway)
"csT" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/flora/pottedplant,/turf/simulated/floor/tiled,/area/quartermaster/foyer)
-"csU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH11"; location = "CH10"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
-"csV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH10"; location = "CH9"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
+"csU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/navbeacon/patrol{next_patrol = "CH11"; location = "CH10"},/turf/simulated/floor/tiled,/area/hallway/primary/central_four)
+"csV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon/patrol{next_patrol = "CH10"; location = "CH9"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
"csW" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway2)
"csX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/locker)
"csY" = (/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"csZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH9"; location = "CH8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
-"cta" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=CH8"; location = "CH7"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
+"csZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/navbeacon/patrol{next_patrol = "CH9"; location = "CH8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
+"cta" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/navbeacon/patrol{next_patrol = "CH8"; location = "CH7"},/turf/simulated/floor/tiled,/area/hallway/primary/central_three)
"ctb" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"ctc" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/docking_hallway2)
"ctd" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/tiled/dark,/area/crew_quarters/locker)
@@ -6461,7 +6455,6 @@
"cum" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/docking_hallway)
"cun" = (/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator)
"cuo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator)
-"cup" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/crew_quarters/sleep/elevator)
"cuq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/sleep/elevator)
"cur" = (/obj/structure/curtain/open/shower,/obj/machinery/door/window/southright{name = "Shower"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/shower{pixel_y = 3},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_6)
"cus" = (/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/obj/effect/floor_decal/corner/blue{dir = 1},/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled,/area/crew_quarters/visitor_lodging)
@@ -6544,7 +6537,7 @@
"cvR" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
"cvS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/quartermaster/storage)
"cvT" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/quartermaster/storage)
-"cvU" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #3"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/quartermaster/storage)
+"cvU" = (/obj/machinery/navbeacon/delivery/south{location = "QM #3"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/quartermaster/storage)
"cvV" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Port"; dir = 1},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station)
"cvW" = (/obj/structure/table/standard,/obj/item/weapon/hand_labeler,/obj/effect/floor_decal/corner/brown{dir = 10},/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/quartermaster/office)
"cvX" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/qm)
@@ -6859,7 +6852,7 @@
"cBU" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/docking_hallway)
"cBV" = (/obj/machinery/atmospherics/pipe/tank/air,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor,/area/maintenance/bar)
"cBW" = (/obj/machinery/atmospherics/pipe/tank/air,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor,/area/maintenance/bar)
-"cBX" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/obj/random/medical/lite,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod2/station)
+"cBX" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod3/station)
"cBY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/virology)
"cBZ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/blood/oil/streak{amount = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/workshop)
"cCa" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/clothing/gloves/black,/obj/item/weapon/storage/box/lights/mixed,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/workshop)
@@ -7532,7 +7525,7 @@
"cOR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/lino,/area/hallway/secondary/entry/docking_lounge)
"cOS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/vistor_room_11)
"cOT" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/decal/remains/robot,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/bar)
-"cOU" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/bar)
+"cOU" = (/obj/machinery/navbeacon/delivery/east{location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/bar)
"cOV" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/coffee_shop)
"cOW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/coffee_shop)
"cOX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/atmos{name = "Atmospherics Maintenance"; req_access = list(24)},/turf/simulated/floor,/area/maintenance/atmos_control)
@@ -8255,12 +8248,12 @@
"dcM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(12,47)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/maintenance/engineering)
"dcN" = (/obj/structure/bed/chair/wood{dir = 8},/obj/effect/floor_decal/corner/brown{dir = 10},/turf/simulated/floor/tiled/white,/area/crew_quarters/coffee_shop)
"dcO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/engineering)
-"dcP" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape_pod6/station)
+"dcP" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod4/station)
"dcQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_6_hatch"; locked = 1; name = "Escape Pod Hatch 6"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod6/station)
-"dcR" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape_pod6/station)
-"dcS" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/escape_pod5/station)
+"dcR" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod3/station)
+"dcS" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod4/station)
"dcT" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_hatch"; locked = 1; name = "Escape Pod Hatch 5"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station)
-"dcU" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/escape_pod5/station)
+"dcU" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station)
"dcV" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/port)
"dcW" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
"dcX" = (/turf/simulated/wall,/area/hallway/secondary/entry/D1)
@@ -8310,9 +8303,7 @@
"ddP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry/starboard)
"ddQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/engineering)
"ddR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/engineering)
-"ddS" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod6/station)
"ddT" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod6/station)
-"ddU" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod5/station)
"ddV" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station)
"ddW" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 5; icon_state = "intact"; tag = "icon-intact (SOUTHEAST)"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor,/area/engineering/atmos)
"ddX" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
@@ -8453,12 +8444,6 @@
"dgC" = (/turf/simulated/wall,/area/engineering/engine_eva)
"dgD" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor,/area/maintenance/engineering)
"dgE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/maintenance/engineering)
-"dgF" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod6/station)
-"dgG" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod6/station)
-"dgH" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod6/station)
-"dgI" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod5/station)
-"dgJ" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod5/station)
-"dgK" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod5/station)
"dgL" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "centcom_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"dgM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "centcom_shuttle_dock_pump"},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"dgN" = (/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "centcom_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "centcom_shuttle_dock_pump"; tag_chamber_sensor = "centcom_shuttle_dock_sensor"; tag_exterior_door = "centcom_shuttle_dock_outer"; tag_interior_door = "centcom_shuttle_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "centcom_shuttle_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
@@ -8544,11 +8529,6 @@
"dip" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall,/area/maintenance/engineering)
"diq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor,/area/maintenance/engineering)
"dir" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/substation/engineering)
-"dis" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/shuttle/arrival/station)
-"dit" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
-"diu" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
-"div" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
-"diw" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/arrival/station)
"dix" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"diy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D4)
"diz" = (/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor,/area/engineering/atmos)
@@ -8587,7 +8567,6 @@
"djg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"djh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dji" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"djj" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/arrival/station)
"djk" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"djl" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"djm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
@@ -8631,8 +8610,6 @@
"djY" = (/obj/machinery/light{dir = 1},/obj/machinery/shieldgen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor,/area/engineering/storage)
"djZ" = (/obj/machinery/shieldgen,/obj/effect/decal/cleanable/dirt,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor,/area/engineering/storage)
"dka" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dkb" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/arrival/station)
-"dkc" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/arrival/station)
"dkd" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"dke" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; pressure_checks = 1; pressure_checks_default = 1; use_power = 1},/turf/simulated/floor/airless,/area/engineering/atmos)
"dkf" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "map_injector"; id = "co2_in"; use_power = 1; pixel_y = 1},/turf/simulated/floor/reinforced/carbon_dioxide,/area/engineering/atmos)
@@ -8731,7 +8708,6 @@
"dlU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
"dlV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
"dlW" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dlX" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"dlY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
"dlZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dma" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
@@ -8838,7 +8814,6 @@
"dnX" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dnY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dnZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doa" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"dob" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/obj/random/maintenance/research,/obj/random/maintenance/research,/turf/simulated/floor,/area/maintenance/research)
"doc" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dod" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
@@ -8861,7 +8836,6 @@
"dou" = (/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
"dov" = (/obj/structure/table/steel,/obj/item/weapon/book/manual/engineering_singularity_safety,/turf/simulated/floor,/area/maintenance/engineering)
"dow" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dox" = (/obj/structure/window/shuttle{icon_state = "window3"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"doy" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/food/drinks/bottle/wine,/obj/random/drinkbottle,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/central)
"doz" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"doA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
@@ -8903,7 +8877,7 @@
"dpk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
"dpl" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
"dpm" = (/obj/machinery/door/window/westleft{name = "Engineering Reception Desk"; req_access = list(10); req_one_access = newlist()},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "englockdown"; name = "Engineering Lockdown"; opacity = 0},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
-"dpn" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{dir = 4},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
+"dpn" = (/obj/machinery/navbeacon/delivery/west{location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/loading{dir = 4},/turf/simulated/floor/tiled,/area/engineering/aft_hallway)
"dpo" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/maintenance/engineering)
"dpp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/engineering)
"dpq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/engineering)
@@ -8916,7 +8890,6 @@
"dpx" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"dpy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dpz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpA" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"dpB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dpC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dpD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
@@ -8994,7 +8967,6 @@
"dqX" = (/obj/machinery/door/airlock/maintenance_hatch{icon_state = "door_closed"; locked = 0; name = "Engine Access"; req_one_access = list(11)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engineering/engine_airlock)
"dqY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/engineering)
"dqZ" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "englockdown"; name = "Engineering Lockdown"; opacity = 0},/turf/simulated/floor/tiled/dark,/area/engineering/aft_hallway)
-"dra" = (/obj/structure/closet/crate,/obj/random/maintenance/cargo,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/mining/station)
"drb" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"drc" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "escape_dock_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"drd" = (/obj/structure/table/rack,/obj/item/clothing/mask/gas,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/research)
@@ -9107,7 +9079,6 @@
"dtg" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"dth" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dti" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/arrival/station)
-"dtj" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/obj/random/medical/lite,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/large_escape_pod1/station)
"dtk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/maintenance/portsolar)
"dtl" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dtm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D4)
@@ -9159,11 +9130,7 @@
"dug" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
"duh" = (/obj/structure/table/standard,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
"dui" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/machinery/camera/network/northern_star{c_tag = "DOCK - Dock 2 Aft"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"duj" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/arrival/station)
-"duk" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/arrival/station)
-"dul" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/arrival/station)
"dum" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/arrival/station)
-"dun" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/arrival/station)
"duo" = (/obj/machinery/light{dir = 8},/obj/machinery/camera/network/northern_star{c_tag = "DOCK - Dock 3 Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"dup" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
"duq" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
@@ -9176,7 +9143,6 @@
"dux" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/airless,/area/engineering/aft_hallway)
"duy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eng_starboard_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 0; req_one_access = list(11,24)},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/airless,/area/engineering/aft_hallway)
"duz" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/station)
-"duA" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/constructionsite/station)
"duB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Elevator Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/constructionsite/station)
"duC" = (/obj/machinery/door/window/northleft{name = "Engine Waste"; req_one_access = list(10,24)},/turf/simulated/floor,/area/engineering/engine_waste)
"duD" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 6},/obj/machinery/door/window/northright{name = "Engine Waste"; req_one_access = list(10,24)},/turf/simulated/floor,/area/engineering/engine_waste)
@@ -9214,7 +9180,6 @@
"dvj" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar)
"dvk" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access = list(11)},/turf/simulated/floor,/area/maintenance/starboardsolar)
"dvl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/port)
-"dvm" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/constructionsite/station)
"dvn" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor,/area/shuttle/constructionsite/station)
"dvo" = (/turf/simulated/shuttle/floor,/area/shuttle/constructionsite/station)
"dvp" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "engineering_shuttle"; pixel_x = 25; pixel_y = 5; req_one_access = list(13,11,24); tag_door = "engineering_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/constructionsite/station)
@@ -9245,12 +9210,8 @@
"dvO" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dvP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dvQ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
-"dvR" = (/turf/simulated/floor,/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod4/station)
"dvS" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_4_hatch"; locked = 1; name = "Escape Pod Hatch 4"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod4/station)
-"dvT" = (/turf/simulated/floor,/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/shuttle/escape_pod4/station)
-"dvU" = (/turf/simulated/floor,/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/shuttle/escape_pod3/station)
"dvV" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_hatch"; locked = 1; name = "Escape Pod Hatch 3"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station)
-"dvW" = (/turf/simulated/floor,/obj/structure/shuttle/engine/propulsion/burst{dir = 1},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/shuttle/escape_pod3/station)
"dvX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor,/area/maintenance/starboardsolar)
"dvY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/maintenance/starboardsolar)
"dvZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Starboard"},/turf/simulated/floor,/area/maintenance/starboardsolar)
@@ -9274,9 +9235,7 @@
"dwr" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dws" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dwt" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
-"dwu" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod4/station)
"dwv" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod4/station)
-"dww" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape_pod3/station)
"dwx" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station)
"dwy" = (/obj/item/weapon/stool,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Starboard"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"dwz" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -9393,16 +9352,9 @@
"dyG" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dyH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
"dyI" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4)
-"dyJ" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod4/station)
-"dyK" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod4/station)
-"dyL" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod4/station)
-"dyM" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod3/station)
-"dyN" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod3/station)
-"dyO" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod3/station)
"dyP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D4)
"dyQ" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/research,/obj/random/maintenance/research,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/cargo)
"dyR" = (/turf/space,/area/skipjack_station/southwest_solars)
-"dyS" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/constructionsite/station)
"dyT" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 5},/turf/simulated/floor,/area/engineering/engine_room)
"dyU" = (/obj/machinery/atmospherics/pipe/manifold/visible/black{dir = 1},/turf/simulated/floor,/area/engineering/engine_room)
"dyV" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 9},/turf/simulated/floor,/area/engineering/engine_room)
@@ -9596,7 +9548,7 @@
"dCB" = (/obj/structure/bed/chair/wood{dir = 1},/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled,/area/hydroponics/garden)
"dCC" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/tiled,/area/hydroponics/garden)
"dCD" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/tiled,/area/hydroponics/garden)
-"dCE" = (/obj/structure/closet,/obj/item/clothing/glasses/welding,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/shoes/workboots,/obj/random/maintenance/engineering,/obj/random/maintenance/cargo,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/apmaint)
+"dCE" = (/obj/structure/closet,/obj/item/clothing/glasses/welding,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/obj/item/clothing/shoes/boots/workboots,/obj/random/maintenance/engineering,/obj/random/maintenance/cargo,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"dCF" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/tiled,/area/hydroponics/garden)
"dCG" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/tiled,/area/hydroponics/garden)
"dCH" = (/obj/effect/floor_decal/corner/green,/turf/simulated/floor/tiled,/area/hydroponics/garden)
@@ -9694,7 +9646,7 @@
"dEv" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "The big blue box recently installed in here is a 'grid checker' which will shut off the power if a dangerous power spike from the engine erupts into the powernet. Shutting everything down protects everything from electrical damage, however the outages can be disruptive to colony operations, so it is designed to restore power after a somewhat significant delay, up to ten minutes or so. The grid checker can be manually hacked in order to end the outage sooner. To do that, you must cut three specific wires which do not cause a red light to shine, then pulse a fourth wire. Electrical protection is highly recommended when doing maintenance on the grid checker."; name = "grid checker info"},/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/engineering)
"dEw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/closet/crate,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/engineering)
"dEx" = (/obj/structure/closet/crate,/obj/item/weapon/deck/tarot,/obj/item/weapon/coin/gold,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/obj/item/weapon/flame/lighter/zippo,/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/atmos_control)
-"dEy" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/combat,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/engineering)
+"dEy" = (/obj/structure/closet/wardrobe/black,/obj/item/clothing/shoes/boots/combat,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/engineering)
"dEz" = (/obj/structure/table/steel,/obj/item/clothing/head/orangebandana,/obj/random/maintenance/engineering,/turf/simulated/floor,/area/maintenance/engineering)
"dEA" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/deck/cards,/obj/structure/table/steel,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/engineering/drone_fabrication)
"dEB" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/tiled/hydro,/area/maintenance/engineering/pumpstation)
@@ -9705,8 +9657,8 @@
"dEG" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/longue_area)
"dEH" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/crew_quarters/longue_area)
"dEI" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/docking_hallway2)
-"dEJ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #1"},/obj/effect/floor_decal/industrial/outline/yellow,/mob/living/bot/mulebot,/turf/simulated/floor/tiled,/area/quartermaster/storage)
-"dEK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #2"},/obj/effect/floor_decal/industrial/outline/yellow,/mob/living/bot/mulebot,/turf/simulated/floor/tiled,/area/quartermaster/storage)
+"dEJ" = (/obj/machinery/navbeacon/delivery/south{location = "QM #1"},/obj/effect/floor_decal/industrial/outline/yellow,/mob/living/bot/mulebot,/turf/simulated/floor/tiled,/area/quartermaster/storage)
+"dEK" = (/obj/machinery/navbeacon/delivery/south{location = "QM #2"},/obj/effect/floor_decal/industrial/outline/yellow,/mob/living/bot/mulebot,/turf/simulated/floor/tiled,/area/quartermaster/storage)
"dEL" = (/turf/simulated/mineral,/area/mine/explored/upper_level)
"dEM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/longue_area)
"dEN" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_6)
@@ -9980,24 +9932,24 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadabxaeFaeFaeFabyaeFaeFaeFabyaeFaeFaeFabyaeFaeFaeFabyaeFaeFaeFabyaeFaeFaeFaeFdiMabAabzabCabBabMabFabOabNabQabvaddaahaahaahaahaahaahaahaahaahaahaahaahahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaahaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadadxaadaaaaadadxaadaaaaadadxaadaaaaadadxaadaaaaadadxaadaaaaadaaaaaaablabmabmabRabVabUabWalqabXadVaddaahaahaahaahaahaahaahaahaahaahaahaahahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahaaSacaaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaadabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaaadaaaaaaaaaaaaaadaccalqalqalqalqabXacdaddaahaahaahaahaahaahaahaahaahaahaahaaeacebkQbkQbkQbkQahybkQbkQacfaaeaahaahaahaahaahaahaahaahaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaaadaaaaaaaaaaadaadahybeubeubeuaddabXabPaddaahaahaahaahaahaahaahaahaahaahaahaaeahyacgaajaakaajaakaajachahyaaeaahaahaahaahaahaahaahaahaaSacjaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaacAaaaaaaaadaadadyaddaddaddaddaddaclackaddaddaahaahaahaahaahaahaahaahaahaahaaeahyaamaajaanaajaanaajaaoahyaaeaahaahaahaahaahaahaahaahaaSaPZaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadabhacbabiaadabhacbabiaadabhacbabiaadabhacbabiaadabhacbabiaadacAaaaaadaadaaaadMadNadOadPadQadRacnacmacoaddaahaahaahaahaahaahaahaahaahaahaaeacgaapaajaapaajaapaajaapachaaeaahaahaahaahaahaahaahaahaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaaadaadaadaaaaaaaekadNaelaemaenaeoabXacqacoaddaddaddaddaddaddaahaahaahaahaahaaeaaqaaraasaataauacHaawaaxaaqaaeaahaahaahaahaahaahaahaahaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadueaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaddaddaddaddaddaddahQabXacraddaddacYadZaeaacsaddaddaahaahaahaahaaeaaqaaraayaazaaAaazaaBaaxaaqaaeaahaahaahaahaahaahaahaahaaSabtabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduedueduedueaczacOacAaadaadaadacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaaaaaaaddaifakQakQakQakQakQactakQakQakQakQakQakQakQacvaddaddaahaahaahaaeaaqaaraayaazaaCaazaaBaaxaaqaaeaahaahaahaahaahaahaahaahaaSabtabtabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxaiwaeLaeMaeMaeMaeMaeNaeMaeMaeMaeMaeOaePadVacBabQaddaahaahaahaaeaaqaaraayaazaaAaazaaBaaxaaqaaeaahaahaahaahaahaahaahaahaaSaaSabtabtabHaaSaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaacCadCaddaeMafaafbafcafdafeafbaffaeMagHaddaddacEacDaddaahaahaahaaeaaqaaDaaEaaAaaAaaAaaFaaGaaqaaeaahaahaahaahaahaahaahaahaahaaSabtabtabIaiZaiZaiZaiZaiZaiZaahaahaahaahaahahyaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaacyacyacyacyacyaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFacGaeMafoafcafpafqafrafsaftaftafuaeMaahaddaddacGaddaahaahaahaaeaaHaaIaajaaJaaJaaJaajaaIaaKaaeaahaahaahaahaahaahaahaahaaSaaSadfaaSaiZaiZajHajrajsajsaiZahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaaadaaaaaaaaaaadaadahybeubeubeuaddabXabPaddaahaahaahaahaahaahaahaahaahaahaahaaeahyaajaajaajaajaajaajaajahyaaeaahaahaahaahaahaahaahaahaaSacjaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaabhacbabiaaaacAaaaaaaaadaadadyaddaddaddaddaddaclackaddaddaahaahaahaahaahaahaahaahaahaahaaeahyaajaajaajaajaajaajaajahyaaeaahaahaahaahaahaahaahaahaaSaPZaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadabhacbabiaadabhacbabiaadabhacbabiaadabhacbabiaadabhacbabiaadacAaaaaadaadaaaadMadNadOadPadQadRacnacmacoaddaahaahaahaahaahaahaahaahaahaahaaeaajaajaajaajaajaajaajaajaajaaeaahaahaahaahaahaahaahaahaaSabtaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNacNacNacNacNacNacNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaabhacpabiaaaaadaadaadaaaaaaaekadNaelaemaenaeoabXacqacoaddaddaddaddaddaddaahaahaahaahaahaaeaajaaraasaataauacHaawaaxaajaaeaahaahaahaahaahaahaahaahaaSabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadueaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaddaddaddaddaddaddahQabXacraddaddacYadZaeaacsaddaddaahaahaahaahaaeaajaaraayaazaaAaazaaBaaxaajaaeaahaahaahaahaahaahaahaahaaSabtabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduedueduedueaczacOacAaadaadaadacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaaaaaaaddaifakQakQakQakQakQactakQakQakQakQakQakQakQacvaddaddaahaahaahaaeaajaaraayaazaaCaazaaBaaxaajaaeaahaahaahaahaahaahaahaahaaSabtabtabtaaSaaSaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxaiwaeLaeMaeMaeMaeMaeNaeMaeMaeMaeMaeOaePadVacBabQaddaahaahaahaaeaajaaraayaazaaAaazaaBaaxaajaaeaahaahaahaahaahaahaahaahaaSaaSabtabtabHaaSaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaacCadCaddaeMafaafbafcafdafeafbaffaeMagHaddaddacEacDaddaahaahaahaaeaajaaDaaEaaAaaAaaAaaFaaGaajaaeaahaahaahaahaahaahaahaahaahaaSabtabtabIaiZaiZaiZaiZaiZaiZaahaahaahaahaahahyaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaacyacyacyacyacyaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFacGaeMafoafcafpafqafrafsaftaftafuaeMaahaddaddacGaddaahaahaahaaeaakaamaajaaJaaJaaJaajaamaanaaeaahaahaahaahaahaahaahaahaaSaaSadfaaSaiZaiZajHajrajsajsaiZahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacyacyacyacyacyaaaacyacyacyacyacyaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddacIaeMafFafGafHafIafJafKafLafMafNaeMaahaahaddacIaddaahaahaahaaeaaeaaeaaeaaLaaMaaMaaeaaeaaeaaeaahaaSaaSaaSaaSaaSaaSaaSaaSadgabtaiXaiZajWajHajHajsajsaiZahyahyaaaahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddacKaddacLaeMafSafTafUafVafWafXafYafcafZaeMaahaahaddacLaddaddaddaahaahaahaahaaNaaOaaPaaPaaNaahaahaahaaSaaSabtabtabtacMabtabtabtabtabtajFakAajWajHakhaiZaiZaiZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddaddakNakOakRaeMafcafcagkaglaglaglagmafcafcaeMaahaahaddaiwacQacPaddaddaddaddaddaaeaaRaaRaaRaaNaaSaaSaaSaaSabtabtakAakAakAakAakAakAakAabtakCakAacRakEajHakFakGakHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaddaddacSalvacTadVaeMagtaguagkafcagvafcagwaguagxaeMaahaahaddaiwacVacUacXacWacZadFaddabbabcabdabcabeaaSabtadaabsabKabqakAalkallalmalnadbakAabtajFakAalNalOadcaiZaiZaiZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaaQaahaaaalTalUalVaaaalWalXalYaddaifakRadGaddaddaeMaeMaeMagCagDagEagFagGaeMaeMaeMaahaahaddadhadiakQakQakQadkadjadmadladoadnaeyaboabpabtabtabJabHabIakAalGalHalIalJalKakAadpalMakAaiZajHadqalQalRalSaacahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuaaaaaaaaaaBmaaaaaaaaaaBmaahaahaahamxamvamwamvamxamyamzamyadraiwadVaddaddaahagHagNagNagPagQagRagSagTahtahtagHaahaahaddaddaddaddaddahoahPagMagMadsabcadtaduabGaaSaaSakzakzakzakzakAamiamjamkamlammakAadYamoabqaiZampamqaegamsamtahyahyahyahyahyaaaaaaahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamPamQamQamRaaaamuatNatNatNaBmatNatNatNaBmaahaahaahamxamvamSamvamxamyamTamyadraiwadVaddaahaahagHahbahcahdahcahcahcaheahfahgagHaahaahaahaahaahaahagMadvadAadzagMagMadDadBadEaaNaTWaahakzalhalialjakAamlamGamHamIamJakAaebamKamLaiZajHamMamNamsamOahyahyahyahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaamuanhaniamuamuamuanjankamuamuanlanmannanoamuamuaiFaioadHaBmadIayZadJaBmaahaahaahamxamvanpamvamxamyanqamyadraiwadVaddaahaahagHahqahqagPagQahrahsagTagVagVagHaahaahaahaahaahaahagMadSadUadTadWahoabcabZafwaaNaahaahakzalEakzalFakAancandaneancandakzakzaaSanfaiZaiZangaiZaiZaiZahyahyahyahyahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyamuamuaobaocaodaoeaofaogaohaoiaojaokaolaolaomaonamuayZayZayZaBmadXayZayZaBmaahaahaahamxaooaopaoqamxaoraosaotadraiwaiYaddaahaahagHaecahfahEahFaeeaedaefahcaehagHaahaahaahaahaahaahagMahAaepaeiaeqahaabDabZaeraaNaahaahakzaesanKanLanManNanOanPanQanRamfakzanTanUanVanWanXanYanYanZanZanZanZaoaahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaaQaahaaaalUalTalUaaaalWalValWaddaifakRadGaddaddaeMaeMaeMagCagDagEagFagGaeMaeMaeMaahaahaddadhadiakQakQakQadkadjadmadladoadnaeyaboabpabtabtabJabHabIakAalGalHalIalJalKakAadpalMakAaiZajHadqalQalRalSaacahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamuaaaaaaaaaaBmaaaaaaaaaaBmaahaahaahamxalUamwalUamxalWamzalWadraiwadVaddaddaahagHagNagNagPagQagRagSagTahtahtagHaahaahaddaddaddaddaddahoahPagMagMadsabcadtaduabGaaSaaSakzakzakzakzakAamiamjamkamlammakAadYamoabqaiZampamqaegamsamtahyahyahyahyahyaaaaaaahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamPamQamQamRaaaamuatNatNatNaBmatNatNatNaBmaahaahaahamxalUamSalUamxalWamTalWadraiwadVaddaahaahagHahbahcahdahcahcahcaheahfahgagHaahaahaahaahaahaahagMadvadAadzagMagMadDadBadEaaNaTWaahakzalhalialjakAamlamGamHamIamJakAaebamKamLaiZajHamMamNamsamOahyahyahyahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaamuanhaniamuamuamuanjankamuamuanlanmannanoamuamuaiFaioadHaBmadIayZadJaBmaahaahaahamxalUanpalUamxalWanqalWadraiwadVaddaahaahagHahqahqagPagQahrahsagTagVagVagHaahaahaahaahaahaahagMadSadUadTadWahoabcabZafwaaNaahaahakzalEakzalFakAancandaneancandakzakzaaSanfaiZaiZangaiZaiZaiZahyahyahyahyahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyamuamuaobaocaodaoeaofaogaohaoiaojaokaolaolaomaonamuayZayZayZaBmadXayZayZaBmaahaahaahamxalXaopalXamxalYaosalYadraiwaiYaddaahaahagHaecahfahEahFaeeaedaefahcaehagHaahaahaahaahaahaahagMahAaepaeiaeqahaabDabZaeraaNaahaahakzaesanKanLanManNanOanPanQanRamfakzanTanUanVanWanXanYanYanZanZanZanZaoaahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyamuapeapfapgaphapiaphapjapkapeaplapmapmapmapnapoamuaeuaetaevaBmaewaetaexaBmaeAaeAaeAamxappapqapramxapsapqaptamxaeBanranraahagHagHahSahSagPahTaeDahVagUaeEaeHagHagHaahaahaahaahaahagMagMagMagMagMapzafgaeIafiaaNaahaahakzaoIaoJaoKaiCaoMaoNaoOaoPaoQaoRaoSaoTaoTaoUaoVaoWaoXaoYaoZapaapbapcaeJahyahyahyahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyahyamuapYapZaqaapZaqbaqcaqaapZapYaqdapnaqeapmaqfaqgamuatNayZatNaBmatNaeKatNaBmatNatNanramxanraqhaqiamxanraqjaqiamxapxapyanraahagHaiiagUagUagPaijaMNailagUagUagUagUagHaahaahaahaahaahaahapzaqqaqraeRapzabYabZagKaaNaahaahakzapJamfamfapKapLapMapNamfamfapOakzapPanTaeTaeSaeUanTapTapUapVapWapcaeWahyahyahyahyahyahyahyahyaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyahyahyahyahyahyahyahyahyahyamuaqMapZapZaqNaqOaqPaqQaqQaqRaqSaqTaqUaqVaqWaqXaqYaLqaLqaLqaLqaLqaLqaLqaLqafhaeZafkafjafxafnafzafyafxafAafOafCagbapwanraahagHagcaiAagUagPagQaeQagSagUaizaiyagdagHagHagHagHagHaahaahapzagiagearparoagnagjagoaaNaahaahakzaqFaqGaqHaqIaqJaqKaqGaqHaqFakzakzanZanZaqLanZanZanZanZanZanZanZanZanZanZaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10027,11 +9979,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbtobtobtocnocoHcnTcoObtobtoaJJaKIaPxaKIaKIaKIaPyaPzaPAaPBaPCaPDaJQaKVaPEaPFaPFaPFaPGaNmaPIaPJaPKaPLaPMaPNaPOaPNaPPaPQaPNaPRaPSaUeaPUaPTaPWaFaaPXaPYdGLaFaaahaahaahaahatNaHNatNaahaNJaQaaOXaQbaQcaQdaQeaQfbAoaQhaKraJkaQiaJmaJnaQjaFoahyaCjaPdaCjaGDaGDaGDaGDaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaKvaLIaIcaQmaQlaLPaQnaQnaQoaQnaQnaQpaQqaPkaLQaQsaJAaKBaKCaKCaKCaKCaKCaKCaKCaKDaGRaKEaDtaOoaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbtobtobtobtobtobtobtobtoaJJaJJaPxaKIaQtaQuaQvaLXaQwaQxaQyaQzaJQaNraNqaQCaKSaQCaOnaPsaFhaFhaFhaFhaQFboJaQGaQHaQHaMtaLmaQIaQJaPNaPPaQKaQLaFaaQMaPYaQNaFaaahaahaahaahatNaHNatNaahaNJaNJaQOaOXaQPaQQaNPawnaxmaQRaFoaJkaJkaHVaQSaFoaFoahyaCjaPdaCjaahaahaGDaxWaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaJqaQUaQVaDraQWaClaQnaQncqcaxXaxZaQnaQnaRaaQnaQnaRbaJAaRcaRdaRdaRdaRdaRdaRdaRdaReaGRaFIaDtaFJcxiaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahyaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaRfaahaahaahaahaahbtobtobtobtobtobtoaahaahaRgaRhaRgaRgaJJaJJaJJaJJaJJaJJaJJaRiaRiaRiaPqaRkaPqaRiaRiaRiaahaahaFhaFhaRlaRmaPVaRoaRpaRqaRraPSaKxaRsaRnaRuaFhaFaaFaaRvaFaaahaahaahatNatNaHNatNaahaahaNJaNJaRwaRxaRyaPaawnaxmaRzaFoaRAaRBaGCaFoaFoahyahyaCjaPdaCjaahaahaGDayaaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaLHaGMaLIaIcaRCaClbZuaREaRFaRGaYSaQnaRHaRGaRIaQnaRbaRJaRKaRKaRKaRKaRKaRKaRKaRKaRKaRLaGRaRMaFJdGJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaRPaRPaRPaRPaRPaRPaRPaRPaRPaRQaRfaahaahaahaahaahaahaahaahaahaahaahaahaahaRgaRRaRSaRTahyahyahyahyahyahyahyahyahyaRUaRVaRVaRVaRUahyahyaahaahaahaFhaFhaRWaRXaRXaRYaFhaFhaFhaFhaFhaFhaFhaFhaahaFaaRZaFaaahaahaahatNaSaaSbatNaahaahahyaNJaNJaNJaNJaNJaScaSdawnaFoaFoaFoaFoaFoahyahyahyaCjaPdaCjaCjaahaGDaGDaGEaGFaGFaGFaSeaGFaGFaGFaGFaGHaGDaGIaSfaGKaGLaClaQnaQnaSgaShaSiaSjaSkaSlaSmaSjaRbaSnaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaDtaFJaVCaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaROaRPaSoaSpaSqaSraSsaStaSoaSuaSvaSwaRfaahaahaahaahaahaahaahaahaahaSxaSxaSxaSxaSxaSycxUaRTahyahyahyahyahyahyahyahyahyaSAaSBaSCaSDaSAahyahyaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaFaaFaaFaaahaahaahatNaSEaSFatNaahaahahyahyahyahyahyaSGawnaxmawnaSGahyahyahyahyahyahyahyaCjaSHcyQaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaDoaFqaSJaFsaFtaClaRDaSKaSLafRaSNaQnaRHaSOaRIaQnaPHaGRawkaSQaQrawmaQAawmaQBaSQawkaQDaEvaDtaOoaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSVaSWaSXaSXaSXaSXaSXaSXaSXaSYaSvaSwaRfaahaahaahaahaahaahaahaahaahaSxaSZaTaaTbaTcaTdaTeaRTahyahyahyaTfaTgaThaTiaTfahyaTjaTkaTlaTkaTjahyahyaahaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahatNaHNaTmatNaahaahahyahyahyahyahyaTnawnaxmawnaTnahyaToaTpaTqaTraToahyaCjaPdaDnaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaEpbdHaLIaIcaLJaClaQnaQnaQnaQnaQnaQnaQnaQnaQnaQnaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaTtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTuaRPaTvaTwaTwaSXaTxcBXaTzaTAaSvaSwaRfaahaahaahaahaahaahaahaahaahaSxaTBaTCaTDaTEaTFaTGaRTahyahyaTfaTfaQEaTIaQEaTfaTfaTfaTJaTKaTJaTfaTfahyahyaahaahaahaahahyahyahyahyahyahyahyahyahyaTfaTfaTfaTfaTfaahaahaahaahaTfatNaTLatNaTfaahaahaahahyahyahyavCavCaTMaTNaTMavCaToaToaTOaTPaTQaToaToaCjaTRaCjaCjaahaahaahaahahyahyahyahyahyahyahyahyahyaFpaDpaQVaDraQkaClaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaDtaTSaTTaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTuaRPaRPaRPaTUaTUaRPaRPaRPaRPaTVaRfaahaahaahaahaahaTWaTWaTWaTWaSxaTXaTYaTZaSxaRTaUaaRTaUbaUcaTfaUdaTkaTkaTkaUhaTfaUfaTkaUgaTkaUsaTfaUiaUjaTfaTfaTfaTfaTgaThaThaThaThaThaThaThaTiaTfaUkaUlaUmaTfaTfaTfaTfaTfaTfaUnaUoaUpaTfaTfaTfaTfaTfaUqaUraTfaVcaTkaTlaTkaUtaToaUuaUvaUvaUwaUxaToaUyaUzaUAaClaClaClaClaClaClaUBaUCaUCaUCaUCaUCaUCaUDaClaGIaUEaCnaCoaClaClcllcllcllcllcllcllaDtaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaTWaDtaDtaUFcEuaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaRPaRPaRPaRPaRPaRPaRPaRPamvaRfaahaahaahaahaahaahaahaahaahaahaahaahaahaRgaRRaRSaRTahyahyahyahyahyahyahyahyahyaRUaRVaRVaRVaRUahyahyaahaahaahaFhaFhaRWaRXaRXaRYaFhaFhaFhaFhaFhaFhaFhaFhaahaFaaRZaFaaahaahaahatNaSaaSbatNaahaahahyaNJaNJaNJaNJaNJaScaSdawnaFoaFoaFoaFoaFoahyahyahyaCjaPdaCjaCjaahaGDaGDaGEaGFaGFaGFaSeaGFaGFaGFaGFaGHaGDaGIaSfaGKaGLaClaQnaQnaSgaShaSiaSjaSkaSlaSmaSjaRbaSnaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaGRaDtaFJaVCaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaooamyaoqaSraSsaoraooaotaSvaROaRfaahaahaahaahaahaahaahaahaahaSxaSxaSxaSxaSxaSycxUaRTahyahyahyahyahyahyahyahyahyaSAaSBaSCaSDaSAahyahyaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaFaaFaaFaaahaahaahatNaSEaSFatNaahaahahyahyahyahyahyaSGawnaxmawnaSGahyahyahyahyahyahyahyaCjaSHcyQaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaDoaFqaSJaFsaFtaClaRDaSKaSLafRaSNaQnaRHaSOaRIaQnaPHaGRawkaSQaQrawmaQAawmaQBaSQawkaQDaEvaDtaOoaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSoaRQaSXaSXaSXaSXaSXaSXaSXaSYaSvaROaRfaahaahaahaahaahaahaahaahaahaSxaSZaTaaTbaTcaTdaTeaRTahyahyahyaTfaTgaThaTiaTfahyaTjaTkaTlaTkaTjahyahyaahaahaahaahaahahyahyahyahyahyahyahyahyahyahyahyaahaahaahaahaahaahaahaahatNaHNaTmatNaahaahahyahyahyahyahyaTnawnaxmawnaTnahyaToaTpaTqaTraToahyaCjaPdaDnaCjaahaahahyahyahyahyahyahyahyahyahyahyahyaEpbdHaLIaIcaLJaClaQnaQnaQnaQnaQnaQnaQnaQnaQnaQnaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaEvaTtaOoaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaSqaSpaSpaSXaTxaStaSwaSuaSvaROaRfaahaahaahaahaahaahaahaahaahaSxaTBaTCaTDaTEaTFaTGaRTahyahyaTfaTfaQEaTIaQEaTfaTfaTfaTJaTKaTJaTfaTfahyahyaahaahaahaahahyahyahyahyahyahyahyahyahyaTfaTfaTfaTfaTfaahaahaahaahaTfatNaTLatNaTfaahaahaahahyahyahyavCavCaTMaTNaTMavCaToaToaTOaTPaTQaToaToaCjaTRaCjaCjaahaahaahaahahyahyahyahyahyahyahyahyahyaFpaDpaQVaDraQkaClaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaDtaTSaTTaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRPaRPaRPaRPaTUaTUaRPaRPaRPaRPaSVaRfaahaahaahaahaahaTWaTWaTWaTWaSxaTXaTYaTZaSxaRTaUaaRTaUbaUcaTfaUdaTkaTkaTkaUhaTfaUfaTkaUgaTkaUsaTfaUiaUjaTfaTfaTfaTfaTgaThaThaThaThaThaThaThaTiaTfaUkaUlaUmaTfaTfaTfaTfaTfaTfaUnaUoaUpaTfaTfaTfaTfaTfaUqaUraTfaVcaTkaTlaTkaUtaToaUuaUvaUvaUwaUxaToaUyaUzaUAaClaClaClaClaClaClaUBaUCaUCaUCaUCaUCaUCaUDaClaGIaUEaCnaCoaClaClcllcllcllcllcllcllaDtaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaTWaDtaDtaUFcEuaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaRfaRfaRfaRfaUHaUHaRfaRfaRfaRfaRfaRfaUIaUIaUIaUIaUIaUIaUJaUKaULaSxaTcaUMaSxaSxawqaUOaUPaUNaUNaUQaTkaURaUSaUTaUTaUUaUVaUTaUWaUTaUTaUUaUTaUTaUTaUXaUYaUTaUZaUTaUTaUTaUTaUSaUTaUTaUTaUUaUTaVaaUSaUUaUTaUTaVbaYIcGdaUTaVeaTkaTJaTkaVfaTkaVgaTkaTkaVhaTkaTkaTlaTkaTkaViaVjaUvaUvaVkaVlaVmaVnaVoaVnaVpaVqaVraZQaVsaVtaVnaVnaVnaVvaVnaVnaVwaVxaVyaVnaVnaVzaVAaLIaUAcpZcmkcmlakuaktaktaDtaVCcJKaYdaYeaDtaDtaDtaDtaDtaDtaDtaDtaDtcKlaVCaFJaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaRfaVDaVEaVFaVGaVHaVIaVJaVOaVLaVMaVNaVOaVPaVKapRaVKaVRaVSaVTaVKaVUaVKaVPaVVaVWaVVaVRaVKaVXaVYaVZaIxaVYaVYaWbaWcaWdaWeaWdaWfaWbaWdaWdaWdaWgaWhaWdaWdaWiaWdaWdaWfaWcaWdaWdaWaaWbaWdaWjaWcaWbaWqaWdaWgaWdaWkaWhaWlaWdaWbaWdaWiaWdaWcaWdaWdaWmaWdaWfaWnaTkaTkaViaWoaWpbhcaWraWsaWtaWuaWvaWuaWwaWuaWuaWuaWuaWxaWyaWuaWuaWuaWuaWuaWzaWAaWAaWAaWBakvaWuaWuakxakwakyakyakLakBakMakDaWGakIaWGaWGaWGaWGaWGakSaWGaWGaWGaWGaWGaWGaWGaWJaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazGazGazGazGazGaaaazGazGazGazGazGaaaazGazGazGazGazGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaRfaWKaWLaWMaWNaWLaWOaVQaynaWQaWPaWRaWPaWTaWSaYjaWUaWVaWWaWXaWYaWZaXaaXbaXcaXdaXeaXfaXgaXhaXiaXjaXkaXlaXmaXnaXmaXmaXmaXmaXoaXnaXmaXmaXpaXmaXqaXmaXmaXraXmaXmaXsaXtaXuaXmaXvaXnaXwaXxaXyaXzaXyaXyaXyaXAaXBaXCaXDaXEaXFaXGaXHaXmaXIaXtaXJaXKaTkaXLaTkaTkaTkaViaUvaXMaXNaXOaXPaXQaXRaXSaLIaLIaXTaLIaLIaXVaSfaXWaLIaLIaLIaXXaLIaXYaXZaXVaXUaYaaLIaLIaLIaUAcpZakTakKakPakUcomaDtaDtaDtaDtaDtaDtaDtaDtaFJaVCaDtaDtaDtaDtaDtaDtaDtaDtaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10049,13 +10001,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahbpjbpobpjbimbimbimbimbimbimbimbimbdPbhkbhlbhkbdPbhmbfubhnbhobhobhobhoaahaahaahahyahyahyahyahyahyahyahyaZycrkbajbhqbhrbhsbefbhtbgvbgwbhubefaahaahaahaahbdlbhvbhybhxblrbhwbeTbhvbdlaahaahaahaZdaZGaZHaZdahybdqbaUdCFbbGbbGbbGbbGdCGbnZboGboGboGbosdCFbbGbbGbbGbhBbbGbhCbhDbhEbhFbhGbetaUwbhHaToaahbeZbhIbhJbgNbhKbhLbhLbhLbhLbhMbhNbgVbhObhPbgYbhQbhRbhSdinbgYbhUbhVbhVbhWbgZbhXbhYbhYbhZbhZbhYbaObhfbibbicdlrbiebhfbdOaZWaZmaahaahaahaahaahbgmbifbigbihbiibijbikbifbgmaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyaahaahaahaahaahaahaahaahbpjbpjbpodmIbilbjybjzbjAbjBbjCbjDbjEbilbjFbinbiobipbeEbfubinbhobiqbirbhobhobhoaahaahahyahyahyahyahyahyahybambisaZzbitbiubdebivbiwbixbgwbhubefaahaahaahaahbdlbiyblsbizbiAbiBbltbiCbdlaahaahaahaZdbiDaZHaZdahybejbdrdCFbbGbbGbbGbbGdCGboNboGbjZboGbpGdCFbbGbbGbbGbiIbiJbiJbiKbiLbiMbiNbiObiPbiQaToaahbeZbfTbiRbiSbeZbiTbiUblObiWbxjbfhbzjbhObiYbgYdlQbjabjbbjcbgYbSjbjebjfbjgbgZbjhbjibjjdmFbkubjmbjnbhfbibbjobjpbjqbhfbjrbjsaZmaahaahaahaahaahbgmbjtbjubjvbjwbjvbjubjxbgmaahaahbgmbgmbgmbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabkObkPbkQbkQbkSbkPbkOaahaahaahaahaahaahbpjbqSbpobqUbilbkTbkUbkVbkWbkXbkYbkZblabkRbjGbjHbjIbjJbjKbjLbhobjMbjNbjObjPbhoaahaahaahahyahyahyahyahyahybaibjQbjRbjSbhrbecbjTbjUbjVbgwbhubefaahaahaahaahbjWbjWbjWbjWbjXbjWbjWbjWbjWaahaahaahaZdbjYaZHaZdahybcybaUdCFbbGbbGbbGbbGdCGbrAboGboGboGbrDdCFbbGbbGbbGbkbbbGbbGbkcaZibkdaYGbetaUwbkeaToaahbeZaEqbkgblRbeZbfhbfhbfhbfhbkibfhbALbkkbklbgYbkmbknbkobkpbgYbkqbkrbksbktbgZblAbkvbkwdmPdmLbkzbkAbkBbkCbkDbaPbkFbhfbdObkGaZmaahaahbgmbgmbgmbgmbkHbkIbkHbkJbkHbkKbkHbgmbgmbgmbgmbkLbkMbkNbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkPbmobmpbmqbmpbmobkPahyaahaahbkPbkPbkPblbbqVbpobpobilbmrbmsbjAbmtbmubmvbmwbilblcbdRbldbleblfblgblhbhoblibljblkblkbhobllbllbllbllahyahyahyahyahybbobboblmblnblobeebefblpbjVbgwblqbefaahaahaahbjWbjWbjWbjWbopblvbopbjWbjWbjWbjWaahaahaZdaZdaZHaZdahyaZIblydCwbeqbbGblzbbGbbGdCrbrAbsEbrDbfMbbGbbGblzbbGblBdCHdCIaZIaZfaToaZjblDaZlaToaToaahbeZblEblFblGbeZblIbnablJbIxblLblMblNbhOblWbgYbgYblPblQbpabgYblSblTblUblVbgZbrKbhZbhYblXbhYbhYbaQbhfbjpbmabhfbmbbhfdnIaZWaZmaahbgmbgmbifbmdbkHbmebmfbmgbmhbmibmfbmgbmjbkJbmkbmlbmibmmbmgbmnbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnObnPbnQbnRbnRbnPbnSbnTbkPbkPbkPbnUbnVbkPbkPbsybkPbilbilbilbilbilbilbilbilbilbmxbfubmybdTbrebdTbrebhoblibmAbmBbmCblkbmDbmEbmFbllbmGbmHbmIbllahyahyaZyaZzbcnbhrbeebmJbmKbmLbmMbefbefaahaahaahbjWbjWblwbmNblxbpHbmObmSbmRbjWbjWaahaahaahaZdaZHaZdahyaZIbmTblCbbJbbGbfPbfQbmUbbGbdCbdCbdCbbGbmUbeVbfNbbGbbGdCKbmVaZIahyaZPaYGaYHaUwaToaahaahbeZbmWbmXbmYbmZbUDbnbbncbncbndbnebnfbngbnhbnibgYbnjbnkbnlbgYbnmbnnbnobnpbgZbnqbnrcXObnsbhYbntbnubhfbnvbnwbhfbnxbhfdnJaZWaZmaahbgmbnzbnAbnBbnCbnDbnEbnDbnFbnDbnGbihbnHbkJbnIbnJbnKbnLbihbnMaFMbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQbmqbpbbpcbpcbmqbpdbpebpfbpgbNxbLLbRubOUbUHbRvbUMbUIbWrbWqbWsbprbpsbprbptbnWbpvbpwbpubdTbpybnYbrfblkblkaybbobbocblkbodboeboebofbogbohboibllahyahybamaZzbcnbojbeebmKbmKbokbolbefaahaahaahbjWbjWbpJbombpLbmPbvMbmPborboqbrxbjWbjWaahaahaZdaZHaZdahybdqbiHdCBbfRbbGbbGbfPbfQbbGbbGbbGbbGbbGbembeWbbGbbGbbGbekbdxbdqahybaNbbObotbouaToaahaahbeZbgLbovbgNbowboxboybozboAboBboCbgVbhOboDdnKbgYboFbsDboFbgYboHboIbTzboKbgZbgkboLboMbtWboLboMboOboOboOboOboOboOboOboOaZWaZmaahbgmboPboQboRbkHboSbmfanuboUboVboWbmmbmgbkHbmibmmboXboYboSboZbuPbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpxbkQbnPbqJbpcbpcbqKbqLbqMbqNbqObqPbWubXYbWwbXZbqTbYbbYabqWbqXbYcbqYbqZbrabrbbrcbrdbgqbinbMKbpzbpzbpzbpAblkblkbpBblkblkbpCbpDbpEbpEbpEbpFbwZbllahyahybamaZzbcnbfBbeebefbefbefbefbefaahaahaahbjWbjWbrybukbonbpIbpIbpIbonbukbrzbjWbjWaahaahaZdaZHaZdahybejbiHdCDdCLbbGbelbbGbfPbenbbGbbGbbGbeobeWbbGbelbbGdCHdCMbdxbejahybbNaYGaYHaUwbpPahyaahbeZbpQbpRbgNbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqabqbbqcbqdbqcbqebqcbqfbqgbqhbqibqjbqkbqhbqlbqmbqnboObqoaCqbqqbqrbqsbqtboOaZWaZmaahbgmbqubqvbqwbkJbqxbqybqzbgmbqAbqBbqCbqCbqDbsnbqCbqEbqFbqGboZaycbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQbmqdnLbpcbpcbmqbsubsvbswbsxbYdbszbsAbkPbkPbsybkPbkPbkPbkPbkPbkPbkPbkPbkPbdTblcbfubinbMNburbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahbjWbsQbsRbukbonbpKbsSbpKbonbukbxbbsTbjWaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbEEblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscaCrbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAaaaaadaaaaaaaaaaaaaadaadaaaaaaaadaadaaaaadaadaadaaaaadaadaadaaaacAaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsrahyahybssbnPbnQbtPbtQbnPbtRbnTbkPbkPbkPbtSbnTbkPbYhbEUdnMbsBaahbtTdIGbtVdIIdIHdIKdIJdILbfubsCbdTbuubutbsFbsFbsGbsHbsIbsJbrlbsKbrnbsLbsMbsNbrrbsObsPahyahybamaZzbcnbhrbamahyahyahyahyahyahyaahaahbjWbjWbrybukbRVbpIbTDbpIbonbukbrzbjWbjWaahaahaZdaZHaZdahyaZIbdqbbEbsVdCDdCLbbIbbJbbKbbGbbGbbGbbIbbJbbKdCHdCCbrCbbEbdqaZIahyaZPaYGbetaUwbrGahyahybeZbeZbsWbeZbeZblMblMblMbsXbsXbsXbsXbsYbsZbsXbsXbtabtbbtcbtdbtdbtebtfbtbbtgbthbtibtjbtkawrbtmboObtnaCsaCuaCtaCuaDwboOaZWaZmaahbgmbtsbttbnBbtubnDbtvbnDbtwbmmbtxbmmbtybkJbyTbijbtzbtAbtBbtCbtDbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaaacAaadaadaaaaaaaaaaaaaaaaaabtHbtIbtJbtKaaaaaabtLbtMbtNbtLbtLbtObmobmpbmqbmpbmobkPahyahyahyahyahyahybtHdobbYebZebsBaahbtTdINdIMdIPdIOdIRdIQdITdISdIUbMKbuvbtXbtYbpzbtZbeEbuabubbucbudbuebufbufbufbugbuhbuiahyahybamaZzbcnbhrbamahyahyahyahyahyaahaahaahbjWbjWbVfbpMboobpIbpIbpIbqHbpNcgdbjWbjWaahaahaZdaZHaZdahyahybbMbaMbbEbsVdCDdCNbzTdCOdCzdCzdCzdCNbvodCOdCCbrCbbEbaybbDahyahybaNbdubdvbunbrGahyahybuobvCbuqbwSbusbxdbyibxfbsXbuwbuxbuybuzayjaykbuCbuDbuEbuFbuGbuHbuIbtfbHXbuKbuLbuMbuNbuObuLbuNboObwxbuQbuRbuSbuTbuUboOaZWaZmaahbgmbgmbifbuVbkHboSbuWbmmbmfbmmbmmbtCbuXbkJbCQbwubuZbvabsmbvbbgmbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkPaSWbmoaaobmoaSWbkPahyaahaahbkPbkPbkPblbbqVbpobpobilbmrbmsbjAbmtbmubmvbmwbilblcbdRbldbleblfblgblhbhoblibljblkblkbhobllbllbllbllahyahyahyahyahybbobboblmblnblobeebefblpbjVbgwblqbefaahaahaahbjWbjWbjWbjWbopblvbopbjWbjWbjWbjWaahaahaZdaZdaZHaZdahyaZIblydCwbeqbbGblzbbGbbGdCrbrAbsEbrDbfMbbGbbGblzbbGblBdCHdCIaZIaZfaToaZjblDaZlaToaToaahbeZblEblFblGbeZblIbnablJbIxblLblMblNbhOblWbgYbgYblPblQbpabgYblSblTblUblVbgZbrKbhZbhYblXbhYbhYbaQbhfbjpbmabhfbmbbhfdnIaZWaZmaahbgmbgmbifbmdbkHbmebmfbmgbmhbmibmfbmgbmjbkJbmkbmlbmibmmbmgbmnbgmbgmaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnObmobnQbnRbnRbmobnSbnTbkPbkPbkPbnUbnVbkPbkPbsybkPbilbilbilbilbilbilbilbilbilbmxbfubmybdTbrebdTbrebhoblibmAbmBbmCblkbmDbmEbmFbllbmGbmHbmIbllahyahyaZyaZzbcnbhrbeebmJbmKbmLbmMbefbefaahaahaahbjWbjWblwbmNblxbpHbmObmSbmRbjWbjWaahaahaahaZdaZHaZdahyaZIbmTblCbbJbbGbfPbfQbmUbbGbdCbdCbdCbbGbmUbeVbfNbbGbbGdCKbmVaZIahyaZPaYGaYHaUwaToaahaahbeZbmWbmXbmYbmZbUDbnbbncbncbndbnebnfbngbnhbnibgYbnjbnkbnlbgYbnmbnnbnobnpbgZbnqbnrcXObnsbhYbntbnubhfbnvbnwbhfbnxbhfdnJaZWaZmaahbgmbnzbnAbnBbnCbnDbnEbnDbnFbnDbnGbihbnHbkJbnIbnJbnKbnLbihbnMaFMbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQaaobpbbpcbpcaaobpdbpebpfbpgbNxbLLbRubOUbUHbRvbUMbUIbWrbWqbWsbprbpsbprbptbnWbpvbpwbpubdTbpybnYbrfblkblkaybbobbocblkbodboeboebofbogbohboibllahyahybamaZzbcnbojbeebmKbmKbokbolbefaahaahaahbjWbjWbpJbombpLbmPbvMbmPborboqbrxbjWbjWaahaahaZdaZHaZdahybdqbiHdCBbfRbbGbbGbfPbfQbbGbbGbbGbbGbbGbembeWbbGbbGbbGbekbdxbdqahybaNbbObotbouaToaahaahbeZbgLbovbgNbowboxboybozboAboBboCbgVbhOboDdnKbgYboFbsDboFbgYboHboIbTzboKbgZbgkboLboMbtWboLboMboOboOboOboOboOboOboOboOaZWaZmaahbgmboPboQboRbkHboSbmfanuboUboVboWbmmbmgbkHbmibmmboXboYboSboZbuPbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpxbkQbmobqJbpcbpcbqKbqLbqMbqNbqObqPbWubXYbWwbXZbqTbYbbYabqWbqXbYcbqYbqZbrabrbbrcbrdbgqbinbMKbpzbpzbpzbpAblkblkbpBblkblkbpCbpDbpEbpEbpEbpFbwZbllahyahybamaZzbcnbfBbeebefbefbefbefbefaahaahaahbjWbjWbrybukbonbpIbpIbpIbonbukbrzbjWbjWaahaahaZdaZHaZdahybejbiHdCDdCLbbGbelbbGbfPbenbbGbbGbbGbeobeWbbGbelbbGdCHdCMbdxbejahybbNaYGaYHaUwbpPahyaahbeZbpQbpRbgNbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqabqbbqcbqdbqcbqebqcbqfbqgbqhbqibqjbqkbqhbqlbqmbqnboObqoaCqbqqbqrbqsbqtboOaZWaZmaahbgmbqubqvbqwbkJbqxbqybqzbgmbqAbqBbqCbqCbqDbsnbqCbqEbqFbqGboZaycbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAacOacAacAacAacAacAacAacAacOacAacAacAacOacAacAacAacAaaaaaaacAacAacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqIaadahybkQaaodnLbpcbpcaaobsubsvbswbsxbYdbszbsAbkPbkPbsybkPbkPbkPbkPbkPbkPbkPbkPbkPbdTblcbfubinbMNburbrgbpzbrhbrebribrjbrkbrlbrmbrnbrobrpbrqbrrbrsbllahyahybambrtbrubrvaZyahyahyahyahyahyahyaahaahbjWbsQbsRbukbonbpKbsSbpKbonbukbxbbsTbjWaahaahaZdaZHaZdahybcyaTsbrBdCDdCLbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGbbGdCHdCCbrCbdBbcyahyaTobrEaYHbrFbrGahyahybeZbfTblFbrHbeZbrIbrJbvUbrLbEEblMbrNbrObrPbrQbrRbrSbrTbrSbrSbrSbrUbrVbrWbrXbrYbrZbrYbsabrYbrYbsbbscaCrbsebsfbsgbsgboOaZWaZmaahbgmboPbshboRbkHbmibsibsjbskbslbmmbmmbsmbkHbuYbmmbsobspbmiboZbsqbgmaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAaaaaadaaaaaaaaaaaaaadaadaaaaaaaadaadaaaaadaadaadaaaaadaadaadaaaacAaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsrahyahybssbmobnQbtPbtQbmobtRbnTbkPbkPbkPbtSbnTbkPbYhbEUdnMbsBaahbtTdIGbtVdIIdIHdIKdIJdILbfubsCbdTbuubutbsFbsFbsGbsHbsIbsJbrlbsKbrnbsLbsMbsNbrrbsObsPahyahybamaZzbcnbhrbamahyahyahyahyahyahyaahaahbjWbjWbrybukbRVbpIbTDbpIbonbukbrzbjWbjWaahaahaZdaZHaZdahyaZIbdqbbEbsVdCDdCLbbIbbJbbKbbGbbGbbGbbIbbJbbKdCHdCCbrCbbEbdqaZIahyaZPaYGbetaUwbrGahyahybeZbeZbsWbeZbeZblMblMblMbsXbsXbsXbsXbsYbsZbsXbsXbtabtbbtcbtdbtdbtebtfbtbbtgbthbtibtjbtkawrbtmboObtnaCsaCuaCtaCuaDwboOaZWaZmaahbgmbtsbttbnBbtubnDbtvbnDbtwbmmbtxbmmbtybkJbyTbijbtzbtAbtBbtCbtDbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaacAaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaabtEbtFbtGaaaacAaadaadaaaaaaaaaaaaaaaaaabtHbtIbtJbtKaaaaaabtLbtMbtNbtLbtLbtOaSWbmoaaobmoaSWbkPahyahyahyahyahyahybtHdobbYebZebsBaahbtTdINdIMdIPdIOdIRdIQdITdISdIUbMKbuvbtXbtYbpzbtZbeEbuabubbucbudbuebufbufbufbugbuhbuiahyahybamaZzbcnbhrbamahyahyahyahyahyaahaahaahbjWbjWbVfbpMboobpIbpIbpIbqHbpNcgdbjWbjWaahaahaZdaZHaZdahyahybbMbaMbbEbsVdCDdCNbzTdCOdCzdCzdCzdCNbvodCOdCCbrCbbEbaybbDahyahybaNbdubdvbunbrGahyahybuobvCbuqbwSbusbxdbyibxfbsXbuwbuxbuybuzayjaykbuCbuDbuEbuFbuGbuHbuIbtfbHXbuKbuLbuMbuNbuObuLbuNboObwxbuQbuRbuSbuTbuUboOaZWaZmaahbgmbgmbifbuVbkHboSbuWbmmbmfbmmbmmbtCbuXbkJbCQbwubuZbvabsmbvbbgmbgmaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaacAaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadbtEbvcbtGaadacOaaaaadaadaaaaaaaaaaaaaaabtHbtHbvdbvebtHbvfbvgbvhawxbvjbvkbkPbkPbkQbkQbkSbkPbkPdELdELahyahyahyahybtHbtHbYedoobsBaahbtTdIWdIVdIYdIXdIZdIJbvlbvmbvnbMNbykbvpbvqbvrbMKbvsbvtbvubvvbvwbvxbvybvzbvAbvBbDKbllahyahybaiaZzbMObhrbaiahyahyahyaahaahaahaahaahaahbjWbjWbrwbpMckQbZfclHcqpbrMbjWbjWaahaahaahaZdaZHaZdahyahyahybbMaZLbaJbgEbgEbvGbvHbiEbhzbiEbvKbvLbgEbgEbiGaZJbbDahyahyahybbNaYGbRLaUwbvNahyahybvObFrbuqbvQbGZbvSbvTcqsbsXanvbvWbvXbvYbvYbvZbwabwbbwcbwdbwebwebwfbwgbQwbwibwjbwkbwlbwmbwnbwoboObwpbwqbwrbtqbwsbwtboOaZWaZmaahaahbgmbgmbgmbgmbAQbwvbwwbmfbyUbwybwzbkJbkJbGRbkJbwAbwBbwCbgmbgmaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbdbbdbbdbbdbbdbbdbbdaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaadaadaaaaaaaaaaaabtHbwDbwEbwFbtHbwGbwHbwIbwJbwKbwLdJadELahyahyahyahydELdELahyahyahyahyahyahybtHbYebsBbwMbwMbwMbwMbwMbwMbwMbwMbwMbwNbwObwPbdTbHDbwRbKGbwTbMNbwUbuabsCbucbwVbwWbwXbllbwYbKJbwYbllahybeebeeblmblnblobboahyahyaahaahaahaahaahaahaahbjWbjWbjWcuwcuvbZgcuHcvCbjWbjWbjWaahaahaZdaZdaZHaZdaZdahyahyahyaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIaZIaZJaZKaZLaZIahyahyahyahyaToaZjblDaZlaToaToahybxcbKKbxebvSbLZbxgbxhbxibsXanAbxkbxlbxmbvYbvYbxnbqhbxpbxqbthbthbxrbtfbxsbxtbxubxvbxwbxxbADbvRboOboOboOboObxAboOboOboOaZWaZmaahaahaahaahaahbgmbxBbxCbkJbxDbkJbxBbxEbkJbxFbxGbkJbxHbxIbkJbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaabtEbvcbtGaaaaadaaaaaaaaaaadaadaaaaaaaaabtHbxJbxKbxLbtHdDfbxMbxNbxObxPbxQbtLaahaahaahahyahyahyahyahyahyahyahyaahaahbtHbEUbwMbwMbxRbxSbxTbxUbxVbxWbxXbwMbxYbxZbyabdTbybbycbydbyebdTbyfbuabygbyhbyhbyhbyhbyhbMHbyjbNtbyhbfzbeebylaZzbcnbymbboaZdaahaahaahaahaahaahaahaahaahbjWbjWbjWbvDbjWbjWbjWbjWbjWaahaahaZdaZdaZGaZHaZGaZdaZdahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZdaToaYGbynbiPbyoaTobypbyqbyrbysbytbyubyvbywbyxbyybyzbyAbyBbyCbvYbxobsXbyEbtbbyFbyGbyHbyIbyJbyKbyLbyMbyNbxybyPbyQbyRbyScbIbCLbyVbyWbyXbyYbySaZWaZmaahaahaahaahaahbgmbyZbzabzbbzcbzdbzebzfbzgbzhbzibkJdkQbzkbzlbgmaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10067,11 +10019,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaaadaaaaaaaaaaahaahaahaahaahaahaahaahbtHbtHbtHbtHbtHddpbIhbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahbtHbEUbwMbIjbGJbGIbGJbGJbGJbGJbIkbwMbIlbfubImbInbIobIpbIqbIrbFibItbIAbIybIubIubIwbIubJXbJWbIzbJYbKcahyahybIBbecbRQbecbICbHcbIDbFObIFbIFbIGbIHbIIbIJbFuaxjaxibIMbHjbINbIObIPbHjaahaahaahaahaZdaZGbfobfkbgjbcNbJabJabJabJabJabhbbiVbiablubkEblYbEgbmzblZbvEbupbHobvJbEgaahahybJeaUvbRSaUvbpPahyahybuobFrbvSbvSbJfbJgbvSbvSbJhbJibJjbJkbxqbJlbJmbJnbthbJobJpbJqbKLbJsbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbySbglbfpaZmaahaahaahaahaahaahbgmbgmbLDbJKbgmaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaabtEbGAbtGaaaacAaaaaaaaahaahahyahyahyahyahyahyahyahyaahaahaahbtHbtHdqbbIibtHaahaahaahaahaahaahaahaahaahaahaahaahbtHbtHbEUbwMbJMbGJbJNbJObGJbGJbGJbIkbwMbJPbtUbJQbJRbJSbIdbJUbJVbFibGYbKabJZbIubIubIubIubKbbIubIubLzboTahyahybKdbecbcnbecbKebHcbIEbKgbKhbKibKjbKhbKhbKkbFubKlbILbKmbHjbKnbKobKpbHjaahaahaahaahaZdbKqbYpbEjbAhbKBbJabJabJabJabJabCebCgbCfbFJbChaylbEgbEgbEgbEgbCibEgbEgbEgahyahybrGbCjbynbKFbrGahyahybvObVabKHbKHbKIbWHbXTbWNbKNbKNbKObKPbKQbKRbKNbKSbKTbKUbKVbKSbKWbKWbKWbKWbKWbKXbKYbKZbLabySbySbySbySbySbySbySbySbySbySbLbbLcaZmbLdbLebLebLebLdbLdbLfbLgbLhbLibLfbLdaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadbtEbGAbtGaadacAaaabLjaahbLkbLkbLlbkQbkQbkQbLmbLkbLkahyaahaahaahbtHbLnbIibtHaahaahaahaahaahaahaahaahaahaahaahaahbtHdqcbEUbwMbLobLpbLqbGJbLrbGJbLsbwMbwMbLtbfubImbFibLubLvbLwbLxbLybGYbLCbLBbIvbIubIubIubKbbIvbIubLEboTahyahybKdbLGbhqbecbKebHcbKubLIbKhbLJbLKbLMbZjbLNbLObLPbLQbLRbLSbLTbLUbLVbHjaahaahaahaahaZdaZdbYpbEjbCkbKBbKBbMhbEibEhbEhbFpbMibJdbFEbChbFJbFFbFHbFGbFNbFMbFPaLTbFRahyahybvNccdbgJaUvbvNahyahybMkbMlbMmbYmbOcbMkbMkbMkbMkdqdbMqbMrbMsbMtbMsbKSbMubMvbMwbMxbKWbMybMzbMAbMBbMCbMDbMEbMFbMGbOdbMIbMJbRXbMLbMMdFecbabUSbMQbMRbMSbMTbMUbMVbMWbMXbMYbMZbNabNbbNabNcbLdaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaaaadaadbLjaahbLkbNebNfbNgbNfbNgbNfbNebLkahyahyaahaahbtHdqebIibtHbtHaahaahaahaahaahaahaahaahaahaahaahbtHcapbEUbwMbwMbwMbwMbwMbwMbwMbwMbwMbNibNjbfubyfbGMbNkbNlbNmbLxbNnbGYbPkbNsbRfbPnaxraxUbRibRfbRkbRjbLFahyahybKdbecbDMbDNbKebYvbFubNubKhbNvbNwcaqbPsbNybFubNzbNAaGUbNCbNCbNCbNCbNCbNCbNCbNCaahaahaZdbYpbEjbHpbHnbHtbHrbHvbHubHwbNNbHxbKDbHzbHybHBbHAbISbIRbIVbITbFJbIWbIXahyahyaTobIYbetbYwaToahyahybMkbNVbNWbNXbNYbSkbUXbMnbModqPbMqbMrbOebOfbOgbKSbOhbOibOjbOkbKWbOlbOmbOnbOobOpbOqbOrbOsbOtbOtbOubOvbOqbOtbOwbOtbOxbOybOzbOAbOBbOCbODbOEbOEbOFbOEbOGbOHbOIbOJbOKbLdaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaahaahaahbOLdrabONbOObOPbOQbOLbORahyahyaahaahbtHbOSbIibOTbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHcbKbOVbOWbOXbOYbOZbzHbPabPbbPcbPdbPebPfbPgbImbInbIobPhbPibLxbPjbGYbSRbSQbSSbNqbNqbNrbNpbSSbRlbSTbGYahyahybKdbecbcnbecbPobHcbFubPpbKhbPqbPrbKhbPsbPtbFubPubPvbPwbNCbPxbPybPzbPAbNCbPBbNCbNCaahaZdbYpbEjbEjbEjbEjbEjbEjbEjbPMbIZbJcbJbbHzbFJbKrbKfbKtbKsbKxbKwbFJbKybIXahyahyaToaUvbetaUvaToaToahybMkbPQbPRbPSbPTbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbKSbQebQfbQgbQhbKWbQibQjbQkbMBbQlbQmbQnbQobQpbQqbQrbQsbQtbQpbQubQvdGRbMPbMQbQxbQybQzbMUbMVbWWbQBbOJanDbQDbQEbOJcAfbLdaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaczaczacOacAaadaadaadacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaahaahaahbNgbQFbQGbQHbQHbQIbNgahyahyahyaahaahbtHbQJbQKbQLbQLbQLcbNbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbyfbJRbRabRbbRcbRdbRebGYbNobNpbNpbNpbNpbNpbNpbNpbRlbSUbGYahyahybKdbecbcnbRmbRnbRobRpbRqbRrbRsbRtcvjcoFbRwbFubRxbPvbRybNCbRzbRAbRBbRBbRCbRDbREbNCaahaZdbYpaZGcOUdBSbKCbKAbKEcrQctecMXbLWbEjbEgbLXbMabLYbHsbMdbMebKvbFJbRJbMbahyahybJeaUvbetaUvbvFaToahybMkbRYbRZbSabNWbSbbScbSdbSebSfbSgbShbSibMpbvIbKSbXibQfbSlbSmbKWbKWbKWbKWbKWbSnbSobSpbSpbSpbSpbSpbSqbSrbSqbSqbSqbSqbSqbSsbStbSubSvbSwbSwbSwbLdbLdbSxbSycNtbSxbLdbLdaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbOLbSAbQGbQHbQHbSBbOLbORahyahyaahaahbtHdrdbIibSDbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbSEbSEbSFbSGbSEbSHbSIbSJbSKbSLbSMbSNbSObSPbSLbSLbSLbSLbSLbGYdGObPlbPmbNpbNpbSzcpCcpubRlbZqbGYahyahybKdbecbcnbSVbbobbobFubFubFubFubFubSWbFubFubFubSXbSYbSZbNCbTabTbaAIbTdbNCbTebTfbNCaahaZdbMfbCdcNKbMgbNDbMjbNEcrQbNHbNGbNKbNJbEgbFLbNLbEgbThbTibTibTibTibEgbEgahyahybrGaUvbTqbTrbTsaToahybMkbGxbTubTvbTubTtbScbTxbTybVhbTAbTBbTCcCjbTEbKSbTFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbTQbTRbTSbTTbSpbTUbTVbTWbOabTXdrebSqbUabUbbSubUcbUdbUebSuaahaahbSxbUfbUgbSxaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbNebNfbNgbUhbNgbNfbNebLkahyahyaahaahbtHbtHbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbUibUjbUkbUlbSEbUmbUnbUnbUobUpbUqbUrbUsbUtbUubUvbUwbUxbGYbXUbRgbYYbNpbNpdGQbRgcGibRlcGQbGYahyahybKdbecbcnaZzbUFahybUGcbJbZxbUJbUKbULcVLbLHbUGbUNbUObUPbNCbNCbIKbNCbNCbNCbNCbNCbNCaahaZdbYpaZGcrQbNMbNPbNOcQAcrQbNQcPbbNRbUZbNSccVbNTbUVbUWbUWbUWbUWbOMcaCbZyahyahybrGaUvbetaUvbvPaToahybMkbVibVjbVkbVlbVmbVnbVobVpbVqbVrbVsbMpcCMcDxbKSbKSbKSbKSbKSbTJbVtbVubVvbVwbVxbVybVzbVAbVBbVCbSpbVDbVEbVFbVGbVGbVHbSqbVIbVJbSubVKbVLbVMbSuaahaahbSxbVNcAhbSxaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaabtEbNdbtGaaaaadaadbLjaahbLkaTvbNeaapbNeaapbNeaTvbLkahyahyaahaahbtHdqebIibtHbtHaahaahaahaahaahaahaahaahaahaahaahbtHcapbEUbwMbwMbwMbwMbwMbwMbwMbwMbwMbNibNjbfubyfbGMbNkbNlbNmbLxbNnbGYbPkbNsbRfbPnaxraxUbRibRfbRkbRjbLFahyahybKdbecbDMbDNbKebYvbFubNubKhbNvbNwcaqbPsbNybFubNzbNAaGUbNCbNCbNCbNCbNCbNCbNCbNCaahaahaZdbYpbEjbHpbHnbHtbHrbHvbHubHwbNNbHxbKDbHzbHybHBbHAbISbIRbIVbITbFJbIWbIXahyahyaTobIYbetbYwaToahyahybMkbNVbNWbNXbNYbSkbUXbMnbModqPbMqbMrbOebOfbOgbKSbOhbOibOjbOkbKWbOlbOmbOnbOobOpbOqbOrbOsbOtbOtbOubOvbOqbOtbOwbOtbOxbOybOzbOAbOBbOCbODbOEbOEbOFbOEbOGbOHbOIbOJbOKbLdaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaahaahaahbNeaTzbONbOObOPbOQbNebORahyahyaahaahbtHbOSbIibOTbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHcbKbOVbOWbOXbOYbOZbzHbPabPbbPcbPdbPebPfbPgbImbInbIobPhbPibLxbPjbGYbSRbSQbSSbNqbNqbNrbNpbSSbRlbSTbGYahyahybKdbecbcnbecbPobHcbFubPpbKhbPqbPrbKhbPsbPtbFubPubPvbPwbNCbPxbPybPzbPAbNCbPBbNCbNCaahaZdbYpbEjbEjbEjbEjbEjbEjbEjbPMbIZbJcbJbbHzbFJbKrbKfbKtbKsbKxbKwbFJbKybIXahyahyaToaUvbetaUvaToaToahybMkbPQbPRbPSbPTbPUbPVbPWbPXbPYbPZbQabQbbQcbQdbKSbQebQfbQgbQhbKWbQibQjbQkbMBbQlbQmbQnbQobQpbQqbQrbQsbQtbQpbQubQvdGRbMPbMQbQxbQybQzbMUbMVbWWbQBbOJanDbQDbQEbOJcAfbLdaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaczaczacOacAaadaadaadacAaadaadaadaadaaaaaaaaaaadaadaadacOaadaaaaahaahaahaapaTAbQGbQHbQHbQIaapahyahyahyaahaahbtHbQJbQKbQLbQLbQLcbNbQLbQLbQLbQLbQLbQLbQLbQLbQLbQLbQMbQNbQObQPbQQbQRbQSbQTbQUbQVbQWbQXbQYbQZbyfbJRbRabRbbRcbRdbRebGYbNobNpbNpbNpbNpbNpbNpbNpbRlbSUbGYahyahybKdbecbcnbRmbRnbRobRpbRqbRrbRsbRtcvjcoFbRwbFubRxbPvbRybNCbRzbRAbRBbRBbRCbRDbREbNCaahaZdbYpaZGcOUdBSbKCbKAbKEcrQctecMXbLWbEjbEgbLXbMabLYbHsbMdbMebKvbFJbRJbMbahyahybJeaUvbetaUvbvFaToahybMkbRYbRZbSabNWbSbbScbSdbSebSfbSgbShbSibMpbvIbKSbXibQfbSlbSmbKWbKWbKWbKWbKWbSnbSobSpbSpbSpbSpbSpbSqbSrbSqbSqbSqbSqbSqbSsbStbSubSvbSwbSwbSwbLdbLdbSxbSycNtbSxbLdbLdaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbNeaTVbQGbQHbQHbSBbNebORahyahyaahaahbtHdrdbIibSDbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbtHbSEbSEbSFbSGbSEbSHbSIbSJbSKbSLbSMbSNbSObSPbSLbSLbSLbSLbSLbGYdGObPlbPmbNpbNpbSzcpCcpubRlachbGYahyahybKdbecbcnbSVbbobbobFubFubFubFubFubSWbFubFubFubSXbSYbSZbNCbTabTbaAIbTdbNCbTebTfbNCaahaZdbMfbCdcNKbMgbNDbMjbNEcrQbNHbNGbNKbNJbEgbFLbNLbEgbThbTibTibTibTibEgbEgahyahybrGaUvbTqbTrbTsaToahybMkbGxbTubTvbTubTtbScbTxbTybVhbTAbTBbTCcCjbTEbKSbTFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbTQbTRbTSbTTbSpbTUbTVbTWbOabTXdrebSqbUabUbbSubUcbUdbUebSuaahaahbSxbUfbUgbSxaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkaTvbNeaapbUhaapbNeaTvbLkahyahyaahaahbtHbtHbIibtHbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbUibUjbUkbUlbSEbUmbUnbUnbUobUpbUqbUrbUsbUtbUubUvbUwbUxbGYbXUbRgbYYbNpbNpdGQbRgcGibRlcGQbGYahyahybKdbecbcnaZzbUFahybUGcbJbZxbUJbUKbULcVLbLHbUGbUNbUObUPbNCbNCbIKbNCbNCbNCbNCbNCbNCaahaZdbYpaZGcrQbNMbNPbNOcQAcrQbNQcPbbNRbUZbNSccVbNTbUVbUWbUWbUWbUWbOMcaCbZyahyahybrGaUvbetaUvbvPaToahybMkbVibVjbVkbVlbVmbVnbVobVpbVqbVrbVsbMpcCMcDxbKSbKSbKSbKSbKSbTJbVtbVubVvbVwbVxbVybVzbVAbVBbVCbSpbVDbVEbVFbVGbVGbVHbSqbVIbVJbSubVKbVLbVMbSuaahaahbSxbVNcAhbSxaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbLkbLlbVPbVQbVRbVSbVTbLmbLkahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbVUbVVbVWbVXbVYbVZbWabWbbWcbWdbWebWfbWgbWhbWibWibWjbWkbUEcNkcIgcNkdHrdHrcNkdHscNkdHtcNkbUEahyahybKdbWobcnaZzbamahybWpcascZicZjcasbULbULcZvbYfbYgdaybUPbWxbWybWzbWAbWBbWCbWDbWEbNCaahaZdbYpbPCcrQcrQcrQbPDcrQcrQbPEcsYbPFccUdBObVcbPHclZbWLbWKbTwbWKbWLbWKcdSahyahybPIaUvbetaUvaToaToahybMkbWRbWSbMkbWRbWSbMkbMkbMkbYAbWUbWVbCAbKNbKNbKNaahaahaahaahbTJbWXbWYbWZbTNbXabXbbTQbXcbXdbXebSpdrhbXgbXhdrHbXjbXkbSqbXlbXmbXnbXobXpbSubSuaahaahbSxbXqbXrbSxbSxaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsbXtbXubXvbXsahyahyahyaahaahaahaahbtHbIibtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbXwbXxbXybXzbXAbXBbXCbXDbXEbXFbXGbXHbXIbXJbXKbXLbXMbXNbUEbUybUzbUAbUBbUBbUybUzbUybUCanGbUEahyahybKdbXVbhqbXWbamahybXXdaAcaEdaCdaBdaRdaOciCbUGbWvdbZbYibYjbYjbYkbNFbLAbYnbYnbTYbNCaahaZdbYpbPJcrQcQDbPLbPKcaFcHwcGzcsYbPFbUZcaHbWPbNTbWJbYrbWJbYrbWJbYrceHbURbPObPPaTobHCblDbHCaToahyahyahyahyahyahyahyahyahyahybKNbKNbYxbYybKNbKNaahaahaahaahaahaahbTJbTJbTJbTJbTJbYzciWbSpbSpbSpbSpbSpbSqbSqbSqbSqbSqbSqbSqbYBbYCbSubSubSubSuaahaahaahbSxbYDbVObYEbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahybYFbYGbYHbYIbYFahyahyahyaahaahaahaahbtHbYJbtHaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbYKbYLbYMbYNbYObYPbXMbYQbYRbYSbYTbYUbYRbYQbXMbXMbXMbYVbUEbWlbWmbWlbWnbUBbWlbWmbWlbUCanGbUEahyahyanHbecbDMbZbbamahybZcdcqdcbcfWbZibULddydeAddCbWvbZkbZlbZmbZnbZobZpcgwbZrbZsbUQbNCaahaZdbYpbRHaZdbRIbRNcIGbROcHwcGzcsYbPFbTlbRTbRPbRWbYsbTkccWbTkbTlbTkbTjbVeaUvaUvbTmbVgbdvaUvbJeahyahyahyahyahyahyahyahyahyahyahybZzbZAbZBbZzbeubeubeubeubeubeuaahbZCbZDbZEbZFbZGbTObTPbZHbZIbZJbZKbZLaahaahaahaahaahaahbZMbZNbZObZPbZQbZMaahaahaahaahbSxbZRbZSbZTbSxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10079,11 +10031,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahahycbgcbhcbicbjcbgahyahyaahaahaahaahaahbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEcbkcblcbmcbnbSEbNZcbpcbqcbrcbscbtcbucbvcbwcbxcbycbzcbAbUEbWlbWmbWlbYWbUBbWlbWmbWlbYXdHzbUEbYZbZabeeccHdHAdHBbeeahybUGbZdbULcbLcbMdfxdfvbUGcbOcbPcbQcbObNCcbRcbScbTcbUcbVcbWcbXbNCaahaZdbYpaZGaZdchLcOYcHtcMhcHwcGzcsYbPFbTlbTkbTlbTkbWObWQcaHcdJbYobYtbTlbVeaUvaUvbYuaUvbTqbTrbrGahyahyahyahyahyahyahyahyahyahyahyccBccfccgcaNbeudGTcgndGUbZMbeuaahbZCcchcciccjbZGcckcclbZHccmccnccobZLaahaahaahaahaahaahbZMbZNbZMbZMbZMbZMaahaahaahaahcbcccpaEGccrccscctccuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybXsccvccwccxbXsahyahyaahaahaahbZXbZXbZXbZYbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEccycczbSEbSEbSLbSLbSLbSLbSLccAbSLbSLbSLccEccCccDbSLbUEbUybUybUybUBbUBbUybUybUybYXcalcamcanbecbecbecbcnaZzbeeahybUGbUGbUGbUGbUGbUGbUGbUGccIccJccKccLbNCbNCcinbNCbNCbNCccNccObNCccPaZdccQaZdaZdciobZwbZvbZvbZvcGzcsYbPFciqcfXcaAcaDcircivciucaGccVcaIciwbURbPObPPaTobHCblDbHCbvNahyahyahyahyahyahyahyahyahyahyahyccBccYccZcaNbeucgncgndGWbZMbeuaahbZCbZCbZCbZCbZCcdacdbbZLbZLbZLbZLbZLaahaahaahaahaahaahbZMbZNbZMaahaahaahaahaahaahaahcbccdccddcdecdfcdgcdhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahahyahybYFcdiccwcdjbYFahyahyaahaahaahbZXcdkcdlcdmbZXbZXbZXbZXaahaahaahaahaahaahaahaahaahaahaahaahaahbSEbSEbSEbSEaahaahaahaahbZXcdncdobZXahyahyahyahyahyahybUEcbBcbCbUBbUBbUBbUBcbDbUBcbEcbFcamcancbGcbHbecbcnaZzcbOcbOcbOcbOcdpcdqcdrcdscdtcixcdvcdwcdxcdycdzcdAcdBcdCcdDcbOcbOcbOcbOcbOcdEcdFcdGcrQcrQcbYcGzcGzcGzccacbZctbccbccbccbccbcQGcQGcQGcQGcQGccRcQGcQGahyahyaToccTbetcdRaTocaNahyahyahyahyahyahyahyahyahyahycelcdTcdUcaNbeudGYdGXdscbZMbeuaahaahaahaahaahbZMcdVcdWbZMaahaahaahaahaahaahaahaahaahaahbZMbZNbZMaahaahcbccbccbccbccbccbccdXcdXcbccbccbccbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahbZUbVSbVQbZUcdYccwcdZbZUbVSbVQbZUbZUbZXbZXceacebceccedceecefbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcegcehceiceiceiceiceiahyahybUEbUEbUEcdPccFccFccGbUEbUEbUEbUEbUEbYZbZabeecejbjSaZzcekceLcemcbOcenceocepceocencencenccJccKcencencencdBceqcercescbOcetceLceucevcewcexceyccXcdubMgcdIcwscwscdKctbcFdcFdcFdcdLcQGcdNcdMcdQcdOceAcezcQGahyahyaTocCpbdvaUvceKcaNcgqceMceMceMceMceMceMceMceMceNcaNceOcePcaNbZMdHabZMbZMaTWbeuaahaahaahbZMbZMbZMceQceRbZMaahaahaahaahaahaahaahaahaahbZMbZMbZNbZMaahaahcbcceSceTceTceTceTceUceUceVceTceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbZUceXceYceXceZcfacfbcfccfdcfecffcfgcfhcficfjcfkcflcfmcfncfobZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcfpcfqcfrcfscftcfuceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybbocfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfFcfFcfFcfGcfHcfFcfFcfFcfIcfJcfDcfKcfLcfMcfNceBcfPceCcevceEceDceFcsYceGcsYcsYcvuctbcFdcFdcFdciycQGdDwcQGdDvcQGceJceIcQGahyahyaTocfYbetcfOaVlcgacgbcgbcgbcgccgbcgbcgbcgbcgbcgbcgbcgecgfcggbZMdGYcgndsdbZMbZMbZMbZMbZMbZMcgjcgkcglcgmbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMdsgbZNbZMaahaahcbccgocgpcgTcgrcgscgtcgucgvcqbcgxceTceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUcgycgzcgAccwcgBccwccwcgCccwcgDbZUcgEcgFcgEcgGcgHcgIcgJbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXcgKcgLceicgMcgNcgOceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZycgPcgQcgRcgSchucgUcbOcgVcgWcgXcgYcgZchacgWcgWchbcgWchcchdchechfcgWchgcbOcgUchuchhcfScfUcfTcevcfVcfZcizchjciAcizciBciIciDcFdcFdciXcQGdDAcQGdDzcQGchncQGcQGahyahybJechwchxbbQbbRchychzchzchzchAchzaoBchBchzchzchzchzchCchDchEchFchGchHchGchGchGchGchGchGchGchGchGchIchJchJchJchJchJchJchJchJchJchJchJchJchJchKbZMaahaahcbccgocgpciscgucgucgucgucgucgucguchMchNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUchOchPchQchRchSchTchUccwchVchWbZUchXchYchZchYciacibciccidcidcidcidcidcidcidaoCcidcidcidcidcidcidcidcidcidcidcidcidciecifcidcidcigcihciicijcikcilceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybamcimbcnbeccbOcbOcbOcbOclXcmYcipcnbcnacnQcitcoucoccoTcozcpQcpbciGcpScqAcbOcbOcbOcbOchocfQchpciFcrQcrQcsLcrScrSchqcrUcrQcsLcrScrSchqcQGcQGcQGcQGcQGcQGcQGahyahyahybrGciJciKciLciKciMciNciNciOciNciNaoEciPciNciNciNciOciQciRciSbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMciTciUciVdsRbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMaahaahcbccgocgpcjAdtjciZcjacjbcjccjdcjeceTcjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcjgbZUbZUcjhcjicjjcgBcjkcjlcjlcjmbZUbZUcjnchYcjochYcjpcjqcjrcjsbZXbZXbZXdxLdxdcjvaoGcjvdqaapdbZXbZXbZXbZXbZXbZXbZXbZXbZXdyxcjucjvcjvcjwcjxcjyceiceiceiceiahyahycjzcjzcjzcjzcjzcjzcjzahyahyahyahyahyahyahybaicimbcnbeccjBahyahycbOcbOcbOcjHcjCcjDcjEcjDcjDcjFcjDcjEcjDcjCcjGcbOcbOcbOahyahyckhchrchtchsciFaahaahahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybvNaUvaUvcjLcjMcaNcgqceMceMceMapuapAapvceMceMceNcaNcaNcaNcaNbZMaahaahaahaahaahaahaahaahbZMbZMbZMciVbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcbccjNceTceTceTceTceTceTceVceTceTcjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahbZUbVSbVQbZUcdYccwcdZbZUbVSbVQbZUbZUbZXbZXceacebceccedceecefbZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcegcehceiceiceiceiceiahyahybUEbUEbUEcdPccFccFccGbUEbUEbUEbUEbUEbYZbZabeecejbjSaZzcekceLcemcbOcenceocepceocencencenccJccKcencencencdBceqcercescbOcetceLceucevcewcexceyccXcdubMgcdIcwscwscdKctbcFdcFdcFdcdLcQGcdNcdMcdQcdOceAcezcQGahyahyaTocCpbdvaUvceKcaNcgqceMceMceMceMceMceMceMceMceNcaNceOcePcaNbZMdHabZMbZMaTWbeuaahaahaahbZMbZMbZMceQceRbZMaahaahaahaahaahaahaahaahaahbZMbZMbZNbZMaahaahcbcbmpceTceTceTceTceUceUceVceTceTceTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahbZUceXceYceXceZcfacfbcfccfdcfecffcfgcfhcficfjcfkcflcfmcfncfobZXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZXcfpcfqcfrcfscftcfuceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybbocfvcfwcfxcfycfzcfAcfBcfCcfDcfEcfFcfFcfFcfFcfGcfHcfFcfFcfFcfIcfJcfDcfKcfLcfMcfNceBcfPceCcevceEceDceFcsYceGcsYcsYcvuctbcFdcFdcFdciycQGdDwcQGdDvcQGceJceIcQGahyahyaTocfYbetcfOaVlcgacgbcgbcgbcgccgbcgbcgbcgbcgbcgbcgbcgecgfcggbZMdGYcgndsdbZMbZMbZMbZMbZMbZMcgjcgkcglcgmbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMdsgbZNbZMaahaahcbcbmqcgpbulbnPbumcgtcgubuAbEMbwQceTceTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUcgycgzcgAccwcgBccwccwcgCccwcgDbZUcgEcgFcgEcgGcgHcgIcgJbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXbZXcgKcgLceicgMcgNcgOceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyaZycgPcgQcgRcgSchucgUcbOcgVcgWcgXcgYcgZchacgWcgWchbcgWchcchdchechfcgWchgcbOcgUchuchhcfScfUcfTcevcfVcfZcizchjciAcizciBciIciDcFdcFdciXcQGdDAcQGdDzcQGchncQGcQGahyahybJechwchxbbQbbRchychzchzchzchAchzaoBchBchzchzchzchzchCchDchEchFchGchHchGchGchGchGchGchGchGchGchGchIchJchJchJchJchJchJchJchJchJchJchJchJchJchKbZMaahaahcbcbmqcgpciscgucgucgucgucgucgucgubNfbFIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahbZUchOchPchQchRchSchTchUccwchVchWbZUchXchYchZchYciacibciccidcidcidcidcidcidcidaoCcidcidcidcidcidcidcidcidcidcidcidcidciecifcidcidcigcihciicijcikcilceiahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybamcimbcnbeccbOcbOcbOcbOclXcmYcipcnbcnacnQcitcoucoccoTcozcpQcpbciGcpScqAcbOcbOcbOcbOchocfQchpciFcrQcrQcsLcrScrSchqcrUcrQcsLcrScrSchqcQGcQGcQGcQGcQGcQGcQGahyahyahybrGciJciKciLciKciMciNciNciOciNciNaoEciPciNciNciNciOciQciRciSbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMciTciUciVdsRbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMaahaahcbcbmqcgpbOLbNgbQFcjacjbbSAceWceSceTceTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcjgbZUbZUcjhcjicjjcgBcjkcjlcjlcjmbZUbZUcjnchYcjochYcjpcjqcjrcjsbZXbZXbZXdxLdxdcjvaoGcjvdqaapdbZXbZXbZXbZXbZXbZXbZXbZXbZXdyxcjucjvcjvcjwcjxcjyceiceiceiceiahyahycjzcjzcjzcjzcjzcjzcjzahyahyahyahyahyahyahybaicimbcnbeccjBahyahycbOcbOcbOcjHcjCcjDcjEcjDcjDcjFcjDcjEcjDcjCcjGcbOcbOcbOahyahyckhchrchtchsciFaahaahahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahybvNaUvaUvcjLcjMcaNcgqceMceMceMapuapAapvceMceMceNcaNcaNcaNcaNbZMaahaahaahaahaahaahaahaahbZMbZMbZMciVbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcbccgoceTceTceTceTceTceTceVceTceTceTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcjgcjgcjOcjPcjgbVScjQbVQcjRbVScjQbVQbZUchYapCcjTchYcjUchYcjVcjWcjXcjqaahaahamYamYamYamYapFamYamYamYamYaahaahaahaahaahaahaahbZXbZXcjudyQbZXcjZbYlbZXaahahyahyahyahycjzcjzckbckcckdckeckfcjzcjzahyahyahyahyahybbobbockgblnccHbbobboahyahyahyckEahyahyahyahyahyahyahyahyahyahyahyahyckEahyahyahyciFciFckicfQcfRciFciFaahaahaahahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyahyciFciFckjckjckkciFciFahyahyahyahyapGapAapGahyahyahyaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMciVbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcbccbccbccbccbccbccbccbccbccbccbccbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjgcjgcklckmcknckockpckqckrckscktckuckvckwckxapHckzchYckAchYckBckCckDcjqaahaahamYaqwapIdfCapQapSanCaqwamYaahaahaahaahaahaahaahaahbZXcjubZXbZXbZXbZXbZXahyahyckKckFckFckGckHckIckIckIckIckIckIcjzahyahyahyahybbobbocFUcimbcnbecbDObboclmckLckMciFclmckLckLckLckLckLckLckLckLckLckLckMciFclmckLckMciFckNckOckPcfRcJfciFciFciFciFciFclmckLckLckLckLckLckLckLckLckLckLckRciFclmckLckRciFckScfRcfRckTckUciFciFahyahOahOahOapXahOahOahOaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMciVbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjgckVckmcknckWckXckYckZclaclbchVclccldclecleclfclgclhcjUchYclicljclkcjqaahaahamYdfDaoDaoDaqlaqnaqmaucamYaahaahaahaahaahaahaahaahbZXcjubZXaahaahaahaahahyahyclYclncloclpclqclrclscltcluclvclwcjzahyahyahyahyaZycrkbecclyclzclAclAclBclCclCclCclDclCclCclCclEclFcfRcfRcfRcKgclGcKhclIclJclIclIclIclKclLclMclNclIclIclKclIclOclIclPclIclIclQclIclIclIclIclIclRclIclSclIclTclIclQclIclKclIclUclUclVclWcrJcmpahyahOaqoaieaqsaqpaqtahOaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbZMciVbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahahyahyahyahyahyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10092,10 +10044,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbLjaahaahcjgcnUckXcnVcnWcnXcnYcnZcoacobcoacwucoocoecleclecofchYbRKchYaahaahaahaahaahaahamYanBarbardarcaoDaoDdgramYcogcohcoicmjaahaahaahbZXconcjubZXclxcrlcmycrqdElahycowckFckFcopcoqckIckIcorckIckIcoscjzahyahyahyahybbobbocotcimbcnbeccoAbboclmckLckMciFclmckMciFcovcoGcoxcoycxTcoScoxcoBcovciFclmckLckMciFcoCckicoDcmBcoEciFclmckLckMciFciFclmckLckMczAclmckLckMciFciFdCQckMciFclmckLckMciFcKickickicfRcoXciFciFaahahOareaiearfaieargahOaahaahaahaahaahaahaahaahaahbZMbZMdzQcoIcoJcoJcoJcoJcoKcoLcoLcoLcoLcoLcoLcoLcoMcoNdzZbZMbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbLjaahaahcjgcoPckncoQcmacoRcpqcDocoUcoVcoacoWcpPcoYcoZcpactwchYcpcchYaahaahaahaahaahaahamYariarharkarjarmarlarnamYcpdcohcpecmjaahaahaahcpjbZXarqbZXcpjcvVcrrdBKdElahyahyahyahycjzcplcpmcpncpocppcpTcprcjzahyahyahyahyahybbobbocpscptcmzbbobboahyahyahyahyahyahycovawtcpvcpwcpxcpycpzcpAcpBcUZcovahyahyahyciFciFcpDcpEckjciFciFahyahyahyczZcEVcEVcEVcEvcEvcEvcEVcEVcEWczZahyahyahyahyahyahyciFciFcjIcjIcjKciFciFaahaahahOahOaiaarraidahOahOaahaahaahaahaahaahaahaahaahbZMcpFcpGcpHbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMbZMcpIcoMcpJbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaahaahaahcjgbfncpLcpMcpNcpOcqecDpcoacpRcoacFachYcqzcpUcqzcpVcpWchZchYcpXcpXcpXcpXcpXcpXamYamYcFcauQaruauRcKMamYamYcmjcpYcmjcmjcpXcpXcpjcpjcFucFrcqdcpjdElcxWcyjdElcrIcqfcqfcqgcjzcjzcjzcjzcqhcjzcjzcjzcjzcrIcqfcqfcqfcqgcpjcqicqjcqkcqlcqmcpjcpjahyahyahyahyahycovcqncqocKmcqqcMWcqrcKXcpBcqucovahyahyahyahycqvcqwcqxcqycqvahyahyahyahyczZcuIarwdBTcEvcEvcEVcEVcEVcIFczZahyahyahyahyahyahyahycrNckickiciEciFaahaahaahaahahOahOahOahOahOaahaahaahaahaahaahaahaahaahaahbZMcqCcgnbZMbZMaahaahaahaahaahaahaahaahaahaahaahbZMbZMcgncqDbZMaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahcjgctxckncqFcqGcqHcqIcqJcqJcqKcqLcqMcqNcqOcqOcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqYcqZcqOarxcracqYcqYcqYcqYarycqOcrdarzcrfcrgcrhcricrjcMIcMjcrmcrncrocOZcrudBNcrscrtcrucrucrvcrucricrwcrxcrycrzcrAcrBcrAcrCcrAcrDcrAcrzcrAcrEcrFcrGcrucrHcrRahyahyahyahyahycrWcqtcrKcrLcrMcrLcrMcrLcpBcqtcrWahyahyahyahycsKcrOcrPcqycsKahyahyahyahycIHcEVcEVcEVcEVcEVcEVcEVcEVdBXaZRcNUcNNaZRaZRaZRciHciHciHcOjcNXcjJabTabTabTabTaahaahaahaahaahaahaahaahaahaahaahcrXcrXcrXcrXcrXbZMcrYcrZcrZcrZcrZcrZaahaahaahaahaahaahaahcsacsacsacsacsacsbbZMcsccsccsccsccscaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahcjgcsdcknckncsecsfcsgcshcshcsicshcsjcskcslcsmcsncsncsncsocspcsqcsrcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsucsvcswcsxcsycswcswcsvdBPcswcswcszcsAcsBcrucrucrucricrucsCcswcsDcswcsEcswcswcswcsFcswcsvcswcsGcsHcsIcrucsJcsRahyahyahyahyahyctmcqtcrKcrLcsMcrLcsMcrLcpBcqtctmahyahyahyctucsOcrOcsPcsQcumcsSahyahyahycMYcEVcEVcDncEVcEVcEVcEVcFeaZRaZRcQtcPTcQEcQwaZRcqBcsNcrTcsWcsWctccsXctzctdabTabTabTabTabTaahaahaahcrXcrXcrXcrXcrXctfctgayocrXctictjcrZayqctlcurcrZcrZcrZcrZcrZcsacsacsacsactnctoayscsactqctrcscayvcttcuTcsccsccsccsccscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLjbLjcjgctvcvWcALctycmacjgcQVcQHctBcRyctDctEctFctGctHcrfcrfcrfctIctJctKcrfctLctMctNcrfctFctOcrfcrfctPctQctRctSctTctQctQctUctVctWcrocrpctXctYctZcuacubdCbcuadCfcuacuccudcuacuacuacubcuecufcuacubcuacugcuacuhcuicuacuacubcuacujcrucukcruculcuYahyahyahyahyahyctmcuncuocrLcupcrLcupcrLcuqcunctmahyahyahycvacqycrOcrPcqycqycvaahyahyahycMYcJacEVcLvcEVcQdcEVcEVcEVaZRcuycuBcuBcwtcwrcwwcwvcwvcwvcwycwxcxOcwzacuacuacucxPaeCaeYabTabTaahaahcrXcuuazEcuucrXcNfcuxdGMcrXcuzcuAcrZcuNcuCcuDcrZcuEazFcuEcrZcuGaAdcuGcsacOScuJdHccsacuLcuMcsccwEcuOcuPcsccuQaADcuQcscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadcuScuScvgcuUcuScuVcuWcuScuScuScuXcvocuZcuXcvrcvbcuXcvccvdcvecvfcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpjcvNcvhcrFcvicLtcpjcpjcpjcpjcrIcqfcqfcqfcqfcqgcpjbRRcvlcqdcpjcrIcqfcqgcpjcrIcqfcqgcpjcvmcrucrucrGcvncpjcpjahyahyahyahyahycwjcvpcuocrLcrLcrLcrLcrLcuqcvqcwjahyahyahycqvcwqcrOcrPcqycvscqvahyahyahycRUcWRcEVcEVcEVcEVcEVcEVcWRaZRcxQcxScxRczlcRAcSScsNcznczmcAgczocBiabTaezacuacuaeVacuacuaswabTaahaahcrXaAEcvxaAEcrXcrXcvycrXcrXcwFcwGcrZcrZcvBcrZcrZaAFcvDaAFcrZaAGcvFaAGcsacsacvGcsacsacvHcvIcsccsccvJcsccscaAHcvLaAHcscaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaahaahaahcjgctxckncqFcqGcqHcqIcqJcqJcqKcqLcqMcqNcqOcqOcqPcqQcqRcqScqTcqUcqVcqWcqXcqYcqYcqZcqOarxcracqYcqYcqYcqYarycqOcrdarzcrfcrgcrhcricrjcMIcMjcrmcrncrocOZcrudBNcrscrtcrucrucrvcrucricrwcrxcrycrzcrAcrBcrAcrCcrAcrDcrAcrzcrAcrEcrFcrGcrucrHcrRahyahyahyahyahycrWcqtcrKaaHaaqaaHaaqaaHcpBcqtcrWahyahyahyahycsKcrOcrPcqycsKahyahyahyahycIHcEVcEVcEVcEVcEVcEVcEVcEVdBXaZRcNUcNNaZRaZRaZRciHciHciHcOjcNXcjJabTabTabTabTaahaahaahaahaahaahaahaahaahaahaahcrXcrXcrXcrXcrXbZMcrYcrZcrZcrZcrZcrZaahaahaahaahaahaahaahcsacsacsacsacsacsbbZMcsccsccsccsccscaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaahaahcjgcsdcknckncsecsfcsgcshcshcsicshcsjcskcslcsmcsncsncsncsocspcsqcsrcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsqcsscsqcsqcsqcstcsqcsqcsucsvcswcsxcsycswcswcsvdBPcswcswcszcsAcsBcrucrucrucricrucsCcswcsDcswcsEcswcswcswcsFcswcsvcswcsGcsHcsIcrucsJcsRahyahyahyahyahyctmcqtcrKaaHaaIaaHaaIaaHcpBcqtctmahyahyahyctucsOcrOcsPcsQcumcsSahyahyahycMYcEVcEVcDncEVcEVcEVcEVcFeaZRaZRcQtcPTcQEcQwaZRcqBcsNcrTcsWcsWctccsXctzctdabTabTabTabTabTaahaahaahcrXcrXcrXcrXcrXctfctgayocrXctictjcrZayqctlcurcrZcrZcrZcrZcrZcsacsacsacsactnctoayscsactqctrcscayvcttcuTcsccsccsccsccscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLjbLjcjgctvcvWcALctycmacjgcQVcQHctBcRyctDctEctFctGctHcrfcrfcrfctIctJctKcrfctLctMctNcrfctFctOcrfcrfctPctQctRctSctTctQctQctUctVctWcrocrpctXctYctZcuacubdCbcuadCfcuacuccudcuacuacuacubcuecufcuacubcuacugcuacuhcuicuacuacubcuacujcrucukcruculcuYahyahyahyahyahyctmcuncuoaaHaaKaaHaaKaaHcuqcunctmahyahyahycvacqycrOcrPcqycqycvaahyahyahycMYcJacEVcLvcEVcQdcEVcEVcEVaZRcuycuBcuBcwtcwrcwwcwvcwvcwvcwycwxcxOcwzacuacuacucxPaeCaeYabTabTaahaahcrXcuuazEcuucrXcNfcuxdGMcrXcuzcuAcrZcuNcuCcuDcrZcuEazFcuEcrZcuGaAdcuGcsacOScuJdHccsacuLcuMcsccwEcuOcuPcsccuQaADcuQcscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadcuScuScvgcuUcuScuVcuWcuScuScuScuXcvocuZcuXcvrcvbcuXcvccvdcvecvfcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpXcpjcvNcvhcrFcvicLtcpjcpjcpjcpjcrIcqfcqfcqfcqfcqgcpjbRRcvlcqdcpjcrIcqfcqgcpjcrIcqfcqgcpjcvmcrucrucrGcvncpjcpjahyahyahyahyahycwjcvpcuoacgaaHaaHaaHacgcuqcvqcwjahyahyahycqvcwqcrOcrPcqycvscqvahyahyahycRUcWRcEVcEVcEVcEVcEVcEVcWRaZRcxQcxScxRczlcRAcSScsNcznczmcAgczocBiabTaezacuacuaeVacuacuaswabTaahaahcrXaAEcvxaAEcrXcrXcvycrXcrXcwFcwGcrZcrZcvBcrZcrZaAFcvDaAFcrZaAGcvFaAGcsacsacvGcsacsacvHcvIcsccsccvJcsccscaAHcvLaAHcscaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacxfcvOcvPbHqbIfcvScvTcvUdEKdEJcvXcvYcvZcwacwbcwccuXcpXcpXcpXcpXcpXaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcpjcwdcwecwfcwgcwdcpjdELdELdELahyahyahyahyahyahycpjcwhcwicwhcpjahyahyahyahyahyahyahycxAcqicqicqicwkcqicxAahyahyahyahyahyahycovdCccwlcwmcwncwocuncuncuqcwpcovahyahyahycsKcqycrOcrPcqycqycsKahyahyahyczZcPicEVcEVcEvcPocEVcEVcEVaZRaZRaZRcBjcCicBkaZRcTmcUbaZRcDrcDqcEFcDscEYcEXcVacEZcFbacuacwabTaahaahcrXcwBcwCcwDcPvcwDcwJcwHcwLcwKcwUcwTcwXcwVcwMcwNcwMcwOcwPcrZcwQcwRcwScPBcwScyacyecybcyqcyfcwYcwZcxacxbcxccxbcxdcxecscaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMaadaaacxNcxgcxgcxgcxgcvScvTcxhcxhcytcuXcxjcxkcxlcxmcxncuXcxocxpdCicxraahaahaahaahaahcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxrcxscxtcxucxvcxwcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcwhcxxcxycwhahyahyahyahyahyahyahyahycxzcyBcxBczkcxDcyBcxzahyahyahyahyahyahycovcovdHdcxFcxGcxHcxIcxJdHecovcovahyahyahycumcsScxLcxMcqyctucsOahyahyahyczZczZdCjcTdcQncUncEVcEVddaaZRcVRcGAcFVcHscHrcHvcHucHxaZRcJLcJzcsNcsXacucJNcKKcKJacJacuacwabTaahaahcrXcxVaAKaSMcxYcxZcyucyrcrXcyccydcrZcAkcyvcygcyhbTcdENcykcrZcyldEPcyicyocypczEcAucsacyscAxcBocBncAqcywcyxcyndEQcyAcscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcvMcvMcvMcvMcvMcvMcvMczTcyCcyDcyEcyFcxgcxgcvScyGcyHcyIcyJcyKcyLcyMaGXcyOcyPcuXcxqcxqcxqcxrcxrcxrcxrcxrcxrcxrdCmcyRcyScyScyScyScyScyScyScyScyScyScyScyTcyScyUcyVcyWcyXcyYcyVcyZczaczbczaczaczaczaczaczaczaczaczaczccwhahyahyahyahyahycxzcxzcxzcxzczdczebTgczgczhcxzcxzcxzcxzahyahyahyahycovcovcovcziczjczicovcovcovahyahyahyahyahycvacrOcrPcqycvaahyahyahyahyahyczZczZczZczZcKLczZczZczZaZRcVScMfcKNcNJcMgcKNcNLcVUcNMcJLcJzcsNcwzcNPcNOcNRcNQacJacuaciabTaahaahcrXcrXcrXcrXcrXcrXcBqcrXcrXczpcuAcrZcrZcBrcrZcrZcrZcrZcrZcrZcsacsacsacsacsacBucsacsacuLcBvcsccsccsccsccsccsccsccsccscaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10122,35 +10074,35 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQcZocXIcXJcVDcXKcXLcUMcUNcXMcXMcXNcUOcVEcSDcXPcWJcXQcXRcXScXTcXUcXVcXWcXXcXYcXZcYacYbcYacYccYdcNedIjcWacNcdaTcYgcYhcYicYjcYkcVmcRQczQcYlczQczQcYmcYncYocYpcYqcYncYrcYpcYscYtcYucYvcYwcYxcYycYxcYxcYzcYxcYAcYBcYxcYxcYCcYDcYEcYFcYGcYHcYCcYxcYIcYxcYycYJcYKcYxcYxcYxcYLcYxcYMcYNcYycYxcYxcYxcYCcYxcYGcYOcYPcYPcYQcYRcYScYRcYTcYRcYUcYVdCYcYRcYScYRbtlcYRcYRcYRcYWcYRcYXcYScYYasAcYZdCYcYXcYRcZacYRcYRcZbcYRcYRcZccYUdCYcYRcYRcZdcYRcYRcYScYRcYXcZecZfcXFasBdGfdGpdGhdGkdGkdGqdGrdGmdGkdGkdGkdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccZkcZkcZlcZmdbDdbdcZpcZqcVMcZrcPMcUMcUNcZscZtcZucVGcVHcojcZqcVKcZxcZycZqcZzcZAcZBcZCcZDcZEcZFcZGcZHcZGcZIcZJcZKcZLdmbcZNcZOcZPcZQcZRcZScZTcVmcRQcwhcwhcZUcwhcZVcZWcZXcWhcZVcZWcZYcWhcZVcZZdaadabdacdaddaddaddaedaddaddafdaddaddaddagdaedahdaidajdakdagdaddajdaddaddaddaedaddaddaddaddaddafdaddaddaddaddaddagdakdajdEFdaddaedagdamdamdamdandamdamdaodamdamdamdambujdamdamdamdapdamdaqdaodardasdatdaudaqdamdandamdamdaodamdamdamdamdamdamdamdavdamdamdaudamdaqdawdaxdGudGsdGwdGvdGydGxdGxdGzdGBdGAdGCdGkdGDdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahahycIcdaEdaFdaGcNZahycTZdaHdaIdaJdaKcTSdaLcUNdaMdaNaImcUNcPMcokcPMdaQcPMddBcoldaSdaSdbIdaUdaVdaWdbIdaUdaSdaXdaYdaZdbadbbdbcdbNdbedbfdbgdbNdbedbcdbccRQcwhdErdbidbjcZVdbkdbldbmcWhdbndbldbocZVcWhdbpcXhdbqdbrdbrdbrdbsdbtdbrdbrdbudbrdbrdbvdbwdbxdbydbzcOddbBdbCdcedbCdbCdbEdbFdbCdbCdbGdbCdbCdbCdbHdbCdbCdcfdbCdbBdbJdbzdbydbKdbLdbvdbMdcrdbMdbMdbMdbMdbOdbMdbVdbMdbMdbMdbMdbMdbMdbPdbMcWwdbQdbRdbScXEdbTcWwdbMdcrdbMdbMdbUdbMdbVdbMdbMdbMdbVdbMdbMdbMdbMdbWdbMcWwdbWdbXcXFdGEdGfdGDdGkdGFdGHdGGdGVdGSdGCdGkdGhdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccZkcZkdccdcddcDdczdcgdchdcidaPcPMcUMdcjdckdcldcmdcndcocpfcTQdcpdcmcpgcphdcJdcsdctdcudcvdcwdcxdcydcxddbdcAdcBdcCddndmkdcFdcGdcHdcIddtdcKczfdbcdcMcwhdEsdbidcOcZVdcPdcQdcRcWhdcSdcTdcUcZVcWhcWhcWhcWhcXHcXocXocXocXocXocXpdcVcXHcXpdcWdcXdpPdqIdpQdcXdcWddDdcVcXHcXocXocXocXocXpdcVcXHcXocXocXocXocXpdcVddDddcddddskdtrdstddddddddPddhcZncXzcXzcXzcXzcXAddhcZncXzcXzcXzcXzcXAddhddPddiddjdBAdBCdBBddjddiddPddhcZncXzcXzcXzcXzcXAddhcZncXzcXzcXzcXzcXAddhddPddodBEdBDdBFddsdGfdGZdGkdHbdGDdGkdHqdHjdGkdGkdGhdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQddWdducXJddvddwcTSddxcPMcUOcVFcVEcPMcPMcpkddzcWLddAdfwcpideedcsdcudcudcvdcwddEddEddFddGddHddIdcCddJddKddKddKddLddMddNddNdBGdbccRQcwhdekddQddRcZVddSddTddScWhddUddVddUcZVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqddXddYddZdeadebdeqaaaaaaaaaaaaaaadeddeddeddeddeddeddedaaaaaaaaaaaaaaadeWdefdegdehdeidejdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdeldemdendeodepdfbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdesdetdeudGfdHudHxdHvdHCdGkdHDdGkdHFdHEdGhdGhdGfdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahbkQcIcdevdevdewcZmdbDdbddexcZqdeydezcVNcUMcPMdcjdclcVHcSHcPMcpKcWLcVIcVJcqacqEdeCdeDdcudeEdeFdeGcvzcuRdeJdeKdeLdeMdeNddJddKddKdeOdePdeQdeRddKdeSdbccRQcwhahyahyahycZVddSdeTddScWhddUdeUddUcZVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVaaaaaadfhdeXdeYdeZdeadfadfmaaaaaaaaaaaadeddeddeddeddeddeddeddeddedaaaaaaaaaaaadfBdfddegdfedffdfgdfBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfIdfidfjdfkdeodfldfIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfLderdesdfndfoddsdGfdGfdGfdGfdGfdHHdHGdGfdGfdGfdGfdGfaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahahycIcdfpdfqdfrcNZahycTZdfscPMcUMcWLcVIdeydftcZqdfucZqdftcZqcrbcWLcPMcPMdhcdhddfydfzdcudcudfAaIndcucAvdfEddbdfFdfGdfHddndfXdEtdfKdfYdfMdfYdfMdbcdbccRQcwhahyahyahyahyddSdfOddScZVddUdfPddUdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdgwdfRdfSdfTdfUdfVdfWdhgdcWaaaaacaaadeddeddeddeddeddeddeddeddeddeddedaaaaacaaaddcdhudfZdgadgbdgcddcaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaddidgddemdgedgfdggddiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddodghdgidgjdgkddsaahaahahydGfdHIdHKdHJdHMdHLdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahahycIcdevdevdgldcddcDdczdgmcTSdgncWLcPMdgocTTcTSdgpcTScTScTScrcdgpdgqcPMdiccredaSdgtdcudgudgvdhzcAzcAvdgydgzdgAddIdgBdgCdgCdgCdgCdgCdgCdgCdgCdbcdgDdgEcwhcwhcwhahyahydgFdgGdgHaaadgIdgJdgKdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdgLdgMdgNdgOdgPdgQdgRdfadeqaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadeWdfddgSdgTdeidfgdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdfidemdgUdgVdfldfbaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdgWdgjdgXddsaahaahahydGfdHNdHPdHOdHGdHGdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccZkcZkdccdcddcDdczdcgdchdcidaPcPMcUMdcjdckdcldcmdcndcocpfcTQdcpdcmcpgcphdcJdcsdctdcudcvdcwdcxdcydcxddbdcAdcBdcCddndmkdcFdcGdcHdcIddtdcKczfdbcdcMcwhdEsdbidcOcZVcgrdcQcgrcWhcgsdcTcgscZVcWhcWhcWhcWhcXHcXocXocXocXocXocXpdcVcXHcXpdcWdcXdpPdqIdpQdcXdcWddDdcVcXHcXocXocXocXocXpdcVcXHcXocXocXocXocXpdcVddDddcddddskdtrdstddddddddPddhcZncXzcXzcXzcXzcXAddhcZncXzcXzcXzcXzcXAddhddPddiddjdBAdBCdBBddjddiddPddhcZncXzcXzcXzcXzcXAddhcZncXzcXzcXzcXzcXAddhddPddodBEdBDdBFddsdGfdGZdGkdHbdGDdGkdHqdHjdGkdGkdGhdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQddWdducXJddvddwcTSddxcPMcUOcVFcVEcPMcPMcpkddzcWLddAdfwcpideedcsdcudcudcvdcwddEddEddFddGddHddIdcCddJddKddKddKddLddMddNddNdBGdbccRQcwhdekddQddRcZVcgvddTcgvcWhcgxddVcgxcZVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqddXddYddZdeadebdeqaaaaaaaaaaaaaaadeddeddeddeddeddeddedaaaaaaaaaaaaaaadeWdefdegdehdeidejdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdeldemdendeodepdfbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdesdetdeudGfdHudHxdHvdHCdGkdHDdGkdHFdHEdGhdGhdGfdGfaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahbkQcIcdevdevdewcZmdbDdbddexcZqdeydezcVNcUMcPMdcjdclcVHcSHcPMcpKcWLcVIcVJcqacqEdeCdeDdcudeEdeFdeGcvzcuRdeJdeKdeLdeMdeNddJddKddKdeOdePdeQdeRddKdeSdbccRQcwhahyahyahycZVcgvdeTcgvcWhcgxdeUcgxcZVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVaaaaaadfhdeXdeYdeZdeadfadfmaaaaaaaaaaaadeddeddeddeddeddeddeddeddedaaaaaaaaaaaadfBdfddegdfedffdfgdfBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfIdfidfjdfkdeodfldfIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfLderdesdfndfoddsdGfdGfdGfdGfdGfdHHdHGdGfdGfdGfdGfdGfaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahahycIcdfpdfqdfrcNZahycTZdfscPMcUMcWLcVIdeydftcZqdfucZqdftcZqcrbcWLcPMcPMdhcdhddfydfzdcudcudfAaIndcucAvdfEddbdfFdfGdfHddndfXdEtdfKdfYdfMdfYdfMdbcdbccRQcwhahyahyahyahycgvdfOcgvcZVcgxdfPcgxdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdgwdfRdfSdfTdfUdfVdfWdhgdcWaaaaacaaadeddeddeddeddeddeddeddeddeddeddedaaaaacaaaddcdhudfZdgadgbdgcddcaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaddidgddemdgedgfdggddiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddodghdgidgjdgkddsaahaahahydGfdHIdHKdHJdHMdHLdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahahycIcdevdevdgldcddcDdczdgmcTSdgncWLcPMdgocTTcTSdgpcTScTScTScrcdgpdgqcPMdiccredaSdgtdcudgudgvdhzcAzcAvdgydgzdgAddIdgBdgCdgCdgCdgCdgCdgCdgCdgCdbcdgDdgEcwhcwhcwhahyahycgvcgTcgvaaacgxchMcgxdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdgLdgMdgNdgOdgPdgQdgRdfadeqaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadeWdfddgSdgTdeidfgdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdfidemdgUdgVdfldfbaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdgWdgjdgXddsaahaahahydGfdHNdHPdHOdHGdHGdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahbkQcIccIccIccIccIcbkQddWdgYcXJcPMcWLcPMcPMcUMdhacWLcPMcPMdhactkcthcSFctpcOJcOudaSdhedcudcucyNdhEdcucBZdhidgzdhjdfGdhkdhldhmdhndhodhpdiodEvdipdhrdhsdhtczQczQcwhahyaaaaaaaaaaaaaaaaaaaaaaaadeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdhIdfRdhvdfTdhwdhxdgRdhydfhaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadhMdhAdhBdgadhCdhDdhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadifdhFdemdgedhGdhHdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydhJdesdhKdhLddsaahaahaahdGfdHQdHQdHQdHRdHLdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahbkQbkQahyahyahybkQbkQdiLdhNdhOdhPcVIdhQdhRcTXdhTdhUdhVdhWdhXdhYdhZcUQdibcPMcuFdaSdiedcudcucyNdiYdcucAvdigdgzdfFdihdgBdiidijdikdildimdirdiqdiTdiSdiVdiUdjMdjLcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVaaaaaadfmdeXddYddZdgRdfadfmaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadfBdfddgSdehdeidfgdfBaaaaaaaaaaaaaaadisditdiudiudiudivdiwaaaaaaaaaaaaaaadfIdfidemdendhGdfldfIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfLderdesdixdgXddsaahaahdGfdGfdHGdHSdGhdGfdGfdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahahyahyahyahyahydjtdizdiAdiBdiCdiBdiDdiEdiCdiBdiFdiEdiCdiCdiDdiGcuKcOXdaSdiHdiIdiJdiKdjucCgcCadiOdgzdfFdihdgBdiidijdiPdiQdiRdkqdjNcwhdhrdhsdhtdkSdiWcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjwddYdjcdjddjedcWaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaaddcdjfdjgdjhdeidjiddcaaaaaaaaaaaaaaadjjdjkdjkdjkdjkdjkdjjaaaaaaaaaaaaaaaddidjldemdjmdjndjoddiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddodjpdjqdjrdjsddsaahaahaahdGfdHTdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaaaaaaaaahydkCdjxdbDdbDdkJdjxdkLdbDdkJdjxdkLdbDdkJdkUcOsbkQcuKcPNdaSdgzdgzdgzdgzdgzdgzdjydgzdgzdjzdjAdjBdjCdjCdjCdjCdjCdjCdjCdjCdjCdEwdljcwhcwhcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdgRdfadeqaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadeWdfddgSdehdeidfgdeWaaaaaaaaaaaaaaadjjdjDdjEdjkdjEdjDdjjaaaaaaaaaaaaaaadfbdfidemdendhGdfldfbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdesdixdgXddsaahaahaahdGfdGhdHVdHUdHUaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAaaadjFaaabkQcIcdjGcNZcMKcIcdjGcNZcMKcIcdjGcNZcMKcIccuKcRadExdjHdkodjIcRXcRTcSacCqdjOdjPdjQdjRdjSdjCdjTdjUdjVdjWdjXdjYdjZdjCdjCdhtcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadfUddZdgRdebdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdejdgSdehdeidgSdhMaaaaaaaaaaaadisdkbdkcdkcdkddkcdkcdkbdiwaaaaaaaaaaaadifdhGdemdendhGdepdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiyderdesdixdgXddsddsaahaahdGfdGfdGfdHUdHUaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaacAaaddkeaadbkQcIcdkfdkgdkhcIcddrdcYdfQcIcdkldkmdkncIccuKcChcDNdjHdlmdkpdkrdksdlpdktdlMdjPdkvdkwdkxdjCdkydkydkzdjXdjXdkAdkAdEbdjCdhtcwhdkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkDdkEdkFdkGdkHddZdkIdlEdfSdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdkNdkOdkPdehdeidfgdhMaaaaaadisdkcbwQdlWdHmdHldjkdHldHnbCYbEMdkcdiwaaaaaadifdfidemdendkTdlYdkVdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdladlbdlcdixdgXdldddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledlfdlgaaadledlfdlgaaadledlfdlgaaadledlfdlgaaadledlfdlgaaaacAaadaadaaaaaacIcdlhdlidlhcIcdkjdkidkjcIcdlkdlldlkcIccuKcGMcGNdjHcSzdlndlodlpdlpdlqcHBdltdludlvdlwdlxdlydlzdlAdlzdlzdlBdlzdEcdjCdhtdEydoidlFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadlGdlHdlIaOpdlKdlLaOrdeddeddeddeddeddeddeddeddeddeddeddeddeddlNdlOdlPaOsdlRdlSdlTdokdkNdkMdlVdjjbuAdjkdjkdjkdjkdjkdjkdjkdjkdjkbuAdjjdoEdkWdkVdkXdlZdmadDbdmcdmddmedmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdmhdmidmjdDcdixdgXdmlddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahbkQbkQahyahyahybkQbkQdiLdhNdhOdhPcVIdhQdhRcTXdhTdhUdhVdhWdhXdhYdhZcUQdibcPMcuFdaSdiedcudcucyNdiYdcucAvdigdgzdfFdihdgBdiidijdikdildimdirdiqdiTdiSdiVdiUdjMdjLcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVdeVaaaaaadfmdeXddYddZdgRdfadfmaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadfBdfddgSdehdeidfgdfBaaaaaaaaaaaaaaachNciZciZciZciZciZchNaaaaaaaaaaaaaaadfIdfidemdendhGdfldfIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfLderdesdixdgXddsaahaahdGfdGfdHGdHSdGhdGfdGfdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahahyahyahyahyahydjtdizdiAdiBdiCdiBdiDdiEdiCdiBdiFdiEdiCdiCdiDdiGcuKcOXdaSdiHdiIdiJdiKdjucCgcCadiOdgzdfFdihdgBdiidijdiPdiQdiRdkqdjNcwhdhrdhsdhtdkSdiWcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjwddYdjcdjddjedcWaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaaddcdjfdjgdjhdeidjiddcaaaaaaaaaaaaaaachNdjkdjkdjkdjkdjkchNaaaaaaaaaaaaaaaddidjldemdjmdjndjoddiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddodjpdjqdjrdjsddsaahaahaahdGfdHTdGhdGhdGfaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaaaaaaaaahydkCdjxdbDdbDdkJdjxdkLdbDdkJdjxdkLdbDdkJdkUcOsbkQcuKcPNdaSdgzdgzdgzdgzdgzdgzdjydgzdgzdjzdjAdjBdjCdjCdjCdjCdjCdjCdjCdjCdjCdEwdljcwhcwhcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdgRdfadeqaaaaaaaaadeddeddeddeddeddeddeddeddeddeddedaaaaaaaaadeWdfddgSdehdeidfgdeWaaaaaaaaaaaaaaachNdjDdjEdjkdjEdjDchNaaaaaaaaaaaaaaadfbdfidemdendhGdfldfbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfcderdesdixdgXddsaahaahaahdGfdGhdHVdHUdHUaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAacAaaadjFaaabkQcIcdjGcNZcMKcIcdjGcNZcMKcIcdjGcNZcMKcIccuKcRadExdjHdkodjIcRXcRTcSacCqdjOdjPdjQdjRdjSdjCdjTdjUdjVdjWdjXdjYdjZdjCdjCdhtcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadfUddZdgRdebdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdejdgSdehdeidgSdhMaaaaaaaaaaaachNchNchNchNdkdchNchNchNchNaaaaaaaaaaaadifdhGdemdendhGdepdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiyderdesdixdgXddsddsaahaahdGfdGfdGfdHUdHUaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaaadaadaadaaaacAaaddkeaadbkQcIcdkfdkgdkhcIcddrdcYdfQcIcdkldkmdkncIccuKcChcDNdjHdlmdkpdkrdksdlpdktdlMdjPdkvdkwdkxdjCdkydkydkzdjXdjXdkAdkAdEbdjCdhtcwhdkYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkDdkEdkFdkGdkHddZdkIdlEdfSdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdkNdkOdkPdehdeidfgdhMaaaaaachNchNcjcdlWdHmdHldjkdHldHnbCYcjcchNchNaaaaaadifdfidemdendkTdlYdkVdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdladlbdlcdixdgXdldddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledlfdlgaaadledlfdlgaaadledlfdlgaaadledlfdlgaaadledlfdlgaaaacAaadaadaaaaaacIcdlhdlidlhcIcdkjdkidkjcIcdlkdlldlkcIccuKcGMcGNdjHcSzdlndlodlpdlpdlqcHBdltdludlvdlwdlxdlydlzdlAdlzdlzdlBdlzdEcdjCdhtdEydoidlFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadlGdlHdlIaOpdlKdlLaOrdeddeddeddeddeddeddeddeddeddeddeddeddeddlNdlOdlPaOsdlRdlSdlTdokdkNdkMdlVchNcjddjkdjkdjkdjkdjkdjkdjkdjkdjkcjdchNdoEdkWdkVdkXdlZdmadDbdmcdmddmedmfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdmhdmidmjdDcdixdgXdmlddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddledmmdlgaaddledmmdlgaaddledmmdlgaaddledmmdlgaaddledmmdlgaadacOaaaaadaadaaacIcdlhdmndlhcIcdkjdkkdkjcIcdlkdmpdlkcIccuKcvwcHLdjHcSzdmqdlpdlpdlpdmrdmsdmudmvdmwdmxdmydmzdmAdmBdmCdmCdmDdlzdEddjCdhtczQdEzdppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfmdeXddYddZdmHaOtdmJdmKaOudeddeddeddeddeddeddeddeddeddeddeddeddeddmMdmNdmOaPedmQdehdmRdmSdmTdgSdmSdkddjkdjkdjkdmUdmUdjkdmUdmUdjkdjkdjkdkddmVdhGdmWdmVdmXdendmYdmZdnadnbdncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnddnednfdngdnhdixdgXdniddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaadaadcIccIccIccIccIccIccIccIccIccIccIccIccIccuKcvwdHWdjHdlmdkpdlodlpdlpdktdEAdjPdfFdihdnkdjCdnldnmdnndnodnpdnqdnrdnsdjCdntczQdHXdppaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdnvddYddZdnwdlEdhvdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdnxdkOdnydehdnzdokdnxdkMdkOdjjdqwdjkdjkdjkdjkdjkdjkdjkdjkdjkdqxdjjdlYdkWdnAdkXdnBdendnCdlYdnAdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdnDdlbdnEdixdgXdnFddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaaaaadaadaadaadaaaaaaaadaadaadaaabkQdnGdnGdnGcuKcSJcuKdjHdkodnHcTLcTIcUTcHPdjHdjHdnNdnOdnPdjCdjCdnQdnodnRdnSdnTdnrdjCdjCdhtczQdnudppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUaaaaaaaaadeqdeXdnVdnWdgRdeXdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdnXdgSdnYdnZdnXdhMaaaaaadoadjkdmUdmUdmUdmUdjkdmUdmUdmUdmUdjkdoaaaaaaadifdocdoddoedhGdocdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydofdesdogdohddsddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaaaaaaaaddqrdojdojdojdojdnGdqLdoldnGdnGdomdomdoncvEcvKdjHdjHdjHdjHdjHdjHdjHdjHdoqdordosdotdoudjCdjCdjCdjCdjCdjCdjCdjCdjCdhtczQdovdppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdgwdfRdfSdkadfUddZdgRdhydfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdhAdgSdehdeidowdhMaaaaaadoxdjkdjkdjkdjkdjkbvidjkdjkdjkdjkdjkdoxaaaaaadifdozdemdendhGdhHdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydhJdesdixdoAddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaadoDaaaaaadqNdoFdoFdoGdoHdoIdoJdoKdoLdoMdoNdoOdoPdoQdoQdoRcvQdoTdoUdoVdoWdoRdoOdoXdoYdoZdpadpbdpcdpddpedpfdpgdphdpidpjdpkdpldpmdpndhtdpodqTdpqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdprdpsdptdpudpvdpwdpxdeXdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdnXdpydpzdeidnXdhMaaaaaadpAdjkdmUdmUdmUdmUdjkdmUdmUdmUdmUdjkdpAaaaaaadifdocdemdpBdpCdocdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydofdpDdpEdgXddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddpFdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGdpGdjJdpLdhbbDbdpNdpOcBhcAMdpRdpSdpTdpUdpVdpWdpXdpYdpZcvRcxKdqZcxXdosdoudoudqfdoudqgdoudqhdqidoudoudqjdoudqfdqkdqldqmdqndqodqpdqqcwhdqYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdhIdfRdhvdkadqsdcZdqtdlEdfSdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdkNdkOdquddfdqvdokdkNdkMdkOdjjdqwdjkdjkdjkdjkdjkdjkdjkdjkdjkdqxdjjdlYdkWdkVdkXdqyddldqzdlYdkVdkWdkXaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaadmGdkZdladlbdqBdqCdqDddsaahaahaahdqEdqEdqEdqEdqEdqEdqEaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaadaadcIccIccIccIccIccIccIccIccIccIccIccIccIccuKcvwdHWdjHdlmdkpdlodlpdlpdktdEAdjPdfFdihdnkdjCdnldnmdnndnodnpdnqdnrdnsdjCdntczQdHXdppaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdnvddYddZdnwdlEdhvdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdnxdkOdnydehdnzdokdnxdkMdkOchNdqwdjkdjkdjkdjkdjkdjkdjkdjkdjkdqxchNdlYdkWdnAdkXdnBdendnCdlYdnAdkWdkXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmGdkZdnDdlbdnEdixdgXdnFddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaaaaadaadaadaadaaaaaaaadaadaadaaabkQdnGdnGdnGcuKcSJcuKdjHdkodnHcTLcTIcUTcHPdjHdjHdnNdnOdnPdjCdjCdnQdnodnRdnSdnTdnrdjCdjCdhtczQdnudppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUaaaaaaaaadeqdeXdnVdnWdgRdeXdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdnXdgSdnYdnZdnXdhMaaaaaaciZdjkdmUdmUdmUdmUdjkdmUdmUdmUdmUdjkciZaaaaaadifdocdoddoedhGdocdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydofdesdogdohddsddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaadledmmdlgaaaaadaaaaaaaaaaaaaaddqrdojdojdojdojdnGdqLdoldnGdnGdomdomdoncvEcvKdjHdjHdjHdjHdjHdjHdjHdjHdoqdordosdotdoudjCdjCdjCdjCdjCdjCdjCdjCdjCdhtczQdovdppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdgwdfRdfSdkadfUddZdgRdhydfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdhAdgSdehdeidowdhMaaaaaaciZdjkdjkdjkdjkdjkbvidjkdjkdjkdjkdjkciZaaaaaadifdozdemdendhGdhHdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydhJdesdixdoAddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaadoDaaaaaadqNdoFdoFdoGdoHdoIdoJdoKdoLdoMdoNdoOdoPdoQdoQdoRcvQdoTdoUdoVdoWdoRdoOdoXdoYdoZdpadpbdpcdpddpedpfdpgdphdpidpjdpkdpldpmdpndhtdpodqTdpqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdprdpsdptdpudpvdpwdpxdeXdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMdnXdpydpzdeidnXdhMaaaaaaciZdjkdmUdmUdmUdmUdjkdmUdmUdmUdmUdjkciZaaaaaadifdocdemdpBdpCdocdifaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiydofdpDdpEdgXddsaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaddpFdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGbCXdpGdpGdpGdpGdjJdpLdhbbDbdpNdpOcBhcAMdpRdpSdpTdpUdpVdpWdpXdpYdpZcvRcxKdqZcxXdosdoudoudqfdoudqgdoudqhdqidoudoudqjdoudqfdqkdqldqmdqndqodqpdqqcwhdqYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdhIdfRdhvdkadqsdcZdqtdlEdfSdfRdfTdeddeddeddeddeddeddeddeddeddeddeddeddeddokdkMdkNdkOdquddfdqvdokdkNdkMdkOchNdqwdjkdjkdjkdjkdjkdjkdjkdjkdjkdqxchNdlYdkWdkVdkXdqyddldqzdlYdkVdkWdkXaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaadmGdkZdladlbdqBdqCdqDddsaahaahaahdqEdqEdqEdqEdqEdqEdqEaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAaaaaadaaaaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadbCWaadaaaaadaaaaaadqNdoFdoFdqGdqHcBPcBldojdnGdqJdqKdnGdnGdrxdoldqMdnGdrAdqOdqOczqdqOdqQdqRdqQdqSdrBdqUdIkdrBdqUdqSdqWdqXdsLdnGdqZdqZdnGdnGcwhcwhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnUdnUdnUdnUdnUdnUdnUdnUdnUdnUaaaaaaaaadfmdeXddYddZdmHaPvdrbdrcaQTdeddeddeddeddeddeddeddeddeddeddeddeddedaQXdrfdrgaQYdmQdehdmRdmSdridgSdmSdkddjkdjkdjkdmUdmUdjkdmUdmUdjkdjkdjkdkddmVdhGdrjdmVdmXdendmYdrkdrldrmdrnaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadrodrpdrqdrrdnhdixdgXddsdqEdqEdqEdqEdrsdrtdrudrvdrsdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEdqEaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaddledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaaaaaddtkdojdojdojdojdnGdrydrzdtIaaadtXdrCdrDdrEdrFdqOdrGcAldrIdqQdrJdrKdrLdrMdrNdrOdrPdrQdrLdrRdrSdrTdnGdrUdrVdrWdtIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjbdrXdlHdrYaQZdsadsbaRNdeddeddeddeddeddeddeddeddeddeddeddeddedaWEdsedsfaWHdshdlSdsidokdnxdkMdlVdjjbuAbFIdlWdjkdjkdjkdjkdjkdlXbFIbuAdjjdoEdkWdnAdkXdsjdmadDddsldsmdsndsoaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadspdsqdsrdssdDedsudsvdswdBLdsydsydsydszdsAdszdsBdszdsydsxdsydsydsydsCdsDdsEdsFdsGdsHdqEdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaadaadaaaaaaaaaaaaaaadnGdsJdsKdtZaaddtXdsMdsNdsOdsPdqOdsQcApdsSdqQdsTdsUdrLdsVdsWdsXdsYdsZdrLdtadtbdtcdnGdtddtedtfdtZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdtgdlEdhvdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdnxdkOdthdehdeidfgdhMaaaaaadujdkcbuldtidjkdHobuBdHpdjkdwfbumdkcdunaaaaaadifdfidemdendtldlYdnAdkWdkXaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadmGdkZdtmdtndtodtpdtqdtqdBMdtsdttdtudtvdtwdtxdtydtzdtwdtAdtBdtCdtDdtEdtBdtBdtBdtBdtFdtGdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaacAaaaaaaaadaadaaaaaaaaaaaaaaaaaadnGdtHdtHdnGahydxKdoldtJdqLdoldqOdtKdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdxNdtYdxOduadubducdnGdnGaaddudduedueduedueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadufddZdgRdugdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMduhdgSdehdeiduidhMaaaaaaaaaaaadujdukduldumdumdumduldukdunaaaaaaaaaaaadifduodemdendhGdupdifaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadiyduqdixdurddsdqEdqEdusdutduudqEdusdutduvdqEdusdqEdqEdqEdqEdqEdqEdqEdtBdtFdtBdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaacAaaddledrwdlgaaddledrwdlgaaddledrwdlgaaddledrwdlgaaddledrwdlgaadacAaaaaadaadaaaaaaaaaaaaaaaaaaaaaduwduxduyduwbkQduzduAduBduAduzdqOduCduDduEdqQduFduGdrLduHduIduJduIduKdrLduLduMduNduaduOduPduQduRaaaaadaadaaaaaadueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduSduTduUduVduWduXdjddfadfmaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadfBdfddjgduYdeidfgdfBaaaaaaaaaaaaaaaaaadujdukdukdukdunaaaaaaaaaaaaaaaaaadfIdfidemduZdjndfldfIaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadfLdvadvbdvcddsaahaahdqEdvddvedvfdqEdvgdvhdvidqEaahaahaahaahaahaahdvjdvjdvkdvjdvjaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaacOaaadledvldlgaaadledvldlgaaadledvldlgaaadledvldlgaaadledvldlgaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQdvmdvndvodvpdvmdvqdvrdvsdvtdqQdvudvvdrLdvwdvxdvydvzdvAdrLdvBdvCdvDduadvEdvFduQdvGaaaaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadvHdvIdgRdvJdcWaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaaddcdvKdgSdvLdeidjiddcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddidjldemdvMdhGdvNddiaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaaddodvOdvPdvQddsaahaahdqEdvRdvSdvTdqEdvUdvVdvWdqEaahaahaahaahaahaahdvjdvXdvYdvZdvjbvVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaadueaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQduAdwadvodwbduAdqOdwcdwddqOdqQdqQdweduadxSdwgdwhdwgdwiduadqWdwjdqWduaduaduaduadwkdwldwmdwmdwldwnaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfhdeXdeYdwodgRdfadeqaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadeWdfddgSdwpdffdfgdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdfidfjdwqdhGdfldfbaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaadfcdwrdwsdwtddsaahaahdqEdwudwvdwudqEdwwdwxdwwdqEaahaahaahaahaahaahdvjdwydwzdwAdvjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdwBdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaduedueduedueaczacOacAaadaadaadacAaadaadaadaadacOacOacAaadaadaadacOacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQdvmdwCdvodwDdvmduadwEdwFdwGdwHdwIdwJdwKdwLdwMdwNdwOdwPdwQdwRdwSdwTdwUdwVdwVduadwWdwmdwXdwYdwmdwZdxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfmdxbdxcaWIdxedxfdfmaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadfBdxgdxhdxidxjdxkdfBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfIdxldxmdxndxodxpdfIaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadfLdxqdxrdxsddsaahahydqEdwudxtdwudqEdwwdxudwwdqEaahaahaahaahaahaahdvjdxvdxwdxxdvjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQduAdxydxydxyduAduadwUdxzdxAdxBdxCdxDdxEdxFdxGdxHdxGdxGdxGdxGdxGdxIdxJdwVdwVduadwkdwldwZdwWdwldwndueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdcWdxVbbgbbgdcWdcWaaaaaaaaaaaaaaaaaadeddeddeddeddedaaaaaaaaaaaaaaaaaaddcddcdxMdxMdxYddcddcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddiddidyadxPdxPddiddiaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAddoddodxQdxRdyPddoaahahydusdwudxTdwudusdwwdxUdwwdusahyahyaahaahaahaahdzgdxWdxXdztdxZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahydzNdvmdybdybdECdvmduadwUdxzdyddyedyfdygdyhdyhdyidyjdykdyldymdyndyodypdyqdyrdysduadytdwldwXdwYdwldyudueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadeqdyvdywbffdeqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeWdyydyzdyAdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdyBdyCdyDdfbaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdyEdyFdyGdyHdyIdfcahyahyahydyJdyKdyLaaadyMdyNdyOahyahyahyahyahyahybkQbkQdzOdhhdzOaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyRaaaaaadyRaaaaaaaaadyRaaaaaaaaaaaaaaadyRaaaaaaaaadyRaaaaaadyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahydnGduzduAdySduAduzduadwUdxzdyTdyUdyVdwUdwUdwUdyWdyXdyYdyZdyZdzadzbdzcdzddzedzfdzUdzhdwmdwZdwWdwmdwXdueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfhbhpdxebiXdfhaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhMdzkdxhdzldhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadifdzmdxodzndifaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdzodzpdzqdzrdzsdiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaaaaaaaaaaadaadaaadzOdiddzOaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAacAacAaadaaddledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaaaaaddtkdojdojdojdojdnGdrydrzdtIaaadtXdrCdrDdrEdrFdqOdrGcAldrIdqQdrJdrKdrLdrMdrNdrOdrPdrQdrLdrRdrSdrTdnGdrUdrVdrWdtIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdjbdrXdlHdrYaQZdsadsbaRNdeddeddeddeddeddeddeddeddeddeddeddeddedaWEdsedsfaWHdshdlSdsidokdnxdkMdlVchNcjdcjedjkdjkdjkdjkdjkdjkdjkcjecjdchNdoEdkWdnAdkXdsjdmadDddsldsmdsndsoaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadspdsqdsrdssdDedsudsvdswdBLdsydsydsydszdsAdszdsBdszdsydsxdsydsydsydsCdsDdsEdsFdsGdsHdqEdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaaadaaaaaaaaaaadaadaaaaaaaaaaaaaaadnGdsJdsKdtZaaddtXdsMdsNdsOdsPdqOdsQcApdsSdqQdsTdsUdrLdsVdsWdsXdsYdsZdrLdtadtbdtcdnGdtddtedtfdtZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeqdeXddYddZdtgdlEdhvdfRdkKdeddeddeddeddeddeddeddeddeddeddeddeddeddlUdkMdnxdkOdthdehdeidfgdhMaaaaaachNchNcjcdtidjkdHobuBdHpdjkdwfcjcchNchNaaaaaadifdfidemdendtldlYdnAdkWdkXaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaadmGdkZdtmdtndtodtpdtqdtqdBMdtsdttdtudtvdtwdtxdtydtzdtwdtAdtBdtCdtDdtEdtBdtBdtBdtBdtFdtGdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaadaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaadledrwdlgaaaacAaaaaaaaadaadaaaaaaaaaaaaaaaaaadnGdtHdtHdnGahydxKdoldtJdqLdoldqOdtKdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdxNdtYdxOduadubducdnGdnGaaddudduedueduedueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgwdfRdfSdkadufddZdgRdugdfhaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadhMduhdgSdehdeiduidhMaaaaaaaaaaaachNcjfchNdumdumdumchNcjfchNaaaaaaaaaaaadifduodemdendhGdupdifaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadiyduqdixdurddsdqEdqEdusdutduudqEdusdutduvdqEdusdqEdqEdqEdqEdqEdqEdqEdtBdtFdtBdqEaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaacAaaddledrwdlgaaddledrwdlgaaddledrwdlgaaddledrwdlgaaddledrwdlgaadacAaaaaadaadaaaaaaaaaaaaaaaaaaaaaduwduxduyduwbkQcjNcjAduBcjAcjNdqOduCduDduEdqQduFduGdrLduHduIduJduIduKdrLduLduMduNduaduOduPduQduRaaaaadaadaaaaaadueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduSduTduUduVduWduXdjddfadfmaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadfBdfddjgduYdeidfgdfBaaaaaaaaaaaaaaaaaachNcjfcjfcjfchNaaaaaaaaaaaaaaaaaadfIdfidemduZdjndfldfIaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadfLdvadvbdvcddsaahaahdqEdvddvedvfdqEdvgdvhdvidqEaahaahaahaahaahaahdvjdvjdvkdvjdvjaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaacOaaadledvldlgaaadledvldlgaaadledvldlgaaadledvldlgaaadledvldlgaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQduzdvndvodvpduzdvqdvrdvsdvtdqQdvudvvdrLdvwdvxdvydvzdvAdrLdvBdvCdvDduadvEdvFduQdvGaaaaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhIdfRdhvdkadvHdvIdgRdvJdcWaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaaddcdvKdgSdvLdeidjiddcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddidjldemdvMdhGdvNddiaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaaddodvOdvPdvQddsaahaahdqEcqbdvScqbdqEcBXdvVcBXdqEaahaahaahaahaahaahdvjdvXdvYdvZdvjbvVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaadueaaaaadaaaaaaaaaaadaadaadaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQcjAdwadvodwbcjAdqOdwcdwddqOdqQdqQdweduadxSdwgdwhdwgdwiduadqWdwjdqWduaduaduaduadwkdwldwmdwmdwldwnaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfhdeXdeYdwodgRdfadeqaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadeWdfddgSdwpdffdfgdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdfidfjdwqdhGdfldfbaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaadfcdwrdwsdwtddsaahaahdqEdcPdwvdcPdqEdcRdwxdcRdqEaahaahaahaahaahaahdvjdwydwzdwAdvjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdwBdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaduedueduedueaczacOacAaadaadaadacAaadaadaadaadacOacOacAaadaadaadacOacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQduzdwCdvodwDduzduadwEdwFdwGdwHdwIdwJdwKdwLdwMdwNdwOdwPdwQdwRdwSdwTdwUdwVdwVduadwWdwmdwXdwYdwmdwZdxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfmdxbdxcaWIdxedxfdfmaaaaaadeddeddeddeddeddeddeddeddeddeddeddeddedaaaaaadfBdxgdxhdxidxjdxkdfBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfIdxldxmdxndxodxpdfIaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaadfLdxqdxrdxsddsaahahydqEdcPdxtdcPdqEdcRdxudcRdqEaahaahaahaahaahaahdvjdxvdxwdxxdvjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkQcjAdxydxydxycjAduadwUdxzdxAdxBdxCdxDdxEdxFdxGdxHdxGdxGdxGdxGdxGdxIdxJdwVdwVduadwkdwldwZdwWdwldwndueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiXdcWdjvdiZdjadcXdcXdcXdcXdcXdcWdcWdxVbbgbbgdcWdcWaaaaaaaaaaaaaaaaaadeddeddeddeddedaaaaaaaaaaaaaaaaaaddcddcdxMdxMdxYddcddcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddiddidyadxPdxPddiddiaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAddoddodxQdxRdyPddoaahahydusdcPdxTdcPdusdcRdxUdcRdusahyahyaahaahaahaahdzgdxWdxXdztdxZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahydzNduzdybdybdECduzduadwUdxzdyddyedyfdygdyhdyhdyidyjdykdyldymdyndyodypdyqdyrdysduadytdwldwXdwYdwldyudueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadeqdyvdywbffdeqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadeWdyydyzdyAdeWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfbdyBdyCdyDdfbaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdyEdyFdyGdyHdyIdfcahyahyahydcPdcSdcPaaadcRdcUdcRahyahyahyahyahyahybkQbkQdzOdhhdzOaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyRaaaaaadyRaaaaaaaaadyRaaaaaaaaaaaaaaadyRaaaaaaaaadyRaaaaaadyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahydnGcjNcjAduzcjAcjNduadwUdxzdyTdyUdyVdwUdwUdwUdyWdyXdyYdyZdyZdzadzbdzcdzddzedzfdzUdzhdwmdwZdwWdwmdwXdueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfhbhpdxebiXdfhaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhMdzkdxhdzldhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadifdzmdxodzndifaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdzodzpdzqdzrdzsdiyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahyahyaaaaaaaaaaadaadaaadzOdiddzOaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyRdyRdyRdyRaaaaaaaaadyRdyRdyRdyRdyRdyRdyRaaaaaaaaadyRdyRdyRdyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzvdnGdzNbkQdzNdnGduadzwdxzdzxdzydzzdwUdzAdzBdzCdzDdzEdzFdzGdzHdzIdzJdzKdzLdzMdBwdzhdwldwXdwYdwldyudueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBxdfTboablKdfmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfBdzRdzSdokdzTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBydkXdzVdzWdfIaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdmGdkZdzXdkZdkZdzYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaadAadzudAaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyRdyRdyRdyRaaaaaadyRdyRdyRdyRdyRdyRdyRdyRdyRaaaaaadyRdyRdyRdyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahydBzahyahyduadAbdyTdAcdAddAedwUdAfduadAgdAhdAiduadAjdAkdAldAmdAndAodApduadwkdwldwZdwWdwldwndueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNbaNbaNbaNbaaaaaaaaaaaaaNbaNbaNbaNbaNbaaaaaaaaaaaaaaaaaadAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaadaadaaaaaaaaaaaadjKaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIdsIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyRdyRdyRdyRaaaaaadyRdyRdyRdyRdyRdyRdyRdyRdyRaaaaaadyRdyRdyRdyRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadueaaaahyduadAsdwUdAtdAudAudwUdAvdAwdAxdAydAzdAwdAAdABdzbdzcdACdADdAEduadwWdwmdwXdwYdwmdwZdueaaaaaaaaaaaaaaaaaaaaaaaaaNbaNbaNbaNbaNbaNbaNbaNbaNbaNbaaaaaaaaaaaaaaaaNbaNbaNbaNbaNbaNbaaaaaaaNbaNbaNbaNbaNbaNbaaaaaaaaaaaaaaadAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqdAqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAdqAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaadAraaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaadoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBdoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/maps/polaris-2.dmm b/maps/northern_star/polaris-2.dmm
similarity index 54%
rename from maps/polaris-2.dmm
rename to maps/northern_star/polaris-2.dmm
index 1afe3e2c3e..6eecab7a67 100644
--- a/maps/polaris-2.dmm
+++ b/maps/northern_star/polaris-2.dmm
@@ -149,2859 +149,2732 @@
"acS" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
"acT" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
"acU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
-"acV" = (/turf/space,/area/shuttle/escape/transit)
-"acW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area/space)
-"acX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew14,/area/space)
-"acY" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew15,/area/space)
-"acZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew1,/area/space)
-"ada" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"adb" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"adc" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"add" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"ade" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adf" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adg" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adh" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
-"adi" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
-"adj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"adk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"adl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space,/area/space)
-"adm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area/space)
-"adn" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/large_escape_pod1/transit)
-"ado" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/large_escape_pod1/transit)
-"adp" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/large_escape_pod1/transit)
-"adq" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/large_escape_pod1/transit)
-"adr" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/large_escape_pod1/transit)
-"ads" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/large_escape_pod1/transit)
-"adt" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/large_escape_pod1/transit)
-"adu" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/large_escape_pod1/transit)
-"adv" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/large_escape_pod1/transit)
-"adw" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
-"adx" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
-"ady" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
-"adz" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adA" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adB" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"adD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"adE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
-"adF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"adG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"adH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"adI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"adJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"adK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"adL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area/space)
-"adM" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/large_escape_pod1/transit)
-"adN" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/large_escape_pod1/transit)
-"adO" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/large_escape_pod1/transit)
-"adP" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
-"adQ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
-"adR" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom)
-"adS" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adT" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"adU" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt)
-"adV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"adW" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/cryo/transit)
-"adX" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/cryo/transit)
-"adY" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/cryo/transit)
-"adZ" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/cryo/transit)
-"aea" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/cryo/transit)
-"aeb" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/cryo/transit)
-"aec" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/large_escape_pod1/transit)
-"aed" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/large_escape_pod1/transit)
-"aee" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew14,/area/space)
-"aef" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"aeg" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"aeh" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"aei" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"aej" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"aek" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"ael" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"aem" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/cryo/transit)
-"aen" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/cryo/transit)
-"aeo" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/cryo/transit)
-"aep" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/cryo/transit)
-"aeq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area/space)
-"aer" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/large_escape_pod1/transit)
-"aes" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew1,/area/space)
-"aet" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre)
-"aeu" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
-"aev" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"aew" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"aex" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
-"aey" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
-"aez" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
-"aeA" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
-"aeB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
-"aeC" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/cryo/transit)
-"aeD" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/cryo/transit)
-"aeE" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/cryo/transit)
-"aeF" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/cryo/transit)
-"aeG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area/space)
-"aeH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew10,/area/space)
-"aeI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space)
-"aeJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space)
-"aeK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"aeL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"aeM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"aeN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew10,/area/space)
-"aeO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew12,/area/space)
-"aeP" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space)
-"aeQ" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"aeR" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
-"aeS" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
-"aeT" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
-"aeU" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aeV" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aeW" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aeX" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aeY" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aeZ" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"afa" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"afb" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
-"afc" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afd" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afe" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"aff" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afg" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afh" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afi" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
-"afk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
-"afl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"afm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"afn" = (/obj/effect/landmark{name = "Holocarp Spawn Random"},/turf/simulated/floor/holofloor/space,/area/holodeck/source_space)
-"afo" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"afp" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"afq" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"afr" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"afs" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"aft" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"afu" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"afv" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"afw" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afx" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afy" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"afz" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
-"afB" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"afC" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
-"afD" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
-"afE" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"afF" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"afG" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
-"afH" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 2; icon_state = "right"; name = "Red Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afI" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"afK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"afL" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/large_escape_pod2/transit)
-"afM" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/large_escape_pod2/transit)
-"afN" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/large_escape_pod2/transit)
-"afO" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/large_escape_pod2/transit)
-"afP" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/large_escape_pod2/transit)
-"afQ" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/large_escape_pod2/transit)
-"afR" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/large_escape_pod2/transit)
-"afS" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/large_escape_pod2/transit)
-"afT" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/large_escape_pod2/transit)
-"afU" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"afV" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall)
-"afW" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall)
-"afX" = (/obj/item/weapon/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"afY" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"afZ" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"aga" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agb" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agc" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"agd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
-"age" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/cryo/transit)
-"agf" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/large_escape_pod2/transit)
-"agg" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/large_escape_pod2/transit)
-"agh" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/large_escape_pod2/transit)
-"agi" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"agj" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agk" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agl" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agm" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agn" = (/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"ago" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agp" = (/obj/item/weapon/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agq" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agr" = (/obj/item/weapon/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
-"ags" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agt" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agu" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agv" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agw" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agx" = (/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agy" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"agA" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/large_escape_pod2/transit)
-"agB" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/large_escape_pod2/transit)
-"agC" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agD" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agE" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"agF" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agG" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agH" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agI" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agJ" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agK" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agL" = (/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agM" = (/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agN" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/large_escape_pod2/transit)
-"agO" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agP" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agQ" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agR" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"agS" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agT" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
-"agU" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
-"agV" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall)
-"agW" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
-"agX" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"agY" = (/turf/unsimulated/beach/sand{tag = "icon-beach"; icon_state = "beach"},/area/holodeck/source_beach)
-"agZ" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
-"aha" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"ahb" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"ahc" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"ahd" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"ahe" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
-"ahf" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach)
-"ahg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"ahh" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"ahi" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"ahj" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
-"ahk" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"ahl" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"ahm" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-"ahn" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
-"aho" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space)
-"ahp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"ahq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
-"ahr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
-"ahs" = (/turf/unsimulated/wall,/area/syndicate_mothership{name = "\improper Trader Base"})
-"aht" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahu" = (/obj/structure/closet/wardrobe/pink,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahv" = (/obj/structure/closet/wardrobe/white,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahw" = (/obj/structure/closet/wardrobe/green,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahx" = (/obj/structure/closet/wardrobe/grey,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahy" = (/obj/structure/closet/wardrobe/black,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahz" = (/obj/structure/closet/wardrobe/pjs,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahA" = (/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahB" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahC" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahD" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
-"ahE" = (/obj/structure/closet/wardrobe/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahF" = (/obj/structure/closet/wardrobe/suit,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahG" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahH" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"ahJ" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahK" = (/obj/structure/closet/wardrobe/mixed,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahL" = (/obj/structure/closet/wardrobe/xenos,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahM" = (/obj/effect/landmark{name = "Trader"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
-"ahO" = (/obj/machinery/door/blast/shutters{dir = 8; id = "qm_warehouse"; name = "Warehouse Shutters"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahP" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/transit)
-"ahQ" = (/obj/structure/toilet{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahR" = (/obj/machinery/door/airlock/silver{name = "Toilet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ahS" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/transit)
-"ahT" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape/transit)
-"ahU" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape/transit)
-"ahV" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/transit)
-"ahW" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership)
-"ahX" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/syndicate_mothership)
-"ahY" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership)
-"ahZ" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 4; req_access = list(160)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aia" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aib" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"aic" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"aid" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"aie" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"aif" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"aig" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aih" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{pixel_y = 3},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aii" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_elite/mothership)
-"aij" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership)
-"aik" = (/obj/structure/table/standard,/obj/item/weapon/soap/deluxe,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"ail" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aim" = (/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"ain" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/control)
-"aio" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0; subspace_transmission = 1; syndie = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aip" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
-"aiq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"air" = (/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit)
-"ais" = (/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit)
-"ait" = (/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit)
-"aiu" = (/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit)
-"aiv" = (/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit)
-"aiw" = (/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit)
-"aix" = (/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit)
-"aiy" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"aiz" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"aiA" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"aiB" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "trade_shuttle_bay"; name = "shuttle bay controller"; pixel_x = 25; pixel_y = 0; tag_door = "trade_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aiC" = (/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit)
-"aiD" = (/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit)
-"aiE" = (/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit)
-"aiF" = (/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit)
-"aiG" = (/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit)
-"aiH" = (/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit)
-"aiI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"aiJ" = (/turf/space,/area/syndicate_mothership/elite_squad)
-"aiK" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership/elite_squad)
-"aiL" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"aiM" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"aiN" = (/obj/effect/landmark{name = "Syndicate-Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"aiO" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"aiP" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"aiQ" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aiR" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aiS" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"aiT" = (/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit)
-"aiU" = (/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit)
-"aiV" = (/turf/space/transit/north/shuttlespace_ns3,/area/skipjack_station/transit)
-"aiW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space)
-"aiX" = (/turf/space,/area/skipjack_station/transit)
-"aiY" = (/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/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad)
-"aiZ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
-"aja" = (/turf/space/transit/north/shuttlespace_ns2,/area/skipjack_station/transit)
-"ajb" = (/turf/space/transit/north/shuttlespace_ns6,/area/skipjack_station/transit)
-"ajc" = (/turf/space/transit/north/shuttlespace_ns11,/area/skipjack_station/transit)
-"ajd" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"aje" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad)
-"ajf" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"ajg" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/trade/centcom)
-"ajh" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aji" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"ajj" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"ajk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
-"ajl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
-"ajm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
-"ajn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
-"ajo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
-"ajp" = (/turf/space/transit/north/shuttlespace_ns1,/area/skipjack_station/transit)
-"ajq" = (/turf/space/transit/north/shuttlespace_ns5,/area/skipjack_station/transit)
-"ajr" = (/turf/space/transit/north/shuttlespace_ns10,/area/skipjack_station/transit)
-"ajs" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
-"ajt" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"aju" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"ajv" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"ajw" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "trade_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "trade_shuttle_hatch"},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"ajx" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"ajy" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/airless,/area/shuttle/trade/centcom)
-"ajz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/trade/centcom)
-"ajA" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod2/transit)
-"ajB" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod2/transit)
-"ajC" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit)
-"ajD" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod1/transit)
-"ajE" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod1/transit)
-"ajF" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod1/transit)
-"ajG" = (/turf/space/transit/north/shuttlespace_ns15,/area/skipjack_station/transit)
-"ajH" = (/turf/space/transit/north/shuttlespace_ns4,/area/skipjack_station/transit)
-"ajI" = (/turf/space/transit/north/shuttlespace_ns9,/area/skipjack_station/transit)
-"ajJ" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"ajK" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"ajL" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajM" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/rd,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajN" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajO" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajP" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"ajQ" = (/obj/structure/bed/chair,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"ajR" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"ajS" = (/obj/machinery/sleep_console{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajT" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ajU" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/space,/area/shuttle/trade/centcom)
-"ajV" = (/turf/space/transit/north/shuttlespace_ns8,/area/skipjack_station/transit)
-"ajW" = (/turf/space/transit/north/shuttlespace_ns14,/area/skipjack_station/transit)
-"ajX" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"ajY" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite/mothership)
-"ajZ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"aka" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"akb" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akc" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akd" = (/obj/machinery/door/airlock/silver{name = "Sleeping"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ake" = (/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akf" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akg" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akh" = (/obj/machinery/atm{pixel_x = -32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aki" = (/obj/machinery/suit_cycler/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akj" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akk" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akl" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/medical_wall{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akm" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akn" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod2/transit)
-"ako" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod2/transit)
-"akp" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit)
-"akq" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod1/transit)
-"akr" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod1/transit)
-"aks" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod1/transit)
-"akt" = (/turf/space/transit/north/shuttlespace_ns7,/area/skipjack_station/transit)
-"aku" = (/turf/space/transit/north/shuttlespace_ns13,/area/skipjack_station/transit)
-"akv" = (/turf/space,/area/syndicate_mothership)
-"akw" = (/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership)
-"akx" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"aky" = (/obj/structure/closet/wardrobe/pjs,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akz" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/obj/machinery/light,/obj/structure/table/glass,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akA" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/obj/structure/sign/poster{pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akB" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akC" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akD" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"akE" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/inflatable_duck,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"akF" = (/obj/structure/table/steel_reinforced,/obj/item/stack/material/mhydrogen,/obj/item/stack/material/diamond,/obj/item/stack/material/sandstone,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"akG" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/rig/internalaffairs,/obj/item/clothing/head/helmet/space/void/wizard,/obj/item/clothing/suit/space/void/wizard,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"akH" = (/obj/structure/table/steel_reinforced,/obj/random/tool,/obj/random/tool,/obj/random/tool,/obj/random/tool,/obj/random/tool,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"akI" = (/obj/structure/table/steel_reinforced,/obj/random/toolbox,/obj/random/toolbox,/obj/random/toolbox,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"akJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"akK" = (/obj/vehicle/train/cargo/engine,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akL" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/trade/centcom)
-"akM" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Bay"; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akN" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"akO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/space,/area/shuttle/trade/centcom)
-"akP" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit)
-"akQ" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod2/transit)
-"akR" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod1/transit)
-"akS" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod1/transit)
-"akT" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod1/transit)
-"akU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
-"akV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
-"akW" = (/turf/space/transit/north/shuttlespace_ns12,/area/skipjack_station/transit)
-"akX" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"akY" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"akZ" = (/obj/structure/closet/walllocker/emerglocker{pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ala" = (/obj/machinery/button/remote/blast_door{id = "tradestarshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alb" = (/obj/structure/table/steel_reinforced,/obj/random/firstaid,/obj/random/firstaid,/obj/random/firstaid,/obj/random/firstaid,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"alc" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ald" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ale" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alf" = (/obj/structure/table/steel_reinforced,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/weapon/weldpack,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"alg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"alh" = (/obj/vehicle/train/cargo/trolley,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ali" = (/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alj" = (/obj/machinery/vending/medical{pixel_y = -32; req_access = null},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alk" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
+"acV" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape/transit)
+"acW" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape/transit)
+"acX" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/transit)
+"acY" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape/transit)
+"acZ" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape/transit)
+"ada" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area/space)
+"adb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew14,/area/space)
+"adc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew15,/area/space)
+"add" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew1,/area/space)
+"ade" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"adf" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"adg" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"adh" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adi" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adj" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adk" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adl" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
+"adm" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
+"adn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"ado" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"adp" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape/transit)
+"adq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area/space)
+"adr" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/large_escape_pod1/transit)
+"ads" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/large_escape_pod1/transit)
+"adt" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/large_escape_pod1/transit)
+"adu" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/large_escape_pod1/transit)
+"adv" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/large_escape_pod1/transit)
+"adw" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/large_escape_pod1/transit)
+"adx" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/large_escape_pod1/transit)
+"ady" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/large_escape_pod1/transit)
+"adz" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/large_escape_pod1/transit)
+"adA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
+"adB" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
+"adC" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
+"adD" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adE" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adF" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adG" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape/transit)
+"adH" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape/transit)
+"adI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"adJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"adK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
+"adL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"adM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"adN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"adO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"adP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"adQ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"adR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area/space)
+"adS" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/large_escape_pod1/transit)
+"adT" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/large_escape_pod1/transit)
+"adU" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/large_escape_pod1/transit)
+"adV" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
+"adW" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
+"adX" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom)
+"adY" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"adZ" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aea" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt)
+"aeb" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape/transit)
+"aec" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape/transit)
+"aed" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"aee" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/cryo/transit)
+"aef" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/cryo/transit)
+"aeg" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/cryo/transit)
+"aeh" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/cryo/transit)
+"aei" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/cryo/transit)
+"aej" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/cryo/transit)
+"aek" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/large_escape_pod1/transit)
+"ael" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/large_escape_pod1/transit)
+"aem" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew14,/area/space)
+"aen" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"aeo" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"aep" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"aeq" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"aer" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aes" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aet" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/transit)
+"aeu" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape/transit)
+"aev" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape/transit)
+"aew" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"aex" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/cryo/transit)
+"aey" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/cryo/transit)
+"aez" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/cryo/transit)
+"aeA" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/cryo/transit)
+"aeB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew11,/area/space)
+"aeC" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/large_escape_pod1/transit)
+"aeD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew1,/area/space)
+"aeE" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre)
+"aeF" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre)
+"aeG" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aeH" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aeI" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom)
+"aeJ" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
+"aeK" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
+"aeL" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt)
+"aeM" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape/transit)
+"aeN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
+"aeO" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/cryo/transit)
+"aeP" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/cryo/transit)
+"aeQ" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/cryo/transit)
+"aeR" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/cryo/transit)
+"aeS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area/space)
+"aeT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew10,/area/space)
+"aeU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space)
+"aeV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space)
+"aeW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"aeX" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape/transit)
+"aeY" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"aeZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"afa" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew10,/area/space)
+"afb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew12,/area/space)
+"afc" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space)
+"afd" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"afe" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
+"aff" = (/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
+"afg" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
+"afh" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afi" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afj" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afk" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afl" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afm" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afn" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"afo" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
+"afp" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afq" = (/obj/structure/holostool,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afr" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afs" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"aft" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afu" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"afv" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"afw" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
+"afx" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
+"afy" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"afz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"afA" = (/obj/effect/landmark{name = "Holocarp Spawn Random"},/turf/simulated/floor/holofloor/space,/area/holodeck/source_space)
+"afB" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"afC" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"afD" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"afE" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"afF" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afG" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afH" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"afI" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"afJ" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afK" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afL" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"afM" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"afN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
+"afO" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"afP" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall)
+"afQ" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
+"afR" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"afS" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"afT" = (/obj/machinery/door/window/holowindoor{name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
+"afU" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 2; icon_state = "right"; name = "Red Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"afV" = (/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"afW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"afX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"afY" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/large_escape_pod2/transit)
+"afZ" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/large_escape_pod2/transit)
+"aga" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/large_escape_pod2/transit)
+"agb" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/large_escape_pod2/transit)
+"agc" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/large_escape_pod2/transit)
+"agd" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/large_escape_pod2/transit)
+"age" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/large_escape_pod2/transit)
+"agf" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/large_escape_pod2/transit)
+"agg" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/large_escape_pod2/transit)
+"agh" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"agi" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall)
+"agj" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall)
+"agk" = (/obj/item/weapon/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"agl" = (/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"agm" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agn" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"ago" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agp" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"agq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns15,/area/space)
+"agr" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/cryo/transit)
+"ags" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/large_escape_pod2/transit)
+"agt" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/large_escape_pod2/transit)
+"agu" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/large_escape_pod2/transit)
+"agv" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"agw" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agx" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agy" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agz" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agA" = (/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agB" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agC" = (/obj/item/weapon/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agD" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agE" = (/obj/item/weapon/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach)
+"agF" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agG" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agH" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agI" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agJ" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agK" = (/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agL" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agM" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"agN" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/large_escape_pod2/transit)
+"agO" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/large_escape_pod2/transit)
+"agP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agQ" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agR" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"agS" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agT" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agU" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"agV" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agW" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agX" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"agY" = (/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"agZ" = (/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"aha" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/large_escape_pod2/transit)
+"ahb" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahc" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahd" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"ahe" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"ahf" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"ahg" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_boxingcourt)
+"ahh" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield)
+"ahi" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall)
+"ahj" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball)
+"ahk" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahl" = (/turf/unsimulated/beach/sand{tag = "icon-beach"; icon_state = "beach"},/area/holodeck/source_beach)
+"ahm" = (/obj/machinery/door/window/holowindoor{base_state = "right"; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt)
+"ahn" = (/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"aho" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Green Corner"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"ahp" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"ahq" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"ahr" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall)
+"ahs" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach)
+"aht" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"ahu" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahv" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahw" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball)
+"ahx" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"ahy" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"ahz" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
+"ahA" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt)
+"ahB" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space)
+"ahC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"ahD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
+"ahE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
+"ahF" = (/turf/unsimulated/wall,/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahG" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahH" = (/obj/structure/closet/wardrobe/pink,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahI" = (/obj/structure/closet/wardrobe/white,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahJ" = (/obj/structure/closet/wardrobe/green,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahK" = (/obj/structure/closet/wardrobe/grey,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahL" = (/obj/structure/closet/wardrobe/black,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahM" = (/obj/structure/closet/wardrobe/pjs,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahN" = (/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahO" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahP" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahQ" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"ahR" = (/obj/structure/closet/wardrobe/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahS" = (/obj/structure/closet/wardrobe/suit,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahT" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahU" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"ahW" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahX" = (/obj/structure/closet/wardrobe/mixed,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahY" = (/obj/structure/closet/wardrobe/xenos,/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ahZ" = (/obj/effect/landmark{name = "Trader"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aia" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns3,/area/space)
+"aib" = (/obj/machinery/door/blast/shutters{dir = 8; id = "qm_warehouse"; name = "Warehouse Shutters"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aic" = (/obj/structure/toilet{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aid" = (/obj/machinery/door/airlock/silver{name = "Toilet"},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aie" = (/turf/simulated/shuttle/wall/dark/no_join,/area/syndicate_mothership)
+"aif" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/syndicate_mothership)
+"aig" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 4; req_access = list(160)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aih" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aii" = (/turf/simulated/shuttle/wall/dark,/area/shuttle/syndicate_elite/mothership)
+"aij" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/syndicate_elite/mothership)
+"aik" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/syndicate_elite/mothership)
+"ail" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/syndicate_elite/mothership)
+"aim" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ain" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aio" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership)
+"aip" = (/obj/structure/table/standard,/obj/item/weapon/soap/deluxe,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aiq" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"air" = (/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"ais" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/control)
+"ait" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 1; name = "Syndicate Ops Intercom"; pixel_y = 0; subspace_transmission = 1; syndie = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aiu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns7,/area/space)
+"aiv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"aiw" = (/turf/space/transit/north/shuttlespace_ns6,/area/syndicate_station/transit)
+"aix" = (/turf/space/transit/north/shuttlespace_ns8,/area/syndicate_station/transit)
+"aiy" = (/turf/space/transit/north/shuttlespace_ns3,/area/syndicate_station/transit)
+"aiz" = (/turf/space/transit/north/shuttlespace_ns5,/area/syndicate_station/transit)
+"aiA" = (/turf/space/transit/north/shuttlespace_ns9,/area/syndicate_station/transit)
+"aiB" = (/turf/space/transit/north/shuttlespace_ns2,/area/syndicate_station/transit)
+"aiC" = (/turf/space/transit/north/shuttlespace_ns13,/area/syndicate_station/transit)
+"aiD" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"aiE" = (/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"aiF" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"aiG" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "trade_shuttle_bay"; name = "shuttle bay controller"; pixel_x = 25; pixel_y = 0; tag_door = "trade_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"aiH" = (/turf/space/transit/north/shuttlespace_ns11,/area/syndicate_station/transit)
+"aiI" = (/turf/space/transit/north/shuttlespace_ns7,/area/syndicate_station/transit)
+"aiJ" = (/turf/space/transit/north/shuttlespace_ns14,/area/syndicate_station/transit)
+"aiK" = (/turf/space/transit/north/shuttlespace_ns4,/area/syndicate_station/transit)
+"aiL" = (/turf/space/transit/north/shuttlespace_ns10,/area/syndicate_station/transit)
+"aiM" = (/turf/space/transit/north/shuttlespace_ns1,/area/syndicate_station/transit)
+"aiN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"aiO" = (/turf/space,/area/syndicate_mothership/elite_squad)
+"aiP" = (/turf/simulated/shuttle/wall/dark/no_join,/area/syndicate_mothership/elite_squad)
+"aiQ" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"aiR" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1213; listening = 0; name = "Syndicate Ops Intercom"; pixel_y = 28; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"aiS" = (/obj/effect/landmark{name = "Syndicate-Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"aiT" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"aiU" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"aiV" = (/obj/mecha/combat/marauder/mauler,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aiW" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aiX" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"aiY" = (/turf/space/transit/north/shuttlespace_ns12,/area/syndicate_station/transit)
+"aiZ" = (/turf/space/transit/north/shuttlespace_ns15,/area/syndicate_station/transit)
+"aja" = (/turf/space/transit/north/shuttlespace_ns3,/area/skipjack_station/transit)
+"ajb" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space,/area/space)
+"ajc" = (/turf/space,/area/skipjack_station/transit)
+"ajd" = (/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/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad)
+"aje" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/syndicate_mothership{name = "\improper Trader Base"})
+"ajf" = (/turf/space/transit/north/shuttlespace_ns2,/area/skipjack_station/transit)
+"ajg" = (/turf/space/transit/north/shuttlespace_ns6,/area/skipjack_station/transit)
+"ajh" = (/turf/space/transit/north/shuttlespace_ns11,/area/skipjack_station/transit)
+"aji" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"ajj" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership/elite_squad)
+"ajk" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"ajl" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/shuttle/trade/centcom)
+"ajm" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajn" = (/turf/simulated/shuttle/wall/dark,/area/shuttle/trade/centcom)
+"ajo" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area/space)
+"ajp" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns14,/area/space)
+"ajq" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area/space)
+"ajr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area/space)
+"ajs" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area/space)
+"ajt" = (/turf/space/transit/north/shuttlespace_ns1,/area/skipjack_station/transit)
+"aju" = (/turf/space/transit/north/shuttlespace_ns5,/area/skipjack_station/transit)
+"ajv" = (/turf/space/transit/north/shuttlespace_ns10,/area/skipjack_station/transit)
+"ajw" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{id = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
+"ajx" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"ajy" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"ajz" = (/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"ajA" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "trade_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "trade_shuttle_hatch"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajB" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajC" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/shuttle/plating/airless,/area/shuttle/trade/centcom)
+"ajD" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/trade/centcom)
+"ajE" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod2/transit)
+"ajF" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod2/transit)
+"ajG" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod2/transit)
+"ajH" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod1/transit)
+"ajI" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod1/transit)
+"ajJ" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod1/transit)
+"ajK" = (/turf/space/transit/north/shuttlespace_ns15,/area/skipjack_station/transit)
+"ajL" = (/turf/space/transit/north/shuttlespace_ns4,/area/skipjack_station/transit)
+"ajM" = (/turf/space/transit/north/shuttlespace_ns9,/area/skipjack_station/transit)
+"ajN" = (/obj/machinery/computer/pod{id = "syndicate_elite"; name = "Hull Door Control"},/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"ajO" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor/red,/area/shuttle/syndicate_elite/mothership)
+"ajP" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajQ" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/rd,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajR" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajS" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajT" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"ajU" = (/obj/structure/bed/chair,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"ajV" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"ajW" = (/obj/machinery/sleep_console{dir = 8},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajX" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ajY" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/trade/centcom)
+"ajZ" = (/turf/space/transit/north/shuttlespace_ns8,/area/skipjack_station/transit)
+"aka" = (/turf/space/transit/north/shuttlespace_ns14,/area/skipjack_station/transit)
+"akb" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/shuttle/syndicate_elite/mothership)
+"akc" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access = list(150)},/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite/mothership)
+"akd" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"ake" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akf" = (/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akg" = (/obj/machinery/door/airlock/silver{name = "Sleeping"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akh" = (/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"aki" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"akj" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"akk" = (/obj/machinery/atm{pixel_x = -32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akl" = (/obj/machinery/suit_cycler/syndicate,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akm" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akn" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ako" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/medical_wall{pixel_y = 32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akp" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akq" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod2/transit)
+"akr" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod2/transit)
+"aks" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod2/transit)
+"akt" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod1/transit)
+"aku" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod1/transit)
+"akv" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod1/transit)
+"akw" = (/turf/space/transit/north/shuttlespace_ns7,/area/skipjack_station/transit)
+"akx" = (/turf/space/transit/north/shuttlespace_ns13,/area/skipjack_station/transit)
+"aky" = (/turf/space,/area/syndicate_mothership)
+"akz" = (/turf/simulated/floor/airless,/area/shuttle/syndicate_elite/mothership)
+"akA" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradestarshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"akB" = (/obj/structure/closet/wardrobe/pjs,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akC" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/obj/machinery/light,/obj/structure/table/glass,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akD" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/obj/structure/sign/poster{pixel_y = -32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akE" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"akF" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"akG" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"akH" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/inflatable_duck,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akI" = (/obj/structure/table/steel_reinforced,/obj/item/stack/material/mhydrogen,/obj/item/stack/material/diamond,/obj/item/stack/material/sandstone,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akJ" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/rig/internalaffairs,/obj/item/clothing/head/helmet/space/void/wizard,/obj/item/clothing/suit/space/void/wizard,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akK" = (/obj/structure/table/steel_reinforced,/obj/random/tool,/obj/random/tool,/obj/random/tool,/obj/random/tool,/obj/random/tool,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akL" = (/obj/structure/table/steel_reinforced,/obj/random/toolbox,/obj/random/toolbox,/obj/random/toolbox,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"akN" = (/obj/vehicle/train/cargo/engine,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akO" = (/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"akP" = (/obj/machinery/door/airlock/glass_medical{name = "Medical Bay"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akQ" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"akR" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/trade/centcom)
+"akS" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod2/transit)
+"akT" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod2/transit)
+"akU" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod1/transit)
+"akV" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod1/transit)
+"akW" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod1/transit)
+"akX" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area/space)
+"akY" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
+"akZ" = (/turf/space/transit/north/shuttlespace_ns12,/area/skipjack_station/transit)
+"ala" = (/obj/structure/closet/walllocker/emerglocker{pixel_y = -32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alb" = (/obj/machinery/button/remote/blast_door{id = "tradestarshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alc" = (/obj/structure/table/steel_reinforced,/obj/random/firstaid,/obj/random/firstaid,/obj/random/firstaid,/obj/random/firstaid,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ald" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ale" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alf" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alg" = (/obj/structure/table/steel_reinforced,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/weapon/weldpack,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"ali" = (/obj/vehicle/train/cargo/trolley,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alj" = (/obj/machinery/light,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alk" = (/obj/machinery/vending/medical{pixel_y = -32; req_access = null},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
"all" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod2/transit)
"alm" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod1/transit)
"aln" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod1/transit)
-"alo" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 4; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alp" = (/obj/structure/table/steel_reinforced,/obj/random/medical,/obj/random/medical,/obj/random/medical,/obj/random/medical,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"alq" = (/obj/machinery/door/window/southleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"alr" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/coin/uranium,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/platinum,/obj/item/weapon/coin/phoron,/obj/item/weapon/coin/iron,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/diamond,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"als" = (/obj/machinery/door/window/southright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"alt" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/hyper,/obj/item/weapon/cell/potato,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
+"alo" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 4; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alp" = (/obj/structure/table/steel_reinforced,/obj/random/medical,/obj/random/medical,/obj/random/medical,/obj/random/medical,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alq" = (/obj/machinery/door/window/southleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alr" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/coin/uranium,/obj/item/weapon/coin/silver,/obj/item/weapon/coin/platinum,/obj/item/weapon/coin/phoron,/obj/item/weapon/coin/iron,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/diamond,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"als" = (/obj/machinery/door/window/southright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alt" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/hyper,/obj/item/weapon/cell/potato,/obj/structure/window/reinforced,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
"alu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"alv" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/circular_saw,/obj/item/stack/nanopaste,/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alw" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
+"alv" = (/obj/structure/table/standard,/obj/item/clothing/gloves/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/circular_saw,/obj/item/stack/nanopaste,/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alw" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
"alx" = (/turf/unsimulated/wall,/area/syndicate_mothership)
"aly" = (/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
"alz" = (/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"alA" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alB" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alC" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"alD" = (/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/trade/centcom)
-"alE" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"alF" = (/obj/structure/closet/crate/secure/weapon,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alG" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
-"alH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
-"alI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"alJ" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"alK" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"alL" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"alM" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alN" = (/obj/structure/table/steel_reinforced,/obj/machinery/newscaster{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alO" = (/obj/structure/toilet,/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/trade/centcom)
-"alP" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/trade/centcom)
-"alQ" = (/obj/structure/mirror{pixel_x = 0; pixel_y = 28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/trade/centcom)
-"alR" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/trade/centcom)
-"alS" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alT" = (/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"alU" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"alW" = (/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"alX" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"alY" = (/obj/machinery/light{dir = 4},/obj/structure/sign/kiddieplaque{desc = "A plaque commemorating the construction of the cargo ship Beruang."; name = "Beruang"; pixel_x = 32},/mob/living/simple_animal/corgi/tamaskan/spice,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/trade/centcom)
-"alZ" = (/obj/machinery/door/airlock/silver{name = "Toilet"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ama" = (/obj/machinery/door/airlock/silver{name = "Restroom"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amb" = (/obj/structure/undies_wardrobe,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amc" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amd" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/largecrate/animal/cat,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ame" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/largecrate/animal/cow,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amg" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/item/device/kit/paint/ripley/death,/obj/item/device/kit/paint/ripley/flames_blue,/obj/item/device/kit/paint/ripley/flames_red,/obj/item/device/kit/paint/ripley,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/closet/crate/secure/loot,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ami" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/largecrate/hoverpod,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amj" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/mecha/working/ripley/mining,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amk" = (/obj/machinery/door/window/westright{name = "Storefront"; req_access = list(160)},/obj/structure/table/marble,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "trade"; name = "Shop Shutters"; opacity = 0},/turf/simulated/shuttle/floor4{icon_state = "floor6"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aml" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/simulated/shuttle/floor4{icon_state = "floor6"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amm" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"amn" = (/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"amo" = (/obj/machinery/computer/shuttle_control{name = "Beruang control console"; req_access = list(160); shuttle_tag = "Trade"},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amp" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/trade/centcom)
-"amq" = (/obj/machinery/door/airlock/command{name = "Bridge"; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amr" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ams" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/largecrate/animal/corgi,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amt" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/largecrate/animal/corgi,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amu" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/crate/internals,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amv" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning,/obj/item/device/kit/paint/gygax/darkgygax,/obj/item/device/kit/paint/gygax/recitence,/obj/item/device/kit/paint/durand,/obj/item/device/kit/paint/durand/phazon,/obj/item/device/kit/paint/durand/seraph,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amw" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/crate/secure/loot,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amx" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/largecrate/hoverpod,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amy" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/mecha/working/ripley/firefighter,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amz" = (/obj/machinery/door/window/westleft{name = "Storefront"; req_access = list(160)},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "trade"; name = "Shop Shutters"; opacity = 0},/obj/structure/table/marble,/turf/simulated/shuttle/floor4{icon_state = "floor6"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amA" = (/obj/machinery/computer/arcade/battle,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amB" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{id = "tradebridgeshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(150)},/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Esteban"; pixel_y = 8; tag = "icon-plant-09"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amC" = (/obj/machinery/vending/assist{contraband = null; name = "Old Vending Machine"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amD" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amE" = (/obj/machinery/vending/sovietsoda,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amF" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/soap,/obj/item/weapon/towel{color = "#0000FF"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amG" = (/obj/structure/sign/poster{pixel_y = -32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amH" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 2; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amI" = (/obj/machinery/door/window/westleft{name = "Storefront"; req_access = list(160)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amJ" = (/obj/machinery/button/remote/blast_door{id = "trade"; name = "Shop Shutters"; pixel_x = 0; pixel_y = -26},/turf/simulated/shuttle/floor4{icon_state = "floor6"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amK" = (/turf/simulated/shuttle/floor4{icon_state = "floor6"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amL" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"amM" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"amN" = (/obj/machinery/vending/boozeomat{req_access = null},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amO" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/trade/centcom)
-"amP" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amQ" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amR" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"amS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amT" = (/obj/machinery/door/window/northleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amU" = (/obj/structure/table/steel_reinforced,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amV" = (/obj/machinery/door/window/northright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amW" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/blue,/obj/item/clothing/gloves/brown,/obj/item/clothing/gloves/captain,/obj/item/clothing/gloves/combat,/obj/item/clothing/gloves/green,/obj/item/clothing/gloves/grey,/obj/item/clothing/gloves/light_brown,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/rainbow,/obj/item/clothing/gloves/swat,/obj/item/clothing/gloves/white,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amX" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 2; start_pressure = 740.5},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"amY" = (/obj/structure/closet/walllocker/emerglocker{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"amZ" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ana" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
-"anb" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership)
-"anc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
-"and" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
-"ane" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
-"anf" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_mothership)
-"ang" = (/obj/machinery/button/remote/blast_door{id = "tradeportshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anh" = (/obj/structure/table/steel_reinforced,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/item/weapon/bikehorn,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ani" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anj" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ank" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anl" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/bowler,/obj/item/clothing/head/caphat/cap,/obj/item/clothing/head/beaverhat,/obj/item/clothing/head/beret/centcom,/obj/item/clothing/head/beret/sec,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/petehat,/obj/item/clothing/head/collectable/pirate,/obj/item/clothing/head/collectable/wizard,/obj/item/clothing/head/collectable/xenom,/obj/item/clothing/head/cowboy_hat,/obj/item/clothing/head/hairflower/violet,/obj/item/clothing/head/hairflower/blue,/obj/item/clothing/head/hairflower/orange,/obj/item/clothing/head/hairflower/pink,/obj/item/clothing/head/justice,/obj/item/clothing/head/justice/blue,/obj/item/clothing/head/justice/green,/obj/item/clothing/head/justice/pink,/obj/item/clothing/head/justice/yellow,/obj/item/clothing/head/philosopher_wig,/obj/item/clothing/head/plaguedoctorhat,/obj/item/clothing/head/xenos,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anm" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/meter,/obj/structure/largecrate/animal/cat,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"ann" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"ano" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
-"anp" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership)
-"anq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"anr" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"ans" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"ant" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"anu" = (/obj/structure/closet/wardrobe/captain,/obj/item/weapon/gun/projectile/revolver/mateba,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anv" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anw" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anx" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"any" = (/obj/machinery/photocopier,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"anz" = (/obj/structure/table/steel_reinforced,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anA" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade,/obj/item/weapon/lipstick/purple,/obj/item/weapon/lipstick,/obj/item/weapon/lipstick/random,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anB" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/scarf/white,/obj/item/clothing/accessory/scarf/lightblue,/obj/item/clothing/accessory/scarf/red,/obj/item/clothing/accessory/scarf/purple,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/accessory/armband/med,/obj/item/clothing/accessory/armband/engine,/obj/item/clothing/accessory/armband/cargo,/obj/item/clothing/accessory/armband,/obj/item/clothing/accessory/medal/nobel_science,/obj/item/clothing/accessory/medal/silver,/obj/item/clothing/accessory/medal/gold,/obj/item/clothing/accessory/medal/bronze_heart,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anC" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/under/cheongsam,/obj/item/clothing/under/hosformalmale,/obj/item/clothing/under/hosformalfem,/obj/item/clothing/under/harness,/obj/item/clothing/under/gladiator,/obj/item/clothing/under/ert,/obj/item/clothing/under/schoolgirl,/obj/item/clothing/under/redcoat,/obj/item/clothing/under/sexymime,/obj/item/clothing/under/sexyclown,/obj/item/clothing/under/soviet,/obj/item/clothing/under/space,/obj/item/clothing/under/stripper/mankini,/obj/item/clothing/under/suit_jacket/female,/obj/item/clothing/under/rank/psych/turtleneck,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/dress/sailordress,/obj/item/clothing/under/dress/redeveninggown,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/under/dress/blacktango,/obj/item/clothing/under/dress/blacktango/alt,/obj/item/clothing/under/dress/dress_orange,/obj/item/clothing/under/dress/janimaid,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anD" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/hgpirate,/obj/item/clothing/suit/imperium_monk,/obj/item/clothing/suit/leathercoat,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/pirate,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anE" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/closet/crate/solar,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"anF" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod6/transit)
-"anG" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod6/transit)
-"anH" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod6/transit)
-"anI" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod5/transit)
-"anJ" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod5/transit)
-"anK" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod5/transit)
-"anL" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod4/transit)
-"anM" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod4/transit)
-"anN" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod4/transit)
-"anO" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod3/transit)
-"anP" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod3/transit)
-"anQ" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod3/transit)
-"anR" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"anS" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
-"anT" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
-"anU" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
-"anV" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"anW" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = list(160)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"anX" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"anY" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"anZ" = (/obj/structure/table/woodentable,/obj/item/device/laptop,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"aoa" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"aob" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"aoc" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
-"aod" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/atm{pixel_x = -32},/obj/machinery/meter,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoe" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "trade2_control"; pixel_x = -22; pixel_y = -32; req_one_access = list(150)},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aof" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aog" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoh" = (/obj/structure/table/standard,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoi" = (/obj/structure/table/standard,/obj/item/stack/material/steel{amount = 2},/obj/item/stack/material/steel{amount = 2},/obj/item/stack/material/glass{amount = 15},/obj/item/stack/material/glass{amount = 15},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoj" = (/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aok" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
-"aol" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
-"aom" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aon" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aoo" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aop" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aoq" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aor" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aos" = (/obj/structure/table/glass,/obj/machinery/computer3/wall_comp/telescreen/entertainment{pixel_y = -35},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aot" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aou" = (/obj/machinery/light,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"aov" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"aow" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
-"aox" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_inner"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoy" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_inner"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoz" = (/obj/machinery/vending/engivend,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aoA" = (/obj/machinery/vending/tool,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/trade/centcom)
-"aoB" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod6/transit)
-"aoC" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod6/transit)
-"aoD" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod6/transit)
-"aoE" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod5/transit)
-"aoF" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod5/transit)
-"aoG" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod5/transit)
-"aoH" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod4/transit)
-"aoI" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod4/transit)
-"aoJ" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod4/transit)
-"aoK" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod3/transit)
-"aoL" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod3/transit)
-"aoM" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod3/transit)
-"aoN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
-"aoO" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership)
-"aoP" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership)
-"aoQ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"aoR" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aoS" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aoT" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "trade2_vent"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1331; id_tag = "trade2_control"; pixel_x = -24; req_access = list(150); tag_airpump = "trade2_vent"; tag_chamber_sensor = "trade2_sensor"; tag_exterior_door = "trade2_shuttle_outer"; tag_interior_door = "trade2_shuttle_inner"},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoU" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "trade2_sensor"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "trade2_vent"},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"aoV" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod6/transit)
-"aoW" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod6/transit)
-"aoX" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod5/transit)
-"aoY" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod5/transit)
-"aoZ" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod5/transit)
-"apa" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod4/transit)
-"apb" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod4/transit)
-"apc" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod3/transit)
-"apd" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod3/transit)
-"ape" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod3/transit)
-"apf" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
-"apg" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
-"aph" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
-"api" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apj" = (/obj/structure/table/standard,/obj/item/weapon/folder,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apk" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apl" = (/obj/structure/closet/crate/freezer,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apm" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_outer"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"apn" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "trade2_control"; pixel_x = 24; req_one_access = list(150)},/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_outer"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor4{icon_state = "floor7"; name = "shuttle floor"},/area/shuttle/trade/centcom)
-"apo" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod6/transit)
-"app" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod5/transit)
-"apq" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod5/transit)
-"apr" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod4/transit)
-"aps" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod3/transit)
-"apt" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod3/transit)
-"apu" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apv" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"apw" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"apx" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"apy" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"apz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
-"apA" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"apB" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
-"apC" = (/turf/simulated/shuttle/plating,/area/syndicate_mothership)
-"apD" = (/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"},/area/syndicate_mothership)
-"apE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
-"apF" = (/obj/machinery/door/airlock/centcom{name = "Barracks"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"apG" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"apH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"apI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"apJ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"apK" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/syndicate_mothership)
-"apL" = (/turf/simulated/floor/wood,/area/syndicate_mothership)
-"apM" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership)
-"apN" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
-"apO" = (/turf/unsimulated/wall,/area/alien)
-"apP" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_mothership)
-"apQ" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"apR" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
-"apS" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"apT" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"apU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"apV" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"apW" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
-"apX" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
-"apY" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"apZ" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqa" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqb" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
-"aqc" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"aqd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqe" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqf" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark{name = "ninjastart"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqg" = (/turf/space,/area/shuttle/alien/base)
-"aqh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqi" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership)
-"aqj" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
-"aqk" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership)
-"aql" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership)
-"aqm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership)
-"aqn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqo" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqp" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqq" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqr" = (/turf/unsimulated/wall,/area)
-"aqs" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
-"aqu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
-"aqv" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqw" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqx" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
-"aqA" = (/turf/simulated/mineral,/area/space)
-"aqB" = (/turf/simulated/shuttle/wall{dir = 6; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"aqC" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3_straight"; tag = "icon-swall_straight (EAST)"},/area/centcom/specops)
-"aqD" = (/turf/simulated/shuttle/wall{dir = 10; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"aqE" = (/obj/effect/landmark/start,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area)
-"aqF" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "wall3_straight"; tag = "icon-swall_straight (EAST)"},/area/centcom/specops)
-"aqG" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqH" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqI" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqJ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqK" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall3_t"},/area/centcom/specops)
-"aqL" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3_t"},/area/centcom/specops)
-"aqM" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqN" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqO" = (/obj/structure/table/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqP" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/energy/ionrifle,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqR" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqS" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/launcher/grenade,/obj/item/weapon/gun/launcher/grenade,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqT" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/emps{pixel_x = 4; pixel_y = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/box/frags,/obj/item/weapon/storage/box/smokes,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqU" = (/obj/machinery/vending/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqV" = (/obj/structure/table/rack,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/plasmacutter,/obj/item/rig_module/device/plasmacutter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqW" = (/obj/structure/table/rack,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqX" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aqY" = (/turf/simulated/shuttle/wall{dir = 5; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"aqZ" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"ara" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Weapon Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arb" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"arc" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "wall3_t"},/area/centcom/specops)
-"ard" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall{dir = 9; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"are" = (/obj/machinery/door/airlock/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arf" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall{dir = 5; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"arg" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"arh" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ari" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/z8,/obj/item/weapon/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arj" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ark" = (/obj/structure/table/rack,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/weapon/gun/projectile/automatic/p90,/obj/item/weapon/gun/projectile/automatic/p90,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arl" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/weapon/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arm" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arn" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aro" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arp" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arq" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arr" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ars" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "wall3_t"},/area/centcom/specops)
-"art" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
-"aru" = (/obj/structure/lattice,/turf/space,/area/space)
-"arv" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/centcom/specops)
-"arw" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arx" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ary" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arz" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/weapon/stamp/centcomm,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arA" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"arB" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"arC" = (/obj/structure/table/rack,/obj/item/device/lightreplacer,/obj/item/device/lightreplacer,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"arD" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arE" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor North"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arF" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arG" = (/turf/simulated/shuttle/wall{dir = 7; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"arH" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/shotgunammo,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arI" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arJ" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/automatic/z8,/obj/item/weapon/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arK" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arL" = (/obj/machinery/deployable/barrier,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arM" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arN" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"arO" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"arP" = (/turf/unsimulated/wall{icon = 'icons/misc/title.dmi'; icon_state = "title"},/area)
-"arQ" = (/turf/unsimulated/wall,/area/centcom/specops)
-"arR" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arS" = (/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"arT" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashshells,/obj/item/weapon/storage/box/flashshells,/obj/item/weapon/storage/box/stunshells,/obj/item/weapon/storage/box/stunshells,/obj/item/weapon/storage/box/beanbags,/obj/item/weapon/storage/box/beanbags,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arU" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/handcuffs{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arV" = (/obj/structure/table/reinforced,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arW" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arX" = (/obj/structure/table/rack,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arY" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"arZ" = (/obj/structure/table/rack,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/grenade_launcher,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asa" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/handcuffs,/obj/item/device/flash,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asb" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asc" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/hand_tele,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asd" = (/obj/structure/table/rack,/obj/item/weapon/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/glasses/science,/obj/item/weapon/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/glasses/science,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"ase" = (/obj/item/weapon/mop,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"asf" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket{amount_per_transfer_from_this = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"asg" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
-"ash" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asi" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT3"; name = "Launch Bay #3"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asj" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"ask" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asl" = (/obj/structure/table/rack,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asm" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"asn" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"aso" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"asp" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
-"asq" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asr" = (/obj/structure/table/rack,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ass" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ast" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asu" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asv" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asw" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asx" = (/obj/machinery/porta_turret{anchored = 0; check_records = 0; enabled = 0; req_one_access = list(103); use_power = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asy" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"asz" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"asA" = (/obj/structure/closet/wardrobe/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"asB" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"asC" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"asD" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"asE" = (/obj/item/weapon/bikehorn/rubberducky,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"asF" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/clothing/glasses/sunglasses/prescription,/obj/item/clothing/glasses/sunglasses/prescription,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"asG" = (/obj/structure/table/standard,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"asH" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"asI" = (/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asJ" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"asK" = (/obj/structure/table/rack,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asL" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asM" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asN" = (/obj/structure/table/rack,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asO" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/xray,/obj/item/weapon/gun/energy/xray,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asP" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asQ" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asR" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/sec,/obj/item/weapon/gun/projectile/sec,/obj/item/weapon/gun/projectile/sec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asT" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asU" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asV" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/security,/obj/item/weapon/rig/ert/security,/obj/item/weapon/rig/ert/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asW" = (/obj/structure/table/rack,/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asX" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"asY" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
-"asZ" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/window/reinforced/tinted,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"ata" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced/tinted,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atb" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"atc" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"atd" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"ate" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atf" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atg" = (/turf/simulated/shuttle/wall{dir = 9; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/centcom/specops)
-"ath" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ati" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atj" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"atk" = (/obj/machinery/door/airlock,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atl" = (/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atn" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ato" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atp" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atq" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atr" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"ats" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"att" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT1"; name = "Launch Bay #1"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atu" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atv" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atw" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atx" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/centcomm,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aty" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atz" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atA" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atB" = (/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atC" = (/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atD" = (/obj/effect/floor_decal/corner/yellow{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atE" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atF" = (/obj/structure/table/reinforced,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atG" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atH" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atI" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atJ" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall{dir = 7; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/centcom/specops)
-"atK" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"atL" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"atM" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"atN" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"atO" = (/obj/structure/table/standard,/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"atP" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT0"; name = "Launch Bay #0"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atQ" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atR" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"atS" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atT" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atU" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/engineer,/obj/item/weapon/rig/ert/engineer,/obj/item/weapon/rig/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atV" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atW" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atX" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atY" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/pillbottles,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"atZ" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aua" = (/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aub" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/medical,/obj/item/weapon/rig/ert/medical,/obj/item/weapon/rig/ert/medical,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auc" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aud" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aue" = (/turf/simulated/shuttle/wall{icon_state = "wall3_wall15"},/area/centcom/specops)
-"auf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"aug" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"auh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"aui" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
-"auj" = (/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"auk" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aul" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aum" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aun" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auo" = (/obj/structure/table/rack,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aup" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auq" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aur" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_one_access = list(103); tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"aus" = (/obj/structure/closet/secure_closet/bar{req_access = list(25)},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"aut" = (/obj/structure/reagent_dispensers/beerkeg,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"auu" = (/obj/machinery/vending/boozeomat,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"auv" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"auw" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/glasses/square,/obj/item/weapon/storage/box/glasses/square,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"aux" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"auy" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"auz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"auA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"auB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"auC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"auD" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"auE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"auF" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"auG" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"auH" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"auI" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"auJ" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"auK" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"auL" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"auM" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"auN" = (/obj/effect/landmark{name = "Nuclear-Code"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
-"auO" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
-"auP" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
-"auQ" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor South"; dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"auR" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"auS" = (/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/weapon/pickaxe/diamonddrill,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"auT" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
-"auU" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auV" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auW" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auX" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"auY" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
-"auZ" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"ava" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"avb" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"avc" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start)
-"avd" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ave" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avf" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avg" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avh" = (/obj/structure/table/standard,/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avi" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"avj" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"avk" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"avl" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"avm" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avn" = (/obj/item/weapon/circuitboard/aiupload,/obj/item/weapon/circuitboard/borgupload,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset,/obj/item/weapon/aiModule/freeformcore,/obj/item/weapon/aiModule/protectStation,/obj/item/weapon/aiModule/quarantine,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/item/weapon/aiModule/safeguard,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avo" = (/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/welding/superior,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avp" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avq" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avr" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/hud/health{pixel_x = 4; pixel_y = 4},/obj/item/clothing/glasses/hud/health{pixel_x = 2; pixel_y = 2},/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avs" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avt" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avu" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/space,/area/shuttle/specops/centcom)
-"avv" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/specops/centcom)
-"avw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/specops/centcom)
-"avx" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
-"avy" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"avz" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"avA" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
-"avB" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avC" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avD" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"avE" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"avF" = (/obj/item/weapon/folder{pixel_y = 2},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"avG" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_y = 4},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"avH" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"avI" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"avJ" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"avK" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"avL" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avM" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avN" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/spaceacillin,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avO" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/bodybags,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avP" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avQ" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"avR" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space,/area/shuttle/specops/centcom)
-"avS" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/floor/airless,/area/shuttle/specops/centcom)
-"avT" = (/obj/machinery/computer/security/telescreen{desc = ""; name = "Spec. Ops. Monitor"; network = list("NETWORK_ERT"); pixel_y = 30},/obj/machinery/computer/shuttle_control/specops,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avU" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avV" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_port"; name = "port docking hatch controller"; pixel_x = 0; pixel_y = 25; tag_door = "specops_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avW" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avX" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avY" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"avZ" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"awa" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"awb" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awc" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awd" = (/obj/structure/frame/computer,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awe" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"awf" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"awg" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"awh" = (/obj/structure/reagent_dispensers/beerkeg/fakenuke,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"awi" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"awj" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
-"awk" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awl" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awm" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awn" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/specops/centcom)
-"awo" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awp" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_fore"; name = "forward docking hatch controller"; pixel_x = 0; pixel_y = -25; tag_door = "specops_shuttle_fore_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_fore_hatch"; locked = 1; name = "Forward Docking Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom)
-"awr" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/mob/living/simple_animal/corgi/puppy{name = "Bockscar"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"aws" = (/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awt" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awu" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awv" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
-"aww" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awx" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awy" = (/obj/machinery/computer/communications,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1443; listening = 1; name = "Spec Ops Intercom"; pixel_y = -28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awz" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awA" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awB" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"awC" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
-"awD" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"awE" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"awF" = (/turf/unsimulated/wall,/area/centcom/command)
-"awG" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/command)
-"awH" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"awI" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"awJ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_station/start)
-"awK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"awL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"awM" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"awN" = (/obj/machinery/shower{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"awO" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awP" = (/obj/structure/table/rack,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"awQ" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awR" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awS" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awT" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awU" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awV" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awW" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awX" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/fire,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awY" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"awZ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/adv{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axa" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/o2,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axb" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axc" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axd" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/shuttle/specops/centcom)
-"axe" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axf" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axg" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axh" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axi" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axj" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
-"axk" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; pixel_y = 0; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axl" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axm" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axn" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axo" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/ammo_magazine/mc9mm/flash,/obj/item/weapon/gun/projectile/pistol/flash,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"axq" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"axr" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"axs" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axt" = (/obj/machinery/shield_gen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axu" = (/obj/machinery/shield_capacitor,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axv" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/specops)
-"axw" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "CREED"; name = "Ready Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"axx" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axy" = (/obj/structure/bed/chair{dir = 8},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axz" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"axB" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"axC" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"axD" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axE" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/centcom/specops)
-"axF" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axG" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/centcom/specops)
-"axH" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"axI" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom)
-"axJ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
-"axK" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"axL" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axM" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"axN" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
-"axO" = (/obj/structure/table/rack,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axP" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axQ" = (/obj/structure/table/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axR" = (/obj/structure/table/rack,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axS" = (/obj/structure/table/rack,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axT" = (/obj/structure/table/rack,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axU" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axV" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"axW" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
-"axX" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom)
-"axY" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"axZ" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aya" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
-"ayc" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
-"ayd" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aye" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayf" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"ayg" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"ayh" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"ayi" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayj" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayk" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
-"ayl" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
-"aym" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayn" = (/obj/structure/table/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayo" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayp" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayq" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
-"ayr" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ays" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayt" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"ayu" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
-"ayv" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
-"ayw" = (/obj/item/device/radio/electropack,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
-"ayx" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 0; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayy" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayA" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayC" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"ayD" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayE" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayF" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayG" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayH" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ayI" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayJ" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayK" = (/obj/item/weapon/flame/lighter/zippo,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayL" = (/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayM" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayN" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayO" = (/obj/item/stack/material/glass{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayP" = (/obj/item/stack/material/steel{amount = 50},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"ayQ" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"ayR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"ayS" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
-"ayT" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/syndicate_station/start)
-"ayU" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayV" = (/obj/machinery/door/window{tag = "icon-right"; name = "Seating"; icon_state = "right"; dir = 2; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayW" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayX" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayY" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"ayZ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aza" = (/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azb" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azc" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azd" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aze" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/administration/centcom)
-"azf" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom)
-"azg" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azh" = (/obj/item/weapon/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azi" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azj" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azk" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azl" = (/obj/machinery/robotic_fabricator,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azm" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Thunderdome Autolathe"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azn" = (/obj/structure/dispenser,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azo" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azp" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azq" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVend"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azr" = (/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)
-"azs" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azt" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
-"azu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
-"azv" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azw" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azx" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azy" = (/obj/structure/table/rack,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azz" = (/obj/structure/table/rack,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azA" = (/obj/structure/table/rack,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azB" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
-"azC" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azD" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/space,/area/shuttle/administration/centcom)
-"azE" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"azF" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/stamp/chameleon,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"azG" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"azH" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/card/id/centcom,/obj/item/weapon/card/id/syndicate,/obj/item/weapon/card/id,/obj/item/weapon/card/id/gold,/obj/item/weapon/card/id/silver,/obj/item/device/pda/captain,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"azI" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azJ" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azK" = (/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azL" = (/mob/living/simple_animal/cat/kitten{name = "Enola"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azM" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azN" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azO" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azP" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azQ" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"azR" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"azS" = (/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azT" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"azU" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/shuttle/plating,/area/shuttle/administration/centcom)
-"azV" = (/turf/unsimulated/wall,/area/centcom/suppy)
-"azW" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azX" = (/obj/machinery/door/window{dir = 4; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azY" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"azZ" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAa" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aAb" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aAc" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/suppy)
-"aAd" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy)
-"aAe" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAf" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAg" = (/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAh" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAi" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAj" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAk" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAl" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAm" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Administration"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aAn" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/supply/dock)
-"aAo" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/supply/dock)
-"aAp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/supply/dock)
-"aAq" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAr" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/supply/dock)
-"aAs" = (/turf/simulated/shuttle/floor,/area/supply/dock)
-"aAt" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAu" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAv" = (/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAw" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAx" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAy" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAz" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAA" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAB" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAC" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAD" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAE" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/terminal)
-"aAF" = (/turf/unsimulated/wall,/area/centcom/terminal)
-"aAG" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "CREED"; name = "Ready Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aAH" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
-"aAI" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aAJ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle_bay"; name = "shuttle bay controller"; pixel_x = 25; pixel_y = 0; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aAK" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aAL" = (/obj/structure/table/reinforced,/obj/machinery/librarycomp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aAM" = (/obj/structure/bookcase,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aAN" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aAO" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aAP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aAQ" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aAR" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAS" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aAT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aAU" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aAV" = (/obj/structure/table/rack,/obj/item/weapon/rig/merc/empty,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"aAW" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal)
-"aAX" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal)
-"aAY" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aAZ" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aBa" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aBb" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aBc" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aBd" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
-"aBe" = (/obj/machinery/door/window/northright{icon_state = "right"; dir = 2},/obj/machinery/light{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBf" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBg" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBh" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBi" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aBj" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aBk" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock)
-"aBl" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aBm" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBn" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBo" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBp" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBq" = (/obj/item/weapon/stool/padded,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBr" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/frags,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBs" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aBt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/unsimulated/wall,/area/centcom/terminal)
-"aBu" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aBv" = (/obj/machinery/light{dir = 8},/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom)
-"aBw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aBx" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aBy" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBz" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBA" = (/obj/structure/table/standard,/obj/item/device/aicard,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aBC" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBD" = (/obj/machinery/chem_master,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBE" = (/obj/machinery/chemical_dispenser/ert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom)
-"aBF" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aBG" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBI" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBJ" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBK" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBL" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_x = 0; pixel_y = -25; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBM" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBN" = (/turf/unsimulated/wall,/area/centcom/security)
-"aBO" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aBP" = (/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aBQ" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aBR" = (/obj/structure/table/standard,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aBS" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/cautery,/obj/item/weapon/surgical/retractor,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBT" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/weapon/surgical/hemostat,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBV" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBW" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aBX" = (/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBY" = (/obj/structure/sign/securearea{name = "\improper CAUTION"; pixel_x = 32},/obj/machinery/light{dir = 4},/obj/structure/mopbucket,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aBZ" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCa" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
-"aCb" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCc" = (/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCd" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/security)
-"aCe" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCf" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCg" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCh" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aCi" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aCj" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aCk" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aCl" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aCm" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command)
-"aCn" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCo" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCp" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock)
-"aCq" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock)
-"aCr" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aCs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aCt" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCu" = (/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCv" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCw" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCx" = (/obj/machinery/door/airlock/external,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aCy" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aCz" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aCA" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCB" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCC" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCD" = (/obj/machinery/door/airlock/glass{name = "Brig Dormitories"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCE" = (/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCF" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aCG" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aCH" = (/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aCI" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aCJ" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCK" = (/obj/structure/bed/chair/comfy/teal,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCL" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCM" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCN" = (/obj/structure/closet/secure_closet/personal,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aCO" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aCP" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aCQ" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start)
-"aCR" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_station/start)
-"aCS" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCT" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start)
-"aCU" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCV" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCW" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCX" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCY" = (/obj/effect/floor_decal/corner/orange,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aCZ" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDa" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDb" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDc" = (/obj/structure/table/rack,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDd" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDe" = (/obj/structure/bed/chair/comfy/teal{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aDf" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/bananapeel,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aDg" = (/obj/structure/bed/chair/comfy/teal{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aDh" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aDi" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/supply/dock)
-"aDj" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 2},/area/supply/dock)
-"aDk" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/supply/dock)
-"aDl" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/supply/dock)
-"aDm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_station/start)
-"aDn" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_station/start)
-"aDo" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_station/start)
-"aDp" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDq" = (/obj/structure/device/piano{dir = 4},/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDr" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
-"aDs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/supply/dock)
-"aDt" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/supply/dock)
-"aDu" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/supply/dock)
-"aDv" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/supply/dock)
-"aDw" = (/obj/structure/table/reinforced,/obj/item/weapon/material/minihoe,/obj/item/device/analyzer/plant_analyzer,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDx" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDy" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/pill_bottle/dice,/obj/item/weapon/deck/cards,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDz" = (/obj/effect/floor_decal/corner/orange{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDA" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_y = 15; req_access = list(11); id = "CREED"},/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = 0; req_access = list(11); id = "ASSAULT"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDB" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDC" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDD" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command)
-"aDE" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/supply/dock)
-"aDF" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/supply/dock)
-"aDG" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/space,/area/supply/dock)
-"aDH" = (/obj/structure/table/reinforced,/obj/item/clothing/head/greenbandana,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDI" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDJ" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
-"aDK" = (/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -6},/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDL" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/orange/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDM" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDN" = (/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDO" = (/obj/effect/floor_decal/corner/orange{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aDP" = (/turf/unsimulated/wall,/area/centcom/restaurant)
-"aDQ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/storage/briefcase,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aDR" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDS" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDT" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDU" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDV" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDW" = (/mob/living/silicon/decoy{name = "A.L.I.C.E."},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDX" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aDY" = (/turf/unsimulated/floor{icon_state = "steel"},/area/space)
-"aDZ" = (/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEa" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEb" = (/obj/machinery/computer/arcade/orion_trail,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEc" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aEd" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aEe" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aEf" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEg" = (/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEh" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEi" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/glasses/square,/obj/item/weapon/storage/box/glasses/square,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEj" = (/obj/structure/bed/chair/comfy/teal{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aEk" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
-"aEl" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEm" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEn" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1443; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEo" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEq" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEr" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEs" = (/obj/effect/floor_decal/corner/orange{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEt" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEu" = (/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "detectives camera"; pictures_left = 30; pixel_x = 2; pixel_y = 3},/obj/effect/floor_decal/corner/red/full{dir = 8},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEv" = (/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEw" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEx" = (/obj/structure/closet{name = "Evidence Closet"},/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEy" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aEz" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEA" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEB" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEC" = (/obj/machinery/door/airlock/glass_security{name = "Spaceport Security Airlock"; req_access = list(63)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aED" = (/obj/structure/table/reinforced,/obj/machinery/microwave,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEE" = (/obj/item/weapon/storage/box/evidence,/obj/item/weapon/folder/red,/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEF" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aEG" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aEH" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEI" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEJ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEK" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aEL" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEM" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEN" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEO" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEP" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aEQ" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_s"},/area/shuttle/transport1/centcom)
-"aER" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/transport1/centcom)
-"aES" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/shuttle/transport1/centcom)
-"aET" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
-"aEU" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
-"aEV" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
-"aEW" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/transport1/centcom)
-"aEX" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/transport1/centcom)
-"aEY" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle_bay"; name = "shuttle bay controller"; pixel_x = -24; pixel_y = 0; tag_door = "centcom_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aEZ" = (/obj/machinery/computer/arcade/battle,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFa" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFb" = (/obj/structure/table/reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 27; pixel_y = 0},/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFc" = (/obj/item/device/taperecorder,/obj/effect/floor_decal/corner/red/full,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFd" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFe" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aFf" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aFg" = (/obj/structure/table/marble,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aFh" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFi" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFj" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 8},/area/shuttle/transport1/centcom)
-"aFk" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFl" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "swall_f"},/area/shuttle/transport1/centcom)
-"aFm" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/transport1/centcom)
-"aFn" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFo" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFp" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/shuttle/transport1/centcom)
-"aFq" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/space,/area/shuttle/transport1/centcom)
-"aFr" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFs" = (/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFt" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFu" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
-"aFv" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cash_register/civilian{tag = "icon-register_idle (WEST)"; icon_state = "register_idle"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aFw" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aFx" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFy" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFz" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFA" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFB" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFC" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
-"aFD" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFE" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFF" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFG" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/shuttle/transport1/centcom)
-"aFH" = (/obj/machinery/door/airlock/external{frequency = 1380; glass = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_bay_door"; locked = 1; name = "Transport Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aFI" = (/obj/effect/floor_decal/corner/red{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFJ" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFK" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFL" = (/obj/machinery/door/airlock/glass_security{name = "Security Processing"; req_access = list(1)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aFM" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aFN" = (/obj/machinery/door/airlock/centcom{name = "Maintenance Access"; opacity = 1; req_access = list(106)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFO" = (/obj/machinery/computer/robotics,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aFP" = (/turf/unsimulated/wall,/area/centcom/main_hall)
-"aFQ" = (/turf/unsimulated/wall,/area/centcom/tram)
-"aFR" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/transport1/centcom)
-"aFS" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 2},/area/shuttle/transport1/centcom)
-"aFT" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle"; pixel_x = 0; pixel_y = -25; tag_door = "centcom_shuttle_hatch"},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFU" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/shuttle/transport1/centcom)
-"aFV" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFW" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"aFX" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/transport1/centcom)
-"aFY" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/transport1/centcom)
-"aFZ" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGa" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGb" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGc" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGd" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGe" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGf" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGg" = (/obj/structure/sign/securearea,/turf/unsimulated/wall,/area/centcom/command)
-"aGh" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGi" = (/obj/structure/sign/nosmoking_2,/turf/unsimulated/wall,/area/centcom/command)
-"aGj" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGk" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGl" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGn" = (/obj/machinery/gateway{dir = 9},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGo" = (/obj/machinery/gateway{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGp" = (/obj/machinery/gateway{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGq" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGr" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aGs" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aGt" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aGu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/transport1/centcom)
-"aGv" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/transport1/centcom)
-"aGw" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/transport1/centcom)
-"aGx" = (/obj/machinery/computer/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGy" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aGz" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/main_hall)
-"aGA" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGB" = (/obj/machinery/gateway{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGC" = (/obj/machinery/gateway/centerstation,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGD" = (/obj/machinery/gateway{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
-"aGF" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGG" = (/obj/machinery/turretid{pixel_x = -28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGH" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGI" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGJ" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGK" = (/obj/machinery/gateway{dir = 10},/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGL" = (/obj/machinery/gateway,/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGM" = (/obj/machinery/gateway{dir = 6},/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGN" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
-"aGO" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aGP" = (/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aGQ" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGR" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGS" = (/obj/machinery/computer/rdservercontrol{badmin = 1; name = "Master R&D Server Controller"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGT" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGU" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGV" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGW" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aGX" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGY" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aGZ" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aHa" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aHb" = (/obj/machinery/door/airlock/external,/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aHc" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHd" = (/obj/machinery/door/airlock/security{name = "Equipment Storage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHe" = (/obj/machinery/account_database{name = "CentComm Accounts database"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
-"aHf" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aHg" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHEAST)"; icon_state = "swall"; dir = 6},/area/centcom/tram)
-"aHh" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight (WEST)"; icon_state = "swall_straight"; dir = 8},/area/centcom/tram)
-"aHi" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHj" = (/turf/simulated/shuttle/wall{tag = "icon-swall (WEST)"; icon_state = "swall"; dir = 8},/area/centcom/tram)
-"aHk" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHl" = (/turf/simulated/shuttle/wall{tag = "icon-swall (EAST)"; icon_state = "swall"; dir = 4},/area/centcom/tram)
-"aHm" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHWEST)"; icon_state = "swall"; dir = 10},/area/centcom/tram)
-"aHn" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHo" = (/obj/effect/floor_decal/corner/white/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHp" = (/obj/effect/floor_decal/corner/white,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHq" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHr" = (/obj/effect/floor_decal/corner/white{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHs" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHt" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHu" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/centcom/tram)
-"aHv" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHw" = (/obj/structure/bed/chair,/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 28},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHx" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHy" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHz" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHEAST)"; icon_state = "swall"; dir = 5},/area/centcom/tram)
-"aHA" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHB" = (/obj/effect/floor_decal/corner/white{dir = 6; icon_state = "corner_white"; tag = "icon-corner_white (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHC" = (/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHD" = (/obj/effect/floor_decal/corner/white{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHE" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHF" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aHG" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aHH" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window2"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHI" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHJ" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aHK" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHL" = (/obj/effect/floor_decal/corner/white{tag = "icon-corner_white (NORTH)"; icon_state = "corner_white"; dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aHM" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHN" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aHO" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/restaurant)
-"aHP" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
-"aHQ" = (/obj/structure/flora/grass/brown,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aHR" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 4},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aHS" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aHT" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 8},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aHU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aHV" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aHW" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window1"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
-"aHX" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aHY" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aHZ" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIa" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIb" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIc" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{icon_state = "plant-06"; pixel_y = 8; tag = "icon-plant-06"},/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aId" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIe" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIg" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIh" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIi" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIj" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIk" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIl" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIm" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIn" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIo" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aIp" = (/obj/structure/flora/ausbushes/fernybush,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIq" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIr" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIs" = (/obj/machinery/turretid{pixel_x = -28; pixel_y = 0; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIt" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIu" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aIv" = (/obj/structure/bed/chair{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aIw" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
-"aIx" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIy" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIz" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
-"aIA" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIB" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIC" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aID" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aIE" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPortEast"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIF" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIG" = (/obj/machinery/door/window/northright,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aII" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIJ" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIK" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIL" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIM" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIN" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIP" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPortWest"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aIQ" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aIR" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aIS" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aIT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aIU" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIV" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIW" = (/obj/machinery/door/airlock/external,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aIX" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIY" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aIZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJa" = (/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJc" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aJd" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aJe" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJf" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aJg" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPortEast"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aJh" = (/obj/machinery/door/blast/regular{id = "CentComPortEast"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/tram)
-"aJi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
-"aJj" = (/obj/machinery/door/window/eastright,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJk" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aJl" = (/obj/machinery/door/window/westright,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJm" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJn" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJo" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aJp" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJq" = (/obj/structure/bed/chair/office/light,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJr" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJs" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJt" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJu" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJv" = (/obj/machinery/door/window/southleft,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJx" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJy" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJz" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJA" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJB" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJC" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aJF" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJG" = (/obj/structure/window/reinforced,/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
-"aJI" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJJ" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJK" = (/turf/unsimulated/wall,/area/centcom/medical)
-"aJL" = (/obj/machinery/door/airlock/glass_medical{name = "Arrivals Medbay"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aJM" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/medical)
-"aJN" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJO" = (/obj/structure/flora/grass/brown,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJP" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJQ" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aJR" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJS" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJT" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJU" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJV" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aJW" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/corner/green{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aJX" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aJY" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aJZ" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKa" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKb" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKc" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKd" = (/obj/structure/table/standard,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/effect/floor_decal/corner/beige/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKe" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKf" = (/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKg" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKh" = (/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aKi" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aKj" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aKk" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aKl" = (/obj/structure/flora/bush,/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
-"aKm" = (/obj/effect/floor_decal/corner/white{dir = 9; icon_state = "corner_white"; tag = "icon-corner_white (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aKn" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKo" = (/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKp" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKq" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKr" = (/turf/unsimulated/wall,/area/centcom/bar)
-"aKs" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/bar)
-"aKt" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aKu" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
-"aKv" = (/turf/unsimulated/wall,/area/centcom/bathroom)
-"aKw" = (/obj/machinery/door/airlock,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
-"aKx" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s (EAST)"; icon_state = "swall_s"; dir = 4},/area/shuttle/escape/centcom)
-"aKy" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aKz" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aKA" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aKB" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s"; icon_state = "swall_s"},/area/shuttle/escape/centcom)
-"aKC" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKD" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKE" = (/obj/structure/closet/secure_closet/chemical,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKF" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKG" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aKH" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aKI" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
-"aKJ" = (/obj/structure/closet/secure_closet/personal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
-"aKK" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
-"aKL" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aKM" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aKN" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/shuttle/escape/centcom)
-"aKO" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aKP" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aKQ" = (/obj/machinery/computer/shuttle_control/emergency,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aKR" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aKS" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aKT" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHEAST)"; icon_state = "swall"; dir = 5},/area/shuttle/escape/centcom)
-"aKU" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKV" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aKW" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge West"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aKX" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aKY" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aKZ" = (/obj/machinery/status_display{pixel_y = 30},/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge East"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLa" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLb" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLc" = (/obj/effect/floor_decal/corner/beige{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLd" = (/obj/effect/floor_decal/corner/beige,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLe" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLf" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLg" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/amanita_pie,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLh" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLi" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLj" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLk" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLl" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
-"aLm" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aLn" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 0; pixel_y = -25; req_one_access = list(13); tag_door = "escape_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLo" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLp" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLq" = (/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLr" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/inaprovaline,/turf/unsimulated/wall,/area/centcom/medical)
-"aLs" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/boiledrice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLt" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/beetsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLu" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLv" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/soylenviridians,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLw" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aLx" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aLy" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aLz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight"; icon_state = "swall_straight"},/area/shuttle/escape/centcom)
-"aLA" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLB" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aLC" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aLD" = (/turf/simulated/shuttle/wall{tag = "icon-swall"; icon_state = "swall"},/area/shuttle/escape/centcom)
-"aLE" = (/obj/structure/AIcore/deactivated,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLF" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aLG" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aLH" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLI" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLJ" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLK" = (/obj/machinery/smartfridge/chemistry,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLL" = (/obj/structure/closet/secure_closet/medical3,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLM" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access = list(19)},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aLN" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHEAST)"; icon_state = "swall"; dir = 6},/area/shuttle/escape/centcom)
-"aLO" = (/turf/simulated/shuttle/wall{tag = "icon-swall_t"; icon_state = "swall_t"},/area/shuttle/escape/centcom)
-"aLP" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight (EAST)"; icon_state = "swall_straight"; dir = 4},/area/shuttle/escape/centcom)
-"aLQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHWEST)"; icon_state = "swall"; dir = 10},/area/shuttle/escape/centcom)
-"aLR" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = newlist()},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLS" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLT" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLU" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLV" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLW" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLX" = (/obj/structure/closet/secure_closet/medical3,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aLY" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aLZ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMa" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/poppypretzel,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMb" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMc" = (/obj/machinery/atm{pixel_x = -30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aMd" = (/obj/machinery/atm{pixel_x = 30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
-"aMe" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMf" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/camera/network/crescent{c_tag = "Shuttle Cell"},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMg" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMh" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aMi" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aMj" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aMk" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aMl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/spesslaw,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMm" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMn" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMo" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMp" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMq" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMr" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMs" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMt" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMu" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
-"aMv" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aMw" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMx" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMy" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMz" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aMA" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aMB" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMC" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aMD" = (/turf/unsimulated/wall,/area/tdome)
-"aME" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/tdome)
-"aMF" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aMG" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMH" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMI" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMJ" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMK" = (/obj/machinery/door/airlock{name = "Unit 5"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aML" = (/obj/machinery/door/airlock{name = "Unit 6"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMM" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/escape/centcom)
-"aMN" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aMO" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 5},/area/shuttle/escape/centcom)
-"aMP" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access = list(1)},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"aMQ" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 9},/area/shuttle/escape/centcom)
-"aMR" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar East"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMS" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
-"aMT" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aMU" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/drinks/glass2/square,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aMV" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/cash_register/civilian,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aMW" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aMX" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aMY" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aMZ" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aNa" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_airlock"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
-"aNb" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aNc" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aNd" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Center"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aNe" = (/obj/machinery/vending/medical,/turf/unsimulated/wall,/area/centcom/medical)
-"aNf" = (/obj/machinery/vending/medical,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNg" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/BMinus,/obj/item/weapon/reagent_containers/blood/BPlus,/obj/item/weapon/reagent_containers/blood/OPlus,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNh" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNi" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNj" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNk" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNl" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/accessory/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNm" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNn" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aNo" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aNp" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aNq" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aNr" = (/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aNs" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNt" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNu" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNv" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNw" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNx" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNy" = (/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNz" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -30},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNA" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNB" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNC" = (/obj/structure/curtain/open/shower,/obj/machinery/shower,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aND" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aNE" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle West"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aNF" = (/obj/structure/bed/chair{dir = 8},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle East"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aNG" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNH" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNI" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNJ" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNK" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNL" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNM" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
-"aNN" = (/obj/structure/closet/secure_closet/bar{req_access = list(25)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNP" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNQ" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
-"aNR" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
-"aNS" = (/obj/structure/window/shuttle{icon_state = "window3"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"aNT" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNU" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNV" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNX" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNY" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aNZ" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
-"aOa" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_dock"; name = "docking port controller"; pixel_x = 25; pixel_y = 0; req_one_access = list(13); tag_door = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
-"aOb" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOc" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/toxin,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOe" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOf" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOg" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOh" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aOi" = (/obj/structure/bed/roller,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = -32},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOj" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOk" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOl" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/o2,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOm" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/wrench,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOn" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOo" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOp" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOq" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOr" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOs" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aOt" = (/obj/structure/bed/chair{dir = 4},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aOu" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aOv" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOx" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aOy" = (/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aOz" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aOA" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome)
-"aOB" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOC" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access = list(5)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOD" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOE" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOF" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOG" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOH" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOI" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOJ" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOK" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOL" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOM" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aON" = (/obj/machinery/status_display{pixel_y = -30},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"aOO" = (/obj/item/weapon/autopsy_scanner,/obj/item/weapon/surgical/scalpel,/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOP" = (/obj/machinery/door/airlock/medical{name = "Observation Room"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOQ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOR" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOS" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6,5)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOT" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOU" = (/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = 7},/obj/item/weapon/paper_bin{pixel_y = -6},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = -9},/obj/item/weapon/pen/blue{pixel_x = 3; pixel_y = -5},/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aOV" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aOW" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aOX" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOY" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aOZ" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aPa" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/shuttle/escape/centcom)
-"aPb" = (/obj/machinery/door/airlock/glass_mining{name = "Shuttle Cargo"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPc" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/escape/centcom)
-"aPd" = (/obj/machinery/door/airlock/glass_medical{name = "Escape Shuttle Infirmary"; req_access = list(5)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPe" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/shuttle/escape/centcom)
-"aPf" = (/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPg" = (/obj/effect/floor_decal/corner/pink{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPh" = (/obj/effect/floor_decal/corner/pink{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPi" = (/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPj" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPk" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPl" = (/obj/machinery/clonepod,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPm" = (/obj/machinery/computer/cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPn" = (/obj/machinery/dna_scannernew,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPo" = (/obj/structure/closet/wardrobe/white,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPp" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/medical_cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPq" = (/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/box/bodybags,/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPr" = (/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPs" = (/obj/structure/table/standard,/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/medical/advanced/bruise_pack,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPt" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aPu" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aPv" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
-"aPw" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aPx" = (/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aPy" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aPz" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPA" = (/obj/structure/closet/hydrant{pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPB" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPC" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPD" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPF" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPG" = (/obj/structure/closet/hydrant{pixel_x = -30; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPH" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPI" = (/obj/effect/floor_decal/corner/pink,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPJ" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPK" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPL" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPM" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPN" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
-"aPO" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aPP" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/camera/network/crescent{c_tag = "Shuttle Medical"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPQ" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPR" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aPS" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPT" = (/obj/machinery/disease2/incubator,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPU" = (/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/dropper,/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{pixel_x = 0; pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPV" = (/obj/machinery/disease2/isolator,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPW" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPX" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPY" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aPZ" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQa" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQb" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aQc" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aQd" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQe" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/camera/network/crescent{c_tag = "Shuttle West Storage"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aQf" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aQg" = (/obj/machinery/iv_drip,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQh" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQi" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQj" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQk" = (/obj/machinery/recharge_station,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aQl" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/crescent{c_tag = "Shuttle East Storage"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape/centcom)
-"aQm" = (/obj/structure/table/standard,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/scalpel,/obj/effect/floor_decal/corner/pink{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQn" = (/obj/structure/table/standard,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/circular_saw,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQo" = (/obj/structure/table/standard,/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/stack/nanopaste,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQp" = (/obj/machinery/door/blast/regular{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQq" = (/obj/machinery/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aQr" = (/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aQs" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aQt" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/escape/centcom)
-"aQu" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQv" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQw" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQx" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"aQy" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQz" = (/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQA" = (/obj/machinery/door/airlock/glass_medical{name = "Virology Laboratory"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQB" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQC" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQD" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
-"aQE" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQF" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
-"aQG" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aQH" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/shuttle/escape/centcom)
-"aQI" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom)
-"aQJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/shuttle/escape/centcom)
-"aQK" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/shuttle/escape/centcom)
-"aQL" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aQM" = (/obj/machinery/computer/operating,/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQN" = (/obj/machinery/computer/centrifuge,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQQ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
-"aQR" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
-"aQS" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQT" = (/obj/machinery/smartfridge/chemistry/virology,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQU" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQW" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQX" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQY" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aQZ" = (/obj/machinery/computer/arcade,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRa" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRb" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRc" = (/obj/effect/landmark{name = "tdome2"},/obj/machinery/camera/network/thunder{c_tag = "Thunderdome - Red Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
-"aRd" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRe" = (/obj/effect/landmark{name = "tdome1"},/obj/machinery/camera/network/thunder{c_tag = "Green Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
-"aRf" = (/obj/structure/closet/secure_closet/medical2,/obj/effect/floor_decal/corner/pink/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRg" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRh" = (/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRi" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRj" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRk" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRl" = (/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/masks,/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRm" = (/obj/machinery/disease2/diseaseanalyser,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRn" = (/obj/machinery/computer/diseasesplicer,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRo" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
-"aRp" = (/obj/machinery/atmospherics/pipe/vent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRq" = (/obj/machinery/camera/network/thunder{c_tag = "Thunderdome Arena"; invisibility = 101},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRr" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRs" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRt" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRu" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRv" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aRw" = (/obj/machinery/door/blast/regular{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aRx" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aRy" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRz" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
-"aRA" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
-"aRB" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/terminal)
-"aRC" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRD" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRE" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRF" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRG" = (/obj/structure/bed/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRH" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRI" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent{pixel_x = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRJ" = (/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRK" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRL" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome)
-"aRM" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRN" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRO" = (/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRP" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRQ" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRR" = (/obj/machinery/computer/pod{id = "thunderdomehea"; name = "Thunderdome Heavy Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRS" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRT" = (/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRU" = (/obj/structure/table/standard,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRV" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRW" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRX" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRY" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
-"aRZ" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach)
-"aSa" = (/turf/unsimulated/beach/sand,/area/beach)
-"aSb" = (/obj/structure/signpost,/turf/unsimulated/beach/sand,/area/beach)
-"aSc" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach)
-"aSd" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach)
-"aSe" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach)
-"aSf" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach)
-"aSg" = (/turf/space,/area/shuttle/cryo/centcom)
-"aSh" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach)
-"aSi" = (/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach)
-"aSj" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_s"},/area/centcom/evac)
-"aSk" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/evac)
-"aSl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/centcom/evac)
-"aSm" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/centcom/evac)
-"aSn" = (/obj/structure/table/standard,/obj,/obj,/obj,/obj,/obj,/obj,/obj,/turf/unsimulated/beach/sand,/area/beach)
-"aSo" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach)
-"aSp" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s (EAST)"; icon_state = "swall_s"; dir = 4},/area/centcom/evac)
-"aSq" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/centcom/evac)
-"aSr" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/centcom/evac)
-"aSs" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/centcom/evac)
-"aSt" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aSu" = (/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod2/centcom)
-"aSv" = (/obj/machinery/clonepod,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSw" = (/obj/machinery/computer/cloning,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSx" = (/obj/machinery/dna_scannernew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSy" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSz" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSA" = (/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSB" = (/obj/structure/table/standard,/obj/item/weapon/surgical/circular_saw{pixel_y = 8},/obj/item/weapon/surgical/hemostat,/obj/item/weapon/surgical/scalpel,/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aSC" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/centcom/evac)
-"aSD" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/beach/sand,/area/beach)
-"aSE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach)
-"aSF" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach)
-"aSG" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/space,/area/centcom/evac)
-"aSH" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/centcom/evac)
-"aSI" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aSJ" = (/obj/machinery/vending/engineering,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aSK" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/centcom)
-"aSL" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/centcom)
-"aSM" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/shuttle/cryo/centcom)
-"aSN" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/centcom/evac)
-"aSO" = (/turf/simulated/shuttle/wall,/area/centcom/evac)
-"aSP" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aSQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/centcom/evac)
-"aSR" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSS" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aST" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSU" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSV" = (/obj/machinery/computer/operating,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aSW" = (/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/space,/area/centcom/evac)
-"aSX" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aSY" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aSZ" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTa" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTb" = (/obj/machinery/optable,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTc" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTd" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTe" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTf" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTg" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTh" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTi" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTj" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTk" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTl" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTm" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTn" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/obj/item/toy/plushie/mouse{desc = "A plushie of a small fuzzy rodent."; name = "Woodrat"},/turf/unsimulated/beach/sand,/area/beach)
-"aTo" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach)
-"aTp" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach)
-"aTq" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/space,/area/centcom/evac)
-"aTr" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 02"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTs" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTt" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach)
-"aTu" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aTv" = (/turf/simulated/shuttle/wall{tag = "icon-swall_t"; icon_state = "swall_t"},/area/centcom/evac)
-"aTw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 1"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTx" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 2"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTy" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cryostorage_shuttle_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock Cryostorage"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTz" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTA" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "large_escape_pod_2_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "large_escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTB" = (/obj/structure/bed/roller,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTC" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTD" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/bodybags,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac)
-"aTF" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/centcom/evac)
-"aTG" = (/turf/unsimulated/floor{icon_state = "sandwater"},/area/beach)
-"aTH" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/evac)
-"aTI" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_1_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTJ" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_2_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_2_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "cryostorage_shuttle_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "cryostorage_shuttle_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTL" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTM" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTN" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTO" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window4"},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aTP" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window8"},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aTQ" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"aTR" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window12"},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aTS" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTT" = (/obj/structure/table/standard,/obj/item/device/radio/off,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTU" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aTV" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach)
-"aTW" = (/turf/unsimulated/beach/coastline,/area/beach)
-"aTX" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aTY" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aTZ" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aUa" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUb" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUc" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUd" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window3"},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aUe" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach)
-"aUf" = (/turf/unsimulated/beach/water,/area/beach)
-"aUg" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUh" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUi" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUj" = (/obj/structure/table/standard,/obj/item/weapon/storage/lockbox,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUk" = (/obj/machinery/computer/station_alert,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUl" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_6_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_6_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_5_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_5_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUn" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_4_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_4_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUo" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUp" = (/obj/machinery/door/airlock/glass_security{name = "Security Processing"; req_access = list(1)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUq" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUr" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/stamp/captain,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUs" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aUt" = (/turf/unsimulated/wall,/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/centcom/evac)
-"aUv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_6_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 6"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 5"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUx" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_4_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 4"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUy" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 3"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUz" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUA" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "large_escape_pod_1_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "large_escape_pod_1_recovery_hatch"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aUB" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUC" = (/obj/structure/table/rack,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUD" = (/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUE" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUF" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUG" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUH" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/centcom/evac)
-"aUI" = (/turf/simulated/mineral,/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUJ" = (/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUK" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUL" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"; tag = "icon-spiderling"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUM" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod6/centcom)
-"aUN" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/space)
-"aUO" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/centcom)
-"aUP" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod4/centcom)
-"aUQ" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/centcom)
-"aUR" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 01"; req_access = list(13)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUS" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUT" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUU" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aUV" = (/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aUW" = (/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod1/centcom)
-"aUX" = (/obj/structure/closet{name = "Evidence Closet"},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUY" = (/obj/structure/closet/secure_closet/security,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aUZ" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVa" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aVb" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access = list(1)},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aVc" = (/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVd" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
-"aVe" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac)
-"aVf" = (/obj/item/weapon/tray{pixel_y = 5},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVg" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVh" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aVi" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"aVj" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket{amount_per_transfer_from_this = 50},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aVk" = (/obj/item/weapon/mop,/obj/structure/mopbucket,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aVl" = (/obj/structure/table/rack,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
-"aVm" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVn" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVo" = (/turf/simulated/shuttle/wall{icon_state = "swall_f"; dir = 4},/area/centcom/evac)
-"aVp" = (/obj/item/weapon/bedsheet/orange,/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVq" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVr" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVs" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVt" = (/obj/structure/urinal{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVu" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVv" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVw" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVx" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVy" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVz" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVA" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVB" = (/obj/item/clothing/head/xenos,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVC" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -28; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVD" = (/obj/item/clothing/mask/gas/swat{desc = "A close-fitting mask clearly not made for a human face."; name = "\improper alien mask"},/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVE" = (/obj/item/xenos_claw,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVF" = (/obj/structure/table/rack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVG" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVH" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVI" = (/obj/item/pizzabox/meat,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVJ" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVK" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVL" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVM" = (/obj/structure/table/rack,/obj/item/clothing/glasses/thermal/plain/monocle,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVN" = (/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVO" = (/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVP" = (/obj/item/organ/internal/stack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVQ" = (/obj/structure/bed/chair,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVU" = (/obj/machinery/computer/station_alert,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVV" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVW" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVX" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVY" = (/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aVZ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"})
-"aWa" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aWb" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"})
-"aWc" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aWd" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
-"aWe" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (SOUTHEAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 6},/area/wizard_station)
-"aWf" = (/turf/unsimulated/wall{tag = "icon-wall3_t (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_t"; dir = 1},/area/wizard_station)
-"aWg" = (/turf/unsimulated/wall{tag = "icon-wall3_straight (WEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_straight"; dir = 8},/area/wizard_station)
-"aWh" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aWi" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (SOUTHWEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 10},/area/wizard_station)
-"aWj" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (NORTHWEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 9},/area/wizard_station)
-"aWk" = (/turf/unsimulated/wall{tag = "icon-wall3_straight (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_straight"; dir = 1},/area/wizard_station)
-"aWl" = (/obj/machinery/chemical_dispenser/bar_soft/full,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWm" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine{pixel_x = -4; pixel_y = 10},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWn" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWo" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (NORTHEAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 5},/area/wizard_station)
-"aWp" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/skipjack_station/start)
-"aWq" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/skipjack_station/start)
-"aWr" = (/obj/machinery/computer/arcade/battle,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWs" = (/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWt" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWu" = (/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWv" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/toy/figure/ninja,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aWw" = (/obj/structure/bed,/obj/item/weapon/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aWx" = (/turf/simulated/wall/skipjack,/area/skipjack_station/start)
-"aWy" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start)
-"aWz" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northwest_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWD" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northeast_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWE" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start)
-"aWF" = (/obj/structure/bed/chair/wood/wings,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWG" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWH" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWI" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWJ" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aWK" = (/obj/structure/table/woodentable,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/ore/slag{desc = "Well at least Arthur doesn't have to share now..."; name = "pet rock"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aWL" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/obj/structure/bedsheetbin,/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
-"aWM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWN" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWO" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aWP" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aWQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aWR" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/wall/skipjack,/area/skipjack_station/start)
-"aWS" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_east_sensor"; pixel_x = -25},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWT" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aWU" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWV" = (/obj/structure/table/woodentable,/obj/item/device/radio/headset,/obj/item/weapon/spacecash/c500,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWW" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aWX" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 1},/area/wizard_station)
-"aWY" = (/obj/item/weapon/reagent_containers/food/snacks/spellburger{pixel_y = 8},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
-"aWZ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXa" = (/obj/structure/undies_wardrobe,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXb" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXc" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_west_vent"; tag_exterior_door = "vox_northwest_lock"; frequency = 1331; id_tag = "vox_west_control"; tag_interior_door = "vox_southwest_lock"; pixel_x = 24; req_access = list(150); tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "vox_west_vent"},/obj/machinery/light/small,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXd" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXe" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXf" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/glasses/thermal/plain/monocle,/obj/item/clothing/head/pirate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXg" = (/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXh" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_east_vent"; tag_exterior_door = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; tag_interior_door = "vox_southeast_lock"; pixel_x = -24; req_access = list(150); tag_chamber_sensor = "vox_east_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "vox_east_vent"},/obj/machinery/light/small,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXi" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXj" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXk" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXl" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXm" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXn" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXo" = (/obj/item/weapon/antag_spawner/technomancer_apprentice,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXp" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_southwest_lock"; locked = 0; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXq" = (/obj/structure/table/rack,/obj/item/weapon/rig/industrial,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXr" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXs" = (/obj/structure/table/rack,/obj/item/weapon/rig/light/hacker,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXt" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_southeast_lock"; locked = 0; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXu" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXv" = (/turf/unsimulated/wall{tag = "icon-wall3_wall"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"},/area/wizard_station)
-"aXw" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
-"aXx" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
-"aXy" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aXz" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXA" = (/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXB" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXC" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/material/harpoon,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/engineering,/obj/item/clothing/suit/space/void/engineering,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/rig/light/stealth,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXD" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXE" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/weapon/material/minihoe,/obj/item/weapon/beartrap,/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXF" = (/obj/machinery/vending/hydroseeds,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXG" = (/obj/structure/table/rack,/obj/item/weapon/melee/energy/sword/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXH" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/clothing/shoes/magboots,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXI" = (/obj/machinery/washing_machine,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXJ" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/clothing/gloves/yellow,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/card/emag,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXK" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/head/helmet/space/void/atmos,/obj/item/clothing/suit/space/void/atmos,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXL" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXM" = (/obj/structure/table/woodentable,/obj/machinery/librarycomp{pixel_y = 6},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXN" = (/obj/machinery/media/jukebox,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aXO" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
-"aXP" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aXQ" = (/mob/living/simple_animal/mouse/gray{desc = "He looks kingly."; name = "Arthur"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXR" = (/obj/structure/flora/pottedplant{tag = "icon-plant-24"; icon_state = "plant-24"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aXS" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXT" = (/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXU" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXV" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aXW" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXX" = (/obj/item/robot_parts/head,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aXY" = (/turf/unsimulated/wall{icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_t"},/area/wizard_station)
-"aXZ" = (/obj/machinery/photocopier,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aYa" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aYb" = (/obj/structure/flora/pottedplant{tag = "icon-plant-08"; icon_state = "plant-08"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"aYc" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (WEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 8},/area/wizard_station)
-"aYd" = (/turf/unsimulated/wall{tag = "icon-wall3_wall (EAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 4},/area/wizard_station)
-"aYe" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/weapon/staff/gentcane,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYf" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYg" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYh" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYj" = (/obj/item/robot_parts/l_leg,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYk" = (/turf/unsimulated/wall{tag = "icon-wall3_t (EAST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_t"; dir = 4},/area/wizard_station)
-"aYl" = (/obj/machinery/the_singularitygen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYm" = (/obj/machinery/crystal,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYn" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYo" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/arrow/quill,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYp" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/stock_parts/matter_bin/super,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYq" = (/turf/unsimulated/wall{tag = "icon-wall3_t (WEST)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_t"; dir = 8},/area/wizard_station)
-"aYr" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aYs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYt" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYu" = (/obj/machinery/floodlight,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYv" = (/obj/item/device/suit_cooling_unit,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYw" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/machinery/light/small{dir = 8},/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYx" = (/obj/structure/table/rack,/obj/item/weapon/grenade/empgrenade,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYy" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYz" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYA" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYB" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYC" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYD" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYE" = (/obj/machinery/computer/message_monitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYF" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYG" = (/obj/structure/table/steel_reinforced,/obj/item/stack/telecrystal,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYH" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYI" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYJ" = (/obj/structure/flora/pottedplant{tag = "icon-plant-04"; icon_state = "plant-04"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aYK" = (/obj/structure/sign/electricshock,/turf/unsimulated/wall{tag = "icon-wall3_wall (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3_wall"; dir = 1},/area/wizard_station)
-"aYL" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aYM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYN" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYO" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYP" = (/obj/structure/table/steel,/obj/item/clothing/glasses/regular,/obj/item/clothing/glasses/regular,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYQ" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aYR" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYS" = (/obj/item/weapon/wrench,/obj/item/weapon/mop,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYT" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/weapon/crowbar,/obj/item/device/suit_cooling_unit,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYU" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYV" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aYW" = (/turf/unsimulated/wall{tag = "icon-wall3"; icon = 'icons/turf/shuttle.dmi'; icon_state = "wall3"},/area/wizard_station)
-"aYX" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aYY" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aYZ" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aZa" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"aZb" = (/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"aZc" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aZd" = (/obj/structure/table/steel,/obj/item/weapon/deck/cards,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aZe" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aZf" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZg" = (/obj/machinery/light/small{dir = 1},/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZh" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZi" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aZj" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aZk" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aZl" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZm" = (/obj/machinery/computer/power_monitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZn" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZo" = (/obj/structure/table/steel_reinforced,/obj/item/device/mmi/radio_enabled,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZp" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZq" = (/obj/structure/flora/pottedplant{tag = "icon-plant-03"; icon_state = "plant-03"},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZr" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aZs" = (/obj/machinery/power/port_gen/pacman,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aZt" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/skipjack_station/start)
-"aZu" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
-"aZv" = (/obj/structure/table/steel,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aZw" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZx" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/skipjack_station/start)
-"aZy" = (/obj/structure/table/steel_reinforced,/obj/item/xenos_claw,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZz" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/coin/diamond,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZA" = (/obj/structure/table/steel_reinforced,/obj/item/broken_device,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZB" = (/obj/structure/table/steel_reinforced,/obj/item/organ/internal/stack,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZC" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"aZD" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/skipjack_station/start)
-"aZE" = (/obj/structure/table/standard,/obj/item/weapon/legcuffs,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"aZF" = (/obj/structure/table/standard,/obj/item/weapon/deck/cards,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"aZG" = (/obj/machinery/light/small,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"aZH" = (/obj/structure/table/standard,/obj/item/weapon/surgical/cautery,/obj/item/weapon/surgical/retractor,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZI" = (/obj/machinery/mecha_part_fabricator,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZJ" = (/obj/structure/table/steel_reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZK" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/ripley_build_and_repair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZL" = (/obj/item/device/suit_cooling_unit,/obj/structure/table/steel_reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZM" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/obj/item/target,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZN" = (/obj/item/target/syndicate,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZO" = (/obj/structure/table/steel_reinforced,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZP" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/table/steel_reinforced,/obj/item/weapon/gun/energy/laser/practice,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZQ" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZR" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel,/obj/item/weapon/surgical/FixOVein,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"aZS" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZT" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/engineering_hacking,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZU" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZV" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"aZW" = (/obj/effect/floor_decal/industrial/warning/corner{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZX" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/item/target,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"aZY" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"aZZ" = (/obj/item/weapon/bedsheet/rainbow,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"baa" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"bac" = (/obj/item/robot_parts/r_arm,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bad" = (/obj/item/robot_parts/l_leg,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bae" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/robotics_cyborgs,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"baf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"bag" = (/obj/machinery/power/emitter{anchored = 1; desc = "It is a heavy duty industrial laser used in a very non-industrial way."; name = "teleport defender"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"bah" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"bai" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baj" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bak" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bal" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"bam" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/skipjack_station/start)
-"ban" = (/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"bao" = (/obj/item/weapon/bedsheet/green,/obj/machinery/light/small{dir = 4},/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"bap" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"baq" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/machinery/light/small{dir = 4},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/skipjack_station/start)
-"bar" = (/obj/item/robot_parts/r_leg,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bas" = (/obj/item/robot_parts/chest,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bat" = (/obj/item/robot_parts/l_arm,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bau" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"bav" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baw" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bax" = (/obj/structure/target_stake,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"bay" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baz" = (/obj/item/weapon/bedsheet/rd,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"baA" = (/obj/item/pizzabox/meat,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"baB" = (/obj/item/weapon/bedsheet/clown,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/skipjack_station/start)
-"baC" = (/obj/structure/AIcore,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baD" = (/obj/structure/flora/pottedplant{icon_state = "plant-20"; tag = "icon-plant-22"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"baE" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baF" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baG" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baH" = (/obj/effect/decal/mecha_wreckage/phazon,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baI" = (/obj/item/robot_parts/head,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
-"baJ" = (/obj/item/weapon/firstaid_arm_assembly,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"baK" = (/obj/item/weapon/bucket_sensor,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baL" = (/obj/item/weapon/farmbot_arm_assembly,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"baM" = (/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
-"baN" = (/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baO" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baP" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baQ" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baR" = (/obj/structure/table/woodentable,/obj/item/clothing/shoes/workboots,/obj/item/clothing/under/technomancer,/obj/item/clothing/head/technomancer,/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/storage/box/syndie_kit/chameleon,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
-"baS" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"alA" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alB" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alC" = (/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"alD" = (/obj/structure/closet/crate/secure/weapon,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alE" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area/space)
+"alF" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns2,/area/space)
+"alG" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"alH" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"alI" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"alJ" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"alK" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alL" = (/obj/structure/table/steel_reinforced,/obj/machinery/newscaster{pixel_x = 32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alM" = (/obj/structure/toilet,/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alN" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alO" = (/obj/structure/mirror{pixel_x = 0; pixel_y = 28},/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alP" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{pixel_y = 3},/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alQ" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alR" = (/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"alS" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"alU" = (/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"alV" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"alW" = (/obj/machinery/light{dir = 4},/obj/structure/sign/kiddieplaque{desc = "A plaque commemorating the construction of the cargo ship Beruang."; name = "Beruang"; pixel_x = 32},/mob/living/simple_animal/corgi/tamaskan/spice,/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"alX" = (/obj/machinery/door/airlock/silver{name = "Toilet"},/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alY" = (/obj/machinery/door/airlock/silver{name = "Restroom"},/turf/simulated/shuttle/floor/white,/area/shuttle/trade/centcom)
+"alZ" = (/obj/structure/undies_wardrobe,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ama" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amb" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/largecrate/animal/cat,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amc" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/largecrate/animal/cow,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amd" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/closet/crate/freezer/rations,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ame" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/item/device/kit/paint/ripley/death,/obj/item/device/kit/paint/ripley/flames_blue,/obj/item/device/kit/paint/ripley/flames_red,/obj/item/device/kit/paint/ripley,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/closet/crate/secure/loot,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/largecrate/hoverpod,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amh" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/mecha/working/ripley/mining,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ami" = (/obj/machinery/door/window/westright{name = "Storefront"; req_access = list(160)},/obj/structure/table/marble,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "trade"; name = "Shop Shutters"; opacity = 0},/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"amj" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"amk" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"aml" = (/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"amm" = (/obj/machinery/computer/shuttle_control{name = "Beruang control console"; req_access = list(160); shuttle_tag = "Trade"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amn" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"amo" = (/obj/machinery/door/airlock/command{name = "Bridge"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amp" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amq" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/largecrate/animal/corgi,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amr" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/largecrate/animal/corgi,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ams" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/crate/internals,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amt" = (/obj/structure/table/rack,/obj/effect/floor_decal/industrial/warning,/obj/item/device/kit/paint/gygax/darkgygax,/obj/item/device/kit/paint/gygax/recitence,/obj/item/device/kit/paint/durand,/obj/item/device/kit/paint/durand/phazon,/obj/item/device/kit/paint/durand/seraph,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amu" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/closet/crate/secure/loot,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amv" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/largecrate/hoverpod,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amw" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/mecha/working/ripley/firefighter,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amx" = (/obj/machinery/door/window/westleft{name = "Storefront"; req_access = list(160)},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "trade"; name = "Shop Shutters"; opacity = 0},/obj/structure/table/marble,/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"amy" = (/obj/machinery/computer/arcade/battle,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amz" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{id = "tradebridgeshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(150)},/obj/structure/flora/pottedplant{icon_state = "plant-09"; name = "Esteban"; pixel_y = 8; tag = "icon-plant-09"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amA" = (/obj/machinery/vending/assist{contraband = null; name = "Old Vending Machine"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amB" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amC" = (/obj/machinery/vending/sovietsoda,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amD" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/soap,/obj/item/weapon/towel{color = "#0000FF"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amE" = (/obj/structure/sign/poster{pixel_y = -32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amF" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 2; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amG" = (/obj/machinery/door/window/westleft{name = "Storefront"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amH" = (/obj/machinery/button/remote/blast_door{id = "trade"; name = "Shop Shutters"; pixel_x = 0; pixel_y = -26},/turf/simulated/shuttle/floor/darkred,/area/shuttle/trade/centcom)
+"amI" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"amJ" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradebridgeshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"amK" = (/obj/machinery/vending/boozeomat{req_access = null},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amL" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amM" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amN" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"amO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amP" = (/obj/machinery/door/window/northleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amQ" = (/obj/structure/table/steel_reinforced,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amR" = (/obj/machinery/door/window/northright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amS" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/gloves/black,/obj/item/clothing/gloves/blue,/obj/item/clothing/gloves/brown,/obj/item/clothing/gloves/captain,/obj/item/clothing/gloves/combat,/obj/item/clothing/gloves/green,/obj/item/clothing/gloves/grey,/obj/item/clothing/gloves/light_brown,/obj/item/clothing/gloves/purple,/obj/item/clothing/gloves/rainbow,/obj/item/clothing/gloves/swat,/obj/item/clothing/gloves/white,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amT" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 2; start_pressure = 740.5},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amU" = (/obj/structure/closet/walllocker/emerglocker{pixel_y = 32},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amV" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"amW" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
+"amX" = (/turf/simulated/shuttle/wall/dark,/area/syndicate_mothership)
+"amY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
+"amZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
+"ana" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_mothership)
+"anb" = (/obj/machinery/button/remote/blast_door{id = "tradeportshutters"; name = "remote shutter control"; pixel_x = 30; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anc" = (/obj/structure/table/steel_reinforced,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/random/contraband,/obj/item/weapon/bikehorn,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"and" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ane" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ang" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/bowler,/obj/item/clothing/head/caphat/cap,/obj/item/clothing/head/beaverhat,/obj/item/clothing/head/beret/centcom,/obj/item/clothing/head/beret/sec,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/kitty,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/rabbitears,/obj/item/clothing/head/collectable/petehat,/obj/item/clothing/head/collectable/pirate,/obj/item/clothing/head/collectable/wizard,/obj/item/clothing/head/collectable/xenom,/obj/item/clothing/head/cowboy_hat,/obj/item/clothing/head/hairflower/violet,/obj/item/clothing/head/hairflower/blue,/obj/item/clothing/head/hairflower/orange,/obj/item/clothing/head/hairflower/pink,/obj/item/clothing/head/justice,/obj/item/clothing/head/justice/blue,/obj/item/clothing/head/justice/green,/obj/item/clothing/head/justice/pink,/obj/item/clothing/head/justice/yellow,/obj/item/clothing/head/philosopher_wig,/obj/item/clothing/head/plaguedoctorhat,/obj/item/clothing/head/xenos,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anh" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/meter,/obj/structure/largecrate/animal/cat,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ani" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space)
+"ank" = (/turf/simulated/shuttle/floor/red,/area/syndicate_mothership)
+"anl" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"anm" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"ann" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"ano" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"anp" = (/obj/structure/closet/wardrobe/captain,/obj/item/weapon/gun/projectile/revolver/mateba,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anq" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anr" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"ans" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"ant" = (/obj/machinery/photocopier,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"anu" = (/obj/structure/table/steel_reinforced,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/obj/random/action_figure,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anv" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade,/obj/item/weapon/lipstick/purple,/obj/item/weapon/lipstick,/obj/item/weapon/lipstick/random,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anw" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/webbing,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/scarf/white,/obj/item/clothing/accessory/scarf/lightblue,/obj/item/clothing/accessory/scarf/red,/obj/item/clothing/accessory/scarf/purple,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/accessory/armband/med,/obj/item/clothing/accessory/armband/engine,/obj/item/clothing/accessory/armband/cargo,/obj/item/clothing/accessory/armband,/obj/item/clothing/accessory/medal/nobel_science,/obj/item/clothing/accessory/medal/silver,/obj/item/clothing/accessory/medal/gold,/obj/item/clothing/accessory/medal/bronze_heart,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anx" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/under/cheongsam,/obj/item/clothing/under/hosformalmale,/obj/item/clothing/under/hosformalfem,/obj/item/clothing/under/harness,/obj/item/clothing/under/gladiator,/obj/item/clothing/under/ert,/obj/item/clothing/under/schoolgirl,/obj/item/clothing/under/redcoat,/obj/item/clothing/under/sexymime,/obj/item/clothing/under/sexyclown,/obj/item/clothing/under/soviet,/obj/item/clothing/under/space,/obj/item/clothing/under/stripper/mankini,/obj/item/clothing/under/suit_jacket/female,/obj/item/clothing/under/rank/psych/turtleneck,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/dress/sailordress,/obj/item/clothing/under/dress/redeveninggown,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/under/dress/blacktango,/obj/item/clothing/under/dress/blacktango/alt,/obj/item/clothing/under/dress/dress_orange,/obj/item/clothing/under/dress/janimaid,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"any" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/suit/hgpirate,/obj/item/clothing/suit/imperium_monk,/obj/item/clothing/suit/leathercoat,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/justice,/obj/item/clothing/suit/pirate,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anz" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/closet/crate/solar,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anA" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod6/transit)
+"anB" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod6/transit)
+"anC" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod6/transit)
+"anD" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod5/transit)
+"anE" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod5/transit)
+"anF" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod5/transit)
+"anG" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod4/transit)
+"anH" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod4/transit)
+"anI" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod4/transit)
+"anJ" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape_pod3/transit)
+"anK" = (/turf/space/transit/north/shuttlespace_ns14,/area/shuttle/escape_pod3/transit)
+"anL" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod3/transit)
+"anM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"anN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
+"anO" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
+"anP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
+"anQ" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"anR" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anS" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"anT" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"anU" = (/obj/structure/table/woodentable,/obj/item/device/laptop,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"anV" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"anW" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"anX" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "tradeportshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/shuttle/trade/centcom)
+"anY" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/atm{pixel_x = -32},/obj/machinery/meter,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"anZ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "trade2_control"; pixel_x = -22; pixel_y = -32; req_one_access = list(150)},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoa" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aob" = (/obj/structure/table/standard,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoc" = (/obj/structure/table/standard,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aod" = (/obj/structure/table/standard,/obj/item/stack/material/steel{amount = 2},/obj/item/stack/material/steel{amount = 2},/obj/item/stack/material/glass{amount = 15},/obj/item/stack/material/glass{amount = 15},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoe" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area/space)
+"aof" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
+"aog" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aoh" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aoi" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aoj" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aok" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aol" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aom" = (/obj/structure/table/glass,/obj/machinery/computer3/wall_comp/telescreen/entertainment{pixel_y = -35},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aon" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoo" = (/obj/machinery/light,/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"aop" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"aoq" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/carpet,/area/shuttle/trade/centcom)
+"aor" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_inner"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aos" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_inner"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aot" = (/obj/machinery/vending/engivend,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aou" = (/obj/machinery/vending/tool,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aov" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod6/transit)
+"aow" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod6/transit)
+"aox" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod6/transit)
+"aoy" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod5/transit)
+"aoz" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod5/transit)
+"aoA" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod5/transit)
+"aoB" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod4/transit)
+"aoC" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod4/transit)
+"aoD" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod4/transit)
+"aoE" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape_pod3/transit)
+"aoF" = (/turf/space/transit/north/shuttlespace_ns13,/area/shuttle/escape_pod3/transit)
+"aoG" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod3/transit)
+"aoH" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
+"aoI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"aoJ" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aoK" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aoL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "trade2_vent"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1331; id_tag = "trade2_control"; pixel_x = -24; req_access = list(150); tag_airpump = "trade2_vent"; tag_chamber_sensor = "trade2_sensor"; tag_exterior_door = "trade2_shuttle_outer"; tag_interior_door = "trade2_shuttle_inner"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoM" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "trade2_sensor"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "trade2_vent"},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"aoN" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod6/transit)
+"aoO" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod6/transit)
+"aoP" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod5/transit)
+"aoQ" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod5/transit)
+"aoR" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod5/transit)
+"aoS" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod4/transit)
+"aoT" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod4/transit)
+"aoU" = (/turf/space/transit/north/shuttlespace_ns1,/area/shuttle/escape_pod3/transit)
+"aoV" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod3/transit)
+"aoW" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod3/transit)
+"aoX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
+"aoY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
+"aoZ" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
+"apa" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"apb" = (/obj/structure/table/standard,/obj/item/weapon/folder,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"apc" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"apd" = (/obj/structure/closet/crate/freezer,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ape" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_outer"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"apf" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "trade2_control"; pixel_x = 24; req_one_access = list(150)},/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "trade2_shuttle_outer"; locked = 1; name = "Ship Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom)
+"apg" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod6/transit)
+"aph" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod5/transit)
+"api" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod5/transit)
+"apj" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod4/transit)
+"apk" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape_pod3/transit)
+"apl" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod3/transit)
+"apm" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"apn" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"apo" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"app" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"apq" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"apr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
+"aps" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"apt" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns8,/area/space)
+"apu" = (/turf/simulated/shuttle/plating,/area/syndicate_mothership)
+"apv" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
+"apw" = (/obj/machinery/door/airlock/centcom{name = "Barracks"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"apx" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"apy" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"apz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"apA" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"apB" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/syndicate_mothership)
+"apC" = (/turf/simulated/floor/wood,/area/syndicate_mothership)
+"apD" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/syndicate_mothership)
+"apE" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
+"apF" = (/turf/unsimulated/wall,/area/alien)
+"apG" = (/turf/simulated/shuttle/floor/white,/area/syndicate_mothership)
+"apH" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"apI" = (/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
+"apJ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apK" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apM" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apN" = (/obj/item/weapon/paper{info = "Some stuff is missing..."; name = "Insert alien artifacts here."},/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
+"apO" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
+"apP" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apQ" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apR" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apS" = (/obj/structure/closet/acloset,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
+"apT" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"apU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apV" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apW" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark{name = "ninjastart"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apX" = (/turf/space,/area/shuttle/alien/base)
+"apY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"apZ" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership)
+"aqa" = (/obj/structure/bed/alien,/turf/unsimulated/floor{icon_state = "dark"},/area/alien)
+"aqb" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_mothership)
+"aqc" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_mothership)
+"aqd" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_mothership)
+"aqe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqf" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqg" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqh" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqi" = (/turf/unsimulated/wall,/area)
+"aqj" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"aql" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"aqm" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqn" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqo" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqq" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_mothership{name = "\improper Ninja Base"})
+"aqr" = (/turf/simulated/mineral,/area/space)
+"aqs" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/centcom/specops)
+"aqt" = (/obj/effect/landmark/start,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area)
+"aqu" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqv" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqw" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqx" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqy" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqz" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqA" = (/obj/structure/table/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqB" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/gun/energy/ionrifle,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/item/weapon/gun/projectile/automatic/wt550,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqD" = (/obj/structure/table/rack,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/item/ammo_magazine/mc9mmt/rubber,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqE" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/launcher/grenade,/obj/item/weapon/gun/launcher/grenade,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqF" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/emps{pixel_x = 4; pixel_y = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/box/frags,/obj/item/weapon/storage/box/smokes,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqG" = (/obj/machinery/vending/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqH" = (/obj/structure/table/rack,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/rcd,/obj/item/rig_module/device/plasmacutter,/obj/item/rig_module/device/plasmacutter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqI" = (/obj/structure/table/rack,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/combat,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/chem_dispenser/injector,/obj/item/rig_module/device/healthscanner,/obj/item/rig_module/device/healthscanner,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqJ" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/egun,/obj/item/rig_module/mounted/egun,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqK" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Weapon Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqL" = (/obj/structure/sign/securearea,/turf/simulated/shuttle/wall/dark/hard_corner,/area/centcom/specops)
+"aqM" = (/obj/machinery/door/airlock/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqN" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqO" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/z8,/obj/item/weapon/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqP" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqQ" = (/obj/structure/table/rack,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/ammo_magazine/p90,/obj/item/weapon/gun/projectile/automatic/p90,/obj/item/weapon/gun/projectile/automatic/p90,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqR" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/weapon/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqS" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"aqT" = (/obj/structure/closet/crate,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqU" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Unlocked Autolathe"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqV" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/cdeathalarm_kit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqW" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqX" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aqY" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
+"aqZ" = (/obj/structure/lattice,/turf/space,/area/space)
+"ara" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arb" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arc" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ard" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"are" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/weapon/stamp/centcomm,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arf" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"arg" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"arh" = (/obj/structure/table/rack,/obj/item/device/lightreplacer,/obj/item/device/lightreplacer,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"ari" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arj" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor North"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"ark" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arl" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/shotgunammo,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arm" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arn" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/automatic/z8,/obj/item/weapon/gun/projectile/automatic/z8,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aro" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/ammo_magazine/a556,/obj/item/ammo_magazine/a556,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arp" = (/obj/machinery/deployable/barrier,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arq" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arr" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"ars" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"art" = (/turf/unsimulated/wall{icon = 'icons/misc/title.dmi'; icon_state = "title"},/area)
+"aru" = (/turf/unsimulated/wall,/area/centcom/specops)
+"arv" = (/obj/machinery/mech_recharger,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arw" = (/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arx" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashshells,/obj/item/weapon/storage/box/flashshells,/obj/item/weapon/storage/box/stunshells,/obj/item/weapon/storage/box/stunshells,/obj/item/weapon/storage/box/beanbags,/obj/item/weapon/storage/box/beanbags,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ary" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/handcuffs{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arz" = (/obj/structure/table/reinforced,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arA" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arB" = (/obj/structure/table/rack,/obj/item/rig_module/device/drill,/obj/item/rig_module/device/drill,/obj/item/rig_module/maneuvering_jets,/obj/item/rig_module/maneuvering_jets,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arC" = (/obj/structure/table/rack,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/obj/item/rig_module/mounted/taser,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arD" = (/obj/structure/table/rack,/obj/item/rig_module/grenade_launcher,/obj/item/rig_module/grenade_launcher,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/handcuffs,/obj/item/device/flash,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arF" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arG" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/hand_tele,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arH" = (/obj/structure/table/rack,/obj/item/weapon/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/glasses/science,/obj/item/weapon/storage/backpack/security,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/head/bio_hood/janitor,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/gloves/purple,/obj/item/clothing/glasses/science,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"arI" = (/obj/item/weapon/mop,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"arJ" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket{amount_per_transfer_from_this = 50},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"arK" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
+"arL" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arM" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT3"; name = "Launch Bay #3"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arN" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arO" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arP" = (/obj/structure/table/rack,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/taperoll/police,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arQ" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"arR" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"arS" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"arT" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
+"arU" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"arV" = (/obj/structure/table/rack,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arW" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arX" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/obj/item/clothing/accessory/holster/hip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arY" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/obj/item/clothing/accessory/holster/armpit,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"arZ" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asa" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asb" = (/obj/machinery/porta_turret{anchored = 0; check_records = 0; enabled = 0; req_one_access = list(103); use_power = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asc" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"asd" = (/obj/structure/closet/wardrobe/ert,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"ase" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"asf" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"asg" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"ash" = (/obj/item/weapon/bikehorn/rubberducky,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"asi" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/clothing/glasses/sunglasses/prescription,/obj/item/clothing/glasses/sunglasses/prescription,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"asj" = (/obj/structure/table/standard,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"ask" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"asl" = (/obj/mecha/medical/odysseus/loaded,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asm" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asn" = (/obj/structure/table/rack,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aso" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/rocket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asp" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/obj/item/weapon/rig/ert/assetprotection,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asq" = (/obj/structure/table/rack,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/obj/item/weapon/melee/energy/sword/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asr" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/xray,/obj/item/weapon/gun/energy/xray,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ass" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ast" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m/flash,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/obj/item/ammo_magazine/c45m,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asu" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/item/weapon/gun/projectile/sec,/obj/item/weapon/gun/projectile/sec,/obj/item/weapon/gun/projectile/sec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asv" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/obj/item/weapon/storage/belt/security/tactical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asw" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/obj/item/clothing/glasses/sunglasses/sechud/tactical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asx" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asy" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/security,/obj/item/weapon/rig/ert/security,/obj/item/weapon/rig/ert/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asz" = (/obj/structure/table/rack,/obj/item/rig_module/mounted,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asA" = (/obj/structure/table/reinforced,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asB" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
+"asC" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/window/reinforced/tinted,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"asD" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced/tinted,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"asE" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"asF" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"asG" = (/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"asH" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asI" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asJ" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asK" = (/obj/structure/table/reinforced,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asL" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"asM" = (/obj/machinery/door/airlock,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"asN" = (/obj/mecha/working/ripley/firefighter,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asP" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asQ" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asR" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asS" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/screwdriver,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asT" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donut,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asU" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asV" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT1"; name = "Launch Bay #1"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asW" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT1"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"asX" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asY" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"asZ" = (/obj/structure/table/reinforced,/obj/item/weapon/stamp/centcomm,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ata" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"atb" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"atc" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"atd" = (/obj/mecha/working/hoverpod,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"ate" = (/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"atf" = (/obj/effect/floor_decal/corner/yellow{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atg" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/centcom/specops)
+"ath" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"ati" = (/obj/structure/table/reinforced,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atj" = (/obj/structure/table/reinforced,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atk" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atl" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atm" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"atn" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
+"ato" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"atp" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"atq" = (/obj/structure/table/standard,/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"atr" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "ASSAULT0"; name = "Launch Bay #0"; p_open = 0},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"ats" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT0"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"att" = (/obj/item/mecha_parts/mecha_equipment/teleporter,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/item/mecha_parts/mecha_tracking,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"atu" = (/obj/machinery/vending/assist,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atv" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atw" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/engineer,/obj/item/weapon/rig/ert/engineer,/obj/item/weapon/rig/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atx" = (/obj/structure/closet/crate/medical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aty" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atz" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atA" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/autoinjectors,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/pillbottles,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atB" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atC" = (/obj/machinery/chem_master,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atD" = (/obj/structure/table/rack,/obj/item/weapon/rig/ert/medical,/obj/item/weapon/rig/ert/medical,/obj/item/weapon/rig/ert/medical,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atE" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atF" = (/obj/structure/table/reinforced,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/obj/item/weapon/cell/high,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"atH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"atI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"atJ" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/syndicate_mothership)
+"atK" = (/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"atL" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atM" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atN" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atO" = (/obj/structure/table/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atP" = (/obj/structure/table/rack,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atQ" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atR" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/outline/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atS" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_one_access = list(103); tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"atT" = (/obj/structure/closet/secure_closet/bar{req_access = list(25)},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"atU" = (/obj/structure/reagent_dispensers/beerkeg,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"atV" = (/obj/machinery/vending/boozeomat,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"atW" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"atX" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/glasses/square,/obj/item/weapon/storage/box/glasses/square,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"atY" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"atZ" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"aua" = (/turf/simulated/shuttle/wall/dark,/area/syndicate_station/start)
+"aub" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"auc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aud" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aue" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"auf" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"aug" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"auh" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"aui" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"auj" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"auk" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"aul" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"aum" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"aun" = (/obj/effect/landmark{name = "Nuclear-Code"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
+"auo" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
+"aup" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
+"auq" = (/obj/machinery/camera/network/ert{c_tag = "Assault Armor South"; dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"aur" = (/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"aus" = (/obj/item/mecha_parts/mecha_equipment/tool/extinguisher,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/weapon/pickaxe/diamonddrill,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"aut" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/obj/item/mecha_parts/mecha_equipment/tool/passenger,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/specops)
+"auu" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auv" = (/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/steel{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/plasteel{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/stack/material/glass/reinforced{amount = 50},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/briefcase/inflatable{pixel_x = 3; pixel_y = 3},/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auw" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aux" = (/obj/machinery/pipedispenser/orderable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auy" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auz" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"auA" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"auB" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"auC" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"auD" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"auE" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"auF" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"auG" = (/obj/structure/table/standard,/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"auH" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"auI" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"auJ" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"auK" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"auL" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auM" = (/obj/item/weapon/circuitboard/aiupload,/obj/item/weapon/circuitboard/borgupload,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset,/obj/item/weapon/aiModule/freeformcore,/obj/item/weapon/aiModule/protectStation,/obj/item/weapon/aiModule/quarantine,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/item/weapon/aiModule/safeguard,/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auN" = (/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/item/clothing/glasses/welding/superior,/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/welding/superior,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auO" = (/obj/machinery/pipedispenser/disposal/orderable,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auP" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auQ" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/hud/health{pixel_x = 4; pixel_y = 4},/obj/item/clothing/glasses/hud/health{pixel_x = 2; pixel_y = 2},/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auR" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auS" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/device/flash,/obj/item/device/flash,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"auT" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/specops/centcom)
+"auU" = (/turf/simulated/shuttle/wall/dark{join_group = "shuttle_ert"},/area/shuttle/specops/centcom)
+"auV" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "dark"},/area/shuttle/specops/centcom)
+"auW" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"auX" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"auY" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
+"auZ" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ava" = (/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avb" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avc" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avd" = (/obj/item/weapon/folder{pixel_y = 2},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"ave" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_y = 4},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avf" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avg" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"avh" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avi" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avj" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avk" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/obj/item/taperoll/engineering,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avl" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dylovene,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/dermaline,/obj/item/weapon/storage/pill_bottle/spaceacillin,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/obj/item/weapon/storage/pill_bottle/dexalin_plus,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/bodybags,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avn" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avo" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avp" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/specops/centcom)
+"avq" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating/airless,/area/shuttle/specops/centcom)
+"avr" = (/obj/machinery/computer/security/telescreen{desc = ""; name = "Spec. Ops. Monitor"; network = list("NETWORK_ERT"); pixel_y = 30},/obj/machinery/computer/shuttle_control/specops,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avs" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avt" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_port"; name = "port docking hatch controller"; pixel_x = 0; pixel_y = 25; tag_door = "specops_shuttle_port_hatch"},/obj/structure/bed/chair,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avu" = (/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avv" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avw" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 32},/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avx" = (/turf/simulated/shuttle/wall/dark{hard_corner = 1; join_group = "shuttle_ert"},/area/shuttle/specops/centcom)
+"avy" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"avz" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"avA" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avB" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avC" = (/obj/structure/frame/computer,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avD" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avE" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avF" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"avG" = (/obj/structure/reagent_dispensers/beerkeg/fakenuke,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"avH" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"avI" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership)
+"avJ" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avK" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avL" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"avM" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating/airless,/area/shuttle/specops/centcom)
+"avN" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avO" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_fore"; name = "forward docking hatch controller"; pixel_x = 0; pixel_y = -25; tag_door = "specops_shuttle_fore_hatch"},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avP" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_fore_hatch"; locked = 1; name = "Forward Docking Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom)
+"avQ" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/mob/living/simple_animal/corgi/puppy{name = "Bockscar"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"avR" = (/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avS" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avT" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"avU" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership)
+"avV" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avW" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"avX" = (/obj/machinery/computer/communications,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1443; listening = 1; name = "Spec Ops Intercom"; pixel_y = -28},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avY" = (/obj/machinery/computer/prisoner{name = "Implant Management"},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"avZ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"awa" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/shuttle/specops/centcom)
+"awb" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awc" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awd" = (/turf/unsimulated/wall,/area/centcom/command)
+"awe" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/command)
+"awf" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/syndicate_station/start)
+"awg" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awh" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"awi" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"awj" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"awk" = (/obj/machinery/shower{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"awl" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"awm" = (/obj/structure/table/rack,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"awn" = (/obj/machinery/shieldgen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awo" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awp" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awq" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awr" = (/obj/machinery/shieldwallgen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aws" = (/obj/machinery/power/emitter,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awt" = (/obj/structure/table/reinforced,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awu" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/fire,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awv" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/toxin,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"aww" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/adv{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awx" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/o2,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awy" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awz" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awA" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/specops/centcom)
+"awB" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awC" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awD" = (/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awE" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awF" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"awG" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
+"awH" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; pixel_y = 0; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awI" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awJ" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awK" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awL" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/ammo_magazine/mc9mm/flash,/obj/item/weapon/gun/projectile/pistol/flash,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"awN" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"awO" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"awP" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"awQ" = (/obj/machinery/shield_gen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awR" = (/obj/machinery/shield_capacitor,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awS" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/specops)
+"awT" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "CREED"; name = "Ready Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
+"awU" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awV" = (/obj/structure/bed/chair{dir = 8},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awW" = (/obj/structure/closet,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"awX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"awY" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"awZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"axa" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axb" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"axc" = (/turf/simulated/shuttle/wall/dark,/area/shuttle/administration/centcom)
+"axd" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
+"axe" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axf" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axg" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
+"axh" = (/obj/structure/table/rack,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axi" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axj" = (/obj/structure/table/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axk" = (/obj/structure/table/rack,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axl" = (/obj/structure/table/rack,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axm" = (/obj/structure/table/rack,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axn" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axo" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axp" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops)
+"axq" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall/dark,/area/shuttle/administration/centcom)
+"axr" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axs" = (/obj/machinery/vending/cigarette,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axt" = (/obj/machinery/microwave,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axu" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(101); tag_door = "admin_shuttle_hatch"},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
+"axv" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
+"axw" = (/obj/item/device/multitool,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axx" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/reinforced,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axy" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"axz" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"axA" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"axB" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axC" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axD" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
+"axE" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership)
+"axF" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axG" = (/obj/structure/table/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axH" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axI" = (/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axJ" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom)
+"axK" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axL" = (/obj/machinery/cell_charger,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"axM" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"axN" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor/black,/area/syndicate_station/start)
+"axO" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/black,/area/syndicate_station/start)
+"axP" = (/obj/item/device/radio/electropack,/turf/simulated/shuttle/floor/black,/area/syndicate_station/start)
+"axQ" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 0; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axR" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axS" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axT" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axU" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"axV" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"axW" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axX" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axY" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"axZ" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aya" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayb" = (/obj/machinery/door/window/northright,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayc" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayd" = (/obj/item/weapon/flame/lighter/zippo,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aye" = (/obj/item/weapon/storage/fancy/cigarettes,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayf" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayg" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayh" = (/obj/item/stack/material/glass{amount = 50},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayi" = (/obj/item/stack/material/steel{amount = 50},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayj" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"ayk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"ayl" = (/turf/simulated/shuttle/floor/black,/area/syndicate_station/start)
+"aym" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor/black,/area/syndicate_station/start)
+"ayn" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayo" = (/obj/machinery/door/window{tag = "icon-right"; name = "Seating"; icon_state = "right"; dir = 2; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayp" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayq" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayr" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ays" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayt" = (/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayu" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayv" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayw" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayx" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/administration/centcom)
+"ayy" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating/airless,/area/shuttle/administration/centcom)
+"ayz" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayA" = (/obj/item/weapon/stool,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayB" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayC" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayD" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayE" = (/obj/machinery/robotic_fabricator,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayF" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Thunderdome Autolathe"},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayG" = (/obj/structure/dispenser,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"ayH" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayI" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayJ" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVend"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayK" = (/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)
+"ayL" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"ayM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
+"ayN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/syndicate_mothership)
+"ayO" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayP" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayQ" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayR" = (/obj/structure/table/rack,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayS" = (/obj/structure/table/rack,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayT" = (/obj/structure/table/rack,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayU" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayV" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ayW" = (/turf/space,/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (WEST)"; icon_state = "propulsion_r"; dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/administration/centcom)
+"ayX" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/stamp/chameleon,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"ayY" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"ayZ" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/card/id/centcom,/obj/item/weapon/card/id/syndicate,/obj/item/weapon/card/id,/obj/item/weapon/card/id/gold,/obj/item/weapon/card/id/silver,/obj/item/device/pda/captain,/obj/item/device/pda/ert,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aza" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azb" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azc" = (/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azd" = (/mob/living/simple_animal/cat/kitten{name = "Enola"},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aze" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azf" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azg" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azh" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azi" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"azj" = (/obj/machinery/light,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azk" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azl" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/shuttle/plating,/area/shuttle/administration/centcom)
+"azm" = (/turf/unsimulated/wall,/area/centcom/suppy)
+"azn" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azo" = (/obj/machinery/door/window{dir = 4; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azp" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azq" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azr" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"azs" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azt" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/suppy)
+"azu" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy)
+"azv" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azw" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azx" = (/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azy" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azz" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azA" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azB" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azC" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azD" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Administration"},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azE" = (/turf/simulated/shuttle/wall,/area/supply/dock)
+"azF" = (/turf/simulated/shuttle/floor,/area/supply/dock)
+"azG" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"azH" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"azI" = (/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"azJ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"azK" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"azL" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azM" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azN" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azO" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azP" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azQ" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"azR" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/terminal)
+"azS" = (/turf/unsimulated/wall,/area/centcom/terminal)
+"azT" = (/obj/machinery/door/blast/regular{icon_state = "pdoor1"; id = "CREED"; name = "Ready Room"; p_open = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"azU" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
+"azV" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"azW" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle_bay"; name = "shuttle bay controller"; pixel_x = 25; pixel_y = 0; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"azX" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azY" = (/obj/structure/table/reinforced,/obj/machinery/librarycomp,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"azZ" = (/obj/structure/bookcase,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAa" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aAb" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aAc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAd" = (/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAe" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAf" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAh" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aAi" = (/obj/structure/table/rack,/obj/item/weapon/rig/merc/empty,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"aAj" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal)
+"aAk" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/terminal)
+"aAl" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aAm" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aAn" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aAo" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aAp" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aAq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
+"aAr" = (/obj/machinery/door/window/northright{icon_state = "right"; dir = 2},/obj/machinery/light{dir = 8},/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAs" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAt" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAu" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAv" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aAw" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock)
+"aAx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAy" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAz" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAA" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAB" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAC" = (/obj/item/weapon/stool/padded,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAD" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/frags,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/unsimulated/wall,/area/centcom/terminal)
+"aAG" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aAH" = (/obj/machinery/light{dir = 8},/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAI" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aAJ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAK" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAL" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAM" = (/obj/structure/table/standard,/obj/item/device/aicard,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aAO" = (/obj/machinery/vending/medical,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAP" = (/obj/machinery/chem_master,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAQ" = (/obj/machinery/chemical_dispenser/ert,/turf/simulated/shuttle/floor/red,/area/shuttle/administration/centcom)
+"aAR" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = 25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aAS" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAT" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aAU" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAV" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAW" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAX" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_x = 0; pixel_y = -25; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAY" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aAZ" = (/turf/unsimulated/wall,/area/centcom/security)
+"aBa" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(108)},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aBb" = (/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBc" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBd" = (/obj/structure/table/standard,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/cautery,/obj/item/weapon/surgical/retractor,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBf" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/weapon/surgical/hemostat,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBh" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBi" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBj" = (/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBk" = (/obj/structure/sign/securearea{name = "\improper CAUTION"; pixel_x = 32},/obj/machinery/light{dir = 4},/obj/structure/mopbucket,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBl" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBm" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"aBn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBo" = (/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBp" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/security)
+"aBq" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBr" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBs" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBt" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aBu" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aBv" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aBw" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBx" = (/obj/machinery/vending/cigarette,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBy" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command)
+"aBz" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBA" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBB" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/supply/dock)
+"aBC" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/plating,/area/supply/dock)
+"aBD" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBE" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aBF" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBG" = (/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBH" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBI" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aBJ" = (/obj/machinery/door/airlock/external,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aBK" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aBL" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aBM" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBN" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBO" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBP" = (/obj/machinery/door/airlock/glass{name = "Brig Dormitories"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBQ" = (/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aBR" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aBS" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBT" = (/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBU" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aBV" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBW" = (/obj/structure/bed/chair/comfy/teal,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBX" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBY" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aBZ" = (/obj/structure/closet/secure_closet/personal,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCa" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aCb" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aCc" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor/white,/area/syndicate_station/start)
+"aCd" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/syndicate_station/start)
+"aCe" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aCf" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start)
+"aCg" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCh" = (/obj/structure/table/reinforced,/obj/item/device/taperecorder,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCi" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCj" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCk" = (/obj/effect/floor_decal/corner/orange,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCl" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCm" = (/obj/structure/closet{name = "Prisoner's Locker"},/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCn" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCo" = (/obj/structure/table/rack,/obj/item/weapon/storage/secure/briefcase,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCp" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCq" = (/obj/structure/bed/chair/comfy/teal{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCr" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/bananapeel,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCs" = (/obj/structure/bed/chair/comfy/teal{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCt" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access = list(105)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCu" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_station/start)
+"aCv" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_station/start)
+"aCw" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_station/start)
+"aCx" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCy" = (/obj/structure/device/piano{dir = 4},/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCz" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command)
+"aCA" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/supply/dock)
+"aCB" = (/obj/structure/table/reinforced,/obj/item/weapon/material/minihoe,/obj/item/device/analyzer/plant_analyzer,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCC" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCD" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/pill_bottle/dice,/obj/item/weapon/deck/cards,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCE" = (/obj/effect/floor_decal/corner/orange{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCF" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/button/remote/blast_door{name = "Spec Ops Ready Room"; pixel_y = 15; req_access = list(11); id = "CREED"},/obj/machinery/button/remote/blast_door{name = "Mech Storage"; icon_state = "doorctrl0"; pixel_y = 0; req_access = list(11); id = "ASSAULT"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCG" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCH" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCI" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/command)
+"aCJ" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating/airless/carry{tag = "icon-platform (NORTH)"; icon_state = "platform"; dir = 1},/area/supply/dock)
+"aCK" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry{tag = "icon-platform (NORTH)"; icon_state = "platform"; dir = 1},/area/supply/dock)
+"aCL" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating/airless/carry{tag = "icon-platform (NORTH)"; icon_state = "platform"; dir = 1},/area/supply/dock)
+"aCM" = (/obj/structure/table/reinforced,/obj/item/clothing/head/greenbandana,/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCN" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCO" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/command)
+"aCP" = (/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{pixel_x = -6},/obj/structure/table/standard,/obj/effect/floor_decal/corner/yellow/diagonal,/obj/effect/floor_decal/corner/blue/diagonal{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCQ" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/orange/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCR" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCS" = (/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCT" = (/obj/effect/floor_decal/corner/orange{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aCU" = (/turf/unsimulated/wall,/area/centcom/restaurant)
+"aCV" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/storage/briefcase,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aCW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCX" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCY" = (/obj/machinery/computer/med_data,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aCZ" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDa" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDb" = (/mob/living/silicon/decoy{name = "A.L.I.C.E."},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDc" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDd" = (/turf/unsimulated/floor{icon_state = "steel"},/area/space)
+"aDe" = (/obj/effect/floor_decal/corner/orange{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDf" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDg" = (/obj/machinery/computer/arcade/orion_trail,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDh" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aDi" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aDj" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aDk" = (/obj/machinery/vending/dinnerware,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDl" = (/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDm" = (/obj/structure/table/marble,/obj/machinery/chemical_dispenser/bar_soft/full,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDn" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/glasses/square,/obj/item/weapon/storage/box/glasses/square,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDo" = (/obj/structure/bed/chair/comfy/teal{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aDp" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command)
+"aDq" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDr" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1443; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDt" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDv" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange/full{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDw" = (/obj/structure/closet/wardrobe/orange,/obj/effect/floor_decal/corner/orange{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDx" = (/obj/effect/floor_decal/corner/orange{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDy" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDz" = (/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "detectives camera"; pictures_left = 30; pixel_x = 2; pixel_y = 3},/obj/effect/floor_decal/corner/red/full{dir = 8},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDA" = (/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red{dir = 5},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDB" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDC" = (/obj/structure/closet{name = "Evidence Closet"},/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDD" = (/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aDE" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDF" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDG" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDH" = (/obj/machinery/door/airlock/glass_security{name = "Spaceport Security Airlock"; req_access = list(63)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDI" = (/obj/structure/table/reinforced,/obj/machinery/microwave,/obj/effect/floor_decal/corner/orange{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDJ" = (/obj/item/weapon/storage/box/evidence,/obj/item/weapon/folder/red,/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDK" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aDL" = (/obj/machinery/door/airlock/freezer,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aDM" = (/obj/structure/table/marble,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/material/kitchen/rollingpin,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDN" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDO" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDP" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aDQ" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDR" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDS" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDT" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDU" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aDV" = (/turf/simulated/shuttle/wall,/area/shuttle/transport1/centcom)
+"aDW" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
+"aDX" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/transport1/centcom)
+"aDY" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle_bay"; name = "shuttle bay controller"; pixel_x = -24; pixel_y = 0; tag_door = "centcom_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aDZ" = (/obj/machinery/computer/arcade/battle,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEa" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/orange{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEb" = (/obj/structure/table/reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 27; pixel_y = 0},/obj/effect/floor_decal/corner/orange/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEc" = (/obj/item/device/taperecorder,/obj/effect/floor_decal/corner/red/full,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEd" = (/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEe" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aEf" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aEg" = (/obj/structure/table/marble,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aEh" = (/obj/machinery/door/airlock/centcom{name = "Teleporter Bay"; opacity = 1; req_access = list(107)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEi" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEj" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEk" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEl" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEm" = (/obj/structure/bed/chair,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEn" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating/airless,/area/shuttle/transport1/centcom)
+"aEo" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/transport1/centcom)
+"aEp" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEq" = (/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEr" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEs" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/restaurant)
+"aEt" = (/obj/structure/table/marble,/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/cash_register/civilian{tag = "icon-register_idle (WEST)"; icon_state = "register_idle"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aEu" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/peppermill,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aEv" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEw" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEx" = (/obj/machinery/computer/shuttle_control{req_access = list(101); shuttle_tag = "Centcom"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEy" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEz" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEA" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEB" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEC" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/shuttle/transport1/centcom)
+"aED" = (/obj/machinery/door/airlock/external{frequency = 1380; glass = 1380; icon_state = "door_locked"; id_tag = "centcom_shuttle_bay_door"; locked = 1; name = "Transport Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aEE" = (/obj/effect/floor_decal/corner/red{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEF" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEG" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEH" = (/obj/machinery/door/airlock/glass_security{name = "Security Processing"; req_access = list(1)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEI" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/white/diagonal,/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aEJ" = (/obj/machinery/door/airlock/centcom{name = "Maintenance Access"; opacity = 1; req_access = list(106)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEK" = (/obj/machinery/computer/robotics,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEL" = (/turf/unsimulated/wall,/area/centcom/main_hall)
+"aEM" = (/turf/unsimulated/wall,/area/centcom/tram)
+"aEN" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_shuttle"; pixel_x = 0; pixel_y = -25; tag_door = "centcom_shuttle_hatch"},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEO" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEP" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
+"aEQ" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/transport1/centcom)
+"aER" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/transport1/centcom)
+"aES" = (/obj/effect/floor_decal/corner/red{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aET" = (/obj/item/weapon/stool/padded,/obj/effect/floor_decal/corner/red{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEU" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aEV" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEW" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEX" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEY" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aEZ" = (/obj/structure/sign/securearea,/turf/unsimulated/wall,/area/centcom/command)
+"aFa" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFb" = (/obj/structure/sign/nosmoking_2,/turf/unsimulated/wall,/area/centcom/command)
+"aFc" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFd" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFe" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFg" = (/obj/machinery/gateway{dir = 9},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFh" = (/obj/machinery/gateway{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFi" = (/obj/machinery/gateway{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFj" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFk" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aFl" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aFm" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aFn" = (/turf/space,/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/transport1/centcom)
+"aFo" = (/obj/machinery/computer/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aFp" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aFq" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/main_hall)
+"aFr" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFs" = (/obj/machinery/gateway{dir = 8},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFt" = (/obj/machinery/gateway/centerstation,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFu" = (/obj/machinery/gateway{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFv" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"aFw" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aFx" = (/obj/machinery/turretid{pixel_x = -28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFy" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFz" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFA" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFB" = (/obj/machinery/gateway{dir = 10},/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFC" = (/obj/machinery/gateway,/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFD" = (/obj/machinery/gateway{dir = 6},/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFE" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/centcom/main_hall)
+"aFF" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aFG" = (/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aFH" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFI" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFJ" = (/obj/machinery/computer/rdservercontrol{badmin = 1; name = "Master R&D Server Controller"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFK" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFL" = (/obj/machinery/door/blast/regular{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFM" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFN" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aFO" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFP" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFQ" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFR" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aFS" = (/obj/machinery/door/airlock/external,/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aFT" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aFU" = (/obj/machinery/door/airlock/security{name = "Equipment Storage"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aFV" = (/obj/machinery/account_database{name = "CentComm Accounts database"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
+"aFW" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aFX" = (/turf/simulated/shuttle/wall,/area/centcom/tram)
+"aFY" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aFZ" = (/obj/machinery/door/unpowered/shuttle,/turf/unsimulated/floor{icon = 'icons/turf/flooring/shuttle.dmi'; icon_state = "floor"},/area/centcom/tram)
+"aGa" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aGb" = (/obj/effect/floor_decal/corner/white/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGc" = (/obj/effect/floor_decal/corner/white,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGd" = (/obj/effect/floor_decal/corner/white{dir = 5},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGe" = (/obj/effect/floor_decal/corner/white{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGg" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGh" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGi" = (/obj/structure/bed/chair,/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = 28},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGj" = (/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGk" = (/obj/structure/bed/chair,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGl" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aGm" = (/obj/effect/floor_decal/corner/white{dir = 6; icon_state = "corner_white"; tag = "icon-corner_white (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGn" = (/obj/effect/floor_decal/corner/white/diagonal{tag = "icon-corner_white_diagonal (EAST)"; icon_state = "corner_white_diagonal"; dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGo" = (/obj/effect/floor_decal/corner/white{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGp" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGq" = (/obj/machinery/porta_turret/crescent,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aGr" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aGs" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window2"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aGt" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGu" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aGv" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aGw" = (/obj/effect/floor_decal/corner/white{tag = "icon-corner_white (NORTH)"; icon_state = "corner_white"; dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aGx" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/red{dir = 6},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGy" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/red{dir = 9},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGz" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/restaurant)
+"aGA" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
+"aGB" = (/obj/structure/flora/grass/brown,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGC" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 4},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGD" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aGE" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 8},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGF" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGG" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aGH" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window1"},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/tram)
+"aGI" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aGJ" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aGK" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aGL" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aGM" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aGN" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{icon_state = "plant-06"; pixel_y = 8; tag = "icon-plant-06"},/obj/effect/floor_decal/corner/red{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGO" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/obj/effect/floor_decal/corner/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGP" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGQ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor{dir = 4; name = "Weapons locker"},/obj/structure/table/rack,/obj/item/clothing/suit/armor/riot,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot,/obj/item/clothing/head/helmet/riot,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGR" = (/obj/structure/closet/secure_closet/security,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aGS" = (/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGT" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGU" = (/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGV" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGW" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ppflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGX" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGY" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aGZ" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aHa" = (/obj/structure/flora/ausbushes/fernybush,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHb" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHc" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHd" = (/obj/machinery/turretid{pixel_x = -28; pixel_y = 0; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHe" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHf" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aHg" = (/obj/structure/bed/chair{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aHh" = (/obj/structure/bed/chair{dir = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/centcom/tram)
+"aHi" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHj" = (/obj/structure/table/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/red/full,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aHk" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/security)
+"aHl" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHm" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHn" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHo" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aHp" = (/obj/structure/bed/chair/office/dark,/obj/machinery/button/remote/blast_door{desc = "A remote control switch for port-side blast doors."; id = "CentComPortEast"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access = list(101)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHq" = (/obj/machinery/computer/secure_data,/obj/machinery/camera/network/crescent{c_tag = "Crescent Arrivals North"; dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHr" = (/obj/machinery/door/window/northright,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHs" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHt" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHu" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHv" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHw" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHx" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHy" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHA" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPortWest"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aHB" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aHC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aHD" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aHE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aHF" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHG" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access = list(101)},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHH" = (/obj/machinery/door/airlock/external,/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHI" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHL" = (/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHN" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aHO" = (/obj/effect/floor_decal/spline/plain{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aHP" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aHQ" = (/obj/effect/floor_decal/spline/plain{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aHR" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "CentComPortEast"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aHS" = (/obj/machinery/door/blast/regular{id = "CentComPortEast"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/tram)
+"aHT" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"aHU" = (/obj/machinery/door/window/eastright,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHV" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aHW" = (/obj/machinery/door/window/westright,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHX" = (/obj/structure/bed/chair/office/light{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aHY" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aHZ" = (/obj/effect/floor_decal/spline/plain{tag = "icon-spline_plain_full (NORTH)"; icon_state = "spline_plain_full"; dir = 1},/obj/structure/showcase,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aIa" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aIb" = (/obj/structure/bed/chair/office/light,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aId" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aIf" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aIg" = (/obj/machinery/door/window/southleft,/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIh" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIi" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIj" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIk" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIl" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIm" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIn" = (/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/spline/plain{dir = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIo" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/machinery/computer/skills,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIp" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aIq" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIr" = (/obj/structure/window/reinforced,/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aIs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/main_hall)
+"aIt" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/cee{dir = 1},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIu" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aIv" = (/turf/unsimulated/wall,/area/centcom/medical)
+"aIw" = (/obj/machinery/door/airlock/glass_medical{name = "Arrivals Medbay"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIx" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/medical)
+"aIy" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIz" = (/obj/structure/flora/grass/brown,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIA" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (NORTHWEST)"; icon_state = "spline_fancy"; dir = 9},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIB" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIC" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aID" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aIE" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aIF" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aIG" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aIH" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/corner/green{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aII" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIJ" = (/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIK" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIL" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIM" = (/obj/effect/floor_decal/corner/green{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIN" = (/obj/effect/floor_decal/corner/green,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIO" = (/obj/structure/table/standard,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/item/stack/material/phoron,/obj/effect/floor_decal/corner/beige/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIP" = (/obj/structure/table/standard,/obj/machinery/reagentgrinder,/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIQ" = (/obj/effect/floor_decal/corner/beige{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIR" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIS" = (/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIT" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{tag = "icon-spline_fancy (SOUTHWEST)"; icon_state = "spline_fancy"; dir = 10},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIU" = (/obj/structure/flora/ausbushes/ppflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIV" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIW" = (/obj/structure/flora/bush,/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/centcom/main_hall)
+"aIX" = (/obj/effect/floor_decal/corner/white{dir = 9; icon_state = "corner_white"; tag = "icon-corner_white (NORTHWEST)"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aIY" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aIZ" = (/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJa" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJb" = (/obj/machinery/chemical_dispenser/ert,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJc" = (/turf/unsimulated/wall,/area/centcom/bar)
+"aJd" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/bar)
+"aJe" = (/obj/machinery/door/airlock/glass,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJf" = (/obj/effect/floor_decal/spline/plain,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall)
+"aJg" = (/turf/unsimulated/wall,/area/centcom/bathroom)
+"aJh" = (/obj/machinery/door/airlock,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
+"aJi" = (/turf/simulated/shuttle/wall,/area/shuttle/escape/centcom)
+"aJj" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"aJk" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJl" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJm" = (/obj/structure/closet/secure_closet/chemical,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJn" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJo" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJp" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJq" = (/obj/structure/table/steel,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
+"aJr" = (/obj/structure/closet/secure_closet/personal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
+"aJs" = (/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
+"aJt" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aJu" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aJv" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/escape/centcom)
+"aJw" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aJx" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aJy" = (/obj/machinery/computer/shuttle_control/emergency,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aJz" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aJA" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aJB" = (/obj/effect/floor_decal/corner/green{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJC" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJD" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge West"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJE" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJF" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJG" = (/obj/machinery/status_display{pixel_y = 30},/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin,/obj/machinery/camera/network/crescent{c_tag = "Shuttle Bridge East"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJH" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJI" = (/obj/structure/closet/secure_closet/medical1,/obj/effect/floor_decal/corner/beige/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJJ" = (/obj/effect/floor_decal/corner/beige{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJK" = (/obj/effect/floor_decal/corner/beige,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJL" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJM" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/amanita_pie,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJP" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJQ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/slice/carrotcake/filled,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJR" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJS" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bathroom)
+"aJT" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 0; pixel_y = -25; req_one_access = list(13); tag_door = "escape_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJU" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJV" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aJW" = (/obj/effect/floor_decal/corner/beige{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aJX" = (/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"},/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/tramadol,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/inaprovaline,/turf/unsimulated/wall,/area/centcom/medical)
+"aJY" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/boiledrice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aJZ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/beetsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKa" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKb" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/soylenviridians,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKc" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aKd" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aKe" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aKf" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aKg" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aKh" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aKi" = (/obj/structure/AIcore/deactivated,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aKj" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aKk" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aKl" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aKm" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKn" = (/obj/structure/table/standard,/obj/structure/flora/pottedplant{pixel_y = 8},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKo" = (/obj/machinery/smartfridge/chemistry,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKp" = (/obj/structure/closet/secure_closet/medical3,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKq" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access = list(19)},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aKr" = (/obj/machinery/door/airlock/multi_tile/glass{id_tag = "MedbayFoyerPort"; req_access = newlist()},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKs" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKt" = (/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKu" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKv" = (/obj/structure/table/glass,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKw" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKx" = (/obj/structure/closet/secure_closet/medical3,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKy" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKz" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKA" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/poppypretzel,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKB" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/slice/orangecake/filled,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKC" = (/obj/machinery/atm{pixel_x = -30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aKD" = (/obj/machinery/atm{pixel_x = 30},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall)
+"aKE" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKF" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/camera/network/crescent{c_tag = "Shuttle Cell"},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKG" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 30},/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKH" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/green{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKI" = (/obj/structure/bed/chair/office/light{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKJ" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKK" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKL" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/spesslaw,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKM" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aKP" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aKQ" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aKR" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aKS" = (/obj/structure/urinal{pixel_y = 32},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aKT" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aKU" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/tram)
+"aKV" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKW" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKX" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aKY" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aKZ" = (/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aLa" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLb" = (/turf/unsimulated/wall,/area/tdome)
+"aLc" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/tdome)
+"aLd" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLe" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLf" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLg" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLh" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLi" = (/obj/machinery/door/airlock{name = "Unit 5"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLj" = (/obj/machinery/door/airlock{name = "Unit 6"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLk" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aLl" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access = list(1)},/turf/simulated/shuttle/floor/red,/area/shuttle/escape/centcom)
+"aLm" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/obj/machinery/camera/network/crescent{c_tag = "Crescent Bar East"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aLn" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/material/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/bar)
+"aLo" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLp" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/drinks/glass2/square,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLq" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/cash_register/civilian,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLr" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLs" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLt" = (/obj/structure/toilet{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLu" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aLv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_airlock"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/terminal)
+"aLw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aLx" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aLy" = (/obj/machinery/camera/network/crescent{c_tag = "Shuttle Center"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aLz" = (/obj/machinery/vending/medical,/turf/unsimulated/wall,/area/centcom/medical)
+"aLA" = (/obj/machinery/vending/medical,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLB" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/BMinus,/obj/item/weapon/reagent_containers/blood/BPlus,/obj/item/weapon/reagent_containers/blood/OPlus,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLC" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLD" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLE" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLF" = (/obj/structure/bed/chair/comfy/brown,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLG" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/accessory/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLH" = (/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aLI" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLJ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLK" = (/obj/structure/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aLL" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aLM" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLN" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLO" = (/obj/machinery/sleeper{dir = 8},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLP" = (/obj/machinery/sleep_console,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLQ" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 16},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLR" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLS" = (/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aLT" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -30},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLU" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLV" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aLW" = (/obj/structure/curtain/open/shower,/obj/machinery/shower,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLX" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aLY" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle West"; dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aLZ" = (/obj/structure/bed/chair{dir = 8},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/machinery/camera/network/crescent{c_tag = "Shuttle East"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aMa" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/adv,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMb" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMc" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMd" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMe" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aMf" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet,/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aMg" = (/obj/structure/bed/chair/comfy/brown{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/unsimulated/floor{dir = 2; icon_state = "carpet"},/area/centcom/bar)
+"aMh" = (/obj/structure/closet/secure_closet/bar{req_access = list(25)},/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aMi" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aMj" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_alc/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aMk" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/bar)
+"aMl" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "lino"},/area/centcom/tram)
+"aMm" = (/obj/machinery/sleeper{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMn" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMo" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMq" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMr" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMs" = (/obj/structure/curtain/open/shower,/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/bathroom)
+"aMt" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "centcom_dock"; name = "docking port controller"; pixel_x = 25; pixel_y = 0; req_one_access = list(13); tag_door = "centcom_dock_airlock"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/terminal)
+"aMu" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMv" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/toxin,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMx" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMy" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMz" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMA" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aMB" = (/obj/structure/bed/roller,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"; pixel_x = -32},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMC" = (/obj/machinery/bodyscanner{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMD" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aME" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/o2,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMF" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/wrench,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMG" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMH" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/effect/floor_decal/corner/blue,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMI" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMJ" = (/obj/structure/morgue,/obj/effect/floor_decal/corner/blue{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMK" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aML" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aMM" = (/obj/structure/bed/chair{dir = 4},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aMN" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aMO" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Cloning Laboratory"; req_access = list(66)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMQ" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aMR" = (/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aMS" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aMT" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/obj/machinery/door/blast/regular{id = "crescent_thunderdome"; name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome)
+"aMU" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMV" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access = list(5)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMW" = (/obj/effect/floor_decal/corner/blue/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMX" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMY" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/effect/floor_decal/corner/blue{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aMZ" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNa" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNb" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNc" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNd" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNe" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNf" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNg" = (/obj/machinery/status_display{pixel_y = -30},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"aNh" = (/obj/machinery/door/airlock/medical{name = "Observation Room"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNi" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNj" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNk" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access = list(6,5)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNl" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNm" = (/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = 7},/obj/item/weapon/paper_bin{pixel_y = -6},/obj/item/weapon/pen/red{pixel_x = -1; pixel_y = -9},/obj/item/weapon/pen/blue{pixel_x = 3; pixel_y = -5},/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNn" = (/obj/structure/closet/secure_closet/freezer/meat,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aNo" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aNp" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNq" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNr" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNs" = (/obj/machinery/door/airlock/glass_mining{name = "Shuttle Cargo"},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aNt" = (/obj/machinery/door/airlock/glass_medical{name = "Escape Shuttle Infirmary"; req_access = list(5)},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNu" = (/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNv" = (/obj/effect/floor_decal/corner/pink{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNw" = (/obj/effect/floor_decal/corner/pink{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNx" = (/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNy" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 0; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNz" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNA" = (/obj/machinery/clonepod,/obj/effect/floor_decal/corner/blue/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNB" = (/obj/machinery/computer/cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNC" = (/obj/machinery/dna_scannernew,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aND" = (/obj/structure/closet/wardrobe/white,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNE" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/medical_cloning,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNF" = (/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/box/bodybags,/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNG" = (/obj/effect/floor_decal/corner/blue{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNH" = (/obj/item/weapon/autopsy_scanner,/obj/item/weapon/surgical/scalpel,/obj/structure/table/standard,/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNI" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aNJ" = (/obj/structure/table/standard,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aNK" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
+"aNL" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNM" = (/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNN" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aNO" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aNP" = (/obj/structure/closet/hydrant{pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aNQ" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNR" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNS" = (/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNT" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNU" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aNV" = (/obj/structure/closet/hydrant{pixel_x = -30; pixel_y = 0},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aNW" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aNX" = (/obj/effect/floor_decal/corner/pink,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNY" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aNZ" = (/obj/structure/bed/chair,/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOa" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOb" = (/obj/structure/closet/l3closet/virology,/obj/item/clothing/mask/gas,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOc" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve)
+"aOd" = (/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aOe" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/camera/network/crescent{c_tag = "Shuttle Medical"; dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOf" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOg" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOh" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOi" = (/obj/machinery/disease2/incubator,/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOj" = (/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/dropper,/obj/structure/table/glass,/obj/structure/reagent_dispensers/virusfood{pixel_x = 0; pixel_y = 28},/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOk" = (/obj/machinery/disease2/isolator,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOl" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOm" = (/obj/effect/floor_decal/corner/green{dir = 5},/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOn" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOo" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOp" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/weapon/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOq" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aOr" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/structure/disposalpipe/segment,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aOs" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/weapon/melee/energy/axe,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOt" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/camera/network/crescent{c_tag = "Shuttle West Storage"; dir = 4},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aOu" = (/obj/structure/closet/crate/freezer/rations,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aOv" = (/obj/machinery/iv_drip,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOw" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOx" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOy" = (/obj/structure/bed/roller,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 26},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOz" = (/obj/machinery/recharge_station,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aOA" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/crescent{c_tag = "Shuttle East Storage"; dir = 8},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape/centcom)
+"aOB" = (/obj/structure/table/standard,/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/medical/advanced/bruise_pack,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOC" = (/obj/structure/table/standard,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/scalpel,/obj/effect/floor_decal/corner/pink{dir = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOD" = (/obj/structure/table/standard,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/circular_saw,/obj/effect/floor_decal/corner/pink/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOE" = (/obj/machinery/door/blast/regular{id = "thunderdomeaxe"; name = "Axe Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOF" = (/obj/machinery/igniter,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aOG" = (/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aOH" = (/obj/structure/disposalpipe/segment,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aOI" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/escape/centcom)
+"aOJ" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOK" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOL" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aOM" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/escape/centcom)
+"aON" = (/obj/structure/table/standard,/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/stack/nanopaste,/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOO" = (/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOP" = (/obj/machinery/door/airlock/glass_medical{name = "Virology Laboratory"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOQ" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOR" = (/obj/machinery/door/blast/regular{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOS" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
+"aOT" = (/obj/machinery/door/blast/regular{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOU" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
+"aOV" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aOW" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/escape/centcom)
+"aOX" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOY" = (/obj/machinery/computer/operating,/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aOZ" = (/obj/machinery/computer/centrifuge,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPa" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes,/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPc" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
+"aPd" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
+"aPe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28},/obj/effect/floor_decal/corner/pink{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPf" = (/obj/machinery/smartfridge/chemistry/virology,/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPg" = (/obj/structure/bed/chair/office/dark,/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed/chair{dir = 4},/obj/effect/floor_decal/corner/green{dir = 9},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPi" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/green{dir = 6},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPj" = (/obj/machinery/vending/snack,/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPk" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPl" = (/obj/machinery/computer/arcade,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPm" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPn" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPo" = (/obj/effect/landmark{name = "tdome2"},/obj/machinery/camera/network/thunder{c_tag = "Thunderdome - Red Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome2)
+"aPp" = (/obj/machinery/flasher{id = "flash"; name = "Thunderdome Flash"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPq" = (/obj/effect/landmark{name = "tdome1"},/obj/machinery/camera/network/thunder{c_tag = "Green Team"; invisibility = 101},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdome1)
+"aPr" = (/obj/structure/closet/secure_closet/medical2,/obj/effect/floor_decal/corner/pink/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPs" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPt" = (/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPu" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/effect/floor_decal/corner/pink{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPv" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPw" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPx" = (/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/masks,/obj/structure/table/glass,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPy" = (/obj/machinery/disease2/diseaseanalyser,/obj/effect/floor_decal/corner/green{dir = 10},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPz" = (/obj/machinery/computer/diseasesplicer,/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPA" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/corner/green/full,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical)
+"aPB" = (/obj/machinery/atmospherics/pipe/vent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPC" = (/obj/machinery/camera/network/thunder{c_tag = "Thunderdome Arena"; invisibility = 101},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPD" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPE" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPF" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPG" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPH" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aPI" = (/obj/machinery/door/blast/regular{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aPJ" = (/obj/structure/table/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aPK" = (/obj/machinery/door/airlock/command{name = "Thunderdome Administration"; req_access = list(102)},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPL" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome)
+"aPM" = (/obj/structure/table/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
+"aPN" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/terminal)
+"aPO" = (/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPP" = (/obj/structure/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPQ" = (/obj/item/weapon/extinguisher,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPR" = (/obj/machinery/atmospherics/valve,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPS" = (/obj/structure/bed/chair{dir = 1},/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPT" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPU" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent{pixel_x = 1},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPV" = (/obj/item/weapon/wrench,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPW" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPX" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome)
+"aPY" = (/obj/structure/bed/chair,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aPZ" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQa" = (/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQb" = (/obj/machinery/computer/pod{id = "thunderdomeaxe"; name = "Thunderdome Axe Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQc" = (/obj/machinery/computer/pod{id = "thunderdomegen"; name = "Thunderdome General Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQd" = (/obj/machinery/computer/pod{id = "thunderdomehea"; name = "Thunderdome Heavy Supply"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQe" = (/obj/machinery/computer/pod{id = "thunderdome"; name = "Thunderdome Blast Door Control"},/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQf" = (/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQg" = (/obj/structure/table/standard,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQh" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQi" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQj" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/electrical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQk" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeadmin)
+"aQl" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach)
+"aQm" = (/turf/unsimulated/beach/sand,/area/beach)
+"aQn" = (/obj/structure/signpost,/turf/unsimulated/beach/sand,/area/beach)
+"aQo" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach)
+"aQp" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach)
+"aQq" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach)
+"aQr" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach)
+"aQs" = (/turf/space,/area/shuttle/cryo/centcom)
+"aQt" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach)
+"aQu" = (/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach)
+"aQv" = (/turf/simulated/shuttle/wall,/area/centcom/evac)
+"aQw" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; dir = 8; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/evac)
+"aQx" = (/obj/structure/table/standard,/obj,/obj,/obj,/obj,/obj,/obj,/obj,/turf/unsimulated/beach/sand,/area/beach)
+"aQy" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach)
+"aQz" = (/turf/simulated/shuttle/wall/hard_corner,/area/centcom/evac)
+"aQA" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/evac)
+"aQB" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aQC" = (/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod2/centcom)
+"aQD" = (/obj/machinery/clonepod,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQE" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQF" = (/obj/machinery/dna_scannernew,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQG" = (/obj/machinery/atmospherics/unary/cryo_cell{layer = 3.3},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQH" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQI" = (/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = -4; pixel_y = 0},/obj/item/weapon/wrench,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQJ" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/surgical/hemostat{pixel_y = 4},/obj/item/weapon/surgical/cautery{pixel_y = 4},/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/stack/nanopaste,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/surgical,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQK" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/beach/sand,/area/beach)
+"aQL" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach)
+"aQM" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach)
+"aQN" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/centcom/evac)
+"aQO" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating/airless,/area/centcom/evac)
+"aQP" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aQQ" = (/obj/machinery/vending/engineering,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aQR" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/centcom)
+"aQS" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/centcom)
+"aQT" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/shuttle/cryo/centcom)
+"aQU" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon = 'icons/turf/flooring/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac)
+"aQV" = (/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQW" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQX" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQY" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aQZ" = (/obj/machinery/computer/operating,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRa" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/simulated/shuttle/plating/airless/carry,/area/centcom/evac)
+"aRb" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRc" = (/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRd" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRe" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRf" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRg" = (/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aRh" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRi" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRj" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRk" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRl" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRm" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRn" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRo" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/box/gloves{pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRp" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRq" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRr" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/obj/item/toy/plushie/mouse{desc = "A plushie of a small fuzzy rodent."; name = "Woodrat"},/turf/unsimulated/beach/sand,/area/beach)
+"aRs" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach)
+"aRt" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach)
+"aRu" = (/turf/space,/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"},/turf/simulated/shuttle/plating/airless/carry,/area/centcom/evac)
+"aRv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 02"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRw" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0},/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRx" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach)
+"aRy" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRz" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 1"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRA" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_2_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 2"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRB" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "cryostorage_shuttle_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock Cryostorage"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRC" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRD" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "large_escape_pod_2_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "large_escape_pod_2_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRE" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRF" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRG" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRH" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/bodybags,/turf/simulated/shuttle/floor/white,/area/centcom/evac)
+"aRI" = (/turf/unsimulated/floor{icon_state = "sandwater"},/area/beach)
+"aRJ" = (/turf/unsimulated/wall{desc = "That looks like it doesn't open easily."; icon = 'icons/obj/doors/rapid_pdoor.dmi'; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/evac)
+"aRK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_1_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_1_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRL" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_2_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "escape_pod_2_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRM" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "cryostorage_shuttle_recovery"; pixel_x = -25; pixel_y = 25; req_one_access = list(13); tag_door = "cryostorage_shuttle_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRN" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRO" = (/obj/machinery/vending/coffee,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRP" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRQ" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aRR" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/centcom/evac)
+"aRS" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aRT" = (/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aRU" = (/obj/structure/table/standard,/obj/item/device/radio/off,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aRV" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach)
+"aRW" = (/turf/unsimulated/beach/coastline,/area/beach)
+"aRX" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aRY" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aRZ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSa" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSb" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSc" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach)
+"aSd" = (/turf/unsimulated/beach/water,/area/beach)
+"aSe" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aSf" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aSg" = (/obj/machinery/door/airlock/hatch{name = "Cockpit"; req_access = list(109)},/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/centcom/evac)
+"aSh" = (/turf/simulated/shuttle/floor{tag = "icon-floor_yellow"; icon_state = "floor_yellow"},/area/centcom/evac)
+"aSi" = (/obj/structure/table/standard,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSj" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aSk" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSl" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSm" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_6_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_6_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSn" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_5_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_5_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSo" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_4_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_4_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSp" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_pod_3_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "escape_pod_3_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSq" = (/obj/machinery/door/airlock/glass_security{name = "Security Processing"; req_access = list(1)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSr" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSs" = (/obj/structure/table/standard,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/stamp/captain,/turf/simulated/shuttle/floor/black,/area/centcom/evac)
+"aSt" = (/turf/unsimulated/wall,/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSu" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_6_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 6"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_5_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 5"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_4_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 4"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSx" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_3_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 3"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSy" = (/obj/machinery/door/airlock/maintenance_hatch{req_access = list(101)},/turf/unsimulated/floor{icon = 'icons/turf/flooring/shuttle.dmi'; icon_state = "floor2"},/area/centcom/evac)
+"aSz" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "large_escape_pod_1_recovery"; pixel_x = -25; pixel_y = -25; req_one_access = list(13); tag_door = "large_escape_pod_1_recovery_hatch"},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSA" = (/obj/machinery/computer/card,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSB" = (/obj/structure/table/rack,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSC" = (/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSD" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSE" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSF" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aSG" = (/turf/simulated/mineral,/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSH" = (/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSI" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSJ" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/cobweb2{icon_state = "spiderling"; name = "dead spider"; tag = "icon-spiderling"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSK" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod6/centcom)
+"aSL" = (/turf/simulated/shuttle/wall,/area/space)
+"aSM" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/centcom)
+"aSN" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod4/centcom)
+"aSO" = (/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/centcom)
+"aSP" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "large_escape_pod_1_recovery_hatch"; locked = 1; name = "Recovery Shuttle Dock 01"; req_access = list(13)},/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSQ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSR" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aSS" = (/obj/structure/table/standard,/obj/structure/bedsheetbin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aST" = (/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSU" = (/turf/simulated/shuttle/plating,/area/shuttle/large_escape_pod1/centcom)
+"aSV" = (/obj/structure/closet{name = "Evidence Closet"},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSW" = (/obj/structure/closet/secure_closet/security,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aSX" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aSY" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aSZ" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access = list(1)},/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aTa" = (/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTb" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/yellow,/area/centcom/evac)
+"aTc" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/simulated/shuttle/floor{tag = "icon-floor_red"; icon_state = "floor_red"},/area/centcom/evac)
+"aTd" = (/obj/item/weapon/tray{pixel_y = 5},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTe" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTf" = (/obj/machinery/portable_atmospherics/powered/pump,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aTg" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aTh" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket{amount_per_transfer_from_this = 50},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aTi" = (/obj/item/weapon/mop,/obj/structure/mopbucket,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aTj" = (/obj/structure/table/rack,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 6; pixel_y = 3},/obj/item/clothing/accessory/storage/brown_vest,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"aTk" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window4"},/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aTl" = (/obj/structure/grille,/obj/structure/window/shuttle{icon_state = "window8"},/turf/simulated/shuttle/plating,/area/centcom/evac)
+"aTm" = (/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTn" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTo" = (/obj/item/weapon/bedsheet/orange,/obj/effect/decal/cleanable/cobweb2{tag = "icon-cobweb1"; icon_state = "cobweb1"},/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTp" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTq" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTr" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTs" = (/obj/structure/urinal{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTt" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTu" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTv" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTw" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTx" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTy" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTz" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{icon_state = "white"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTA" = (/obj/item/clothing/head/xenos,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTB" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -28; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTC" = (/obj/item/clothing/mask/gas/swat{desc = "A close-fitting mask clearly not made for a human face."; name = "\improper alien mask"},/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTD" = (/obj/item/xenos_claw,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTE" = (/obj/structure/table/rack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTF" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTG" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTH" = (/obj/item/pizzabox/meat,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTI" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTJ" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTK" = (/obj/effect/decal/cleanable/cobweb2,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTL" = (/obj/structure/table/rack,/obj/item/clothing/glasses/thermal/plain/monocle,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTM" = (/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTN" = (/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTO" = (/obj/item/organ/internal/stack,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTP" = (/obj/structure/bed/chair,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTT" = (/obj/machinery/computer/station_alert,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTU" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTV" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTW" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTX" = (/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{tag = "icon-asteroid"; icon_state = "asteroid"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTY" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"})
+"aTZ" = (/obj/machinery/door/airlock/external{req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aUa" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/syndicate_mothership{name = "\improper Raider Base"})
+"aUb" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aUc" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"})
+"aUd" = (/turf/simulated/shuttle/wall/dark/hard_corner,/area/wizard_station)
+"aUe" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aUf" = (/obj/machinery/chemical_dispenser/bar_soft/full,/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUg" = (/obj/item/weapon/reagent_containers/food/drinks/bottle/pwine{pixel_x = -4; pixel_y = 10},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUh" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUi" = (/turf/simulated/shuttle/wall/dark,/area/skipjack_station/start)
+"aUj" = (/obj/machinery/computer/arcade/battle,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUk" = (/obj/machinery/computer/arcade/orion_trail,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUl" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUm" = (/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUn" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/toy/figure/ninja,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUo" = (/obj/structure/bed,/obj/item/weapon/bedsheet/rd,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUp" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access = list(150)},/turf/simulated/shuttle/wall/dark,/area/skipjack_station/start)
+"aUq" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northwest_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUs" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUu" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_northeast_lock"; locked = 0; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUv" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access = list(150)},/turf/simulated/shuttle/wall/dark,/area/skipjack_station/start)
+"aUw" = (/obj/structure/bed/chair/wood/wings,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUx" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUy" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUz" = (/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUA" = (/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUB" = (/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUC" = (/obj/structure/table/woodentable,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/ore/slag{desc = "Well at least Arthur doesn't have to share now..."; name = "pet rock"},/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUD" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/obj/structure/bedsheetbin,/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "lino"},/area/wizard_station)
+"aUE" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUF" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUG" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUH" = (/obj/machinery/computer/shuttle_control/multi/skipjack,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUI" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUJ" = (/obj/machinery/button/remote/blast_door{id = "skipjackshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/shuttle/wall/dark,/area/skipjack_station/start)
+"aUK" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_east_sensor"; pixel_x = -25},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUM" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUN" = (/obj/structure/table/woodentable,/obj/item/device/radio/headset,/obj/item/weapon/spacecash/c500,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUO" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aUP" = (/obj/item/weapon/reagent_containers/food/snacks/spellburger{pixel_y = 8},/obj/structure/table/marble,/turf/unsimulated/floor{icon_state = "white"},/area/wizard_station)
+"aUQ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aUR" = (/obj/structure/undies_wardrobe,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aUS" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUT" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_west_vent"; tag_exterior_door = "vox_northwest_lock"; frequency = 1331; id_tag = "vox_west_control"; tag_interior_door = "vox_southwest_lock"; pixel_x = 24; req_access = list(150); tag_chamber_sensor = "vox_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "vox_west_vent"},/obj/machinery/light/small,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUV" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUW" = (/obj/structure/bed/chair{dir = 1},/obj/item/clothing/glasses/thermal/plain/monocle,/obj/item/clothing/head/pirate,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUX" = (/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aUY" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "vox_east_vent"; tag_exterior_door = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; tag_interior_door = "vox_southeast_lock"; pixel_x = -24; req_access = list(150); tag_chamber_sensor = "vox_east_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "vox_east_vent"},/obj/machinery/light/small,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aUZ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVa" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVb" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVc" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVd" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVe" = (/obj/machinery/door/airlock/hatch,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVf" = (/obj/item/weapon/antag_spawner/technomancer_apprentice,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVg" = (/obj/structure/table/woodentable,/obj/item/clothing/shoes/boots/workboots,/obj/item/clothing/under/technomancer,/obj/item/clothing/head/technomancer,/obj/item/weapon/storage/box/syndie_kit/chameleon,/obj/item/weapon/storage/box/syndie_kit/chameleon,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVh" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_southwest_lock"; locked = 0; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVi" = (/obj/structure/table/rack,/obj/item/weapon/rig/industrial,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aVj" = (/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aVk" = (/obj/structure/table/rack,/obj/item/weapon/rig/light/hacker,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aVl" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_closed"; id_tag = "vox_southeast_lock"; locked = 0; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVm" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVn" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
+"aVo" = (/obj/machinery/vending/hydroseeds,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
+"aVp" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVq" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVr" = (/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVs" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_west_control"; pixel_x = -22; req_one_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVt" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/material/harpoon,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/head/helmet/space/void/merc,/obj/item/clothing/head/helmet/space/void/engineering,/obj/item/clothing/suit/space/void/engineering,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/weapon/rig/light/stealth,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVu" = (/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVv" = (/obj/item/seeds/potatoseed,/obj/item/seeds/potatoseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/weapon/material/minihoe,/obj/item/weapon/beartrap,/obj/structure/table/steel,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVw" = (/obj/machinery/vending/hydroseeds,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVx" = (/obj/structure/table/rack,/obj/item/weapon/melee/energy/sword/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/clothing/suit/space/pirate,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aVy" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/clothing/shoes/magboots,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVz" = (/obj/machinery/washing_machine,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVA" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/flame/lighter/zippo,/obj/item/clothing/gloves/yellow,/obj/item/stack/material/steel{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/weapon/card/emag,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVB" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/sniperrifle,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/clothing/head/helmet/space/void/atmos,/obj/item/clothing/suit/space/void/atmos,/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVC" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "vox_east_control"; pixel_x = 22; req_access = list(150)},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVD" = (/obj/structure/table/woodentable,/obj/machinery/librarycomp{pixel_y = 6},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVE" = (/obj/machinery/media/jukebox,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVF" = (/obj/machinery/vending/hydronutrients,/turf/unsimulated/floor{icon_state = "grass0"; name = "grass"},/area/wizard_station)
+"aVG" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVH" = (/mob/living/simple_animal/mouse/gray{desc = "He looks kingly."; name = "Arthur"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVI" = (/obj/structure/flora/pottedplant{tag = "icon-plant-24"; icon_state = "plant-24"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aVJ" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVK" = (/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVL" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVM" = (/obj/machinery/door/airlock/hatch{req_access = list(150)},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aVN" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVO" = (/obj/item/robot_parts/head,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVP" = (/obj/machinery/photocopier,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVQ" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVR" = (/obj/structure/flora/pottedplant{tag = "icon-plant-08"; icon_state = "plant-08"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"aVS" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/weapon/staff/gentcane,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVT" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVU" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVV" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVX" = (/obj/item/robot_parts/l_leg,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aVY" = (/obj/machinery/the_singularitygen,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aVZ" = (/obj/machinery/crystal,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWa" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWb" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/arrow/quill,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWc" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/stock_parts/matter_bin/super,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWd" = (/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aWe" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWf" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWg" = (/obj/machinery/floodlight,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWh" = (/obj/item/device/suit_cooling_unit,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWi" = (/obj/structure/table/rack,/obj/item/weapon/gun/launcher/crossbow,/obj/item/stack/rods{amount = 10},/obj/machinery/light/small{dir = 8},/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/obj/item/weapon/beartrap,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWj" = (/obj/structure/table/rack,/obj/item/weapon/grenade/empgrenade,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWk" = (/obj/structure/table/steel,/obj/machinery/recharger,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWl" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWm" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWn" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWo" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWp" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWq" = (/obj/machinery/computer/message_monitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWr" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWs" = (/obj/structure/table/steel_reinforced,/obj/item/stack/telecrystal,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWt" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWu" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/head/philosopher_wig,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWv" = (/obj/structure/flora/pottedplant{tag = "icon-plant-04"; icon_state = "plant-04"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWw" = (/obj/structure/sign/electricshock,/turf/simulated/shuttle/wall/dark/hard_corner,/area/wizard_station)
+"aWx" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aWy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/regular{id = "skipjackshutters"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWz" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWA" = (/obj/structure/table/steel,/obj/item/clothing/glasses/regular,/obj/item/clothing/glasses/regular,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWB" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWC" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWD" = (/obj/item/weapon/wrench,/obj/item/weapon/mop,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWE" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/item/weapon/crowbar,/obj/item/device/suit_cooling_unit,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWF" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWG" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWH" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aWI" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWJ" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWK" = (/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWL" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWM" = (/obj/structure/table/steel,/obj/item/weapon/deck/cards,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWN" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWO" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWP" = (/obj/machinery/light/small{dir = 1},/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aWQ" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWR" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/item/weapon/tank/nitrogen,/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWS" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/shuttle/plating,/area/skipjack_station/start)
+"aWT" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWU" = (/obj/machinery/computer/power_monitor,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWV" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/computer/station_alert/all,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWW" = (/obj/structure/table/steel_reinforced,/obj/item/device/mmi/radio_enabled,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWX" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/material/knife/ritual,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aWY" = (/obj/structure/flora/pottedplant{tag = "icon-plant-03"; icon_state = "plant-03"},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aWZ" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXa" = (/obj/machinery/power/port_gen/pacman,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXb" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/skipjack_station/start)
+"aXc" = (/obj/structure/table/steel,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXd" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXe" = (/obj/structure/table/steel_reinforced,/obj/item/xenos_claw,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXf" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/coin/diamond,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXg" = (/obj/structure/table/steel_reinforced,/obj/item/broken_device,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXh" = (/obj/structure/table/steel_reinforced,/obj/item/organ/internal/stack,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXi" = (/obj/machinery/floodlight,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXj" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/skipjack_station/start)
+"aXk" = (/obj/structure/table/standard,/obj/item/weapon/legcuffs,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXl" = (/obj/structure/table/standard,/obj/item/weapon/deck/cards,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXm" = (/obj/machinery/light/small,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXn" = (/obj/structure/table/standard,/obj/item/weapon/surgical/circular_saw{pixel_y = 8},/obj/item/weapon/surgical/hemostat,/obj/item/weapon/surgical/scalpel,/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXo" = (/obj/machinery/mecha_part_fabricator,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXp" = (/obj/structure/table/steel_reinforced,/obj/machinery/cell_charger,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXq" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/ripley_build_and_repair,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXr" = (/obj/item/device/suit_cooling_unit,/obj/structure/table/steel_reinforced,/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXs" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = 30},/obj/item/target,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXt" = (/obj/item/target/syndicate,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXu" = (/obj/structure/table/steel_reinforced,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXv" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/table/steel_reinforced,/obj/item/weapon/gun/energy/laser/practice,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXw" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXx" = (/obj/structure/table/standard,/obj/item/weapon/surgical/cautery,/obj/item/weapon/surgical/retractor,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXy" = (/obj/machinery/recharge_station,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXz" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/engineering_hacking,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXA" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXB" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXC" = (/obj/effect/floor_decal/industrial/warning/corner{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXD" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Subversive Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/item/target,/obj/effect/floor_decal/industrial/outline/yellow,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXE" = (/obj/item/weapon/bedsheet/rainbow,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXF" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXG" = (/obj/structure/table/standard,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel,/obj/item/weapon/surgical/FixOVein,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXH" = (/obj/item/robot_parts/r_arm,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXI" = (/obj/item/robot_parts/l_leg,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXJ" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/book/manual/robotics_cyborgs,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXK" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXL" = (/obj/machinery/power/emitter{anchored = 1; desc = "It is a heavy duty industrial laser used in a very non-industrial way."; name = "teleport defender"},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXM" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aXN" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXP" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXQ" = (/obj/item/weapon/stool/padded,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aXR" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXS" = (/obj/item/weapon/bedsheet/orange,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXT" = (/obj/item/weapon/bedsheet/green,/obj/machinery/light/small{dir = 4},/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXU" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXV" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/machinery/light/small{dir = 4},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aXW" = (/obj/item/robot_parts/r_leg,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXX" = (/obj/item/robot_parts/chest,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXY" = (/obj/item/robot_parts/l_arm,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aXZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYa" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYb" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYc" = (/obj/structure/target_stake,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYd" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYe" = (/obj/item/weapon/bedsheet/rd,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aYf" = (/obj/item/pizzabox/meat,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aYg" = (/obj/item/weapon/bedsheet/clown,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/red,/area/skipjack_station/start)
+"aYh" = (/obj/structure/AIcore,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYi" = (/obj/structure/flora/pottedplant{icon_state = "plant-20"; tag = "icon-plant-22"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aYj" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYk" = (/obj/effect/floor_decal/industrial/warning,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYl" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYm" = (/obj/effect/decal/mecha_wreckage/phazon,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYn" = (/obj/item/robot_parts/head,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/wizard_station)
+"aYo" = (/obj/item/weapon/firstaid_arm_assembly,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aYp" = (/obj/item/weapon/bucket_sensor,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYq" = (/obj/item/weapon/farmbot_arm_assembly,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aYr" = (/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/wizard_station)
+"aYs" = (/obj/structure/table/steel_reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYt" = (/obj/machinery/computer/teleporter,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYu" = (/obj/machinery/teleport/station,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
+"aYv" = (/obj/machinery/teleport/hub,/turf/unsimulated/floor{icon_state = "dark"},/area/wizard_station)
(1,1,1) = {"
aaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaalaahaajaapaaqaaraasaataauaavaawaaxaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaR
aajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbabhabeaaZabcaabaauaavaawabiabjabkablabmabeaaXabfaaZabcabbabhabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabvabuabuabuabuabuabuabwabxabyabxabyabxabxabyabxabyabxabwabzabAabAabAabAabAabAabAabAabAabwabBabCabDabDabDabDabDabDabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabJabKabKabKabKabKabLabM
-aamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaTabhaaYabfaaeaaraasaataauaavaawabiabNabhabgaaVaaYabfaaXaaTabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTaaTabNaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabOabuabwabPabQabPabQabPabQabPabQabPabQabwabRabRabRabRabRabRabRabRabRabRabwabBabSabTabTabTabTabTabTabTabTabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
-aadaaZaaXabhaaYabdabbaaUabfaaUaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaaWaaTaaUaaVaahabiabjabkablabqabnaboabYaaTabdabeaaUaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaWabYaazaaHaaqaaraasaataauaavaawabiabjaawabiabjabkaboabpaaqaaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabOabuabuabuabuabuabuabuabuabwabQabPabZacaacbacaacbaccabQabPabwabRabRabRabRabRabRabRabRabRabRabwabBacdabTabDaceabDabTacfacgachabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGaciabVabWabWabWabWabWabXabM
-aalaaYabgaaTaaUabaaaXabbaaVabbabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaaZaaWabbabeaagaboabpaaqaaraasaataauacjabfaaUabaaaTabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaaWaaUabaaaTabdaaYaaVaaVacjaazaaNaawabiabjabkablabqabnaboabpaataauaavaawaauaavaawabiabjabkablabqabnaboaaHaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabvabuabuabuabuabwabQabPackaclacmacmacnacoacbacaabwacpacpacpacpacpacpacpacpacpacqabwabBacdacracsactacuacvacwacxacyabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
-aaoaaUabdaaWabbabcabgaaXabeaaXabhaczacAacBacCabYacDacEacFacGaaWaaXaaVabbaaTabaaaYaaZaaXabhaacabiabjabkablabqabnaboacHabeaaXabfaaZabcabbabhaaVabbabcaaWabaaaUabeabeaaVabbabcaaWabaaaUabeabeacHaazaaHaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabvabuabuabuabvabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKacLacMacMacMacMacNacKacOabwabBacdacPacQacQacQacRacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
-aababbabaaaZaaXabfabdabgabhabgacCacUacVacVacVacVacVacVacVacFacEaaWabeaaXaaWabcaaUaaYabgaaTaaiaasaataauaavaawabiabjabmabhabgaaVaaYabfaaXaaTabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaCablabqabnaboacWacXacXacYacZacWacXacYacWacXacYacYacYabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKadaadbadbadbadbadcacKacOabwabBacdaddadeadfadeadgacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM
-aaeaaXabcaaYabgaaVabaabdaaTadjadkacVacVacVacVacVacVacVacVacVacDadlabhabgaaZabfabbaaUabdaaWaafabqabnaboabpaaqaaraasabNaaTabdabeaaUaaVabgaaWaaWabeaaXabfaaZabcabbabhabhaaXabfaaZabcabbabhabhabNaazaaLaauaavaawabiadmadnadnadoadpadqadradsadtaduadvadvacYadmabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabOabuabuabuabvabwabQabPackaclacmacmacnadwadxadyabwacKacKadaadbadbadbadbadcacKacOabwabBacdadzadAadfadAadBacwacSacTabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM
-aahabgabfaaUabdabeabcabaaaWaczacVacVacVacVacVacVacVacVacVacVacVabmaaTabdaaYaaVaaXabbabaaaZaanabpaaqaaraasaataauaavabYabfaaUabaaaTabdaaYaaVadCadDadEadFadGadHadIadJadKabgaaVaaYabfaaXaaTaaTabYaazaaOabiabjabkabladLadMadMadNadOadOadnadoadpadradsadsadsadmablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabOabuabuabuabuabuabuabuabwabQabPadPadyadxadyadxadQabQabPabwacKacKadaadbadbadbadbadcacKacOabwabBadRadSadfadfadfadTacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGadUadhabWabWabWabWabWadiabM
-aagabdaaVabbabaabhabfabcaaZacUacVacVacVacVacVacVacVacVacVacVacVacGaaWabaaaUabeabgaaXabcaaYaakabkablabqabnaboabpaaqacjaaVabbabcaaWabaaaUabeadVadWadXadYadZaeaaebaebadKabdabeaaUaaVabgaaWaaWacjaazaaJaasaataauaavadmadqadqadradsadqadradsadtaecaedaedaedaeeaavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQabPabQabPabQabPabQabQabPabwacKacKaefaegaegaegaegaehacKaeiabwabBacdadzadAadAadAadBacwaejaekabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM
-aacabaabeaaXabcaaTaaVabfaaYacCacVacVacVacVacVacVacVacVacVacVacVaaxaaZabcabbabhabdabgabfaaUaaaaataauaavaawabiabjabkacHaaUaaVaaZabdaaWabfaeladJaemaenaeoadXadWaepaepadHaelaaVaaZabdaaWabfabbacHaazaaDabqabnaboabpaeqaeraeraecaedadnadoadpadqadoadpadpadpaesabpaaqaaraasaataaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabvabuabuabuabOabuabuabuabuabOabwabxabyabxabyabxabxabyabxabyabxabwaetacKacKacKacKacKacKacKacKaeuabwabBabCaevaewaewaewaexacwabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIaeyaezaezaezaezaezaeAabM
-aaiabcabhabgabfaaWabeaaVaaUadkacVacVacVacVacVacVacVacVacVacVacVacEaaYabfaaXaaTabaabdaaVabbaajabjabkablabqabnaboabpabNabbabeaaYabaaaZaaVaeBaenaeaadZaeCaeDaeEaeFaeFaenaeBabeaaYabaaaZaaVaaXaaxaazaaIaaraasaataauaeGadqadqadradsadtaduadvaeraecaedaedacYaeHaauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaR
-aafabfaaTabdaaVaaZabhabeabbaeKacVacVacVacVacVacVacVacVacVacVacVaeLaaUaaVabgaaWabcabaabeaaXaamaaraasaataauaavaawabiabYaaXabhaaUabcaaYabeaeMadYaepaeaaeoaebadWadZaebaeFaeMabhaaUabcaaYabeabgabmaazaaBabkablabqabnaeNaeqaeqaeOacWacXacYaeqaeOacWacXacXacXabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwaeRaeRaeRaeRaeRaeRaeRaeRaeRaeSabwaeTaeUaeVaeWaeXaeWaeYaeZaeXaeZabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdafeaffaffaffaffaffafgabwafhafhafiafiafiafiafiafiafiafiabM
-aanaaVaaWabaabeaaYaaTabhafjafkacVacVacVacVacVacVacVacVacVacVacVaflacHabeabdaaZabfabcabhabgaadaavaawabiabjabkablabqacjabgaaTabbabfaaUabhafmaenaeaadZaeCaeDaeEaeFaepaebafmaaTabbabfaaUabhabdabNaazaaFaboabpaaqaaraasaataauaavaasabkablabqabnabiabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQafoaeQaeQaeQaeQafoaeQaeQaeQabwaeRaeRafpafqafqafqafraeRaeRaeRabwaeTaeUaeVafsaftafsaftafuaftafuabwafaafaafvafaafaafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafiafiafiafzafzafzafiafiafiabM
-aakabeaaZabcabhaaUaaWaaTadjacVacVacVacVacVacVacVacVacVacVacVacVacVaayabhabaaaYaaTaaVaaWabaaaoablabqabnaboabpaaqaaracHabdaaWaaXaaVabbaaTafAaeFadWadXadYadZaeaaebaeCaepafAaaWaaXaaVabbaaTabaabYaazaaKaataauaavabqacXacXacXacYacZacWacXacYacWacXacYacYacZaavaawabiabjabkablaaEaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQafBaeQabwaeRaeRafCafCafCafCafCaeRaeRaeRabwaeTaeTafDafsaftaeXaeXaeXaftafuabwafaafaafaafaafaafaafEafFafaafaabwafbafbafGafwafxafxafxafxafxafyabwafiafiafiafHafIafIafIafiafiafiabM
-aaaabhaaYabfaaTabbaaZaaWafJacVacVacVacVacVacVacVacVacVacVacVacVacVacDaaTabcaaUabeabeaaZabcaababnaboabpaaqaaraasaataaxabaaaZabgabeaaXaaWafKaebaemaenaeoadXadWaepaenadXafKaaZabgabeaaXaaWabcaaxaazaaMaavaawabiadmacWafLafLafMafNafOafPafQafRafSafTafTadmabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQaeQafUaeQafBaeQaeQaeQaeQaeQabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVafsaftaftaftaftaftafuabwafaafaafaafaafXafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafzafYafZagaagaagbagcafzafiabM
-aajaaTaaUaaVaaWaaXaaYaaZaczacVacVacVacVacVacVacVacVacVacVacVacVacVacGaaWabfabbabhabhaaYabfaaeaawabiabjabkablabqabnabmabcaaYabdabhabgaaZagdaepageaeFaeEaenaemaeCaeFaenagdaaYabdabhabgaaZabfabmaazaaGabpaaqaaradLagfagfagfaggaghaghafLafMafNafPafQafQadmaaraasaataauaavaawaaAaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQagiaeQaeQaeQaeQagiaeQabwagjagkaglaglaglaglaglagmafVafWabwaeTaeUaeVagnagoagoagpagoagoagqabwafaafaafaafaafaafaafaagrafaafaabwafbafcafdagsagtagtagtagtagtaguabwafiafzafYagvagwagxagyagcafzafiabM
-aamaaWabbabeaaZabgaaUaaYacUacVacVacVacVacVacVacVacVacVacVacVacVacVaaxaaZaaVaaXaaTaaTaaUaaVaahabqabnaboabpaaqaaraasabNabfaaUabaaaTabdaaYagzaeCaeDaebaeaaeFageadYaebaeFagzaaUabaaaTabdaaYaaVabNaazaaLaauaavaawadmafOafOafOafPafQafOafPafQafRagAagBagBaeeaawabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwagjagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagFagGagGagGagGagGagHabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagIagJagJagJagJagJagKabwafiafzafYagvagLagMagyagcafzafiabM
-aadaaZaaXabhaaYabdabbaaUacCacVacVacVacVacVacVacVacVacVacVacVacVacVacEaaYabeabgaaWaaWabbabeaagaasaataauaavaawabiabjabYaaVabbabcaaWabaaaUadHadCadDadEadFadGadHadIadJadKadHabbabcaaWabaaaUabeabYaazaaCablabqabnaeqagNagNagNagAagBafLafMafNafOafMafNafNaesabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQaeQaeQaeQafoaeQafUaeQaeQafoabwafVagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagOaftaftaftaftaftagPabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagQafxafxafxafxafxagRabwafiafzafYagbagSagSagTagcafzafiabM
-aalaaYabgaaTaaUabaaaXabbadkacVacVacVacVacVacVacVacVacVacVacVacVacVaeLaaUabhabdaaZaaZaaXabhaacabkablabqabnaboabpaaqacjabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabeabeaaXabfaaZabcabbabhacjaazaaJaasaataauaeGaeNafOafOafPafQafRafSafTagNagAagBagBaeHaauaavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwagUaeQaeQaeQaeQagUaeQaeQaeQaeQabwafVagCagDagDagDagDagDagVafVafWabwaeTaeTagWagOaftagXagXagXaftagPabwagYagYagYagYagYagYagYagYagYagYabwafbafbagZagQafxafxafxafxafxagRabwafiafiafiahaahaahaahbafiafiafiabM
-aaoaaUabdaaWabbabcabgaaXaeKacVacVacVacVacVacVacVacVacVacVacVacVacVaflabbaaTabaaaYaaYabgaaTaaiaauaavaawabiabjabkablacHabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTabhabhabgaaVaaYabfaaXaaTacHaazaaEabnaboabpabqaeqaeqaeqaeOacWacXacYaeqaeOacWacXacXacYabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQagiaeQafUaeQaeQagiaeQafUaeQabwafVahcahdahdahdahdahdaheafVafWabwaeTaeUaeVagOaftagOaftagPaftagPabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdagQafxafxafxafxafxagRabwafiafiafiafzafzafzafiafiafiafiabM
-aababbabaaaZaaXabfabdabgafkacVacVacVacVacVacVacVacVacVacVacVacVacVahgaaXaaWabcaaUaaUabdaaWaafabpaaqaaraasaataauaavabmaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaTaaTabdabeaaUaaVabgaaWabmaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQagUaeQaeQaeQaeQagUabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVahhagXahhahiahjagXahjabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdahkahlahlahlahlahlahmabwafiafiafiafiafiafiafiafiahnahnabM
-aaeaaXabcaaYabgaaVabaabdacBacVacVacVacVacVacVacVacVacVacVacVacVacVacFabgaaZabfabbabbabaaaZaanabnaboabpaaqaaraasaatabNaaWabaabhabbabeabdaaZaaVabfaaUabaaaTabdaaYaaVabfaaWabaabhabbabeabdaaZabNaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaR
-aahabgabfaaUabdabeabcabaahpacVacVacVacVacVacVacVacVacVacVacVacVacVahqabdaaYaaVaaXaaVaaWabaaapaavaawabiabjabkablabqabYaaZabcaaTaaXabhabaaaYabeaaVabbabcaaWabaaaUabeaaVaaZabcaaTaaXabhabaaaYabYaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aagabdaaVabbabaabhabfabcacAacVacVacVacVacVacVacVacVacVacVacVacVacVabmabaaaUabeabgaaVaaWabaaaoabjabkablabqabnaboabpacjaaYabfaaWabgaaTabcaaUabhabeaaXabfaaZabcabbabhabeaaYabfaaWabgaaTabcaaUacjaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aacabaabeaaXabcaaTaaVabfahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabcabbabhabdabeaaZabcaabaataauaavaawabiabjabkaayaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaiabcabhabgabfaaWabeaaVahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabfaaXaaTabaabhaaYabfaaeaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahuahvahwahxahyahsahzahAahAahAahAahAahsahBahCahBahCahBahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aafabfaaTabdaaVaaZabhabeahracVacVacVacVacVacVacVacVacVacVacVacVacVabNaaVabgaaWabcaaTaaUaaVaahaaTaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaaTabdaazahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahAahAahAahAahEahsahFahCahCahCahGahAahsahHahCahHahCahHahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aanaaVaaWabaabeaaYaaTabhahIacVacVacVacVacVacVacVacVacVacVacVacVacVabYabeabdaaZabfaaWabbabeaagaaWaajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbaabaaWabaaazahDabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahAahAahJahAahKahsahLahCahMahMahGahAahsahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aakabeaaZabcabhaaUaaWaaTahNacVacVacVacVacVacVacVacVacVacVacVacVacVacjabhabaaaYaaVaaZaaXabhaacaaZaamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaeaaZabcaazahDaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahAahJahAahAahAahAahCahMahMahCahAahOahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaaabhaaYabfaaTabbaaZaaWahNacVacVacVahPacVacVacVacVacVahPacVacVacVacjaaTabcaaUabeaaYabgaaTaaiaaYaadaaZaaXabhaaYabdabbaaUabfabgaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaahaaYabfaazahDabgaaZabfabgabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgabgaaZaaPahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahQahRahAahAahAahAahAahAahCahMahMahCahAahOahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aajaaTaaUaaVaaWaaXaaYaaZaayaaxaaxacEaeLahPahSahTahUahVacGacFahqaaxacHaaWabfabbabhaaUabdaaWaafaaUaalaaYabgaaTaaUabaaaXabbaaVabdabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaagaaUaaVaazahDabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahWahXahXahXahXahXahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahZaiaahsahsahsahAahCahMahMahGahAahsahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aamaaWabbabeaaZabgaaUaaYabdaaUabaabgaflacEaayahgabNacHaaxaaYabfaaWabgaaZaaVaaXaaTabbabaaaZaanabbaaoaaUabdaaWabbabcabgaaXabeabaabhaaVaaZaaTabfaaYabgabcabhabdaaWaaXaaVabbaaTabaaacabbabeaazahDabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaibaicaidaieaifahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsaigaiaaiaaiaaiaaihahsahAahCahCahCahGahAahsahHahCahBahCahHahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aadaaZaaXabhaaYabdabbaaUabfabgaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaaWaaXabcaaYaakaaXaababbabaaaZaaXabfabdabgabhabcaaTabeaaYaaWaaVaaUabdabfaaTabaaaZabgabeaaXaaWabcaaiaaXabhaazahDabhabcabcabbabhabcabbabhabcabbabhabcabbabhabcabbabhabhabcabcabbabhabcabbabhabcabbabhabcabbabhabcabbabhaaVabcahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaijaijaijaiiahYahYahYahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsaigaiaaikailaiaaihahsahAahAahAahAahAahAahsahBahCahBahCahBahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aalaaYabgaaTaaUabaaaXabbaaVabdabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaaZabgabfaaUaaaabgaaeaaXabcaaYabgaaVabaabdaaTadCadDadEadFadGadHadIadJadKaaWabcaaYabdabhabgaaZabfaafabgaaTaazahDaaTabfabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTaaTabfabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfabfahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaimaimaimaiiahYainaioahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahsahsahsahsahsahsahsahAahAahsahsahsahsahsahsahsahsahsahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaoaaUabdaaWabbabcabgaaXabeabaabhaaVaaZaaTabfaaYabgabcabhabdaaWaaXaaVabbaaTabaaaYabdaaVabbaajabdaahabgabfaaUabdabeabcabaaipaiqairaisaitaiuaivaiwaixadHaelabfaaUabaaaTabdaaYaaVaanabdaaWaazahDaaWaaVaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaWaaVaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVaaVahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaiyaizaiAaiiahYahYahYahYahYahYahYahYahYahYahYahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahAaiBahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aababbabaaaZaaXabfabdabgabhabcaaTabeaaYaaWaaVaaUabdabfaaTabaaaZabgabeaaXaaWabcaaUabaabeaaXaamabaaagabdaaVabbabaabhabfabcaelaiuaiCaitaixaiDaiEaiFaiGaiHaeBaaVabbabcaaWabaaaUabeaakabaaaZaazahDaaZabeabeabdaaZabbafmafmafmafmafmafmabbafmafmafmabbabbabbafmafmafmabbafmafmaiIagdaelaiIabdaaZabeabdaaZabeabeahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaiyaizaiAaiiaiJaiKaiLaiMaiNaiOaiKaiPaiQaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahAahAahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaeaanaamaacaakaalaajaaaaaeaadaahaabaaiaagaaoaafaajaalaahaamaacaaaaabaakaagaadaafaamaabaakaiSabcaacabaabeaaXabcaaTaaVabfaeBaiFaiGaiwaiTairaixaitaivaiUaeMabeaaXabfaaZabcabbabhaaaabcaaYaazahDaaYabhabhabaaaYabbafmaiVafmafmaiVafmabbafmaiVafmafmafmafmafmaiVafmabbafmaiVaiWaiWaiXaiWabaaaYabhabaaaYabhabhahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaiyaizaiAaiiaiYaiKaiOaiOaiNaiOaiKaiOaiRaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsaiZaiZahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPabfaaiabcabhabgabfaaWabeaaVaeMaitaivaiHaiCaiuaiTaiwaisaiEafmabhabgaaVaaYabfaaXaaTaajabfaaUaazahDaaUaaTaaTabcaaUabbafmaiVaiVaiVaiVafmafmafmaiVaiVaiVajaajbajbajcafmafmafmajaajbajbajcaiWabcaaUaaTabcaaUaaTaaTahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaizaizaizajdajeajfaiOaiOaiNaiOaiKaiPaiQaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajgajhajhajgaaPaaPaaPaaPajiajgajgajgajjaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aagaaVabbabcaaWabaaaUabeacGajkajlajmaflabcaayajnajoadIaaxaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPaaVaafabfaaTabdaaVaaZabhabeafmaiwaisaiUaiGaiFaiCaiHaiDaixafAaaTabdabeaaUaaVabgaaWaamaaVabbaazahDabbaaWaaWabfabbabbafmaiVaiVaiVaiVafmafmaiVaiVaiVaiVajpajqajqajraiVafmafmajpajqajqajraiWabfabbaaWabfabbaaWaaWahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiaizaizaizajdajeajfaiOaiOaiOaiOajsaiOaiRaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajiajgajgajgajgajgajtajuajvajjaaPaaPaaPaaPaaPajiajgajwajxajgajjaaPaaPajiajgajgajgajyajzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aacabeaaXabfaaZabcabbabhahqajAajBajCacjaaZahgajDajEajFabmabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPabeaanaaVaaWabaabeaaYaaTabhafAaiHaiDaiEaivaitaiGaiUairaiTafKaaWabaabhabbabeabdaaZaadabeabgaazahDaaXaaZaaZaaVaaXabbafmaiVaiVaiVaiVafmafmaiVaiVaiVaiVajGajHajHajIaiVafmafmajGajHajHajIaiWaaVaaXaaZaaVaaXaaZaaZahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXaiiajJaizajKaiiaiYaiKaiOaiOaiNaiOaiKaiPaiQaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajiajgajLajMajgajNajOajPajQajRajgajjaaPaaPaaPajiajgajgajhajhajgajgajtajvajgajSajTajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaiabhabgaaVaaYabfaaXaaTahqajAajBajCacjaaZahgajDajEajFabmabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPabhaakabeaaZabcabhaaUaaWaaTafKadVairaixaisaiwaivaiEaiuadKagdaaZabcaaTaaXabhabaaaYaalabhabdaazahDabgaaYaaYabeabgabbafmaiVaiVajaajbajbajcaiVaiVaiVaiVaiVajVajWaiVaiVaiVaiVaiVajVajWaiVaiWabeabgaaYabeabgaaYaaYahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXajXaiiajYaiiajZaiJaiKaiOaiOaiNaiOaiKaiOaiRaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakaakbakcakcakdakcakcakeakfakgajgajgajtajuajvajgajgakhakcakcakiajgakjakkaklakcakmajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aafaaTabdabeaaUaaVabgaaWabmaknakoakpacHaaYacFakqakraksabNaaTabdabeaaUaaVabgaaWaaWaamaaPaaPaaPaaTaaaabhaaYabfaaTabbaaZaaWadVadJaiDaiHaiDaiHaisaiDaiHadHagzaaYabfaaWabgaaTabcaaUaaoaaTabaaazahDabdaaUaaUabhabdabbafmaiVaiVajpajqajqajraiVaiVaiVaiVajaaktakuajaaiVaiVaiVajaaktakuajaaiWabhabdaaUabhabdaaUaaUahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahXakvajXakwajZakvaiJaiKaiOaiOaiNaiOaiKaiPaiQaiRaiRahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakxakyakzakAajgakcakcakBakCakDajgakEakFakGakHakIakJakKakLakLakcakMakcakcakcakcakNajgajyakOaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aahabfaaUabaaaTabdaaYaaVabNakPakQajBaayaaUahqakRakSakTabYabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPaaWaajaaTaaUaaVaaZajmadFakUakVaiDaiuaiEaiuaiEairaiuaiEaiwadHadHaiIakUabaaaWabfabbaabaaWabcaazahDabbaaTabaabbabaabbafmaiVaiVajGajHajHajIaiVaiVaiVaiVajpajbakWajpaiVaiVajaajpajbakWajpaiWaaTabaabbaaTabaabbabbahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahYahYahYahYahYahYahYahYahYahYahYahYahYahYahYahYahYahYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXajgajgajgajgakYakZakcakcalaajgalbalcaldalealfalgalhakLakLakcakMakcalialjakcakcajgajgalkaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aagaaVabbabcaaWabaaaUabeabYajCallakoacDabbabmalmajFalnacjaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPaaZaamaaWabbabeaaYagdaiwaiFaiTaiuaiEaivaiDaiHaiuaiGaiHaiDaiCaiwaiwadFabcaaZaaVaaXaaeaaZabfaazahDaaXaaWabcaaXabcabbafmajaajbajbajcajWaiVaiVaiVaiVaiVaiVaiVaiVaiVaiVaiVajpajqajqajraiXaiWaaWabcaaXaaWabcaaPaaXahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXajgajgaloakcajgajgalpalqalralsaltalualhakLakcakZajgajgajgajgalvalwajgalkaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aacabeaaXabfaaZabcabbabhacjahqacHabYacGaaXabNaaxahgabmacHabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPaaYaadaaZaaXabhaaUagzaiwaitaiCaiGaiHaisaiuaiEaiFaivaiwairaiGaiHaisadIabfaaYabeabgaahaaYaaVaazahDabgaaZabfabgabfabbafmajpajqajqajrakuajaajaajbajbajcajbajbajcaiVaiVaiVajGajHajHajIaiXaiWaaZabfabgaaZabfaaPabgahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajialyalzajgajgajgajgajgajgajgajgalAakcakcakcakcalBakcakcakcakcalCajgalDakcajgalEalFalFalCajgajgajgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaiabhabgaaVaaYabfaaXaaTabfabhabgaaVaaYabfaaXaaTabfaaXaaTabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPaaUaalaaYabgaaTabbalGaiHaiwaiGaivaiUaiDaiwaiCaitaisaiEaiuaivaiUaiDalHaaVaaUabhabdaagaaUabeaazahDabgaaZabfabgabfafmafmajGajHajHajIakWajpajpajqajqajrajqajqajraiVaiVaiVaiVajVajWaiVaiXaiWaelabfabgaaZabfaaPabgahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIalIalIalJalIalIalIalKalLalIalIalIalKalIalIalIalIalIalIalKalIalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajialEalMalNajgalOajgalPalQalRajgajgalSakcakLakLakLakLakLakLakLakLakLakcakLakcalTalUakLakLakcajgajyajzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aafaaTabdabeaaUaaVabgaaWaaVaaTabdabeaaUaaVabgaaWaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaamaaPaaPaaPabbaaoaaUabdaaWaaXalVaiUaiHaivaisaiEairaiHaiGaiwaiDaixaiFaisaiEairajmabeabbaaTabaaacabbabhaazahDabgaaZabfabgabfafmaiVaiVajVajWaiVaiVaiVajGajHajHajIajHajHajIaiVaiVaiVajaaktakuajaaiXaiXaelabfabgaaZabfaaPabgahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalJalIalIalIalIalIalIalIalIalIalIalIalKalIalIalIalIalIalKalIalIalIalIalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalWalXakLalYajgalZajgajgamaajgambajgamcakLakLamdameamfamgamhamiamjakLakLakLakLamkamlakLakLakcajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPaaXaababbabaaaZabgadKaiEaiUaisaiDaixaiuaiUaivaiHairaiTaitaiDaixaiuadVabhaaXaaWabcaaiabgaaTaazahDabdaaYaaVabdaaVafmaiVajaaktakuajaajaajbajbajcajWaiVajVajWaiVaiVaiVaiVajpajbakWajpaiXaiXaeBaaVabdaaYaaVaaPabdahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIammalIalIalIalIalIalJalIalIalLalKalIalIalKalIalIalKalLalIalKalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPamnamoampakLamqakcakcakcakcamrakcakcakcakLakLamsamtamuamvamwamxamyakLakLakLakLamzakLakLakLakcajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPabgaaeaaXabcaaYabdadHaixaiEaiDairaiTaiFaiEaisaiUaiuaiCaiwairaiTaiFadJaaTabgaaZabfaafaaPaaWaazahDabhabcabcabbabhafmafmajpajbakWajpajpajqajqajrakuajaaktakuajaaiVaiVaiVaiVaiVaiXaiXaiXaiWafmabhabcabbabhaaVabcahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalJalIalIalKalLalIalIalKalIalLalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXakYamAamBajgamCamDamEamFamGakcamHakcakcakLakLakLakLakLakLakLakLakLakcakLakcamIakcamJamKakmajgajyakOaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aagaaVabbabcaaWabaaaUabeabaaaVabbabcaaWabaaaUabeabaaaUabeaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPabdaahabgabfaaUagzadEaiTaixairaiuaiCaitaixaiDaiEaiFaiGaiHaiuaiCaitakVaipabdaaYaaVaanabdaaZaazahDaaTabfabfaaXaaTabbafmafmafmafmafmajGajHajHajIakWajpajbakWajpaiVaiVaiVaiVafmaiWaiWaiWaiWaaXaaTabfaaXaaTabfabfahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalJalIalIalIalIalIalLalIalKalLalIalKalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXamLamMajgajgajgajgajgajgajgajgamNakcakcakcakcaliakcakcakcakcamOajgalDakcajgakYamPamQamOajgajgajgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aacabeaaXabfaaZabcabbabhabcabeaaXabfaaZabcabbabhabcabbabhabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPabaaagabdaaVabbalGaisaiCaiTaiuaiFaiGaiwaiTairaixaitaivaiUaiFaiGaiwaiTaelabaaaUabeaakabaaaYaazahDaaWaaVaaVabgaaWabbabbabbabbabbafmaiVajVajWaiVaiVaiVaiVaiVaiVaiVaiVaiVaiVafmaaPaaPaaPaaPabgaaWaaVabgaaWaaVaaVahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIamRamRamRamRamRamRamRalIalIalIalIalIalIalIalKalIalIammalLalIalIalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajiajgajgaloakcajgajgamSamTamUamVamWakJamXakLakcamYajgajgajgajgakcamZajgajjaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaiabhabgaaVaaYabfaaXaaTabfabhabgaaVaaYabfaaXaaTabfaaXaaTabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPabcaacabaabeaaXanaaiDaiGaiCaiFaitaivaiHaiCaiuaiTaiwaisaiEaitaivaiHaiCaeBabcabbabhaaaabcaaUaazahDaaZabeabeabdaaZabbabbabbabbabbafmajaaktakuajaaiVaiVaiVaiVaiVaiVaiVaiVaiVafmaaPaaPaaPaaPabdaaZabeabdaaZabeabeahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIanbahYancandandandaneahYanfalIalIalIalIammalIalIalJalIalJalIalKalIalKalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajiajgajgajgajgalEamYakcakcangajganhanianjankanlalganmakLakLakcannakcalBakcakcakcajgajgajjaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aafaaTacGajkajlajmaflaaXaayajnajoadIaaxaaXaaXacGajkajlajmaflabcaayajnajoadIaaxaaWaamaaPaaPaaPabfaaiabcabhabganoairaivaiGaitaiwaisaiUaiGaiFaiCaiHaiDaixaiwaisaiUaiGaeMabfaaXaaTaajabfabbaazahDaaYabhabhabaaaYabbabbabbabbabbafmajpajbakWajpaiVaiVaiVaiVaiVaiVaiVaiVaiVafmaaPaaPaaPaaPabaaaYabhabaaaYabhabhahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIahYanpanpanpanpanpanpanpahYanqalIalIamRamRamRamRamRamRamRamRanransamRalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPantanuanvanwajgakcakcakeanxanyajganzanAanBanCanDaluanEakLakLakcannakcakcakcakcakcajgajyajzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaoabfahqanFanGanHacjabgahganIanJanKabmabgabgahqanLanManNacjaaZahganOanPanQabmabaaacaaPaaPaaPaaVaafabfaaTabdaiIaiuaisaivaiwaiHaiDaiEaivaitaiGaiUairaiTaiHaiDaiEaivafmaaVabgaaWaamaaVabgaazahDaaUaaTaaTabcaaUabbabbabbabbabbafmafmafmaiVaiVaiVaiVaiVaiVaiVaiVaiVafmafmafmaaPaaPaaPaaPabcaaUaaTabcaaUaaTaaTahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIahYanpanpanpanpanpanpanpahYanqalIanRanSanTanTanUalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPanVakcakcakcanWakcakcanXanYanZajgajgaoaaobaocajgajgaodaoeaofakcajgaogaohaoiaojakmajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aabaaTahqanFanGanHacjabgahganIanJanKabmabgabgahqanLanManNacjaaZahganOanPanQabmabcaaiaaPaaPaaPabeaanaaVaaWabaaokaiFaiDaisaiHaiuaiUaiwaiTaiEaitaiCaiDaiFaiUairaixaisafAabeabdaaZaadabeabdaazahDabbaaWaaWabfabbaaWaaPaaPaaPaaPaaPaaPaiWaiWaiXaiXaiXaiXaiXaiXaiXaiWaiWaaPaaPaaPaaPaaPaaPabfabbaaWabfabbaaWaaWahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIahYanpanpanpanpanpanpanpahYanqammanRaolaiRaiRaiRaomaonalxaooaopaoqalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXajgaoraosajgaotakcaouaovaowajgalkaaPaaPaaPakXajgajgaoxaoyajgajgaoaaocajgaozaoAajgajyajUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaeabcabmaoBaoCaoDacHabdacFaoEaoFaoGabNabdabdabmaoHaoIaoJacHaaYacFaoKaoLaoMabNabfaafaaPaaPaaPabhaakabeaaZabcaoNaitairaiDaiUaiFaiEaiHaiCaixaiwaiGairaitaiEaiuaiTaiDafKabhabaaaYaalabhabaaazahDaaXaaZaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaVafAaelanoafAafAaelaelanoafAaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaZahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIaoOahYahYahYanpahYahYahYaoPalIalIaoQaolaiRaiRaoRaiRaiRaoSaiRaiRaiRalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakXajgajgajgajgajgaoaaobaocalkaaPaaPaaPaaPaaPakXajgaoTaoUajgalkaaPaaPakXajgajgajgajyakOaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aahaaUabNaoVaoWanGaayabaahqaoXaoYaoZabYabaabaabNapaapbanMaayaaUahqapcapdapeabYaaVaanaaPaaPaaPaaTaaaabhaaYabfahpaiwaiuairaiEaitaixaiUaiGaiTaiHaivaiuaiwaixaiFaiCairafJaaTabcaaUaaoaaTabcaazahDabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIahYanpanpanpahYapfamRamRamRapgaphaiRapiapjapkaiRalxaiRaplaplalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajgapmapnajgaaPaaPaaPaaPakXajgajgajgalkaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aagabbabYanHapoaoCacDabcabmappanKapqacjabcabcabYanNapraoIacDabbabmapsanQaptacjabeaakaaPaaPaaPaaWaajaaTaaUaaVadGaiHaiFaiuaixaiwaiTaiEaivaiCaiUaisaiFaiHaiTaitaiGaiuadJaaWabfabbaabaaWabfaazahDabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIalIalIalIalIalIahYanpanpanpahYanSanTanTanTanUalxaiRapiapuapkaiRalxalxalxalxaaRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aacaaXacjahqacHabYacGabfabNaaxahgabmacHabfabfacjahqacHabYacGaaXabNaaxahgabmacHabhaaaaaPaaPaaPaaZaamaaWabbabeakUaiUaitaiFaiTaiHadKaixaisaiGaiEaiDadIaiUaiCaiwaivaiFakVaaZaaVabgaaeaaZaaVaazahDabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIanbahYahYahYahYahYanpanpanpahYaolaiRaiRaiRaiRapvaiRaiRaiRaiRaiRapwapxapxapyalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaiabgabgaaVaaYabfaaXaaTabfabgabgaaVaaYabfaaXaaTabfaaXaaTabgabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPaaYaadaaZaaXabhadFaiEaiwaitaiCaiUadHaiTaiDaivaixairalHaiEaiGaiHaisaitadCaaYabeabgaahaaYabeaazahDaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIahYanpanpanpanpahYanpanpanpahYaphaiRapzanTanUalxaiRaiRaiRaiRaiRalxapyapyapAalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aafabdabdabeaaUaaVabgaaWaaVabdabdabeaaUaaVabgaaWaaVabgaaWabdabdabeaaUaaVabgaaWaaWaamaaPaaPaaPaaUaalaaYabgaaTadIaixaiHaiwaiGaiEadEadKadGapBadCakUajmaixaivaiUaiDaiwadKaaUabhabdaagaaUabhaazahDabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIahYanpanpanpanpahYanpanpanpahYahYapCahYapDapEalxalxalxalxalxapFalxapGapyapAalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aanaalaahaajaaoaacaaeaabaanaagaakaafaamaaaahDahDahDahDahDaahaajaabaafaaoaaaaagaagaadaaPaaPaaPabbaaoaaUabdaaWalHadCadVajmadEakVapBabeaaYaaWaaVaaUadVadCapBadJadGajmadHabbaaTabaaacabbaaTaazahDabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxapHalIahYanpanpanpanpahYahYanpahYahYanpanpanpahYapIapJapEalxapKapLapLalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-abfaaXabhaaUabcaaYaaUabcaaYaaXabhaaUabcaaYaaXabhaaUabcaaYaaXabhaaUabcaaYabeabgaaWaaPaaPaaPaaPaaXaaeaaXabcaaYabgaaVabaabdaaTabfaaWabhaaUaaZabeabbabaaaVaaWabcaaYabdabhabgaaZabfaafaaXaaZaazahDabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIahYanpanpanpanpanpanpanpanpanpanpanpanpahYanqalIanRapMapKapLapLalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaVabgaaTabbabfaaUabbabfaaUabgaaTabbabfaaUabgaaTabbabfaaUabgaaTabbabfaaUabhabdaaZaaPaaPaaPaaPabgaahaakaadaaiaaaaaoaamaajaahaalaagaaeaafaacaabaanaamaaoaagaadaacaaiaaeaaaaacaalaanabgaaYaazahDaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIalIahYanpanpanpanpanpanpanpanpanpanpanpanpahYapNalIanRaolapKapLapLalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-abeabdaaWaaXaaVabbaaXaaVabbabdaaWaaXaaVabbabdaaWaaXaaVabbabdaaWaaXaaVabbaaTabaaaYaaPaaPaaPaaPaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalIanbahYahYahYahYahYahYanpanpanpahYahYahYahYahYahYanfanRaphapKapLapLalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOapOapOapOapOapOapOapOaaPaaPalxalIahYapPapPapPapPapPahYanpanpanpahYanpanpanpanpanpahYapQalxapKapLapLalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOapRapRapRapOapRapRapOaaPaaPalxalIahYapPapPapPapPapPapPanpanpanpanpanpanpanpanpanpahYapQalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPapSapTapUapTapVaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOapRapWapRapXapRapRapOaaPaaPalxalIahYapPapPapPapPapPapPanpanpanpanpanpanpanpanpanpahYanqalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapTapYapZaqaapTaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOaqbaqbaqbapOapRapRapOaaPaaPalxalIahYapPapPapPapPapPahYapPapPapPahYanpahYanpahYahYahYaqcalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqdaqeaqfaqeaqdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqgaqgaqgaqgapOapOapOapOapOapOapRapRapOaaPaaPalxalIahYapPapPapPahYahYahYapPapPapPahYahYahYanpanpanpahYanqalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqhaqeaqeaqeaqhaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqgaqgaqgaqgapXapRapXapRapRapRapRapRapOaaPaaPalxalIahYapPapPapPahYalIahYaqiaqiaqiahYalIahYanpanpanpahYanqalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqhaqeaqeaqeaqhaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqgaqgaqgaqgapOapOapOapOapRapRapRaqjapOaaPaaPalxalIahYaqiaqiaqiahYalIaoOaqkaqlaqmaoPalIahYaqiaqiaqiahYanqalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqnaqeaqeaqeaqnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOaqbapRapRaqjapOaaPaaPalxalIaoOaqkaqlaqmaoPalIalIalIalIalIalIalIaoOaqkaqlaqmaoPalIalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapTaqoaqpaqqapTaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOaqbapRapRaqjapOaaPaaPalxalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapTaqsaqsaqsapTaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqtaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaqu
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapOapOapOapOapOapOaaPaaPalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqvaqwaqxaqyaqzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqBaqCaqCaqCaqDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqEaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqGaqHaqIaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJaqJaqFaaPaaPaaPaaPaqBaqCaqCaqDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqBaqCaqCaqCaqCaqCaqCaqCaqCaqCaqKaqCaqCaqCaqLaqJaqJaqJaqFaaPaaPaaPaaPaqFaqJaqJaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaaPaqAaqAaqAaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqBaqCaqCaqKaqCaqCaqKaqCaqCaqLaqMaqNaqOaqPaqQaqRaqSaqTaqUaqFaqVaqWaqXaqYaqZaraarbarcaqCaqCaqCaqKardarearearfaqDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPargarhariargarjarjargarkarlargaqJaqJaqJaqJaqJaqJaqJaqJaqJaqFaqJaqJaqJarmarnaqJaroarmarparqarraqFaqJaqJaqJaqJarsaqCaqCaqCaqDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqBaqCaqCaqCaqCaqZarvaraaraarvaraaraarvaraaraarvaqJaqJaqJaqJaqJaqJaqJaqJazBaqFarwaqJaqJarxaqJaqJaqJaryaqJaqJarzaqFaqJaqJaqJaqJargarAarBarCaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPartaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPargarDarDarEarFarDarGaqJaqJaqJaqJaqJaqJaqJaqJaraaqJaqJarHarIarJarKaqJaqJarLaqFaqJaqJaqJarxaqJaqJaqJaryaqJaqJarMaqFaqJaqJaqJaqJarNarAarAarOaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPartaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-arPaqraqraqraqraqraqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarRarSarDarDarDaqFaqJaqJaqJaqJaqJaqJaqJaqJaraaqJaqJarTarUarVarWaqJaqJarLaqFarXarYarZarmaqJaqJaqJarmasaasbascaqFaqJaqJaqJaqJarGasdaseasfaqFaaPaaPaaPaaPaqBaqCaqCaqCaqDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPasgaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPasharDarDarDarDasiarDarDarDarDarDasiasjarDarDarDaskargaqJaqJaqJaqJaqJaqJaqJaqJaraaqJaqJaqJaqJaqJaqJaqJaqJaslaqYaqZarmarmarvaqJaqJaqJarvarmarmarbaqLaqJaqJaqJaqJarsaqCaqCaqCarcaqCaqKaqCaqCaqLasmasnasoaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaspaaParuaqAaqAalxalxalxalxalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarbaqZasqarbaqZarvaraaraarvaraaraarvaraaraarvaqJaqJaqJaqJaqJaqJaqJaqJasrarmassastasuasvaqJaqJaqJasvaswasxasxasyaqJaqJaqJaqJargaszasAasAasAasBaqFasCasDaqFasmasEasoaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxasFasGasHalxalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarRasIarDarDasJarGasKasLarGasMasNarGasOasParGasQasRasSasTasUasVaqJaqJasWarmasXaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJarAarAasYasYasYarAargasnasnargasZasnataaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapMatbatcatdatcatbalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPasharDarDarDarDatearDarDarDarDarDateatfarDarDarDasJaqYaqCaqCarcaqCaqCarcaqCaqCatgarmarmarmarmarmarvathatharbaqZatiaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJarAarAatjatjatjarAatkasnasnasnasnasnasnaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaolatbatcatdatcatbalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarRatlarDarDarDatmaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJaqJatnaqJaqJatnatoaqJaqJaqJatpatqarratratsaqJaqJaqJaqJaqJaqJaqJaqJarAarAatjatjatjarAatkasnasnasnasnasnasnaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaphatbatcatdatcatbalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPasharDarDarDarDattarDarDarDarDarDattatuarDarDarDarDatmaqJaqJatvaqJaqJatvaqJaqJaqJaqJaqJaqJaqJaqJatwaqJaqJatwaqJaqJaqJaqJatpatxarrarratsaqJaqJaqJaqJaqJaqJaqJaqJarAarAasYasYasYarAarGatyasnarGatzarGatAaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxatdatdatdalxalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarRatBarDarDatCarGarmarmarvatDatDarvarmarmarGarmarmarmarmarmarvatEatEarbaqZaqJaqJaqJatpatFatGatHatsaqJaqJatIatJaqJaqJaqJaqJarGatKasAasAasAatLaqFatyasnaqFatMaqFatMaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxatNatdatOalxaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPasharDarDarDarDatParDarDarDarDarDatPatQarDarDarDatRaqFatSaqJaqJaqJaqJaqJatTatUaqFatVatWatXatYatZauaaqJaqJaubarmaucaqJaqJaqJaqJaqJaqJaqJaqJaqJaudaqFaqJaqJaqJaqJaqYaqCaqCaqCaqCaqCarcaqKaqCarcaqCaueaqCatgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaufaugaugauhalxalxauialxalxalxalxalxalxalxaqAaqAaqAalxalxalxalxalxalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQarQarQarQarQarQarQarQarQarQarvarDarDarDarDaujaqFaukaqJaqJaqJaqJaqJaqJaulaqFaqJaqJaqJaqJaumaqJaqJaqJaunarmauoaupauqauraqJaqJaqJauqaupauoaucaqFaqJaqJaqJaqJarmausautautauuauvauwaqFauxasnauyaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauzauAauBauBauBauCauDaaPaaPauEauFauGauHauFauFauFauIalxauJauKauLauMalxaqAaqAaqAalxauNaiRauOauPalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParGarDauQauRauSauTaqFauUaqJaqJauVauWaqJaqJauXaqFaqJaqJaqJaqJaqJaqJaqJaqJaqBaqCaqZarmarmarvauYauYarbaqCaqCaqCaqCaqLaqJaqJaqJaqJarmauZauZauZauZauZauZaqFavaasnavbaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPauzavcavdaveavfavgavhavcauDaaPauEauFaviaviauFauFauFauFavjavkavkavkavlalxaqAaqAaqAalxalxalxalxalxalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqYaqCaqCaqCaqCaqCaqLavmaqJaqJavnavoaqJaqJavpaqFaqJaqJavqavravsaqJaqJavtaqFavuavvavvavvavvavwavwavvavvavvavxaaPaqFaqJaqJaqJaqJarvauZavyavzavzavzavzaqYaqZavAarbaqLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPavcavBavCavCavDavCavCavgavcaaPauEavEavFavGavHauFauFauFalxavkavkavkavIalxaqAaqAaqAalxavJaiRaiRavKalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJaqJavLavMaqJaqJaqJaqFaqJaqJavNavOavPaqJaqJavQaqFavRavSavTavUavVavWavWavWavXavYavvavxaqFaqJaqJaqJaqJavZauZawaawaawaawaawaauZauZauZavzaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcawbavCavCavCavCawcawdavcaaPauEauFaweaweauFauFauFawfalxawgawhawiawjalxaqAaqAaqAalxawkaiRaiRawlalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJaqJaqJaqJaqJaqJaqJaqFaqJaqJaqJaqJaqJaqJaqJawmaqFavRawnawoavWavWavWavWavWavWavWawpawqaqFaqJaqJaqJaqJavZauZauZauZawrauZauZauZauZauZavzaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcawsavCavCawtavCavCawuavcaaPauEauFauFauFauFauFauFawvalxalxalxalxalxalxaqAaqAaqAalxawwaiRaiRawxalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJaqJaqJaqJaqJaqJaqJaqFaqJaqJaqJaqJaqJaqJaqJaqJaqFavRawnawyawzawAawAawAawAawAawBavvawCaqFaqJaqJaqJaqJarGauZauZawDawDauZauZawEauZauZavzaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawHavcawIavcavcavcavcavcawJaaPawKaugaugawLalxauPauPauPalxapxapxawMawNalxaqAaqAaqAalxawOaiRaiRawPalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJawQawRawSawTawUawVaqFawWawXawYawZaxaaxbaqJaxcaqFaxdavvavvavvavvavvavvavvavvavvawCaaPaqFaqJaqJaqJaqJaqFaxeauZaxfaxgauZauZaxhauZauZaxiaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaxkaxlaxmaxnaxoavcaaPaaPaaPaaPaaPaaPaxpauPauPauPaxqapyapyaxraxralxaqAaqAaqAalxawOaiRaiRaxsalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaxtaxuawQawRawSawTawUawVarsaqCaqCaqCaqCaqCaqCaqCaqCatgaxvaxvaxvaxvaxvaxvaxvaxvaxvaxvaxvaxvargarvaxwaxwarvaqYaqCaqCaqCaqCaqCaqCaqCaqCaqCaqCatgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaxxaxyawcavCaxzavcaaPaaPaaPaaPaaPaaPaxAauPauPauPalxaxBapyalxalxalxalxalxalxalxaxCaxDaxDaxCalxalxalxalxaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqYaqCaqCaqCaqCaqCaqCaqCaqCatgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaxEarvaxFaxFarvaxGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxjaxjaxHaxIaxIaxIaxIaxJaxJaxIaxIaxIaxIaxKaxjaxjaxjaxjaxjawFawFawFawFawFawFawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauzavcaxLaxlawcavCaxMavcauDaaPaaPaspasgaxNalxauPauPauPalxalxalxalxaxOaxPaxQaxRaxSaxTaiRaiRaiRaiRaxUaxUaxValxalxaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxjaxHaxXaxYaxZayaaxIaybaycaxIaydayeaxIaxIaxIaxKaxjaxjaxjawFayfaygayhayhayhawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauzavcavcavcavcayiaxlawcavCayjavcavcavcavcauDaykaykalxaylauPauPauPalxaymaynaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRayoalxaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxHaxIaypaypaypaypaxIayqayqaxIaypaypayraysaxIaxIaxKaxjaxjawFaytayhayhayhayhawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcayuayvaywavcayxavCavCayyavcavcayzayAayBayCayDayEayDauPauPauPauPayFaiRaiRaiRaiRaiRaiRauPaiRayGaiRaiRaiRaiRaiRaiRayHalxaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxHaxIaxIayIayJayKayLaxIayMaypayNaypaypaypaypayOayPaxIaxjaxjayQayhayhayhayhayhawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPayRaySayTaySavcavcayUayVavcavcayWayXayYayZayCayDazaayDauPauPauPauPalxazbazcaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRazdalxaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjazeazfazgaypazhazhazhaxIaypaypaxIaziazjazkazlazmaznaxIaxjaxjawFayhayhayhayhayhawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPavcavcayRazoavcavcazpavCazqavcavcazrazsazravcaztaztalxazuaugawLalxalxalxalxazvazwazxazyazzazAaiRaiRaiRaiRbaSbaSazCalxalxaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParQaxWaxWarQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjazDazfaypaypaypaypaypayNaypaypaxIaxIaxIaxIaxIaxIaxIazEaxjaxjawFazFazGayhazGazHawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavcazIavCavCazJavcazKazLavCavcazMazNazOazPavcaruaaParuaaPaaPaaPaaPaqAaqAalxalxalxalxalxalxalxaxCazQazQaxCalxalxalxalxaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjazRaxIaypaypaypazSaypaxIaypaypaypazTazUaxjaxjaxjaxjaxjaxjaxjazVazVazVazVazVazVazVazVazVazVazVaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavcazWavCavCavCazXavCavCavCazYavCavCavCazZavcasgasgasgasgaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAalxaAaaiRaiRaAaalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxjaxIaxIaxIaxIaxIaxIaxIayMaypaAbaypazUaxjaxjaxjaxjaxjaxjaxjazVaAcaAcaAcaAcaAcaAcaAcaAcaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPavcaAeavCavCavCaAfavCavCavCaAgavCavCavCaAhavcaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAalxaAaaiRaiRaAaalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFaxjaxjaxHaxIaAiaAjaAkaAiaAlaxIaypaypaypaAmazUaxjaxjaxjaxjaxjaxjaxjazVaAcaAnaAoaAoaAoaAoaAoaApaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPauzavcavcavcavcavcavcavCavCavCavcavcavcavcavcavcauDaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAalxaAaaiRaiRaAaalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxWaxWarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawFawFawFawFawFaxjaxjazeazfaAqaAqaAqaAqaAqayNaypaypaxIaxIaxIaxIaxIaxIaxIaxKaxjaxjazVaAcaAraAsaAsaAsaAsaAsaAraAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavcaAtaAuaAvaAwaAxavcaAyavCaAzavcaAAaABaABaACaADavcaaPaaPaaPaaPaaPartaruaqAaqAaqAaqAaqAaqAaqAalxaAaaiRaiRaAaalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaAFaAFaAFaAFaAEaAEaAEaAEaAFaAGaAGaAFawFaAHaAHawFawFaAHaAHawFawFaAHaAHaAHaAHawFawFawFawFaAHaAHaAHaAHawFawFawFawFaAHaAHawFawFawFawFawFawFaAIaAIaAJawFaxjaxjazDazfaAKaAqaAqaAqaAqaxIaypaypaypaypaypaxIaypaALaAMaxIaxjaxjazVaAcaAraANaAsaAsaAsaAOaAraAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaAPaAQaAQaAQaAQaAQavcavCavCavCavcaARavCavCavCaASaATaaPaaPaaPaaPaaPaspaaPaqAaqAaqAaqAaqAaqAaqAalxalxaAUaAValxalxaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAWaAXaAWaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAWaAWaAWaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAYaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaBaaAHaAIaAIaAIaAIaAIaAIaAHaAIaAIaAIaAIaAIaAIaBbaAIaAIaAIaAIaAIaAIaAIaAIaBbaAIaAIaAIaBcaAIaAIaAIaAIaAIaAIaAIaAIaBdaxjaxjazRaxIaxIaBeaBfaBgaBhaxIayMaBiaBiaBiaypayNaypaypaypaxIaxjaxjazVaAcaAraAsaAsaBjaBjaBjaBkaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaBlaBmaBnaAQaAQaAQaBoavCavCavCaBpavCavCavCaBqaBraBsaaPaaPaaPaaPaaPartaruaruaqAaqAaqAaqAaqAaqAaqAalxalxalxalxaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBtaAEaAEaAEaBtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBtaAEaAEaAEaBtaAFaAFaAFaAFaBtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaBuaAIaAIaAIaAIaAIaAIaBuaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaBcaAIaAIaAIaAIaAIaAIaAIaAIaBdaxjaxjaxjazRaxIaAqaAqaAqaAqaxIaypaBiaBiaBiaypaxIaBvaxIaxIazEaxjaxjazVaAcaAraAsaAsaAsaAsaAsaBwaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBxaAQaAQaAQaAQaAQaByavCavCavCaBzavCavCavCavCaBAaBBaaPaaPaaPaaPaaPartaaPaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaAFaAZaAZaAZaAFaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaaPaAEaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaBuaAIaAIaAIaAIaAIaAIaBuaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIawFawFawFawFawFawFawFawFawFawFaxjaxjaxjaxjazRaxIaBCaBDaBEaxIaypaypaypaypaypaxIaxIaxIazEaxjaxjaxjazVaAcaAraAsaAsaAsaAsaBFaAraAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaBGaAQaAQaAQaBHavcazraBIazravcaBJaBKaBLavCaBMavcaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaParuaruaruaruaruaruaruaruaruaruaruaaPaaPaaPaAFaAZaAZaAZaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaAFaAZaAZaAZaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaBNaAHaAHaBOaAHaAHawFaAHaAHaAHaAHaAHaBPaBPaAHaAHawFawFaAHaAHaAHaAHawFawFaAIaAIawFaBQaBRawFaBQaBRawFaBQaBRawFaxjaxjaxjaxjaxjazRaxIaxIaxIaxIaxIaxIaxIaxIaxIaxIazEaxjaxjaxjaxjaxjazVaAcaAraAsaAsaAsaAsaAsaBwaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaBSaBTaBUaBVaBWavcaBXavCaBYavcaBZavcavcaCaavcavcaaPaaPaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaBNaCbaCcaCcaCcaCcaCcaCcaCcaCcaCcaCdaCeaCfaCgaBNaChaChaChaCiaCjawFaBPaBPaBPaBPaBPaBPaBPaCkaClawFaCmaCmaCmaCmaCmaCmawFaAIaAIawFaCnaCoawFaCnaCoawFaCnaCoawFaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjazVaAcaAraAsaAsaCpaCpaCpaCqaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaCraAQaCsavcavcavcaCtavCaCuavcavcavcaCvavCaCwavcaaPaaPaaPaaPaaPaaPaaPartaruaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaBNaCAaCBaCBaCBaCCaCCaCBaCBaCBaCBaCDaCBaCBaCEaBNaCFaChaChaChaChawFaBPaCGaCHaCIaCGaBPaBPaBPaBPawFaCmaCJaCKaCKaCLaCmaAHaAIaAIawFaCMaCNawFaCMaCNawFaCMaCNawFaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjaxjazVaAcaAraANaAsaAsaAsaAOaAraAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaCOaCPaCQavcaaPavcaCRaCRaCRavcaaPavcavgaCSaCTavcaaPaaPaaPaaPaaPaaPaaPartaaParuaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCzaAZaAZaAZaBNaCAaCBaCBaCUaCVaCWaCXaCBaCBaCYaCdaCZaDaaDbaBNaDcaChaChaChaChawFaBPaCGaDdaDdaCGaBPaBPaBPaBPawFaCmaDeazGaDfaDgaCmaAHaAIaAIawFaDhawFawFaDhawFawFaDhawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFawFazVaAcaDiaDjaAsaAsaAsaDkaDlaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavcaCRaCRaCRavcaaPawHaDmaDnaDoawJaaPavcaCRaCRaCRavcaaPaaPaaPaaPaaPaaPaaPartaruaruaruaruaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaBNaCAaCBaCBaCUaCWaCWaCXaCBaCBaCEaBNaBNaBNaBNaBNaDpaDpaDpaChaChawFaBPaBPaBPaBPaBPaBPaBPaDqaCGawFaCmaDeazGazGaDgaCmawFaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaDraxjaxjaDraAdaAcaDsaDtaDuaDuaDuaDtaDvaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPawHaDmaDnaDoawJaaPaaPaaPaaPaaPaaPaaPawHaDmaDnaDoawJaaPaaPaaPaaPaaPaaPaaPartaaParuaaParuaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaAFaAZaAZaAZaBNaDwaCBaCBaCUaDxaDyaCXaCBaCBaDzaCdaCeaCfaCgaBNaDAaDBaDCaChaChawFaBPaCGaDdaCIaCGaBPaBPaBPaBPawFaCmaDeazGazGaDgaCmaDDaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaAIaDraxjaxjaDraAdaAcaAcaDEaDFaDFaDFaDGaAcaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaAFaAZaAZaAZaAFaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaaPaAEaAZaAZaAZaBNaDHaCBaCBaCBaDIaDIaCBaCBaCBaCBaCDaCBaCBaCEaBNaDJaChaChaChaChawFaBPaCGaDdaDKaCGaBPaBPaBPaBPawFaCmaDeazGazGaDgaCmawFaAIaAIawFaAHaAHaAHaAHaAHaAHaAHaAHaAHawFawFawFawFawFawFawFawFawFawFawFawFaAIaAIawFawFawFawFawFawFawFawFazVaAcaAcaAcaAcaAcaAcaAcaAcaAcaAdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaAFaAFaAFaAFaBtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaBNaDLaDMaDNaDOaCBaCBaCBaCYaDNaDNaCdaCZaDaaDbaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPaDPawFaCmaDeazGaDQaDgaCmaAHaAIaAIawFaAIaDRaDSaDTaDUaAIaDVaDWaDXawFaDYaDYaDYaDYaDYaDYaDYaDYaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPazVazVazVazVazVazVazVazVazVazVazVaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaBNaBNaBNaBNaDZaCBaCBaEaaEbaBNaBNaBNaBNaBNaBNaDPaEcaEdaEeaDPaEfaEgaEgaEgaEgaEgaEgaEgaEgaEhaEiawFaCmaCMaEjaEjaEkaCmaAHaAIaAIaAHaAIaDRaElaEmaDUaAIaEnaEoaEpawFaDYaDYaDYaDYaDYaDYaDYaDYaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaBNaEqaEraCdaEsaCBaCBaCBaEtaBNaEuaEvaEwaEwaExaDPaEcaEdaEyaDPaEgaEgaEgaEgaEzaEAaEgaEgaEgaEgaEgawFaCmaCmaCmaCmaCmaCmawFaAIaAIaAHaAIaAIaAIaAIaAIaAIaAIaAIaEBawFawFawFawFawFawFawFawFawFaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaAFaAFaAFaAFaAFaBtaruaruaruaruaruaruaruaruaruaruaruaaPaAEaAZaAZaAZaBNaDZaCBaECaCBaCBaCBaEaaEDaBNaEEaCUaCWaCXaEFaDPaEdaEdaEdaEGaEgaEgaEHaEgaEzaEAaEgaEIaEJaEKaEgawFawFaAHaAHaAHaAHawFawFaAIaAIaELaAIaAIaAIaAIaEMaENaEOaAIaAIawFaAIaAIaAIaAIaAIaAIaEPawFaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAFaruaaPaaPaEQaERaESaEQaERaERaETaEUaEVaERaEWaEXaruaruaAFaEYaAZaAZaBNaEsaCBaECaCYaDNaEZaFaaFbaBNaFcaFdaCWaCBaEFaDPaEdaEdaFeaDPaFfaEgaFgaEgaEzaEAaEgaEIaEJaEKaEgaDPaAIaAIaAIaAIaAIaAIaAIaAIaAIaAHaAIaAIaAIaAIaEOaEOaEPaAIaAIaFhaAIaFiaAIaAIaFiaAIaEOawFaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAEaaPaaPaEQaFjaFkaFlaFmaFnaFoaFnaFnaFnaFoaFpaFqaAEaAEaAEaAZaAZaAZaBNaECaECaCdaCdaCdaCdaCdaCdaBNaCdaFraCBaFsaFtaDPaFuaEdaFeaDPaFfaEgaEgaEgaFvaEAaEgaEIaFwaEKaEgaDPaAIaAIaAIaAIaAIaAIaAIaAIaAIaAHaFxaDUaAIaAIaAIaAIaAIaFyaAIawFaElaFzaFAaEOaFBaAIaEBawFaDYaDYawFaAIaAIawFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAEaaPaaPaFCaFDaFEaFDaFFaFDaFDaFDaFDaFDaFDaFDaFGaFHaCyaFHaAZaAZaAZaBNaFdaCBaFIaFJaFJaFJaFJaFJaFKaCdaCdaFLaCdaCdaDPaDPaDPaDPaDPaEzaEzaEzaEzaEzaEAaEgaEIaFMaEKaEgaDPaAHaAHaFNaAHaAHawFaBbaAIaAIawFaFOaDUaAIaAIaAIaAIaAIawFawFawFawFaAHaAHaAHaAHaAHawFawFaFPaFPawFaAIaAIawFaaPaaPaaPaaPaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaAFaAZaAZaAZaAEaaPaaPaFRaFSaFTaFUaFmaFVaFWaFVaFVaFVaFWaFXaFYaAEaAEaAEaAZaAZaAZaBNaFraCBaCBaCBaCBaCBaCBaCBaFIaFJaFZaCBaFIaGaaGbaDPaEgaEgaEgaEAaEAaEAaEAaEAaEgaEgaEgaEgaEgaEgaDPaGcaGdaAIaGeaGfawFaGgaGhaGiaFPaFPaGjaFPawFaAHaGkaAHawFaGlaGlaGlaGmaGnaGoaGpaGqaGlaGlaGlaFPaBbaAIaAIawFaaPaaPaaPaFQaFQaGraGraGraGraGraGraGsaGsaGsaGraGraGraGraGsaGsaGsaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAFaruaaPaaPaFRaERaGuaFRaERaERaETaEUaEVaERaGvaGwaruaruaAFaAZaAZaAZaBNaFraCBaCBaEaaEaaEaaEaaEaaCBaCBaCBaCBaCBaEaaGxaDPaGyaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaGyaDPaAIaAIaAIaAIaAIawFaAIaAIaAIaGzaGlaGlaGAawFaAIaAIaAIawFaGlaGlaGlaGmaGBaGCaGDaGqaGlaGlaGlaFPaAIaAIaAIawFaaPaaPaaPaFQaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaGEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAFaAFaAFaAFaAFaBtaruaruaruaruaruaruaruaruaruaruaruaaPaAEaAZaAZaAZaBNaFraCBaCBaGFaGFaGFaGFaGFaCBaCBaCBaCBaCBaCBaEFaDPaEJaEgaEIaEJaEJaEKaEgaEgaEIaEJaEJaEKaEgaEJaDPaAIaAIaAIaAIaAIawFaAIaAIaAIaGzaGGaGHaGIawFaAIaAIaAIawFaGlaGlaGlaGJaGKaGLaGMaGNaGlaGlaGlaFPaAIaAIaAIawFaaPaaPaaPaFQaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaBNaFraCBaCBaDxaCBaCBaCBaDxaCBaFsaGOaFdaCBaCBaEFaDPaGPaEgaEIaFMaFwaEKaEgaEgaEIaFMaFwaEKaEgaGPaDPaAIaGQaGRaGSaGTawFaAHaGUaAHaFPaGVaGWaFPawFaGXaGYaGZawFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaFPaAIaAIaAIawFaaPaaPaaPaFQaGraGraGraHaaFQaFQaFQaGtaGtaGtaFQaHbaHbaFQaGtaGtaGtaFQaFQaFQaFQaGtaGtaGtaFQaFQaGtaGtaGtaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaHcaHcaHcaAFaAFaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaAFaAFaHcaHcaHcaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaHcaHcaHcaBNaFraCBaFsaFdaCBaCBaFsaGOaFdaEFaBNaBNaHdaHdaBNaDPaGyaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaEgaGyaDPaHeawFawFawFawFawFaGlaGlaGlaFPaGzaGzaFPawFawFawFawFawFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaFPaAIaAIaAIawFaaPaaPaaPaFQaHfaGraGraFQaFQaHgaHhaHiaHhaHiaHjaHkaHkaHlaHiaHhaHiaHhaHmaHnaHnaHnaHnaHnaHnaHnaHnaHnaHnaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqA
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaHoaAZaAZaAFaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaAFaAFaAZaHpaHqaHraAZaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAZaAZaHqaHraBNaFZaCBaEFaBNaFLaFLaBNaBNaFraEFaBNaHsaCBaCBaHtaDPaEJaEgaEIaEJaEJaEKaEgaEgaEIaEJaEJaEKaEgaEJaDPawFawFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaFPaFPawFawFaFPaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaFPaAIaAIaAIawFaaPaaPaaPaFQaHfaGraGraFQaHgaHuaHvaHvaHvaHvaHwaHxaHxaHyaHvaHvaHvaHwaHzaHmaHAaHAaHAaHAaHAaHAaHAaHAaHAaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaHBaAZaAZaAYaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAYaAZaAZaHCaAZaAZaAYaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAYaAZaAZaHDaHraECaCBaCBaEFaBNaFdaCBaEFaBNaFraEFaBNaHEaCBaCBaHtaDPaGPaEgaEIaFMaFwaEKaEgaEgaEIaFMaFwaEKaEgaGPaDPawFaHFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHFaFPaFPawFaFPaHGaGlaGlaGlaGlaGlaGlaGlaGlaGlaHGaFPaBbaAIaAIaFQaFQaFQaFQaFQaHfaGraGraGtaHHaHIaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHJaHHaHKaHKaHKaHKaHKaHKaHKaHKaHKaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAZaHDaAZaAZaAZaAZaAFaAFaAFaAFaAEaAEaAEaAEaAEaAFaAFaAFaAFaAZaAZaAZaHDaHqaHLaAZaAZaAZaAFaAFaAFaAFaAEaAEaAEaAEaAEaAFaAFaAFaAFaAZaAZaAZaAZaHqaAZaECaCBaCBaEFaBNaFraCBaHMaBNaFraEFaBNaHNaCBaCBaHtaDPaDPaHOaHOaHOaHOaDPaHPaHPaDPaHOaHOaHOaHOaDPaDPaGlaGlaGlaGlaHQaHRaHSaHSaHSaHTaHUaGlaGlaGlaGlaFPaFPaFPaFPaFPaFPaFPaGlaGlaGlaFPaFPaFPaFPaFPawFaAIaAIaHVaGraGraGraFQaHfaGraGraGtaHWaHIaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHJaHWaHAaHAaHAaHAaHAaHAaHAaHAaHAaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIaaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIaaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaBNaIcaCBaFIaCdaFraIdaIeaCdaFZaFIaBNaIfaGOaGOaIgaBNaIhaIiaIjaIiaIjaGzaGlaGlaGzaIiaIkaIiaIiaIlaFPaGlaGlaGlaImaInaIoaIoaIoaIoaIoaIpaIqaGlaGlaGlaFPaIiaIjaIiaIhaIjaGzaGlaGlaGlaGzaIjaIiaIiaIrawFaAIaAIaFQaIsaGraItaGtaHfaGraGraFQaHzaHmaIuaIuaIuaIuaIvaHxaHxaIwaIuaIuaIuaIvaHgaHuaHKaHKaHKaHKaHKaHKaHKaHKaHKaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIxaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIxaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaBNaBNaECaECaCdaIyaIzaCdaCdaECaECaBNaBNaBNaBNaBNaBNaGzaGzaGzaGzaGzaGzaGlaGlaGzaGzaGzaGzaGzaGzaFPaGlaGlaIAaIBaIoaIoaIoaIoaIoaIoaIoaICaHUaGlaGlaFPaGzaGzaGzaGzaGzaGzaGlaGlaGlaGzaGzaGzaGzaGzaFPaIDaIDaFQaGraIEaIFaGtaHfaGraGraFQaFQaHzaHhaHiaHhaHiaHjaHkaHkaHlaHiaHhaHiaHhaHuaHnaHnaHnaHnaHnaHnaHnaHnaHnaHnaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaIGaIHaAEaAZaAZaAZaAZaIIaIJaIKaIIaIJaILaIMaINaIJaIKaIIaIJaIKaAZaAZaAEaIOaIGaIHaAEaAZaAZaIIaIJaIKaIIaIJaILaIMaINaIJaIKaIIaIJaIKaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaGlaGlaGlaGlaIPaGlaGlaIPaGlaGlaGlaHFaFPaHFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHFaFPaGlaGlaIQaIoaIoaIoaIRaISaITaIoaIoaIoaIQaGlaGlaFPaHGaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHGaFPaGlaGlaGtaIUaIVaGtaFQaGraGraGraHaaFQaFQaFQaGtaGtaGtaFQaIWaIWaFQaGtaGtaGtaFQaFQaFQaFQaGtaGtaGtaFQaFQaGtaGtaGtaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaIXaCyaIYaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaIZaJaaIXaCyaJbaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaGlaGlaGlaGlaIPaGlaGlaIPaGlaGlaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaJcaGlaGlaJdaIoaIoaIRaJeaJeaJeaITaIoaIoaJfaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaJgaGraGraGraJhaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaJiaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaGEaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaqu
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaCyaCyaJjaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaJkaAZaAZaAZaAZaAZaAZaAZaAZaJlaJmaAFaCyaJjaAZaAZaAZaAZaAZaAZaAZaAZaJkaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaGzaGlaGlaGlaFPaGlaGlaFPaGlaGlaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaJcaGlaGlaJdaIoaIoaJnaJeaJoaJeaJpaIoaIoaJfaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGtaGraGraGraGtaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaJqaCyaJraAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaJsaCyaJqaCyaJraAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaGlaGlaGlaGlaIPaGlaGlaIPaGlaGlaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaJcaGlaGlaJdaIoaIoaJtaJeaJeaJeaJuaIoaIoaJfaGlaGlaJcaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaJgaGraGraGraJhaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaJvaJwaAEaAZaAZaAZaAZaJxaJyaJzaJxaJyaJAaJBaJCaJyaJzaJxaJyaJzaAZaAZaAEaJDaJvaJEaAEaAZaAZaJxaJyaJzaJxaJyaJAaJBaJCaJyaJzaJxaJyaJzaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaGlaGlaGlaGlaIPaGlaGlaIPaGlaGlaGlaHFaFPaHFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHFaFPaGlaGlaJFaIoaIoaIoaJtaJGaJHaIoaIoaIoaJIaGlaGlaFPaHGaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHGaFQaJJaJJaFQaFQaFQaFQaFQaGraGraGraHaaFQaFQaFQaGtaGtaGtaFQaHbaHbaFQaGtaGtaGtaFQaFQaFQaFQaGtaGtaGtaFQaFQaGtaGtaGtaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIxaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIxaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaJKaJKaJLaJLaJKaJMaJMaJMaJKaJLaJLaJKaJKaJMaJMaJKaJKaGzaGzaGzaGzaGzaGzaGlaGlaGzaGzaGzaGzaGzaGzaFPaGlaGlaJNaJOaIoaIoaIoaIoaIoaIoaIoaJPaJQaGlaGlaFPaGzaGzaGzaGzaGzaGzaGlaGlaGzaGzaGzaGzaGzaGzaFQaJRaJRaJSaJTaJUaJVaGtaHfaGraGraFQaFQaHgaHhaHiaHhaHiaHjaHkaHkaHlaHiaHhaHiaHhaHmaHnaHnaHnaHnaHnaHnaHnaHnaHnaHnaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIaaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaAZaAZaAZaHXaCyaHYaHXaCyaHZaIaaIbaCyaHYaHXaCyaHYaAZaAZaAZaAZaAZaAZaJKaJWaJXaJXaJYaJZaKaaKaaKbaJXaKcaJKaKdaKeaKfaKgaJKaIkaIhaIiaIjaIjaGzaGlaGlaGzaIraKhaIjaIiaIiaFPaGlaGlaGlaKiaKjaIoaIoaIoaIoaIoaJPaInaGlaGlaGlaFPaKkaIiaIhaIiaIjaGzaGlaGlaGzaIiaIjaIiaKlaKhaFQaJRaJRaJRaJRaJRaJRaGtaHfaGraGraFQaHgaHuaHvaHvaHvaHvaHwaHxaHxaHyaHvaHvaHvaHwaHzaHmaHAaHAaHAaHAaHAaHAaHAaHAaHAaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAZaKmaKmaAZaAZaAZaAFaAFaAFaAFaAEaAEaAEaAEaAEaAFaAFaAFaAFaAZaAZaAZaHBaHqaHLaAZaAZaAZaAFaAFaAFaAFaAEaAEaAEaAEaAEaAFaAFaAFaAFaAZaAZaAZaHpaHqaAZaJLaJXaJXaJXaJXaJXaJXaJXaJXaJXaKnaJKaKoaJXaKpaKqaJKaKraKsaKsaKsaKsaKraKtaKtaKraKsaKsaKsaKsaKraKraGlaGlaGlaGlaJNaHRaKuaKuaKuaHTaJQaGlaGlaGlaGlaKvaKvaKvaKvaKvaKvaKvaKwaKwaKvaKvaKvaKvaKvaKvaFQaJRaJRaJRaJRaJRaJRaFQaHfaGraGraGtaHHaHIaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHJaHHaHKaHKaHKaHKaHKaHKaHKaHKaHKaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaHqaKmaAZaAYaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAYaAZaHDaHqaHraAZaAYaAFaAFaaPaaPaKxaKyaKzaKzaKzaKAaKBaaPaaPaAFaAFaAYaAZaHBaHqaHraJLaJXaJXaKCaKDaJXaJXaKCaKDaJXaKnaJKaKEaJXaJXaKFaJKaKGaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKGaKraFPaHFaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaHFaFPaKvaKIaKJaKJaKJaKJaKKaKKaKKaKKaKJaKJaKJaKJaKIaFQaJRaJRaKLaKMaJRaKLaGtaHfaGraGraGtaHWaHIaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHxaHJaHWaHAaHAaHAaHAaHAaHAaHAaHAaHAaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaHLaAZaAFaAFaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaAFaAFaAZaHDaHqaAZaAZaAFaAFaruaaPaKxaKNaKOaKPaKQaKRaKSaKTaKBaaParuaAFaAFaAZaAZaHqaAZaJKaKUaJXaKCaKDaJXaJXaKCaKDaJXaKnaJKaKVaJXaKpaKqaJKaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKraFPaFPaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaGlaFPaFPaKvaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaFQaJRaJRaKLaKMaJRaKLaGtaHfaGraGraFQaHzaHmaIuaIuaIuaIuaIvaHxaHxaIwaIuaIuaIuaIvaHgaHuaHKaHKaHKaHKaHKaHKaHKaHKaHKaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaHcaHcaHcaAFaAFaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaAFaAFaHcaHcaHcaAFaAFaaParuaKxaKNaKWaKXaKYaKXaKYaKXaKZaKTaKBaruaaPaAFaAFaHcaHcaHcaJKaLaaJXaKCaKDaJXaJXaKCaKDaJXaKnaJKaLbaLcaLdaLeaJKaKHaKHaLfaLgaLhaLiaKHaKHaLfaLjaLkaLiaKHaKHaKraaPaFPaFPaFPaFPaFPaGlaFPaGlaFPaFPaFPaFPaFPaaPaKvaKKaLlaLlaLlaLlaKKaKKaKKaKKaLlaLlaLlaLlaKKaFQaJRaJRaKLaKMaJRaKLaFQaHfaGraGraFQaFQaHzaHhaHiaHhaHiaHjaHkaHkaHlaHiaHhaHiaHhaHuaHnaHnaHnaHnaHnaHnaHnaHnaHnaHnaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAEaaPaaParuaLmaKYaKYaKYaLnaLoaLpaKYaKYaKYaLmaruaaPaaPaAEaAZaAZaAZaJKaLaaJXaJXaJXaJXaJXaJXaJXaJXaKnaJKaJKaKoaLqaLraJKaKHaKHaLfaLsaLtaLiaKHaKHaLfaLuaLvaLiaKHaKHaKraaPaaPaFPaLwaLxaGlaGlaIoaGlaGlaLxaLyaFPaaPaaPaKvaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaKKaFQaJRaJRaKLaKMaJRaKLaGtaGraGraGraHaaFQaFQaFQaGtaGtaGtaFQaIWaIWaFQaGtaGtaGtaFQaFQaFQaFQaGtaGtaGtaFQaFQaGtaGtaGtaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAEaaPaaParuaLzaLAaLBaLCaLDaLEaLDaLFaLGaLHaLzaruaaPaaPaAEaAZaAZaAZaJKaLaaJXaJXaKcaLIaLIaLIaLIaLIaLJaJKaLKaKbaJYaLLaJKaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKraaPaaPaFPaLwaLxaGlaGlaIoaGlaGlaLxaLyaFPaaPaaPaKvaKIaKJaKJaKJaKJaKKaKKaKKaKKaKJaKJaKJaKJaKIaFQaJRaJRaKLaKMaJRaKLaGtaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaaPaaParuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaaPaaPaAEaAZaAZaAZaAEaaPaaParuaLzaLMaLmaLNaLOaLPaLOaLQaLmaLMaLzaruaaPaaPaAEaAZaAZaAZaJKaJMaLRaJXaJKaLSaLTaLUaLVaLTaLWaJKaLaaJXaJXaLXaJKaKHaKHaLfaLYaLZaLiaKHaKHaLfaMaaMbaLiaKHaKHaKraaPaaPaFPaMcaGlaGlaGlaIoaGlaGlaGlaMdaFPaaPaaPaKvaKvaKvaKvaKvaKvaKvaKwaKwaKvaKvaKvaKvaKvaKvaFQaJRaJRaKLaKMaJRaKLaFQaGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGraGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaAFaAZaAZaAZaAFaruaruaruaLzaKYaLGaLzaMeaMfaMgaLzaLBaKYaLzaruaruaruaAFaAZaAZaAZaJKaLaaJXaJXaMhaKbaMiaJXaJXaMiaJYaMjaKbaJXaJXaMkaJKaKHaKHaLfaMlaMmaLiaKHaKHaLfaMnaMoaLiaKHaKHaKraaPaaPaFPaLwaLxaGlaGlaIoaGlaGlaLxaLyaFPaaPaaPaKvaMpaMqaMqaMqaMqaMpaMpaMpaMpaMraMsaMsaMsaMtaFQaJRaJRaKLaKMaJRaKLaFQaFQaGraGraGraGraGraGraMuaMuaMuaGraGraGraGraMuaMuaMuaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaLmaKYaLGaMvaMwaMxaMyaMvaLBaKYaLmaaPaaPaaPaAFaAZaAZaAZaJKaLaaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaMzaJKaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKHaKraaPaaPaFPaLwaLxaGlaGlaIoaGlaGlaLxaLyaFPaaPaaPaKvaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaFQaJRaJRaJRaJRaJRaJRaFQaFQaFQaGtaGtaGtaFQaGtaGtaGtaFQaGtaGtaGtaFQaGtaGtaGtaFQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaKxaKNaLAaLGaMAaMwaMBaMyaMAaLBaLHaKTaKBaaPaaPaAFaAZaAZaAZaJKaLaaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaJXaMkaJKaKHaKHaKHaKHaKHaKHaMCaMCaMCaMCaMCaMCaMCaMCaKraaPaaPaMDaMDaMDaMEaMEaMFaMEaMEaMDaMDaMDaaPaaPaKvaMGaKvaMHaKvaMIaKvaMpaMpaKvaMJaKvaMKaKvaMLaFQaJRaJRaJRaJRaJRaJRaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaAEaAEaMMaMNaKYaLGaMOaLmaMPaLmaMQaLBaKYaMNaMMaAEaAEaAEaAZaAZaAZaJKaLaaJXaKcaLIaLIaLIaKUaKcaLIaLIaKUaJXaJXaJXaMzaJKaMRaMSaMSaKHaKHaMTaMUaMUaMUaMVaMUaMUaMUaMUaKraaPaaPaMDaMWaMXaMEaMXaMXaMXaMEaMXaMWaMDaaPaaPaKvaMYaKvaMYaKvaMYaKvaMpaMpaKvaMYaKvaMYaKvaMYaFQaJRaJRaMZaMZaMZaMZaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaNaaCyaNaaNbaKYaKYaKYaNcaNdaKYaKYaNcaKYaKYaKYaNbaNaaCyaNaaAZaAZaAZaJKaJMaJXaKnaJMaJMaJMaLaaKnaNeaLraLaaKcaNfaNgaNhaJKaNiaNjaNkaKHaKHaMTaNlaNmaNmaNmaNmaNmaNmaNmaKraaPaaPaMDaMXaNnaNoaMXaMXaMXaNoaNpaMXaMDaaPaaPaKvaKvaKvaKvaKvaKvaKvaMpaMpaKvaKvaKvaKvaKvaKvaFQaJRaJRaNqaNqaNqaNqaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaNaaCyaNaaNbaKYaKYaKYaKYaKYaKYaKYaKYaKYaKYaKYaNbaNaaCyaNaaAZaAZaAZaJKaNsaJXaJYaNtaNuaNvaKbaJYaNwaJKaNxaNyaJKaJKaJKaJKaNzaNAaNBaKHaKHaMTaNmaNmaNmaNmaNmaNmaNmaNmaKraaPaaPaMDaMEaMXaMEaMXaMXaMXaMEaMXaMEaMDaaPaaPaKvaNCaMpaNCaMpaNCaMraMpaMpaNDaNCaMpaNCaMpaNCaFQaJRaJRaJRaJRaJRaJRaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaAEaAEaMMaNEaKYaLGaMvaLBaKYaLGaMvaLBaKYaNFaMMaAEaAEaAEaAZaAZaAZaJKaNsaJXaJXaJXaJXaJXaJXaJXaNGaJKaNxaNHaNIaNIaNJaJKaNKaNLaNMaKHaKHaNmaNmaNmaNNaNOaNPaNQaNmaNmaKraaPaaPaMDaMXaMXaMXaMXaMXaMXaMXaMXaMXaMDaaPaaPaKvaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaMpaFQaNRaJRaJRaJRaJRaGtaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaMvaLBaKYaLGaNSaLBaKYaLGaNSaLBaKYaLGaMvaaPaaPaAFaAZaAZaAZaJKaNsaJXaJXaJXaNTaNUaJXaJXaNVaJKaNxaJXaNWaNXaNYaJKaKraKraKraKraKraKraKraKraKraKraKraKraKraKraKraMDaMDaMDaMXaMXaMXaMXaMXaMXaMXaMXaMXaMDaMDaMDaKvaNZaMpaNZaMpaNZaMraMpaMpaNDaNZaMpaNZaMpaNZaFQaGtaGtaGtaGtaGtaGtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaAFaAZaAZaOaaAFaaPaaPaNSaLBaKYaLGaNSaLBaLoaLGaNSaLBaKYaLGaNSaaPaaPaAFaAZaAZaAZaJKaObaJXaJXaJXaJXaJXaJXaJXaOcaJKaNxaJXaJXaOdaNYaJKaOeaOfaOfaOfaOgaMDaMXaMXaMXaMXaMXaMXaMXaMXaMXaMXaMXaMDaMDaOhaMDaMDaMXaMDaMDaOhaMDaMDaMXaMXaMDaMDaMDaKvaKvaKvaKvaKvaKvaKvaKvaKvaKvaKvaKvaKvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaMAaLBaKYaLGaNSaLBaKYaLGaNSaLBaKYaLGaMAaaPaaPaAFaAZaAZaAZaJKaOiaJXaJXaJXaOjaOkaJXaJXaOlaJKaOmaOnaJXaOoaOpaJKaOqaJXaJXaJXaOraMDaMXaMDaMDaMDaMDaOsaMDaMDaMDaMXaMXaMXaMXaMXaMXaMDaMXaMDaMXaMXaMXaMXaMXaMXaMXaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaAEaAEaMMaOtaKYaLGaMAaLBaKYaLGaMAaLBaKYaOuaMMaAEaAEaAEaAZaAZaAZaJKaLaaJXaJXaJXaKcaLIaKUaJXaOvaJKaJKaJKaOwaJKaJKaJKaOqaJXaJXaJXaOraMDaMXaMDaOxaOyaOyaOyaOyaOzaMDaMDaMDaMDaMDaMDaMDaMDaOAaMDaMDaMDaMDaMDaMDaMDaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaNaaCyaNaaNbaKYaKYaKYaKYaKYaKYaKYaKYaKYaKYaKYaNbaNaaCyaNaaAZaAZaAZaJKaLaaJXaKcaLIaOBaJKaJKaOCaJKaJKaODaOEaJXaNHaOFaJKaOEaJXaJXaJXaOGaMDaMXaMDaOxaOyaOyaOyaOyaOzaMDaOHaOIaOJaOIaOKaOLaOLaOLaOLaOLaOKaOLaOKaOLaOMaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaCxaCyaCzaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCzaCyaCxaAZaAZaAZaNaaCyaNaaNbaKYaKYaONaKYaKYaKYaKYaKYaONaKYaKYaNbaNaaCyaNaaAZaAZaAZaJKaJKaOPaJKaNeaJKaJKaOQaJXaORaJKaNxaJXaJXaJXaJXaOSaJXaJXaOTaJXaOUaMDaMXaMDaOVaOyaOyaOyaOyaOWaMDaOLaOXaOXaOXaOXaOXaOLaOLaOLaOXaOXaOXaOXaOYaOZaMDaMXaMDaMDaMDaMDaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAZaAZaAZaAEaAEaAEaPaaLmaPbaPcaKyaKAaPdaKyaKAaPcaPbaLmaPeaAEaAEaAEaAZaAZaAZaJKaPfaJXaPgaPhaPiaJKaPjaJXaPkaJKaPlaPmaPnaPoaPpaJKaPqaPraPraPraOOaMDaMXaMDaOVaPtaPuaPuaOyaOyaPvaOLaOLaPwaPxaPwaOLaOLaOLaOLaOLaPwaPxaPwaPyaOLaMDaMXaMXaMXaMXaMXaMXaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaaParuaruaruaruaruaruaruaruaruaruaruaaPaaPaaPaAFaAZaAZaAZaAFaaPaaPaMMaPzaPAaMMaPBaPCaPDaPEaPFaMMaPGaPHaMMaaPaaPaAFaAGaAGaAGaJKaPfaJXaPIaPJaPKaJKaPLaJXaPMaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaMDaMDaMXaMDaMDaMDaMDaMDaMDaMDaMDaOLaOXaOXaOXaOXaOXaOLaOLaOLaOXaOXaOXaOXaPNaOLaMDaMDaMDaMDaMDaMDaMDaMXaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaAFaruaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaAFaAZaAZaAZaAFaruaruaMMaPOaPOaMMaPPaPQaPDaPDaPRaMMaPOaPOaMMaruaruaAFaAZaAZaAZaJKaJKaPSaJKaJMaJMaJKaJKaOCaJKaJKaPTaPUaPVaJMaPWaPXaNtaPYaPYaPZaMDaMXaMXaMDaMDaQaaQaaQaaQaaQaaMDaQbaQbaQbaQbaQbaQbaQbaQbaQbaQbaQbaQbaQbaQcaQbaMDaQdaQdaQdaQdaQdaMDaMXaMXaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBtaAEaAEaAEaBtaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBtaAEaAEaAEaBtaaPaaPaMMaQeaQfaMMaQgaPDaQhaQiaQjaMMaQkaQlaMMaaPaaPaBtaAZaAZaAZaJKaPsaJXaPgaQmaQnaJKaLaaJXaJYaNtaKbaJXaJYaJMaKbaJXaJXaJXaJXaKnaMDaMXaMDaMDaMDaQpaQpaQpaQpaQpaMDaQqaQraQraQraQraQraQraQraQraQraQraQraQraQsaQqaMDaQpaQpaQpaQpaQpaMDaMDaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAWaAXaAWaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAWaAWaAWaAEaaPaaPaPaaQtaQtaMMaQuaQvaPDaQwaQxaMMaQtaQtaPeaaPaaPaAEaAZaAZaAZaJKaQoaJXaJXaJXaQzaJKaLaaJXaJXaKcaLIaJXaJXaQAaJXaJXaJXaJXaJXaKnaMDaMXaMDaQBaQCaQDaQDaQDaQDaQDaQEaQraQraQraQraQraQraQraQraQraQraQraQraQraQsaQraQEaQFaQFaQFaQFaQFaQCaQGaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaaPaaPaQHaQIaQIaQJaPcaQtaQtaQtaPcaQJaQIaQIaQKaaPaaPaAEaAZaAZaAZaJKaQyaJXaJXaOTaQMaJKaQNaJXaJXaKnaQOaJXaQPaJMaKUaJXaKpaJXaJXaKnaMDaMXaMDaQBaQCaQDaQQaQDaQQaQDaQEaQraQraQraQraQraQraQraQraQraQraQraQraQraQsaQraQEaQFaQRaQFaQRaQFaQCaQGaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQHaQIaQIaQIaQKaaPaaPaaPaaPaaPaaPaAFaAZaAZaAZaJKaPfaJXaJXaJXaQSaJKaQTaJXaJXaQUaQVaJXaQWaJMaQXaQYaQZaRaaRaaRbaMDaMXaMDaQBaQCaQDaQDaRcaQDaQDaQEaQraQraQraQraQraQraQraRdaQraQraQraQraQraQsaQraQEaQFaQFaReaQFaQFaQCaQGaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaJKaRfaRgaRhaRiaRjaJKaRkaRlaRmaRnaRoaLIaOBaJKaJKaJKaJKaJKaJKaJKaMDaMXaMDaQBaQCaQDaQDaQDaQDaQDaQEaQraQraQraQraQraQraRpaRqaRpaQraQraQraQraQsaQraQEaQFaQFaQFaQFaQFaQCaQGaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaJKaaPaaPaaPaaPaaPaaPaMDaMXaMDaQBaQCaQDaQQaQDaQQaQDaQEaQraQraQraQraQraQraRraRsaRtaQraQraQraQraQsaQraQEaQFaQRaQFaQRaQFaQCaQGaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaMDaMXaMDaMXaQCaQDaQDaQDaQDaQDaQEaQraQraQraQraQraQraQraRuaQraQraQraQraQraQsaQraQEaQFaQFaQFaQFaQFaQCaMXaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAFaaPaaPaaPaaPaaPaaPaMDaMXaMDaRvaMDaRwaRwaRwaRwaRwaMDaQqaQraQraQraQraQraQraRuaQraQraQraQraQraQsaQqaMDaRwaRwaRwaRwaRwaMDaRvaMDaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaBaaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaBaaAFaaPaaPaaPaaPaaPaaPaMDaMXaMXaMXaMDaRxaRxaRxaRxaRxaMDaQbaQbaQbaQbaQbaQbaRyaRzaRyaQbaQbaQbaQbaQcaQbaMDaRAaRAaRAaRAaRAaMDaMXaMXaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAEaAEaAEaAEaAFaAFaAFaAFaAEaAEaAEaAEaAFaRBaRBaAFaAFaaPaaPaaPaaPaaPaaPaMDaMDaMDaMXaMDaMDaMDaMDaMDaMDaMDaRCaRDaRDaRDaRDaRDaREaRFaRCaRDaRDaRDaRDaRGaRCaMDaMDaMDaMDaMDaMDaMDaMXaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAGaAGaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaMDaMXaMXaMXaMXaMXaMXaMXaMDaRCaRCaRHaRCaRHaRCaRCaRIaRJaRCaRHaRCaRHaRKaRCaMDaMXaMXaMXaMXaMXaMXaMXaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaMDaMDaMDaMDaMDaMDaMDaMXaRLaRCaRCaRCaRMaRMaRMaRCaRCaRCaRMaRMaRMaRMaRMaRCaRLaMXaMDaMDaMDaMDaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaMDaMDaMDaRNaRNaRNaROaRPaRQaRRaRCaRSaRTaRUaRVaRWaRXaRYaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaMDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSbaSaaSaaSaaScaScaScaSaaSaaScaScaScaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSdaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSeaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAZaAZaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSfaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSdaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSgaSgaSgaSgaSgaSgaSgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaShaSfaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSgaSgaSgaSgaSgaSgaSgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAEaAZaAZaAEaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSaaSiaSiaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSgaSgaSgaSgaSgaSgaSgaSgaSgaaPaSjaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaSlaAEaAZaAZaAEaSjaSmaSmaSmaSmaSmaSmaSmaSmaSlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSiaSnaSoaSiaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSpaSmaSmaSmaSmaSqaSkaSkaSkaSqaSkaSkaSkaSqaSraSgaSgaSgaSgaSgaSgaSgaSgaSgaSraSsaStaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSsaAFaAGaAGaAFaSsaSvaSwaSxaSyaSyaSzaSAaQLaSCaSlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSiaSDaSEaSiaSaaSaaShaSaaSFaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSGaSHaStaSIaSJaSsaSKaSKaSKaSsaSLaSLaSLaSsaSraSMaSMaSMaSMaSMaSMaSMaSMaSMaSraSsaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSNaSOaSPaSPaSOaSQaSRaSRaSRaSSaSTaSUaSRaSRaSVaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSaaSiaSiaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaSKaSKaSKaSsaSLaSLaSLaSsaSraSMaSMaSMaSMaSMaSMaSMaSMaSMaSraSsaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSsaSXaSYaSYaSXaSsaSZaTaaSRaSRaSRaSRaSRaSRaTbaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSfaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSdaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaSKaSKaSKaSsaSLaSLaSLaSsaSraSMaSMaSMaSMaSMaSMaSMaSMaSMaSraSsaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSsaSYaTcaTcaSYaSsaSRaSRaSRaTdaTeaTfaSRaSRaTgaSOaSmaSmaSlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaShaSfaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSfaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaSKaSKaSKaSsaSLaSLaSLaSsaSraSMaSMaSMaSMaSMaSMaSMaSMaSMaSraSsaStaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSuaSsaSYaTcaTcaSYaSsaThaTiaSRaTjaTkaTlaSRaSRaSRaSRaSRaTmaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaSaaSaaSaaSaaTnaSaaToaSaaToaSaaTpaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTqaSHaStaStaStaSsaSKaSKaSKaSsaSLaSLaSLaSsaSraSMaSMaSMaSMaSMaSMaSMaSMaSMaSraSNaSmaSmaSmaSmaSOaTraTraSOaSmaSmaSmaSmaSQaSYaTcaTcaSYaSsaTsaSRaSRaSRaSRaSRaSRaSRaSRaSRaSRaTmaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaSaaSaaSaaTtaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSpaSmaSmaSOaTuaSOaTvaSOaTwaSOaTvaSOaTxaSOaTvaSOaSraSOaTvaSOaTyaSOaTvaSOaSraSOaSQaTzaSYaSYaSYaSYaTAaSYaSYaSYaSYaSYaSXaSsaSYaTcaTcaSYaSsaThaTiaSRaSRaTBaTBaTCaTDaTDaTEaSOaSmaTFaSmaSlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRZaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaTGaRZaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTHaSXaSYaSYaSYaSYaSYaSYaTIaSYaSYaSYaTJaSYaSYaSYaSYaSYaSYaSYaTKaSYaSYaTLaTMaTNaSOaSYaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaSYaSOaSYaTcaTcaSYaSOaTOaTPaTQaTQaTOaTRaTPaSOaSmaSmaSQaTSaTcaTTaTUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaTVaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTWaTVaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTHaSYaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaSYaTXaSYaTcaTYaTYaTYaTYaTYaTYaTYaTYaTcaSYaTXaSYaTcaTcaSYaTXaSYaSYaSYaSYaSYaSYaSYaSYaSYaSYaTZaUaaUbaUcaUdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTHaSYaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaUgaTcaTcaUhaUhaUhaUhaUhaUhaUhaUhaTcaTcaUgaTcaTcaTcaTcaUgaTcaTcaTcaTcaTcaTcaTcaTcaTcaSYaUiaSYaTcaUjaUdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTHaSYaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaSYaTXaSYaTcaUaaUaaUaaUaaUaaUaaUaaUaaTcaSYaTXaSYaTcaTcaSYaTXaSYaSYaSYaSYaSYaSYaSYaSYaSYaSYaTZaTYaUbaUkaUdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTHaSXaSYaSYaSYaSYaSYaSYaUlaSYaSYaSYaUmaSYaSYaSYaUnaSYaSYaSYaUoaSYaSYaSYaSYaSXaSOaSYaTcaTcaTcaTcaTcaTcaTcaTcaTcaTcaSYaSOaSYaTcaTcaSYaSOaTOaTPaUpaTOaTPaSqaTOaTPaUgaUgaSQaUqaTcaUraUsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaaRaaRaaRaaRaaRaaRaaRaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUuaSmaSmaSOaTuaSOaSqaSOaUvaSOaSqaSOaUwaSOaSqaSOaUxaSOaSqaSOaUyaSOaSqaSOaUzaSOaSQaSYaSYaSYaSYaSYaUAaSYaSYaSYaSYaSYaSXaSsaSYaTcaTcaSYaSsaUBaUCaUDaUEaUFaSsaUGaTcaTcaTcaSOaSmaSqaSmaUHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaUIaUIaUIaUIaUIaUtaUJaUKaULaUtaUIaUIaUIaUIaUIaUIaUIaUIaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSGaSHaStaStaStaSsaUMaUMaUMaUNaUOaUOaUOaUNaUPaUPaUPaUNaUQaUQaUQaSsaTcaTcaTcaSNaSmaSmaSmaSmaSOaURaURaSOaSmaSmaSmaSmaSQaSYaTcaTcaSYaSsaUSaUDaUDaUDaUSaSsaUTaTcaTcaTcaTcaUUaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaUIaUIaUIaUIaUIaUtaUVaUKaUKaUtaUIaUIaUIaUIaUIaUIaUIaUIaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaUMaUMaUMaUNaUOaUOaUOaUNaUPaUPaUPaUNaUQaUQaUQaSsaTcaTcaTcaSsaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaStaSsaSYaTcaTcaSYaSsaUXaUYaUDaUDaUDaSsaUGaTcaTcaUGaTcaUGaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaqAaqAaqAaUIaUIaUIaUtaUtaUtaUtaUIaUtaUtaUtaUtaUZaUtaUtaUtaUtaUtaUtaUtaUIaUIaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaUMaUMaUMaUNaUOaUOaUOaUNaUPaUPaUPaUNaUQaUQaUQaSsaTcaTcaTcaSsaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaSsaVaaTYaTYaVaaSsaTOaTPaVbaTOaTPaSsaUTaTcaUGaSOaSmaSmaUHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaUIaUIaUIaVcaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUtaUIaUIaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaSWaSHaStaStaStaSsaUMaUMaUMaUNaUOaUOaUOaUNaUPaUPaUPaUNaUQaUQaUQaSsaTcaTcaTcaSsaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaSsaVdaVdaVdaVdaSsaVeaUDaUDaUDaVeaSsaUGaTcaUTaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaUIaUKaVcaVcaVcaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUtaVfaVgaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTqaSHaStaVhaViaSsaUMaUMaUMaUNaUOaUOaUOaUNaUPaUPaUPaUNaUQaUQaUQaSsaVjaVkaVlaSsaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaSNaSOaTOaTPaSOaSQaUDaUDaUDaUDaUDaSsaUTaTcaUGaSsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaUIaVcaVcaVcaUIaUIaUIaUtaUtaUtaUtaUZaUtaUtaUtaUtaUZaUtaUKaUKaUKaUZaVmaVnaUIaUIaUIaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUuaSmaSmaSmaSmaTvaSkaSkaSkaTvaSkaSkaSkaTvaSkaSkaSkaTvaSkaSkaSkaTvaSraSraSraSsaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaStaSsaaPaaPaaPaaPaSsaVeaUDaVeaUDaVeaSsaUGaTcaVoaUHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaVcaVcaUIaUIaUIaUIaUIaUIaUIaUIaUtaUKaUKaUVaUtaVpaUKaUtaUKaUKaUKaUZaVmaVqaUIaUIaUtaqAaqAaaRaqAaqAaqAaqAaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUuaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaSkaUHaaPaaPaaPaaPaUuaSmaSmaSmaSmaSmaTvaSmaSmaUHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaVcaUIaUIaUIaqAaqAaUIaUtaUtaUtaUtaVraUKaUJaUtaVraUJaUtaUKaUKaUKaUtaVmaVmaVmaVsaUtaqAaqAaaRaqAaqAaqAaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaqAaqAaUIaVcaVcaUIaqAaqAaqAaUIaVtaVuaVuaUtaUtaUtaUtaUtaUtaUtaUtaUKaUKaUKaUtaVmaVmaVmaVvaUtaqAaqAaaRaqAaqAaqAaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUfaUeaaR
-aaRaqAaUIaVcaVcaVcaVcaUIaUIaqAaqAaUIaVwaVxaVwaUZaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUtaVyaVzaVAaUtaUtaqAaqAaaRaqAaqAaqAaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaUeaaR
-aaRaqAaVBaVcaVcaVcaVcaVcaUIaqAaqAaUtaVCaVwaVwaUZaUKaUKaUKaUKaUKaUKaUKaUKaUKaUKaUtaUIaUIaUIaUIaUIaqAaqAaaRaqAaqAaqAaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaR
-aaRaqAaVDaVEaVFaVcaVGaVcaVcaqAaqAaUtaVCaVHaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaUZaUtaUtaUtaUtaUtaUtaUtaUtaUtaUtaqAaqAaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaVIaVcaVFaVcaVFaVcaVcaqAaqAaUIaUIaUIaUtaUKaUKaUKaUKaUKaUKaUtaVJaVKaVKaVKaVLaUtaUKaUKaUKaUKaUKaUKaUtaqAaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaUIaVcaVFaVcaVMaVcaVcaqAaqAaaPaaPaqAaUtaUKaUJaUKaUKaUKaUKaUtaVKaVKaVNaVKaVKaUtaUKaUKaUKaUKaUJaUKaUtaqAaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaUIaVOaVcaVcaVcaVPaVcaqAaqAaaPaaPaqAaUtaUKaUKaUKaUKaUKaUKaUZaVKaVKaVQaVKaVKaUZaUKaUKaUKaUKaUKaUKaUtaqAaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaUIaUIaVcaVcaVcaVcaUIaqAaqAartaaPaaPaUtaUKaUKaUtaVRaVSaVTaUtaVKaVUaVVaVKaVWaUtaVRaVSaVTaUtaUKaUKaUtaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaUIaUIaUIaUIaVXaVYaUIaqAaruartaaPaaPaUtaUKaUKaUtaaPaaPaaPaUtaUtaVRaVSaVTaUtaUtaaPaaPaaPaUtaUKaUKaUtaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaUIaUIaUIaUIaUIaUIaqAaaPaaPaaPaaPaaPaVZaWaaWaaWbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaVZaWaaWaaWbaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaVZaWcaWdaWbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaVZaWcaWdaWbaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWeaWfaWgaWhaWgaWfaWiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaVZaWcaWdaWbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaVZaWcaWdaWbaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaWeaWhaWjaWkaWlaWmaWnaWkaWoaWhaWiaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaWpaWaaWaaWqaaPaaPaaPaWpaaPaaPaaPaaPaaPaWqaaPaaPaaPaWpaWaaWaaWqaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaWeaWgaWjaWraWsaWkaWtaWuaWuaWkaWvaWwaWoaWgaWiaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaWyaWzaWxaaPaaPaaPaWxaWAaWBaWBaWBaWCaWxaaPaaPaaPaWxaWDaWEaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaWeaWjaWFaWGaWHaWHaWkaWIaWuaWuaWkaNraWJaWKaWLaWoaWiaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaWMaWNaWxaaPaaPaWpaWxaWxaWOaWPaWQaWRaWxaWqaaPaaPaWxaWSaWTaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaWeaWjaWUaWVaWWaWHaWHaWXaWYaWuaWuaWXaWZaWZaWZaWZaXaaWoaWiaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaXbaXcaWxaaPaaPaWxaWxaXdaXeaXfaXeaXgaWxaWxaaPaaPaWxaXhaXiaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaWkaXjaXkaXlaWWaWHaWHaXmaWZaWZaWZaXnaWZaWZaWZaXoaWZbaRaWkaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaXpaWxaWxaWxaWxaWxaXqaXraXraXraXraXraXsaWxaWxaWxaWxaWxaXtaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaWeaWjaWHaXuaXuaWHaWHaWHaXvaXwaWZaXxaXvaXyaWZaXzaWZaWZaXAaWoaWiaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaXBaXCaXDaXEaXFaWxaXGaXraXraXraXraXraXGaWxaXHaXIaXJaXKaXLaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaWhaXMaWHaWHaWHaWHaWHaXNaWkaXwaWZaXOaWkaXPaWZaWZaXQaWZaWZaXRaWhaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWxaXSaXTaXTaXTaXUaWxaWAaWBaWCaXVaWAaWBaWCaWxaXWaXTaXTaXXaXSaWxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWeaXYaWiaXZaYaaWHaYbaYaaWeaXYaYcaXnaYdaXYaWiaYeaYfaWZaYgaYhaWeaXYaWiaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaYiaXSaXTaXTaXTaXTaXVaXraXraXraXraXraXraXraXVaXTaXTaYjaXTaXSaYiaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWkaWZaWoaWgaYcaXmaYdaWgaYkaYlaYmaYnaYoaYpaYqaWgaYcaXnaYdaWfaWjaYraWkaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaYsaYtaXTaYuaYvaXTaWxaYwaYxaXraXraXraXraYyaWxaXTaYzaXTaYAaXSaYsaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWhaYBaWZaYCaYDaWZaYEaYFaWXaYGaYnaWZaYHaYIaWXaYJaYnaWZaYnaYKaYLaYraWhaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaYMaYtaXTaXTaWxaYNaWxaWxaWxaYOaYPaYQaWxaWxaWxaYNaWxaYRaYSaYTaYMaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWhaYUaWZaYVaWZaWZaWZaWZaXnaYnaWZaYWaWZaYnaXnaWZaWZaWZaWZaYXaYraYraWhaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaWpaWxaYYaYZaYZaWxaZaaZbaZaaYiaZcaZdaZeaYiaZfaZgaZhaWxaZiaZjaZkaWxaWqaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWhaZlaWZaYnaYnaWZaZmaZnaXvaZoaYnaWZaYnaZpaXvaZqaYnaWZaYnaXvaZraZsaWhaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaqAaqAaaPaaPaaPaZtaWxaZuaZuaWxaWxaZaaZaaZaaYsaZcaZvaZeaYsaZhaZhaZwaWxaWxaZuaZuaWxaZxaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWkaWZaWeaWgaYcaXnaYdaWgaYkaZyaZzaYnaZAaZBaYqaWgaYcaXnaYdaXYaWiaZCaWkaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaZtaZDaZDaZxaWxaZEaZFaZaaYMaZGaXraZGaYMaZhaZhaSBaWxaZtaZDaZDaZxaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaWoaWfaWjaZIaZJaWZaZKaZLaWoaWfaYcaXnaYdaWfaWjaZMaZNaWZaZOaZPaWoaWfaWjaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaWxaZaaZaaZaaWxaWxaXVaWxaWxaZQaZhaZHaWxaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaWhaZSaWZaWZaWZaWZaWZaZTaWkaZUaZVaZWaWkaZXaWZaWZaWZaWZaWZaWZaWhaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWxaZaaZaaZYaWxaZZaXrbaaaWxaZhaZhaZRaWxaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaWoaWiaYrbacaYrbadaWZbaeaWXbafbagbahaWXaZNaWZbaibajbakbalaWeaWjaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWxaWxbamaZaaWxbanaXrbaoaWxbapbaqaWxaWxaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaWkaYrbarbasbataWZaWZaXnbauaWZbavaXnaWZaWZbawbaxbaybalaWkaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaZtaWxaWxaWxaWxbazbaAbaBaWxaWxaWxaWxaZxaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaWoaWibaCaYraYraWZbaDaXvbafaWZbahaXvaYnaWZbaEbaFbaGaWeaWjaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaZtaWxaZuaZuaZuaZuaZuaWxaZxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaWoaWibaHbaIaWZbaJaYqaYcaXnaYdaYkaYnaWZbalbalaWeaWjaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaZtaZDaZDaZDaZDaZDaZxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaWoaWgaWibaKbaLaWkaWZaWZaWZaWkbaMbaNaWeaWgaWjaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaWoaWhaWiaWkbaObaPbaQaWkaWeaWhaWjaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWoaXYaWgaWhaWgaXYaWjaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aaRaqAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
-aquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabaabbabcabdabeabfabgabhaaYabfaaeaaraasaataauaavaawabiabNabhabgaaVaaYabfaaXaaTabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTaaTabNaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabOabuabwabPabQabPabQabPabQabPabQabPabQabwabRabRabRabRabRabRabRabRabRabRabwabBabSabTabTabTabTabTabTabTabTabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
+aadaaZaaXabhaaYabdabbaaUabfaaUaaVabcaaTabeabaaaWabbabdaaVaaXabcabaabbabcabdabeabfabgabhaaYaahabiabjabkablabqabnaboabYaaTabdabeaaUaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaWabYaazaaHaaqaaraasaataauaavaawabiabjaawabiabjabkaboabpaaqaaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabOabuabuabuabuabuabuabuabuabwabQabPabZacaacbacaacbaccabQabPabwabRabRabRabRabRabRabRabRabRabRabwabBacdabTabDaceabDabTacfacgachabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGaciabVabWabWabWabWabWabXabM
+aalaaYabgaaTaaUabaaaXabbaaVabbabeabfaaWabhabcaaZaaXabaabeabgabfabcaaXabfabaabhaaVabdaaTaaUaagaboabpaaqaaraasaataauacjabfaaUabaaaTabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaaWaaUabaaaTabdaaYaaVaaVacjaazaaNaawabiabjabkablabqabnaboabpaataauaavaawaauaavaawabiabjabkablabqabnaboaaHaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabvabuabuabuabuabwabQabPackaclacmacmacnacoacbacaabwacpacpacpacpacpacpacpacpacpacqabwabBacdacracsactacuacvacwacxacyabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
+aaoaaUabdaaWabbabcabgaaXabeaaXabhaczacAacBacCabYacDacEacFacGaaVabfaaUaaVabcaaTabeabaaaWabbaacabiabjabkablabqabnaboacHabeaaXabfaaZabcabbabhaaVabbabcaaWabaaaUabeabeaaVabbabcaaWabaaaUabeabeacHaazaaHaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabvabuabuabuabvabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKacLacMacMacMacMacNacKacOabwabBacdacPacQacQacQacRacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM
+aababbabaaaZaaXabfabdabgabhabgacCacUacVacWacVacWacXacYacZacFacEaaVabbabeabfaaWabhabcaaZaaXaaiaasaataauaavaawabiabjabmabhabgaaVaaYabfaaXaaTabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaCablabqabnaboadaadbadbadcaddadaadbadcadaadbadcadcadcabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKadeadfadfadfadfadgacKacOabwabBacdadhadiadjadiadkacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadlabWabWabWabWabWadmabM
+aaeaaXabcaaYabgaaVabaabdaaTadnadoacVacWacXadpacVacWacXacYacZacDacEabcaaTabaabhaaYaaUabdaaWaafabqabnaboabpaaqaaraasabNaaTabdabeaaUaaVabgaaWaaWabeaaXabfaaZabcabbabhabhaaXabfaaZabcabbabhabhabNaazaaLaauaavaawabiadqadradradsadtaduadvadwadxadyadzadzadcadqabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabOabuabuabuabvabwabQabPackaclacmacmacnadAadBadCabwacKacKadeadfadfadfadfadgacKacOabwabBacdadDadEadjadEadFacwacSacTabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadlabWabWabWabWabWadmabM
+aahabgabfaaUabdabeabcabaaaWaczacVadpadGadHacYadpacVacWacXacYacZabmabfaaWabcaaTaaUabbabaaaZaanabpaaqaaraasaataauaavabYabfaaUabaaaTabdaaYaaVadIadJadKadLadMadNadOadPadQabgaaVaaYabfaaXaaTaaTabYaazaaOabiabjabkabladRadSadSadTadUadUadradsadtadvadwadwadwadqablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabOabuabuabuabuabuabuabuabwabQabPadVadCadBadCadBadWabQabPabwacKacKadeadfadfadfadfadgacKacOabwabBadXadYadjadjadjadZacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGaeaadlabWabWabWabWabWadmabM
+aagabdaaVabbabaabhabfabcaaZacUadpacYaebacZaecacYadpadGadHaecacVacGaaVaaZabfaaWabbaaXabcaaYaakabkablabqabnaboabpaaqacjaaVabbabcaaWabaaaUabeaedaeeaefaegaehaeiaejaejadQabdabeaaUaaVabgaaWaaWacjaazaaJaasaataauaavadqaduaduadvadwaduadvadwadxaekaelaelaelaemaavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQabPabQabPabQabPabQabQabPabwacKacKaenaeoaeoaeoaeoaepacKaeqabwabBacdadDadEadEadEadFacwaeraesabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadlabWabWabWabWabWadmabM
+aacabaabeaaXabcaaTaaVabfaaYacCacYaecaetacZacWacYadpaeuadHaevadpaaxaaZaaYaaVaaZaaXabgabfaaUaaaaataauaavaawabiabjabkacHaaUaaVaaZabdaaWabfaewadPaexaeyaezaefaeeaeAaeAadNaewaaVaaZabdaaWabfabbacHaazaaDabqabnaboabpaeBaeCaeCaekaeladradsadtaduadsadtadtadtaeDabpaaqaaraasaataaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabvabuabuabuabOabuabuabuabuabOabwabxabyabxabyabxabxabyabxabyabxabwaeEacKacKacKacKacKacKacKacKaeFabwabBabCaeGaeHaeHaeHaeIacwabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIaeJaeKaeKaeKaeKaeKaeLabM
+aaiabcabhabgabfaaWabeaaVaaUadoaecaevacXacVadGaecacYaeMacZaeuacYacEaaYabfaaXaaTabaabdaaVabbaajabjabkablabqabnaboabpabNabbabeaaYabaaaZaaVaeNaeyaeiaehaeOaePaeQaeRaeRaeyaeNabeaaYabaaaZaaVaaXaaxaazaaIaaraasaataauaeSaduaduadvadwadxadyadzaeCaekaelaeladcaeTaauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaeUaeUaeUaeUaeUaeUaeUaeUaeUaeUaaRaeUaeUaeUaeUaeUaeUaeUaeUaeUaeUaaRaeUaeUaeUaeUaeUaeUaeUaeUaeUaeUaaRaeVaeVaeVaeVaeVaeVaeVaeVaeVaeVaaRaeVaeVaeVaeVaeVaeVaeVaeVaeVaeVaaRaeVaeVaeVaeVaeVaeVaeVaeVaeVaeVaaRaeVaeVaeVaeVaeVaeVaeVaeVaeVaeVaaR
+aafabfaaTabdaaVaaZabhabeabbaeWaevaeuadHadpaebaeXaevacWadpaeMaecaeYaaUaaVabgaaWabcabaabeaaXaamaaraasaataauaavaawabiabYaaXabhaaUabcaaYabeaeZaegaeAaeiaezaejaeeaehaejaeRaeZabhaaUabcaaYabeabgabmaazaaBabkablabqabnafaaeBaeBafbadaadbadcaeBafbadaadbadbadbabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwafdafdafdafdafdafdafdafdafdafdabwafeafeafeafeafeafeafeafeafeaffabwafgafhafiafjafkafjaflafmafkafmabwafnafnafnafnafnafnafnafnafnafnabwafoafpafqafrafsafsafsafsafsaftabwafuafuafvafvafvafvafvafvafvafvabM
+aanaaVaaWabaabeaaYaaTabhafwafxaeuadHacYacYaetaeuaeuadGacYaeXaevafyacHabeabdaaZabfabcabhabgaadaavaawabiabjabkablabqacjabgaaTabbabfaaUabhafzaeyaeiaehaeOaePaeQaeRaeAaejafzaaTabbabfaaUabhabdabNaazaaFaboabpaaqaaraasaataauaavaasabkablabqabnabiabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafAafcafcafcafcafAafcabwafdafBafdafdafdafdafBafdafdafdabwafeafeafCafDafDafDafEafeafeafeabwafgafhafiafFafGafFafGafHafGafHabwafnafnafIafnafnafnafnafnafnafnabwafoafpafqafJafKafKafKafKafKafLabwafvafvafvafvafMafMafMafvafvafvabM
+aakabeaaZabcabhaaUaaWaaTadnacVacWacXacYaecacXaeMaeMaebaecacXacYacZaayabhabaaaYaaTaaVaaWabaaaoablabqabnaboabpaaqaaracHabdaaWaaXaaVabbaaTafNaeRaeeaefaegaehaeiaejaeOaeAafNaaWaaXaaVabbaaTabaabYaazaaKaataauaavabqadbadbadbadcaddadaadbadcadaadbadcadcaddaavaawabiabjabkablaaEaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwafdafdafdafdafdafdafdafdafOafdabwafeafeafPafPafPafPafPafeafeafeabwafgafgafQafFafGafkafkafkafGafHabwafnafnafnafnafnafnafRafSafnafnabwafoafoafTafJafKafKafKafKafKafLabwafvafvafvafUafVafVafVafvafvafvabM
+aaaabhaaYabfaaTabbaaZaaWafWadpadGadHaecaevadHaeXaeXaetaevadHaecacVacDaaTabcaaUabeabeaaZabcaababnaboabpaaqaaraasaataaxabaaaZabgabeaaXaaWafXaejaexaeyaezaefaeeaeAaeyaefafXaaZabgabeaaXaaWabcaaxaazaaMaavaawabiadqadaafYafYafZagaagbagcagdageagfaggaggadqabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafAafcafcafcafcafAafcafcafcabwafdafdaghafdafOafdafdafdafdafdabwagiagiagiagiagiagiagiagiagiagjabwafgafhafiafFafGafGafGafGafGafHabwafnafnafnafnagkafnafnafnafnafnabwafoafpafqafJafKafKafKafKafKafLabwafvafMaglagmagnagnagoagpafMafvabM
+aajaaTaaUaaVaaWaaXaaYaaZaczacYaebacZaevaeuacZacWacWaeuacZacWacWacXacGaaWabfabbabhabhaaYabfaaeaawabiabjabkablabqabnabmabcaaYabdabhabgaaZagqaeAagraeRaeQaeyaexaeOaeRaeyagqaaYabdabhabgaaZabfabmaazaaGabpaaqaaradRagsagsagsagtaguaguafYafZagaagcagdagdadqaaraasaataauaavaawaaAaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwafdafdafdagvafdafdafdafdagvafdabwagwagxagyagyagyagyagyagzagiagjabwafgafhafiagAagBagBagCagBagBagDabwafnafnafnafnafnafnafnagEafnafnabwafoafpafqagFagGagGagGagGagGagHabwafvafMaglagIagJagKagLagpafMafvabM
+aamaaWabbabeaaZabgaaUaaYacUadHaeMaebacVacXacVadGadGaeMacVadGadGadHaaxaaZaaVaaXaaTaaTaaUaaVaahabqabnaboabpaaqaaraasabNabfaaUabaaaTabdaaYagMaeOaePaejaeiaeRagraegaejaeRagMaaUabaaaTabdaaYaaVabNaazaaLaauaavaawadqagbagbagbagcagdagbagcagdageagNagOagOaemaawabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwafdafdafdafdafdafdafdafdafdafdabwagwagPagQagQagQagQagQagRagiagjabwafgafhafiagSagTagTagTagTagTagUabwafnafnafnafnafnafnafnafnafnafnabwafoafpafqagVagWagWagWagWagWagXabwafvafMaglagIagYagZagLagpafMafvabM
+aadaaZaaXabhaaYabdabbaaUacCacZaeXaetadpadHadpaebaebaeXadpaebaebacZacEaaYabeabgaaWaaWabbabeaagaasaataauaavaawabiabjabYaaVabbabcaaWabaaaUadNadIadJadKadLadMadNadOadPadQadNabbabcaaWabaaaUabeabYaazaaCablabqabnaeBahaahaahaagNagOafYafZagaagbafZagaagaaeDabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafAafcafcafcafcafAafcabwafdafdafdafdafBafdaghafdafdafBabwagiagPagQagQagQagQagQagRagiagjabwafgafhafiahbafGafGafGafGafGahcabwafnafnafnafnafnafnafnafnafnafnabwafoafpafqahdafKafKafKafKafKaheabwafvafMaglagoahfahfahgagpafMafvabM
+aalaaYabgaaTaaUabaaaXabbadoacVacWacXacYacZacYaetaetacWacYaetaetacVaeYaaUabhabdaaZaaZaaXabhaacabkablabqabnaboabpaaqacjabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabeabeaaXabfaaZabcabbabhacjaazaaJaasaataauaeSafaagbagbagcagdageagfaggahaagNagOagOaeTaauaavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwahhafdafdafdafdahhafdafdafdafdabwagiagPagQagQagQagQagQahiagiagjabwafgafgahjahbafGahkahkahkafGahcabwahlahlahlahlahlahlahlahlahlahlabwafoafoahmahdafKafKafKafKafKaheabwafvafvafvahnahnahnahoafvafvafvabM
+aaoaaUabdaaWabbabcabgaaXaeWadpadGadHaecacVaecacXacXadGaecacXacXadpafyabbaaTabaaaYaaYabgaaTaaiaauaavaawabiabjabkablacHabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTabhabhabgaaVaaYabfaaXaaTacHaazaaEabnaboabpabqaeBaeBaeBafbadaadbadcaeBafbadaadbadbadcabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafAafcafcafcafcafAafcafcafcabwafdagvafdaghafdafdagvafdaghafdabwagiahpahqahqahqahqahqahragiagjabwafgafhafiahbafGahbafGahcafGahcabwahsahsahsahsahsahsahsahsahsahsabwafoafpafqahdafKafKafKafKafKaheabwafvafvafvafMafMafMafvafvafvafvabM
+aababbabaaaZaaXabfabdabgafxacYaebacZaevadpaevadHaevaebaevadHaevacWahtaaXaaWabcaaUaaUabdaaWaafabpaaqaaraasaataauaavabmaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaTaaTabdabeaaUaaVabgaaWabmaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtafcafcafcafcafcafcafcafcafcafcabwafdafdafdafdahhafdafdafdafdahhabwagiagiagiagiagiagiagiagiagiagjabwafgafhafiahuahkahuahvahwahkahwabwahsahsahsahsahsahsahsahsahsahsabwafoafpafqahxahyahyahyahyahyahzabwafvafvafvafvafvafvafvafvahAahAabM
+aaeaaXabcaaYabgaaVabaabdacBaecaetacVaeuacXadpadGadHaetaeuacZaevacWacFabgaaZabfabbabbabaaaZaanabnaboabpaaqaaraasaatabNaaWabaabhabbabeabdaaZaaVabfaaUabaaaTabdaaYaaVabfaaWabaabhabbabeabdaaZabNaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaRahBahBahBahBahBahBahBahBahBahBaaR
+aahabgabfaaUabdabeabcabaahCaevacXadpaeMadHacYaebacZacXaeMacVaeuadGahDabdaaYaaVaaXaaVaaWabaaapaavaawabiabjabkablabqabYaaZabcaaTaaXabhabaaaYabeaaVabbabcaaWabaaaUabeaaVaaZabcaaTaaXabhabaaaYabYaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aagabdaaVabbabaabhabfabcacAaeuadHacYaeXacZaecaetacVadHaeXadpaeMaebabmabaaaUabeabgaaVaaWabaaaoabjabkablabqabnaboabpacjaaYabfaaWabgaaTabcaaUabhabeaaXabfaaZabcabbabhabeaaYabfaaWabgaaTabcaaUacjaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aacabaabeaaXabcaaTaaVabfahEaeMacZaecacWacVaevacXadpacZacWacYaeXaetabNabcabbabhabdabeaaZabcaabaataauaavaawabiabjabkaayaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaiabcabhabgabfaaWabeaaVahEaeXacVaevadGadpaeuadHacYacVadGaecacWacXabNabfaaXaaTabaabhaaYabfaaeaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahGahHahIahJahKahLahFahMahNahNahNahNahNahFahOahPahOahPahOahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aafabfaaTabdaaVaaZabhabeahEacWadpaeuaebacYaeMacZaecadpaebaevadGadHabNaaVabgaaWabcaaTaaUaaVaahaaTaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaaTabdaazahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahGahNahNahNahNahRahFahSahPahPahPahTahNahFahUahPahUahPahUahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aanaaVaaWabaabeaaYaaTabhahVadGacYaeMaetaecaeXacVaevacYaetaeuaebacZabYabeabdaaZabfaaWabbabeaagaaWaajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbaabaaWabaaazahQabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahGahNahNahWahNahXahFahYahPahZahZahTahNahFahPahPahPahPahPahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aakabeaaZabcabhaaUaaWaaTaiaaebaecaeXacXaevacWadpaeuaecacXaeMaetacVacjabhabaaaYaaVaaZaaXabhaacaaZaamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaeaaZabcaazahQaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahFahFahNahWahNahNahNahNahPahZahZahPahNaibahPahPahPahPahPahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaaabhaaYabfaaTabbaaZaaWaiaaetaevacWadHaeuadGacYaeMadpaebaevadGadHacjaaTabcaaUabeaaYabgaaTaaiaaYaadaaZaaXabhaaYabdabbaaUabfabgaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaahaaYabfaazahQabgaaZabfabgabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgaaZabfabgabgaaZaaPahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFaicaidahNahNahNahNahNahNahPahZahZahPahNaibahPahPahPahPahPahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aajaaTaaUaaVaaWaaXaaYaaZaayaaxaaxacEaeYaeMaebaecaeXacXacGacFahDaaxacHaaWabfabbabhaaUabdaaWaafaaUaalaaYabgaaTaaUabaaaXabbaaVabdabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaagaaUaaVaazahQabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaieaifaifaifaifaifaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahFahFaigaihahFahFahFahNahPahZahZahTahNahFahPahPahPahPahPahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aamaaWabbabeaaZabgaaUaaYabdaaUabaabgafyacEaayahtabNacHaaxaaYabfaaWabgaaZaaVaaXaaTabbabaaaZaanabbaaoaaUabdaaWabbabcabgaaXabeabaabhaaVaaZaaTabfaaYabgabcabhabdaaWaaXaaVabbaaTabaaacabbabeaazahQabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaijaikailaiiaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFaimaihaihaihaihainahFahNahPahPahPahTahNahFahUahPahOahPahUahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aadaaZaaXabhaaYabdabbaaUabfabgaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaaWaaXabcaaYaakaaXaababbabaaaZaaXabfabdabgabhabcaaTabeaaYaaWaaVaaUabdabfaaTabaaaZabgabeaaXaaWabcaaiaaXabhaazahQabhabcabcabbabhabcabbabhabcabbabhabcabbabhabcabbabhabhabcabcabbabhabcabbabhabcabbabhabcabbabhabcabbabhaaVabcahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaioaioaioaiiaieaieaieaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFaimaihaipaiqaihainahFahNahNahNahNahNahNahFahOahPahOahPahOahPahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aalaaYabgaaTaaUabaaaXabbaaVabdabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaaZabgabfaaUaaaabgaaeaaXabcaaYabgaaVabaabdaaTadIadJadKadLadMadNadOadPadQaaWabcaaYabdabhabgaaZabfaafabgaaTaazahQaaTabfabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTaaTabfabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfaaXaaTabfabfahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiairairairaiiaieaisaitaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahFahFahFahFahFahFahFahFahFahNahNahFahFahFahFahFahFahFahFahFahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaoaaUabdaaWabbabcabgaaXabeabaabhaaVaaZaaTabfaaYabgabcabhabdaaWaaXaaVabbaaTabaaaYabdaaVabbaajabdaahabgabfaaUabdabeabcabaaiuaivaiwaixaiyaizaiAaiBaiCadNaewabfaaUabaaaTabdaaYaaVaanabdaaWaazahQaaWaaVaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaWaaVaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVabgaaWaaVaaVahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaiDaiEaiFaiiaieaieaieaieaieaieaieaieaieaieaieaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahNaiGahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aababbabaaaZaaXabfabdabgabhabcaaTabeaaYaaWaaVaaUabdabfaaTabaaaZabgabeaaXaaWabcaaUabaabeaaXaamabaaagabdaaVabbabaabhabfabcaewaizaiHaiyaiCaiIaiJaiKaiLaiMaeNaaVabbabcaaWabaaaUabeaakabaaaZaazahQaaZabeabeabdaaZabbafzafzafzafzafzafzabbafzafzafzabbabbabbafzafzafzabbafzafzaiNagqaewaiNabdaaZabeabdaaZabeabeahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaiDaiEaiFaiiaiOaiPaiQaiRaiSaiTaiPaiUaiVaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFahNahNahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaeaanaamaacaakaalaajaaaaaeaadaahaabaaiaagaaoaafaajaalaahaamaacaaaaabaakaagaadaafaamaabaakaiXabcaacabaabeaaXabcaaTaaVabfaeNaiKaiLaiBaiYaiwaiCaiyaiAaiZaeZabeaaXabfaaZabcabbabhaaaabcaaYaazahQaaYabhabhabaaaYabbafzajaafzafzajaafzabbafzajaafzafzafzafzafzajaafzabbafzajaajbajbajcajbabaaaYabhabaaaYabhabhahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaiDaiEaiFaiiajdaiPaiTaiTaiSaiTaiPaiTaiWaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahFajeajeahFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPabfaaiabcabhabgabfaaWabeaaVaeZaiyaiAaiMaiHaizaiYaiBaixaiJafzabhabgaaVaaYabfaaXaaTaajabfaaUaazahQaaUaaTaaTabcaaUabbafzajaajaajaajaafzafzafzajaajaajaajfajgajgajhafzafzafzajfajgajgajhajbabcaaUaaTabcaaUaaTaaTahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaiEaiEaiEajiajjajkaiTaiTaiSaiTaiPaiUaiVaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajlajmajmajlaaPaaPaaPaaPajnajnajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aagaaVabbabcaaWabaaaUabeacGajoajpajqafyabcaayajrajsadOaaxaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPaaVaafabfaaTabdaaVaaZabhabeafzaiBaixaiZaiLaiKaiHaiMaiIaiCafNaaTabdabeaaUaaVabgaaWaamaaVabbaazahQabbaaWaaWabfabbabbafzajaajaajaajaafzafzajaajaajaajaajtajuajuajvajaafzafzajtajuajuajvajbabfabbaaWabfabbaaWaaWahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiaiEaiEaiEajiajjajkaiTaiTaiTaiTajwaiTaiWaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnajnajnajnajxajyajzajnaaPaaPaaPaaPaaPajnajnajAajBajnajnaaPaaPajnajnajnajnajCajDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aacabeaaXabfaaZabcabbabhahDajEajFajGacjaaZahtajHajIajJabmabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPabeaanaaVaaWabaabeaaYaaTabhafNaiMaiIaiJaiAaiyaiLaiZaiwaiYafXaaWabaabhabbabeabdaaZaadabeabgaazahQaaXaaZaaZaaVaaXabbafzajaajaajaajaafzafzajaajaajaajaajKajLajLajMajaafzafzajKajLajLajMajbaaVaaXaaZaaVaaXaaZaaZahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiajNaiEajOaiiajdaiPaiTaiTaiSaiTaiPaiUaiVaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajlajPajQajnajRajSajTajUajVajnajnaaPaaPaaPajnajnajlajmajmajlajnajxajzajlajWajXajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaiabhabgaaVaaYabfaaXaaTahDajEajFajGacjaaZahtajHajIajJabmabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPabhaakabeaaZabcabhaaUaaWaaTafXaedaiwaiCaixaiBaiAaiJaizadQagqaaZabcaaTaaXabhabaaaYaalabhabdaazahQabgaaYaaYabeabgabbafzajaajaajfajgajgajhajaajaajaajaajaajZakaajaajaajaajaajaajZakaajaajbabeabgaaYabeabgaaYaaYahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifaiiakbakcakbaiiaiOaiPaiTaiTaiSaiTaiPaiTaiWaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakdakeakfakfakgakfakfakhakiakjajnajnajxajyajzajnajnakkakfakfaklajnakmaknakoakfakpajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aafaaTabdabeaaUaaVabgaaWabmakqakraksacHaaYacFaktakuakvabNaaTabdabeaaUaaVabgaaWaaWaamaaPaaPaaPaaTaaaabhaaYabfaaTabbaaZaaWaedadPaiIaiMaiIaiMaixaiIaiMadNagMaaYabfaaWabgaaTabcaaUaaoaaTabaaazahQabdaaUaaUabhabdabbafzajaajaajtajuajuajvajaajaajaajaajfakwakxajfajaajaajaajfakwakxajfajbabhabdaaUabhabdaaUaaUahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaifakyaiiakzaiiakyaiOaiPaiTaiTaiSaiTaiPaiUaiVaiWaiWaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPakAakBakCakDajnakfakfakEakFakGajnakHakIakJakKakLakMakNakOakOakfakPakfakfakfakfakQajnajCakRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aahabfaaUabaaaTabdaaYaaVabNakSakTajFaayaaUahDakUakVakWabYabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPaaWaajaaTaaUaaVaaZajqadLakXakYaiIaizaiJaizaiJaiwaizaiJaiBadNadNaiNakXabaaaWabfabbaabaaWabcaazahQabbaaTabaabbabaabbafzajaajaajKajLajLajMajaajaajaajaajtajgakZajtajaajaajfajtajgakZajtajbaaTabaabbaaTabaabbabbahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaieaieaieaieaieaieaieaieaieaieaieaieaieaieaieaieaieaieaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnajnajnajnalaakfakfalbajnalcaldalealfalgalhaliakOakOakfakPakfaljalkakfakfajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aagaaVabbabcaaWabaaaUabeabYajGallakracDabbabmalmajJalnacjaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPaaZaamaaWabbabeaaYagqaiBaiKaiYaizaiJaiAaiIaiMaizaiLaiMaiIaiHaiBaiBadLabcaaZaaVaaXaaeaaZabfaazahQaaXaaWabcaaXabcabbafzajfajgajgajhakaajaajaajaajaajaajaajaajaajaajaajaajtajuajuajvajcajbaaWabcaaXaaWabcaaPaaXahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnaloakfajnajlalpalqalralsaltalualiakOakfalaajlajnajnajlalvalwajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aacabeaaXabfaaZabcabbabhacjahDacHabYacGaaXabNaaxahtabmacHabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPaaYaadaaZaaXabhaaUagMaiBaiyaiHaiLaiMaixaizaiJaiKaiAaiBaiwaiLaiMaixadOabfaaYabeabgaahaaYaaVaazahQabgaaZabfabgabfabbafzajtajuajuajvakxajfajfajgajgajhajgajgajhajaajaajaajKajLajLajMajcajbaaZabfabgaaZabfaaPabgahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnalyalzajnajnajnajnajnajnajnajnalAakfakfakfakfalBakfakfakfakfajnajnalCakfajlajnalDalDajnajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaiabhabgaaVaaYabfaaXaaTabfabhabgaaVaaYabfaaXaaTabfaaXaaTabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPaaUaalaaYabgaaTabbalEaiMaiBaiLaiAaiZaiIaiBaiHaiyaixaiJaizaiAaiZaiIalFaaVaaUabhabdaagaaUabeaazahQabgaaZabfabgabfafzafzajKajLajLajMakZajtajtajuajuajvajuajuajvajaajaajaajaajZakaajaajcajbaewabfabgaaZabfaaPabgahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGalGalGalHalGalGalGalIalJalGalGalGalIalGalGalGalGalGalGalIalGalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnalKalLajnalMajnalNalOalPajlajnalQakfakOakOakOakOakOakOakOakOakOakfakOakfalRalSakOakOakfajnajCajDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aafaaTabdabeaaUaaVabgaaWaaVaaTabdabeaaUaaVabgaaWaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaamaaPaaPaaPabbaaoaaUabdaaWaaXalTaiZaiMaiAaixaiJaiwaiMaiLaiBaiIaiCaiKaixaiJaiwajqabeabbaaTabaaacabbabhaazahQabgaaZabfabgabfafzajaajaajZakaajaajaajaajKajLajLajMajLajLajMajaajaajaajfakwakxajfajcajcaewabfabgaaZabfaaPabgahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalHalGalGalGalGalGalGalGalGalGalGalGalIalGalGalGalGalGalIalGalGalGalGalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalUalVakOalWajnalXajlajnalYajnalZajnamaakOakOambamcamdameamfamgamhakOakOakOakOamiamjakOakOakfajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPaaXaababbabaaaZabgadQaiJaiZaixaiIaiCaizaiZaiAaiMaiwaiYaiyaiIaiCaizaedabhaaXaaWabcaaiabgaaTaazahQabdaaYaaVabdaaVafzajaajfakwakxajfajfajgajgajhakaajaajZakaajaajaajaajaajtajgakZajtajcajcaeNaaVabdaaYaaVaaPabdahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGamkalGalGalGalGalGalHalGalGalJalIalGalGalIalGalGalIalJalGalIalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPamlammamnakOamoakfakfakfakfampakfakfakfakOakOamqamramsamtamuamvamwakOakOakOakOamxakOakOakOakfajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aahabfaaUabaaaTabdaaYaaVabdabfaaUabaaaTabdaaYaaVabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaanaaPaaPaaPabgaaeaaXabcaaYabdadNaiCaiJaiIaiwaiYaiKaiJaixaiZaizaiHaiBaiwaiYaiKadPaaTabgaaZabfaafaaPaaWaazahQabhabcabcabbabhafzafzajtajgakZajtajtajuajuajvakxajfakwakxajfajaajaajaajaajaajcajcajcajbafzabhabcabbabhaaVabcahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalHalGalGalIalJalGalGalIalGalJalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnamyamzajnamAamBamCamDamEakfamFakfakfakOakOakOakOakOakOakOakOakOakfakOakfamGakfamHakOakpajnajCakRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aagaaVabbabcaaWabaaaUabeabaaaVabbabcaaWabaaaUabeabaaaUabeaaVabbabcaaWabaaaUabeabeaakaaPaaPaaPabdaahabgabfaaUagMadKaiYaiCaiwaizaiHaiyaiCaiIaiJaiKaiLaiMaizaiHaiyakYaiuabdaaYaaVaanabdaaZaazahQaaTabfabfaaXaaTabbafzafzafzafzafzajKajLajLajMakZajtajgakZajtajaajaajaajaafzajbajbajbajbaaXaaTabfaaXaaTabfabfahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalHalGalGalGalGalGalJalGalIalJalGalIalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnamIamJajnajnajnajnajnajnajnajlamKakfakfakfakfaljakfakfakfakfajnajnalCakfajlajnamLamMajnajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aacabeaaXabfaaZabcabbabhabcabeaaXabfaaZabcabbabhabcabbabhabeaaXabfaaZabcabbabhabhaaaaaPaaPaaPabaaagabdaaVabbalEaixaiHaiYaizaiKaiLaiBaiYaiwaiCaiyaiAaiZaiKaiLaiBaiYaewabaaaUabeaakabaaaYaazahQaaWaaVaaVabgaaWabbabbabbabbabbafzajaajZakaajaajaajaajaajaajaajaajaajaajaafzaaPaaPaaPaaPabgaaWaaVabgaaWaaVaaVahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGamNamNamNamNamNamNamNalGalGalGalGalGalGalGalIalGalGamkalJalGalGalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnaloakfajnajlamOamPamQamRamSakMamTakOakfamUajlajnajnajnakfamVajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaiabhabgaaVaaYabfaaXaaTabfabhabgaaVaaYabfaaXaaTabfaaXaaTabhabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPabcaacabaabeaaXamWaiIaiLaiHaiKaiyaiAaiMaiHaizaiYaiBaixaiJaiyaiAaiMaiHaeNabcabbabhaaaabcaaUaazahQaaZabeabeabdaaZabbabbabbabbabbafzajfakwakxajfajaajaajaajaajaajaajaajaajaafzaaPaaPaaPaaPabdaaZabeabdaaZabeabeahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGamXamXamYamZamZamZanaamXamXalGalGalGalGamkalGalGalHalGalHalGalIalGalIalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnajnajnakfamUakfakfanbajnancandaneanfangalhanhakOakOakfaniakfalBakfakfakfajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aafaaTacGajoajpajqafyaaXaayajrajsadOaaxaaXaaXacGajoajpajqafyabcaayajrajsadOaaxaaWaamaaPaaPaaPabfaaiabcabhabganjaiwaiAaiLaiyaiBaixaiZaiLaiKaiHaiMaiIaiCaiBaixaiZaiLaeZabfaaXaaTaajabfabbaazahQaaYabhabhabaaaYabbabbabbabbabbafzajtajgakZajtajaajaajaajaajaajaajaajaajaafzaaPaaPaaPaaPabaaaYabhabaaaYabhabhahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGamXankankankankankankankamXanlalGalGamNamNamNamNamNamNamNamNanmannamNalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPanoanpanqanrajnakfakfakhansantajnanuanvanwanxanyaluanzakOakOakfaniakfakfakfakfakfajnajCajDaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaoabfahDanAanBanCacjabgahtanDanEanFabmabgabgahDanGanHanIacjaaZahtanJanKanLabmabaaacaaPaaPaaPaaVaafabfaaTabdaiNaizaixaiAaiBaiMaiIaiJaiAaiyaiLaiZaiwaiYaiMaiIaiJaiAafzaaVabgaaWaamaaVabgaazahQaaUaaTaaTabcaaUabbabbabbabbabbafzafzafzajaajaajaajaajaajaajaajaajaafzafzafzaaPaaPaaPaaPabcaaUaaTabcaaUaaTaaTahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGamXankankankankankankankamXanlalGanManNanOanOanPalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPanQakfakfakfanRakfakfanSanTanUajnajnanVanWanXajnajnanYanZaoaakfajnaobaocaodakfakpajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aabaaTahDanAanBanCacjabgahtanDanEanFabmabgabgahDanGanHanIacjaaZahtanJanKanLabmabcaaiaaPaaPaaPabeaanaaVaaWabaaoeaiKaiIaixaiMaizaiZaiBaiYaiJaiyaiHaiIaiKaiZaiwaiCaixafNabeabdaaZaadabeabdaazahQabbaaWaaWabfabbaaWaaPaaPaaPaaPaaPaaPajbajbajcajcajcajcajcajcajcajbajbaaPaaPaaPaaPaaPaaPabfabbaaWabfabbaaWaaWahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGamXankankankankankankankamXanlamkanMaofaiWaiWaiWaogaohalxaoiaojaokalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajlaolaomajnaonakfaooaopaoqajnajnaaPaaPaaPajnajnajlaoraosajlajnanVanXajnaotaouajnajCajYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaeabcabmaovaowaoxacHabdacFaoyaozaoAabNabdabdabmaoBaoCaoDacHaaYacFaoEaoFaoGabNabfaafaaPaaPaaPabhaakabeaaZabcaoHaiyaiwaiIaiZaiKaiJaiMaiHaiCaiBaiLaiwaiyaiJaizaiYaiIafXabhabaaaYaalabhabaaazahQaaXaaZaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaVafNaewanjafNafNaewaewanjafNaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaVaaXaaZaaZahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGamXamXamXamXankamXamXamXamXalGalGaoIaofaiWaiWaoJaiWaiWaoKaiWaiWaiWalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajnajnajnajnajnajnanVanWanXajnaaPaaPaaPaaPaaPajnajnaoLaoMajnajnaaPaaPajnajnajnajnajCakRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aahaaUabNaoNaoOanBaayabaahDaoPaoQaoRabYabaabaabNaoSaoTanHaayaaUahDaoUaoVaoWabYaaVaanaaPaaPaaPaaTaaaabhaaYabfahCaiBaizaiwaiJaiyaiCaiZaiLaiYaiMaiAaizaiBaiCaiKaiHaiwafWaaTabcaaUaaoaaTabcaazahQabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGamXankankankamXaoXamNamNamNaoYaoZaiWapaapbapcaiWalxaiWapdapdalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajlapeapfajlaaPaaPaaPaaPajnajnajnajnajnaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aagabbabYanCapgaowacDabcabmaphanFapiacjabcabcabYanIapjaoCacDabbabmapkanLaplacjabeaakaaPaaPaaPaaWaajaaTaaUaaVadMaiMaiKaizaiCaiBaiYaiJaiAaiHaiZaixaiKaiMaiYaiyaiLaizadPaaWabfabbaabaaWabfaazahQabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGalGalGalGalGalGamXankankankamXanNanOanOanOanPalxaiWapaapmapcaiWalxalxalxalxaaRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aacaaXacjahDacHabYacGabfabNaaxahtabmacHabfabfacjahDacHabYacGaaXabNaaxahtabmacHabhaaaaaPaaPaaPaaZaamaaWabbabeakXaiZaiyaiKaiYaiMadQaiCaixaiLaiJaiIadOaiZaiHaiBaiAaiKakYaaZaaVabgaaeaaZaaVaazahQabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGamXamXamXamXamXamXankankankamXaofaiWaiWaiWaiWapnaiWaiWaiWaiWaiWapoappappapqalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaiabgabgaaVaaYabfaaXaaTabfabgabgaaVaaYabfaaXaaTabfaaXaaTabgabgaaVaaYabfaaXaaTaaTaajaaPaaPaaPaaYaadaaZaaXabhadLaiJaiBaiyaiHaiZadNaiYaiIaiAaiCaiwalFaiJaiLaiMaixaiyadIaaYabeabgaahaaYabeaazahQaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGamXankankankankamXankankankamXaoZaiWapranOanPalxaiWaiWaiWaiWaiWalxapqapqapsalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aafabdabdabeaaUaaVabgaaWaaVabdabdabeaaUaaVabgaaWaaVabgaaWabdabdabeaaUaaVabgaaWaaWaamaaPaaPaaPaaUaalaaYabgaaTadOaiCaiMaiBaiLaiJadKadQadMaptadIakXajqaiCaiAaiZaiIaiBadQaaUabhabdaagaaUabhaazahQabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgabgaaYaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYabeabgaaYaaYahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGamXankankankankamXankankankamXamXapuamXamXapvalxalxalxalxalxapwalxapxapqapsalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aanaalaahaajaaoaacaaeaabaanaagaakaafaamaaaahQahQahQahQahQaahaajaabaafaaoaaaaagaagaadaaPaaPaaPabbaaoaaUabdaaWalFadIaedajqadKakYaptabeaaYaaWaaVaaUaedadIaptadPadMajqadNabbaaTabaaacabbaaTaazahQabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdabdaaUaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUabhabdaaUaaUahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxapyalGamXankankankankamXamXankamXamXankankankamXapzapAapvalxapBapCapCalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+abfaaXabhaaUabcaaYaaUabcaaYaaXabhaaUabcaaYaaXabhaaUabcaaYaaXabhaaUabcaaYabeabgaaWaaPaaPaaPaaPaaXaaeaaXabcaaYabgaaVabaabdaaTabfaaWabhaaUaaZabeabbabaaaVaaWabcaaYabdabhabgaaZabfaafaaXaaZaazahQabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGamXankankankankankankankankankankankankamXanlalGanMapDapBapCapCalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaVabgaaTabbabfaaUabbabfaaUabgaaTabbabfaaUabgaaTabbabfaaUabgaaTabbabfaaUabhabdaaZaaPaaPaaPaaPabgaahaakaadaaiaaaaaoaamaajaahaalaagaaeaafaacaabaanaamaaoaagaadaacaaiaaeaaaaacaalaanabgaaYaazahQaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGalGamXankankankankankankankankankankankankamXapEalGanMaofapBapCapCalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+abeabdaaWaaXaaVabbaaXaaVabbabdaaWaaXaaVabbabdaaWaaXaaVabbabdaaWaaXaaVabbaaTabaaaYaaPaaPaaPaaPaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQahQaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalGamXamXamXamXamXamXamXankankankamXamXamXamXamXamXamXanMaoZapBapCapCalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapFapFapFapFapFapFapFaaPaaPalxalGamXapGapGapGapGapGamXankankankamXankankankankankamXapHalxapBapCapCalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapIapIapIapFapIapIapFaaPaaPalxalGamXapGapGapGapGapGapGankankankankankankankankankamXapHalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPapJapKapLapKapMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapIapNapIapOapIapIapFaaPaaPalxalGamXapGapGapGapGapGapGankankankankankankankankankamXanlalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapKapPapQapRapKaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapSapSapSapFapIapIapFaaPaaPalxalGamXapGapGapGapGapGamXapGapGapGamXankamXankamXamXamXapTalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapUapVapWapVapUaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapXapXapXapXapFapFapFapFapFapFapIapIapFaaPaaPalxalGamXapGapGapGamXamXamXapGapGapGamXamXamXankankankamXanlalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapYapVapVapVapYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapXapXapXapXapOapIapOapIapIapIapIapIapFaaPaaPalxalGamXapGapGapGamXalGamXapZapZapZamXalGamXankankankamXanlalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapYapVapVapVapYaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapXapXapXapXapFapFapFapFapIapIapIaqaapFaaPaaPalxalGamXapZapZapZamXalGamXaqbaqcaqdamXalGamXapZapZapZamXanlalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqeapVapVapVaqeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapSapIapIaqaapFaaPaaPalxalGamXaqbaqcaqdamXalGalGalGalGalGalGalGamXaqbaqcaqdamXalGalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapKaqfaqgaqhapKaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapSapIapIaqaapFaaPaaPalxalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalGalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapKaqjaqjaqjapKaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqkaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaql
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapFapFapFapFapFapFaaPaaPalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxalxaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqmaqnaqoaqpaqqaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqtaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaquaqvaqwaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqxaqxaqxaqsaaPaaPaaPaaPaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaqraqraqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqxaqxaqxaqsaaPaaPaaPaaPaqsaqxaqxaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaqraqraqraqraqraqraqraqraqraaPaqraqraqraqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqyaqzaqAaqBaqCaqDaqEaqFaqGaqsaqHaqIaqJaqsaqsaqKaqsaqsaqsaqsaqsaqsaqLaqMaqMaqLaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqNaqOaqsaqPaqPaqsaqQaqRaqsaqxaqxaqxaqxaqxaqxaqxaqxaqxaqsaqxaqxaqxaqSaqTaqxaqUaqSaqVaqWaqXaqsaqxaqxaqxaqxaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaqYaaPaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaqsaqsaqKaqKaqsaqKaqKaqsaqKaqKaqsaqxaqxaqxaqxaqxaqxaqxaqxaraaqsarbaqxaqxarcaqxaqxaqxardaqxaqxareaqsaqxaqxaqxaqxaqsarfargarhaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaqYaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsariariarjarkariaqsaqxaqxaqxaqxaqxaqxaqxaqxaqKaqxaqxarlarmarnaroaqxaqxarpaqsaqxaqxaqxarcaqxaqxaqxardaqxaqxarqaqsaqxaqxaqxaqxarrarfarfarsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaqYaaPaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+artaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaqiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsarvarwariariariaqsaqxaqxaqxaqxaqxaqxaqxaqxaqKaqxaqxarxaryarzarAaqxaqxarpaqsarBarCarDaqSaqxaqxaqxaqSarEarFarGaqsaqxaqxaqxaqxaqsarHarIarJaqsaaPaaPaaPaaPaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaParKaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParLariariariariarMariariariariariarMarNariariariarOaqsaqxaqxaqxaqxaqxaqxaqxaqxaqKaqxaqxaqxaqxaqxaqxaqxaqxarPaqsaqsaqSaqSaqsaqxaqxaqxaqsaqSaqSaqsaqsaqxaqxaqxaqxaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsarQarRarSaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaParTaaPaqZaqraqralxalxalxalxalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsaqsaqsarUaqsaqsaqsaqKaqKaqsaqKaqKaqsaqKaqKaqsaqxaqxaqxaqxaqxaqxaqxaqxarVaqSarWarXarYarZaqxaqxaqxarZasaasbasbaqLaqxaqxaqxaqxaqsascasdasdasdaseaqsasfasgaqsarQasharSaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxasiasjaskalxalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsarvaslariariasmaqsasnasoaqsaspasqaqsasrassaqsastasuasvaswasxasyaqxaqxaszaqSasAaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxarfarfasBasBasBarfaqsarRarRaqsasCarRasDaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPapDasEasFasGasFasEalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParLariariariariasHariariariariariasHasIariariariasmaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqSaqSaqSaqSaqSaqsasJasJaqsaqsasKaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxarfarfasLasLasLarfasMarRarRarRarRarRarRaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaofasEasFasGasFasEalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsarvasNariariariasOaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxaqxasPaqxaqxasPasQaqxaqxaqxasRasSaqXasTasUaqxaqxaqxaqxaqxaqxaqxaqxarfarfasLasLasLarfasMarRarRarRarRarRarRaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaoZasEasFasGasFasEalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParLariariariariasVariariariariariasVasWariariariariasOaqxaqxasXaqxaqxasXaqxaqxaqxaqxaqxaqxaqxaqxasYaqxaqxasYaqxaqxaqxaqxasRasZaqXaqXasUaqxaqxaqxaqxaqxaqxaqxaqxarfarfasBasBasBarfaqsataarRaqsatbaqsatcaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxalxasGasGasGalxalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsarvatdariariateaqsaqSaqSaqsatfatfaqsaqSaqSaqsaqSaqSaqSaqSaqSatgathathaqsaqsaqxaqxaqxasRatiatjatkasUaqxaqxatlaqLaqxaqxaqxaqxaqsatmasdasdasdatnaqsataarRaqsatoaqsatoaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPalxatpasGatqalxaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParLariariariariatrariariariariariatratsariariariattaqsatuaqxaqxaqxaqxaqxatvatwaqsatxatyatzatAatBatCaqxaqxatDaqSatEaqxaqxaqxaqxaqxaqxaqxaqxaqxatFaqsaqxaqxaqxaqxaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPatGatHatHatIalxalxatJalxalxalxalxalxalxalxaqraqraqralxalxalxalxalxalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaruaruaruaruaruaruaqsariariariariatKaqsatLaqxaqxaqxaqxaqxaqxatMaqsaqxaqxaqxaqxatNaqxaqxaqxatOaqSatPatQatRatSaqxaqxaqxatRatQatPatEaqsaqxaqxaqxaqxaqSatTatUatUatVatWatXaqsatYarRatZaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaubaucaucaucaudauaaaPaaPaueaufaugauhaufaufaufauialxaujaukaulaumalxaqraqraqralxaunaiWauoaupalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsariauqaurausautaqsauuaqxaqxauvauwaqxaqxauxaqsaqxaqxaqxaqxaqxaqxaqxaqxaqsaqsaqsaqSaqSaqsauyauyaqsaqsaqsaqsaqsaqsaqxaqxaqxaqxaqSauzauzauzauzauzauzaqsauAarRauBaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPauaauaauCauDauEauFauGauaauaaaPaueaufauHauHaufaufaufaufauIauJauJauJauKalxaqraqraqralxalxalxalxalxalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaqsaqsauLaqxaqxauMauNaqxaqxauOaqsaqxaqxauPauQauRaqxaqxauSaqsauTauUauUauUauUauVauVauUauUauUauUaaPaqsaqxaqxaqxaqxaqsauzauWauXauXauXauXaqsaqsauYaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPauaauZavaavaavbavaavaauFauaaaPaueavcavdaveavfaufaufaufalxauJauJauJavgalxaqraqraqralxavhaiWaiWavialxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqxaqxaqxavjavkaqxaqxaqxaqsaqxaqxavlavmavnaqxaqxavoaqsavpavqavravsavtavuavuavuavvavwavxauUaqsaqxaqxaqxaqxavyauzavzavzavzavzavzauzauzauzauXaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaavAavaavaavaavaavBavCauaaaPaueaufavDavDaufaufaufavEalxavFavGavHavIalxaqraqraqralxavJaiWaiWavKalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqxaqxaqxaqxaqxaqxaqxaqxaqsaqxaqxaqxaqxaqxaqxaqxavLaqsavpavMavNavuavuavuavuavuavuavuavOavPaqsaqxaqxaqxaqxavyauzauzauzavQauzauzauzauzauzauXaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaavRavaavaavSavaavaavTauaaaPaueaufaufaufaufaufaufavUalxalxalxalxalxalxaqraqraqralxavVaiWaiWavWalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqxaqxaqxaqxaqxaqxaqxaqxaqsaqxaqxaqxaqxaqxaqxaqxaqxaqsavpavMavXavYavZavZavZavZavZawaavxauUaqsaqxaqxaqxaqxaqsauzauzawbawbauzauzawcauzauzauXaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweaweawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaawfawgauaauaauaauaauaauaaaPawhatHatHawialxaupaupaupalxappappawjawkalxaqraqraqralxawlaiWaiWawmalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqxaqxawnawoawpawqawrawsaqsawtawuawvawwawxawyaqxawzaqsawAauUauUauUauUauUauUauUauUauUauUaaPaqsaqxaqxaqxaqxaqsawBauzawCawDauzauzawEauzauzawFaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaawHawIawJawKawLauaaaPaaPaaPaaPaaPaaPawMaupaupaupawNapqapqawOawOalxaqraqraqralxawlaiWaiWawPalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsawQawRawnawoawpawqawrawsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsawSawSawSawSawSawSawSawSawSawSawSawSaqsaqsawTawTaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaawUawVavBavaawWauaaaPaaPaaPaaPaaPaaPawXaupaupaupalxawYapqalxalxalxalxalxalxalxawZaxaaxaawZalxalxalxalxaqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaqsaqsaqsaqsaqsaqsaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqsaqsaxbaxbaqsaqsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGawGawGaxcaxcaxcaxcaxcaxdaxdaxcaxcaxcaxcaxcawGawGawGawGawGawdawdawdawdawdawdawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaauaaxeawIavBavaaxfauaauaaaPaaParTarKaxgalxaupaupaupalxalxalxalxaxhaxiaxjaxkaxlaxmaiWaiWaiWaiWaxnaxnaxoalxalxaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGawGaxcaxqaxraxsaxtaxcaxuaxvaxcaxwaxxaxcaxcaxcaxcawGawGawGawdaxyaxzaxAaxAaxAawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaauaauaauaauaaxBawIavBavaaxCauaauaauaauaauaaxDaxDalxaxEaupaupaupalxaxFaxGaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaxHalxaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGaxcaxcaxIaxIaxIaxIaxcaxJaxJaxcaxIaxIaxKaxLaxcaxcaxcawGawGawdaxMaxAaxAaxAaxAawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaxNaxOaxPauaaxQavaavaaxRawfawfaxSaxTaxUaxVaxWaxXaxWaupaupaupaupaxYaiWaiWaiWaiWaiWaiWaupaiWaxZaiWaiWaiWaiWaiWaiWayaalxaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGaxcaxcaxcaybaycaydayeaxcayfaxIaygaxIaxIaxIaxIayhayiaxcawGawGayjaxAaxAaxAaxAaxAawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaykaylaymaylauaawfaynayoauaauaaypayqayraysaxVaxWaytaxWaupaupaupaupalxayuayvaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaiWaywalxaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGayxayyayzaxIayAayAayAaxcaxIaxIaxcayBayCayDayEayFayGaxcawGawGawdaxAaxAaxAaxAaxAawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPauaauaaykayHauaauaayIavaayJauaauaayKayLayKauaayMayMalxayNatHawialxalxalxalxayOayPayQayRaySayTaiWaiWaiWaiWayUayUayValxalxaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaxpaxparuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGayWayyaxIaxIaxIaxIaxIaygaxIaxIaxcaxcaxcaxcaxcaxcaxcaxcawGawGawdayXayYaxAayYayZawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPauaazaavaavaazbauaazcazdavaauaazeazfazgazhauaaqZaaPaqZaaPaaPaaPaaPaqraqralxalxalxalxalxalxalxawZaziaziawZalxalxalxalxaqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGaxcaxcaxIaxIaxIazjaxIaxcaxIaxIaxIazkazlawGawGawGawGawGawGawGazmazmazmazmazmazmazmazmazmazmazmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPauaaznavaavaavaazoavaavaavaazpavaavaavaazqauaarKarKarKarKaaPaaPaaPaaPaqraqraqraqraqraqraqralxazraiWaiWazralxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGawGaxcaxcaxcaxcaxcaxcaxcayfaxIazsaxIazlawGawGawGawGawGawGawGazmaztaztaztaztaztaztaztaztaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPauaazvavaavaavaazwavaavaavaazxavaavaavaazyauaaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqralxazraiWaiWazralxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawGawGaxcaxcazzazAazBazzazCaxcaxIaxIaxIazDazlawGawGawGawGawGawGawGazmaztazEazEazEazEazEazEazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPauaauaauaauaauaauaawfavaavaavaawfauaauaauaauaauaauaaaPaaPaaPaaPaaPaqYaaPaqZaqraqraqraqraqraqralxazraiWaiWazralxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqSaxpaxpaqSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawdawdawdawdawdawGawGayxayyaxIaxIaxIaxIaxIaygaxIaxIaxcaxcaxcaxcaxcaxcaxcaxcawGawGazmaztazEazFazFazFazFazFazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPauaazGazHazIazJazKauaazLavaazMauaazNazOazOazPazQauaaaPaaPaaPaaPaaPaqYaqZaqraqraqraqraqraqraqralxazraiWaiWazralxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRazSazSazSazSazRazRazRazRazSazTazTazSawdazUazUawdawdazUazUawdawdazUazUazUazUawdawdawdawdazUazUazUazUawdawdawdawdazUazUawdawdawdawdawdawdazVazVazWawdawGawGayWayyazXaxIaxIaxIaxIaxcaxIaxIaxIaxIaxIaxcaxIazYazZaxcawGawGazmaztazEaAaazFazFazFaAbazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaAcaAdaAdaAdaAdaAdauaavaavaavaauaaAeavaavaavaaAfaAgaaPaaPaaPaaPaaParTaaPaqraqraqraqraqraqraqralxalxaAhaAialxalxaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAjaAkaAjazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAjaAjaAjazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRaAlaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAnazUazVazVazVazVazVazVazUazVazVazVazVazVazVaAoazVazVazVazVazVazVazVazVaAoazVazVazVaApazVazVazVazVazVazVazVazVaAqawGawGaxcaxcaxcaAraAsaAtaAuaxcayfaAtaAtaAtaxIaygaxIaxIaxIaxcawGawGazmaztazEazFazFaAvaAvaAvaAwaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaAxaAyaAzaAdaAdaAdaAAavaavaavaaABavaavaavaaACaADaAEaaPaaPaaPaaPaaPaqYaqZaqZaqraqraqraqraqraqraqralxalxalxalxaqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFazRazRazRaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFazRazRazRaAFazSazSazSazSaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAGazVazVazVazVazVazVaAGazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVaApazVazVazVazVazVazVazVazVaAqawGawGawGaxcaxcaxIaxIaxIaxIaxcaxIaAtaAtaAtaxIaxcaAHaxcaxcaxcawGawGazmaztazEazFazFazFazFazFaAIaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAJaAdaAdaAdaAdaAdaAKavaavaavaaALavaavaavaavaaAMaANaaPaaPaaPaaPaaPaqYaaPaaPaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZaqZaqZazSaAmaAmaAmazSaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPazRaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAGazVazVazVazVazVazVaAGazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVawdawdawdawdawdawdawdawdawdawdawGawGawGawGaxcaxcaAOaAPaAQaxcaxIaxIaxIaxIaxIaxcaxcaxcaxcawGawGawGazmaztazEazFazFazFazFaARazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaASaAdaAdaAdaATawfayKaAUayKauaaAVaAWaAXavaaAYauaaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPaaPaaPazSaAmaAmaAmazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZazSaAmaAmaAmaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZaAZazUazUaBaazUazUawdazUazUazUazUazUaBbaBbazUazUawdawdazUazUazUazUawdawdazVazVawdaBcaBdawdaBcaBdawdaBcaBdawdawGawGawGawGawGaxcaxcaxcaxcaxcaxcaxcaxcaxcaxcaxcaxcawGawGawGawGawGazmaztazEazFazFazFazFazFaAIaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaBeaBfaBgaBhaBiauaaBjavaaBkauaaBlawfauaaBmauaauaaaPaaPaaPaaPaaPaaPaaPaqYaaPaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmaAZaBnaBoaBoaBoaBoaBoaBoaBoaBoaBoaBpaBqaBraBsaAZaBtaBtaBtaBuaBvawdaBbaBbaBbaBbaBbaBbaBbaBwaBxawdaByaByaByaByaByaByawdazVazVawdaBzaBAawdaBzaBAawdaBzaBAawdawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGazmaztazEazFazFaBBaBBaBBaBCaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaBDaAdaBEawfauaauaaBFavaaBGauaauaauaaBHavaaBIauaaaPaaPaaPaaPaaPaaPaaPaqYaqZaqZaqraqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmaAZaBMaBNaBNaBNaBOaBOaBNaBNaBNaBNaBPaBNaBNaBQaAZaBRaBtaBtaBtaBtawdaBbaBSaBTaBUaBSaBbaBbaBbaBbawdaByaBVaBWaBWaBXaByazUazVazVawdaBYaBZawdaBYaBZawdaBYaBZawdawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGawGazmaztazEaAaazFazFazFaAbazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaCaaCbaCcauaaaPauaaCdaCdaCdauaaaPauaauFaCeaCfauaaaPaaPaaPaaPaaPaaPaaPaqYaaPaqZaaPaqraqraqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBLaAmaAmaAmaAZaBMaBNaBNaCgaChaCiaCjaBNaBNaCkaBpaClaCmaCnaAZaCoaBtaBtaBtaBtawdaBbaBSaCpaCpaBSaBbaBbaBbaBbawdaByaCqayYaCraCsaByazUazVazVawdaCtawdawdaCtawdawdaCtawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdawdazmaztazEazEazFazFazFazEazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauaaCdaCdaCdauaaaPauaaCuaCvaCwauaaaPauaaCdaCdaCdauaaaPaaPaaPaaPaaPaaPaaPaqYaqZaqZaqZaqZaqZaqraqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmaAZaBMaBNaBNaCgaCiaCiaCjaBNaBNaBQaAZaAZaAZaAZaAZaCxaCxaCxaBtaBtawdaBbaBbaBbaBbaBbaBbaBbaCyaBSawdaByaCqayYayYaCsaByawdazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVaCzawGawGaCzazuaztazEazEaCAaCAaCAazEazEaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPauaaCuaCvaCwauaaaPaaPaaPaaPaaPaaPaaPauaaCuaCvaCwauaaaPaaPaaPaaPaaPaaPaaPaqYaaPaqZaaPaqZaaPaaPaqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZazSaAmaAmaAmaAZaCBaBNaBNaCgaCCaCDaCjaBNaBNaCEaBpaBqaBraBsaAZaCFaCGaCHaBtaBtawdaBbaBSaCpaBUaBSaBbaBbaBbaBbawdaByaCqayYayYaCsaByaCIazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVazVaCzawGawGaCzazuaztaztaCJaCKaCKaCKaCLaztaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZazSaAmaAmaAmazSaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPazRaAmaAmaAmaAZaCMaBNaBNaBNaCNaCNaBNaBNaBNaBNaBPaBNaBNaBQaAZaCOaBtaBtaBtaBtawdaBbaBSaCpaCPaBSaBbaBbaBbaBbawdaByaCqayYayYaCsaByawdazVazVawdazUazUazUazUazUazUazUazUazUawdawdawdawdawdawdawdawdawdawdawdawdazVazVawdawdawdawdawdawdawdawdazmaztaztaztaztaztaztaztaztaztazuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSazSazSazSazSaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAZaCQaCRaCSaCTaBNaBNaBNaCkaCSaCSaBpaClaCmaCnaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUaCUawdaByaCqayYaCVaCsaByazUazVazVawdazVaCWaCXaCYaCZazVaDaaDbaDcawdaDdaDdaDdaDdaDdaDdaDdaDdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPazmazmazmazmazmazmazmazmazmazmazmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmaAZaAZaAZaAZaDeaBNaBNaDfaDgaAZaAZaAZaAZaAZaAZaCUaDhaDiaDjaCUaDkaDlaDlaDlaDlaDlaDlaDlaDlaDmaDnawdaByaBYaDoaDoaDpaByazUazVazVazUazVaCWaDqaDraCZazVaDsaDtaDuawdaDdaDdaDdaDdaDdaDdaDdaDdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAZaDvaDwaBpaDxaBNaBNaBNaDyaAZaDzaDAaDBaDBaDCaCUaDhaDiaDDaCUaDlaDlaDlaDlaDEaDFaDlaDlaDlaDlaDlawdaByaByaByaByaByaByawdazVazVazUazVazVazVazVazVazVazVazVaDGawdawdawdawdawdawdawdawdawdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmazSazSazSazSazSaAFaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPazRaAmaAmaAmaAZaDeaBNaDHaBNaBNaBNaDfaDIaAZaDJaCgaCiaCjaDKaCUaDiaDiaDiaDLaDlaDlaDMaDlaDEaDFaDlaDNaDOaDPaDlawdawdazUazUazUazUawdawdazVazVaDQazVazVazVazVaDRaDSaDTazVazVawdazVazVazVazVazVazVaDUawdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazSaqZaaPaaPaDVaDVaDVaDVaDVaDVaDWaDWaDWaDVaDVaDXaqZaqZazSaDYaAmaAmaAZaDxaBNaDHaCkaCSaDZaEaaEbaAZaEcaEdaCiaBNaDKaCUaDiaDiaEeaCUaEfaDlaEgaDlaDEaDFaDlaDNaDOaDPaDlaCUazVazVazVazVazVazVazVazVazVazUazVazVazVazVaDTaDTaDUazVazVaEhazVaEiazVazVaEiazVaDTawdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazRaaPaaPaDVaDVaEjaEkaDVaElaEmaElaElaElaEmaEnaEoazRazRazRaAmaAmaAmaAZaDHaDHaBpaBpaBpaBpaBpaBpaAZaBpaEpaBNaEqaEraCUaEsaDiaEeaCUaEfaDlaDlaDlaEtaDFaDlaDNaEuaDPaDlaCUazVazVazVazVazVazVazVazVazVazUaEvaCZazVazVazVazVazVaEwazVawdaDqaExaEyaDTaEzazVaDGawdaDdaDdawdazVazVawdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazRaaPaaPaDWaEkaEAaEkaEBaEkaEkaEkaEkaEkaEkaEkaECaEDaBKaEDaAmaAmaAmaAZaEdaBNaEEaEFaEFaEFaEFaEFaEGaBpaBpaEHaBpaBpaCUaCUaCUaCUaCUaDEaDEaDEaDEaDEaDFaDlaDNaEIaDPaDlaCUazUazUaEJazUazUawdaAoazVazVawdaEKaCZazVazVazVazVazVawdawdawdawdazUazUazUazUazUawdawdaELaELawdazVazVawdaaPaaPaaPaaPaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZaqZazSaAmaAmaAmazRaaPaaPaDVaDVaENaEkaDVaEOaEPaEOaEOaEOaEPaEQaERazRazRazRaAmaAmaAmaAZaEpaBNaBNaBNaBNaBNaBNaBNaEEaEFaESaBNaEEaETaEUaCUaDlaDlaDlaDFaDFaDFaDFaDFaDlaDlaDlaDlaDlaDlaCUaEVaEWazVaEXaEYawdaEZaFaaFbaELaELaFcaELawdazUaFdazUawdaFeaFeaFeaFfaFgaFhaFiaFjaFeaFeaFeaELaAoazVazVawdaaPaaPaaPaEMaEMaFkaFkaFkaFkaFkaFkaFlaFlaFlaFkaFkaFkaFkaFlaFlaFlaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazSaqZaaPaaPaDVaDVaDVaDVaDVaDVaDWaDWaDWaDVaDVaFnaqZaqZazSaAmaAmaAmaAZaEpaBNaBNaDfaDfaDfaDfaDfaBNaBNaBNaBNaBNaDfaFoaCUaFpaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaFpaCUazVazVazVazVazVawdazVazVazVaFqaFeaFeaFrawdazVazVazVawdaFeaFeaFeaFfaFsaFtaFuaFjaFeaFeaFeaELazVazVazVawdaaPaaPaaPaEMaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaFvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazSazSazSazSazSaAFaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPazRaAmaAmaAmaAZaEpaBNaBNaFwaFwaFwaFwaFwaBNaBNaBNaBNaBNaBNaDKaCUaDOaDlaDNaDOaDOaDPaDlaDlaDNaDOaDOaDPaDlaDOaCUazVazVazVazVazVawdazVazVazVaFqaFxaFyaFzawdazVazVazVawdaFeaFeaFeaFAaFBaFCaFDaFEaFeaFeaFeaELazVazVazVawdaaPaaPaaPaEMaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAZaEpaBNaBNaCCaBNaBNaBNaCCaBNaEqaFFaEdaBNaBNaDKaCUaFGaDlaDNaEIaEuaDPaDlaDlaDNaEIaEuaDPaDlaFGaCUazVaFHaFIaFJaFKawdazUaFLazUaELaFMaFNaELawdaFOaFPaFQawdaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaELazVazVazVawdaaPaaPaaPaEMaFkaFkaFkaFRaEMaEMaEMaFmaFmaFmaEMaFSaFSaEMaFmaFmaFmaEMaEMaEMaEMaFmaFmaFmaEMaEMaFmaFmaFmaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaFTaFTaFTazSazSaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPazSazSaFTaFTaFTazSazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazSaFTaFTaFTaAZaEpaBNaEqaEdaBNaBNaEqaFFaEdaDKaAZaAZaFUaFUaAZaCUaFpaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaDlaFpaCUaFVawdawdawdawdawdaFeaFeaFeaELaFqaFqaELawdawdawdawdawdaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaELazVazVazVawdaaPaaPaaPaEMaFWaFkaFkaEMaEMaFXaFXaFYaFXaFYaFXaFZaFZaFXaFYaFXaFYaFXaFXaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqr
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaGbaAmaAmazSazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZazSazSaAmaGcaGdaGeaAmazSazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazSaAmaAmaGdaGeaAZaESaBNaDKaAZaEHaEHaAZaAZaEpaDKaAZaGfaBNaBNaGgaCUaDOaDlaDNaDOaDOaDPaDlaDlaDNaDOaDOaDPaDlaDOaCUawdawdaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaELaELawdawdaELaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaELazVazVazVawdaaPaaPaaPaEMaFWaFkaFkaEMaFXaFXaGhaGhaGhaGhaGiaGjaGjaGkaGhaGhaGhaGiaFXaFXaGlaGlaGlaGlaGlaGlaGlaGlaGlaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaGmaAmaAmaAlazSazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazSaAlaAmaAmaGnaAmaAmaAlazSazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazSaAlaAmaAmaGoaGeaDHaBNaBNaDKaAZaEdaBNaDKaAZaEpaDKaAZaGpaBNaBNaGgaCUaFGaDlaDNaEIaEuaDPaDlaDlaDNaEIaEuaDPaDlaFGaCUawdaGqaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGqaELaELawdaELaGraFeaFeaFeaFeaFeaFeaFeaFeaFeaGraELaAoazVazVaEMaEMaEMaEMaEMaFWaFkaFkaFmaGsaGtaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGuaGsaGvaGvaGvaGvaGvaGvaGvaGvaGvaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRaAmaGoaAmaAmaAmaAmazSazSazSazSazRazRazRazRazRazSazSazSazSaAmaAmaAmaGoaGdaGwaAmaAmaAmazSazSazSazSazRazRazRazRazRazSazSazSazSaAmaAmaAmaAmaGdaAmaDHaBNaBNaDKaAZaEpaBNaGxaAZaEpaDKaAZaGyaBNaBNaGgaCUaCUaGzaGzaGzaGzaCUaGAaGAaCUaGzaGzaGzaGzaCUaCUaFeaFeaFeaFeaGBaGCaGDaGDaGDaGEaGFaFeaFeaFeaFeaELaELaELaELaELaELaELaFeaFeaFeaELaELaELaELaELawdazVazVaGGaFkaFkaFkaEMaFWaFkaFkaFmaGHaGtaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGuaGHaGlaGlaGlaGlaGlaGlaGlaGlaGlaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaGLaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaGLaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAZaGNaBNaEEaBpaEpaGOaGPaBpaESaEEaAZaGQaFFaFFaGRaAZaGSaGTaGUaGTaGUaFqaFeaFeaFqaGTaGVaGTaGTaGWaELaFeaFeaFeaGXaGYaGZaGZaGZaGZaGZaHaaHbaFeaFeaFeaELaGTaGUaGTaGSaGUaFqaFeaFeaFeaFqaGUaGTaGTaHcawdazVazVaEMaHdaFkaHeaFmaFWaFkaFkaEMaFXaFXaHfaHfaHfaHfaHgaGjaGjaHhaHfaHfaHfaHgaFXaFXaGvaGvaGvaGvaGvaGvaGvaGvaGvaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaHiaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaHiaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAZaAZaDHaDHaBpaHjaHkaBpaBpaDHaDHaAZaAZaAZaAZaAZaAZaFqaFqaFqaFqaFqaFqaFeaFeaFqaFqaFqaFqaFqaFqaELaFeaFeaHlaHmaGZaGZaGZaGZaGZaGZaGZaHnaGFaFeaFeaELaFqaFqaFqaFqaFqaFqaFeaFeaFeaFqaFqaFqaFqaFqaELaHoaHoaEMaFkaHpaHqaFmaFWaFkaFkaEMaEMaFXaFXaFYaFXaFYaFXaFZaFZaFXaFYaFXaFYaFXaFXaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaHraHsazRaAmaAmaAmaAmaHtaHuaHvaHtaHuaHwaHxaHyaHuaHvaHtaHuaHvaAmaAmazRaHzaHraHsazRaAmaAmaHtaHuaHvaHtaHuaHwaHxaHyaHuaHvaHtaHuaHvaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaFeaFeaFeaFeaHAaFeaFeaHAaFeaFeaFeaGqaELaGqaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGqaELaFeaFeaHBaGZaGZaGZaHCaHDaHEaGZaGZaGZaHBaFeaFeaELaGraFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGraELaFeaFeaFmaHFaHGaFmaEMaFkaFkaFkaFRaEMaEMaEMaFmaFmaFmaEMaHHaHHaEMaFmaFmaFmaEMaEMaEMaEMaFmaFmaFmaEMaEMaFmaFmaFmaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaHIaBKaHJaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaHKaHLaHIaBKaHMaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaFeaFeaFeaFeaHAaFeaFeaHAaFeaFeaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaHNaFeaFeaHOaGZaGZaHCaHPaHPaHPaHEaGZaGZaHQaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaHRaFkaFkaFkaHSaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaHTaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaFvaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaql
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaBKaBKaHUaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaHVaAmaAmaAmaAmaAmaAmaAmaAmaHWaHXazSaBKaHUaAmaAmaAmaAmaAmaAmaAmaAmaHVaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaFqaFeaFeaFeaELaFeaFeaELaFeaFeaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaHNaFeaFeaHOaGZaGZaHYaHPaHZaHPaIaaGZaGZaHQaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFmaFkaFkaFkaFmaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaIbaBKaIcaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaIdaBKaIbaBKaIcaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaFeaFeaFeaFeaHAaFeaFeaHAaFeaFeaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaHNaFeaFeaHOaGZaGZaIeaHPaHPaHPaIfaGZaGZaHQaFeaFeaHNaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaHRaFkaFkaFkaHSaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaIgaIhazRaAmaAmaAmaAmaIiaIjaIkaIiaIjaIlaImaInaIjaIkaIiaIjaIkaAmaAmazRaIoaIgaIpazRaAmaAmaIiaIjaIkaIiaIjaIlaImaInaIjaIkaIiaIjaIkaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaFeaFeaFeaFeaHAaFeaFeaHAaFeaFeaFeaGqaELaGqaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGqaELaFeaFeaIqaGZaGZaGZaIeaIraIsaGZaGZaGZaItaFeaFeaELaGraFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGraEMaIuaIuaEMaEMaEMaEMaEMaFkaFkaFkaFRaEMaEMaEMaFmaFmaFmaEMaFSaFSaEMaFmaFmaFmaEMaEMaEMaEMaFmaFmaFmaEMaEMaFmaFmaFmaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaHiaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaHiaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaIvaIvaIwaIwaIvaIxaIxaIxaIvaIwaIwaIvaIvaIxaIxaIvaIvaFqaFqaFqaFqaFqaFqaFeaFeaFqaFqaFqaFqaFqaFqaELaFeaFeaIyaIzaGZaGZaGZaGZaGZaGZaGZaIAaIBaFeaFeaELaFqaFqaFqaFqaFqaFqaFeaFeaFqaFqaFqaFqaFqaFqaEMaICaICaIDaIEaIFaIGaFmaFWaFkaFkaEMaEMaFXaFXaFYaFXaFYaFXaFZaFZaFXaFYaFXaFYaFXaFXaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaGLaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaAmaAmaAmaGIaBKaGJaGIaBKaGKaGLaGMaBKaGJaGIaBKaGJaAmaAmaAmaAmaAmaAmaIvaIHaIIaIIaIJaIKaILaILaIMaIIaINaIvaIOaIPaIQaIRaIvaGVaGSaGTaGUaGUaFqaFeaFeaFqaHcaISaGUaGTaGTaELaFeaFeaFeaITaIUaGZaGZaGZaGZaGZaIAaGYaFeaFeaFeaELaIVaGTaGSaGTaGUaFqaFeaFeaFqaGTaGUaGTaIWaISaEMaICaICaICaICaICaICaFmaFWaFkaFkaEMaFXaFXaGhaGhaGhaGhaGiaGjaGjaGkaGhaGhaGhaGiaFXaFXaGlaGlaGlaGlaGlaGlaGlaGlaGlaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRaAmaIXaIXaAmaAmaAmazSazSazSazSazRazRazRazRazRazSazSazSazSaAmaAmaAmaGmaGdaGwaAmaAmaAmazSazSazSazSazRazRazRazRazRazSazSazSazSaAmaAmaAmaGcaGdaAmaIwaIIaIIaIIaIIaIIaIIaIIaIIaIIaIYaIvaIZaIIaJaaJbaIvaJcaJdaJdaJdaJdaJcaJeaJeaJcaJdaJdaJdaJdaJcaJcaFeaFeaFeaFeaIyaGCaJfaJfaJfaGEaIBaFeaFeaFeaFeaJgaJgaJgaJgaJgaJgaJgaJhaJhaJgaJgaJgaJgaJgaJgaEMaICaICaICaICaICaICaEMaFWaFkaFkaFmaGsaGtaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGuaGsaGvaGvaGvaGvaGvaGvaGvaGvaGvaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaGdaIXaAmaAlazSazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazSaAlaAmaGoaGdaGeaAmaAlazSazSaaPaaPaJiaJjaJjaJjaJjaJjaJiaaPaaPazSazSaAlaAmaGmaGdaGeaIwaIIaIIaJkaJlaIIaIIaJkaJlaIIaIYaIvaJmaIIaIIaJnaIvaJoaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJoaJcaELaGqaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaGqaELaJgaJqaJraJraJraJraJsaJsaJsaJsaJraJraJraJraJqaEMaICaICaJtaJuaICaJtaFmaFWaFkaFkaFmaGHaGtaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGjaGuaGHaGlaGlaGlaGlaGlaGlaGlaGlaGlaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaGwaAmazSazSaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZazSazSaAmaGoaGdaAmaAmazSazSaqZaaPaJiaJvaJwaJxaJyaJzaJAaJvaJiaaPaqZazSazSaAmaAmaGdaAmaIvaJBaIIaJkaJlaIIaIIaJkaJlaIIaIYaIvaJCaIIaJaaJbaIvaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJcaELaELaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaFeaELaELaJgaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaEMaICaICaJtaJuaICaJtaFmaFWaFkaFkaEMaFXaFXaHfaHfaHfaHfaHgaGjaGjaHhaHfaHfaHfaHgaFXaFXaGvaGvaGvaGvaGvaGvaGvaGvaGvaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaFTaFTaFTazSazSaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPazSazSaFTaFTaFTazSazSaaPaqZaJiaJiaJDaJEaJFaJEaJFaJEaJGaJiaJiaqZaaPazSazSaFTaFTaFTaIvaJHaIIaJkaJlaIIaIIaJkaJlaIIaIYaIvaJIaJJaJKaJLaIvaJpaJpaJMaJNaJOaJPaJpaJpaJMaJQaJRaJPaJpaJpaJcaaPaELaELaELaELaELaFeaELaFeaELaELaELaELaELaaPaJgaJsaJSaJSaJSaJSaJsaJsaJsaJsaJSaJSaJSaJSaJsaEMaICaICaJtaJuaICaJtaEMaFWaFkaFkaEMaEMaFXaFXaFYaFXaFYaFXaFZaFZaFXaFYaFXaFYaFXaFXaGaaGaaGaaGaaGaaGaaGaaGaaGaaGaaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazRaaPaaPaqZaJjaJFaJFaJFaJTaJUaJVaJFaJFaJFaJjaqZaaPaaPazRaAmaAmaAmaIvaJHaIIaIIaIIaIIaIIaIIaIIaIIaIYaIvaIvaIZaJWaJXaIvaJpaJpaJMaJYaJZaJPaJpaJpaJMaKaaKbaJPaJpaJpaJcaaPaaPaELaKcaKdaFeaFeaGZaFeaFeaKdaKeaELaaPaaPaJgaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaJsaEMaICaICaJtaJuaICaJtaFmaFkaFkaFkaFRaEMaEMaEMaFmaFmaFmaEMaHHaHHaEMaFmaFmaFmaEMaEMaEMaEMaFmaFmaFmaEMaEMaFmaFmaFmaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazRaaPaaPaqZaJiaKfaKgaKhaJiaKiaJiaKjaKkaKlaJiaqZaaPaaPazRaAmaAmaAmaIvaJHaIIaIIaINaKmaKmaKmaKmaKmaKnaIvaKoaIMaIJaKpaIvaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJcaaPaaPaELaKcaKdaFeaFeaGZaFeaFeaKdaKeaELaaPaaPaJgaJqaJraJraJraJraJsaJsaJsaJsaJraJraJraJraJqaEMaICaICaJtaJuaICaJtaFmaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRaaPaaPaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaaPaaPazRaAmaAmaAmazRaaPaaPaqZaJiaKqaJjaJiaJiaJiaJiaJiaJjaKqaJiaqZaaPaaPazRaAmaAmaAmaIvaIxaKraIIaIvaKsaKtaKuaKvaKtaKwaIvaJHaIIaIIaKxaIvaJpaJpaJMaKyaKzaJPaJpaJpaJMaKAaKBaJPaJpaJpaJcaaPaaPaELaKCaFeaFeaFeaGZaFeaFeaFeaKDaELaaPaaPaJgaJgaJgaJgaJgaJgaJgaJhaJhaJgaJgaJgaJgaJgaJgaEMaICaICaJtaJuaICaJtaEMaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFkaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZaqZazSaAmaAmaAmazSaqZaqZaqZaJiaJFaKkaJiaKEaKFaKGaJiaKgaJFaJiaqZaqZaqZazSaAmaAmaAmaIvaJHaIIaIIaKHaIMaKIaIIaIIaKIaIJaKJaIMaIIaIIaKKaIvaJpaJpaJMaKLaKMaJPaJpaJpaJMaKNaKOaJPaJpaJpaJcaaPaaPaELaKcaKdaFeaFeaGZaFeaFeaKdaKeaELaaPaaPaJgaKPaKQaKQaKQaKQaKPaKPaKPaKPaKRaKSaKSaKSaKTaEMaICaICaJtaJuaICaJtaEMaEMaFkaFkaFkaFkaFkaFkaKUaKUaKUaFkaFkaFkaFkaKUaKUaKUaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaJjaJFaKkaJjaKVaKWaKXaJjaKgaJFaJjaaPaaPaaPazSaAmaAmaAmaIvaJHaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaKYaIvaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJpaJcaaPaaPaELaKcaKdaFeaFeaGZaFeaFeaKdaKeaELaaPaaPaJgaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaEMaICaICaICaICaICaICaEMaEMaEMaFmaFmaFmaEMaFmaFmaFmaEMaFmaFmaFmaEMaFmaFmaFmaEMaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaJiaJvaKfaKkaJjaKVaKZaKXaJjaKgaKlaJvaJiaaPaaPazSaAmaAmaAmaIvaJHaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaIIaKKaIvaJpaJpaJpaJpaJpaJpaLaaLaaLaaLaaLaaLaaLaaLaaJcaaPaaPaLbaLbaLbaLcaLcaLdaLcaLcaLbaLbaLbaaPaaPaJgaLeaJgaLfaJgaLgaJgaKPaKPaJgaLhaJgaLiaJgaLjaEMaICaICaICaICaICaICaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRazRazRaJvaLkaJFaKkaJvaJjaLlaJjaJvaKgaJFaLkaJvazRazRazRaAmaAmaAmaIvaJHaIIaINaKmaKmaKmaJBaINaKmaKmaJBaIIaIIaIIaKYaIvaLmaLnaLnaJpaJpaLoaLpaLpaLpaLqaLpaLpaLpaLpaJcaaPaaPaLbaLraLsaLcaLsaLsaLsaLcaLsaLraLbaaPaaPaJgaLtaJgaLtaJgaLtaJgaKPaKPaJgaLtaJgaLtaJgaLtaEMaICaICaLuaLuaLuaLuaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmaLvaBKaLvaLwaJFaJFaJFaLxaLyaJFaJFaLxaJFaJFaJFaLwaLvaBKaLvaAmaAmaAmaIvaIxaIIaIYaIxaIxaIxaJHaIYaLzaJXaJHaINaLAaLBaLCaIvaLDaLEaLFaJpaJpaLoaLGaLHaLHaLHaLHaLHaLHaLHaJcaaPaaPaLbaLsaLIaLJaLsaLsaLsaLJaLKaLsaLbaaPaaPaJgaJgaJgaJgaJgaJgaJgaKPaKPaJgaJgaJgaJgaJgaJgaEMaICaICaLLaLLaLLaLLaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmaLvaBKaLvaLwaJFaJFaJFaJFaJFaJFaJFaJFaJFaJFaJFaLwaLvaBKaLvaAmaAmaAmaIvaLMaIIaIJaLNaLOaLPaIMaIJaLQaIvaLRaLSaIvaIvaIvaIvaLTaLUaLVaJpaJpaLoaLHaLHaLHaLHaLHaLHaLHaLHaJcaaPaaPaLbaLcaLsaLcaLsaLsaLsaLcaLsaLcaLbaaPaaPaJgaLWaKPaLWaKPaLWaKRaKPaKPaLXaLWaKPaLWaKPaLWaEMaICaICaICaICaICaICaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRazRazRaJvaLYaJFaKkaJjaKgaJFaKkaJjaKgaJFaLZaJvazRazRazRaAmaAmaAmaIvaLMaIIaIIaIIaIIaIIaIIaIIaMaaIvaLRaMbaMcaMcaMdaIvaMeaMfaMgaJpaJpaLHaLHaLHaMhaMiaMjaMkaLHaLHaJcaaPaaPaLbaLsaLsaLsaLsaLsaLsaLsaLsaLsaLbaaPaaPaJgaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaKPaEMaMlaICaICaICaICaFmaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaJjaKgaJFaKkaJjaKgaJFaKkaJjaKgaJFaKkaJjaaPaaPazSaAmaAmaAmaIvaLMaIIaIIaIIaMmaMnaIIaIIaMoaIvaLRaIIaMpaMqaMraIvaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaJcaLbaLbaLbaLsaLsaLsaLsaLsaLsaLsaLsaLsaLbaLbaLbaJgaMsaKPaMsaKPaMsaKRaKPaKPaLXaMsaKPaMsaKPaMsaEMaFmaFmaFmaFmaFmaFmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZazSaAmaAmaMtazSaaPaaPaJjaKgaJFaKkaJjaKgaJUaKkaJjaKgaJFaKkaJjaaPaaPazSaAmaAmaAmaIvaMuaIIaIIaIIaIIaIIaIIaIIaMvaIvaLRaIIaIIaMwaMraIvaMxaMyaMyaMyaMzaLbaLsaLsaLsaLsaLsaLsaLsaLsaLsaLsaLsaLbaLbaMAaLbaLbaLsaLbaLbaMAaLbaLbaLsaLsaLbaLbaLbaJgaJgaJgaJgaJgaJgaJgaJgaJgaJgaJgaJgaJgaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaJjaKgaJFaKkaJjaKgaJFaKkaJjaKgaJFaKkaJjaaPaaPazSaAmaAmaAmaIvaMBaIIaIIaIIaMCaMDaIIaIIaMEaIvaMFaMGaIIaMHaMIaIvaMJaIIaIIaIIaMKaLbaLsaLbaLbaLbaLbaMLaLbaLbaLbaLsaLsaLsaLsaLsaLsaLbaLsaLbaLsaLsaLsaLsaLsaLsaLsaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRazRazRaJvaMMaJFaKkaJjaKgaJFaKkaJjaKgaJFaMNaJvazRazRazRaAmaAmaAmaIvaJHaIIaIIaIIaINaKmaJBaIIaMOaIvaIvaIvaMPaIvaIvaIvaMJaIIaIIaIIaMKaLbaLsaLbaMQaMRaMRaMRaMRaMSaLbaLbaLbaLbaLbaLbaLbaLbaMTaLbaLbaLbaLbaLbaLbaLbaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmaLvaBKaLvaLwaJFaJFaJFaJFaJFaJFaJFaJFaJFaJFaJFaLwaLvaBKaLvaAmaAmaAmaIvaJHaIIaINaKmaMUaIvaIvaMVaIvaIvaMWaMXaIIaMbaMYaIvaMXaIIaIIaIIaMZaLbaLsaLbaMQaMRaMRaMRaMRaMSaLbaNaaNbaNcaNbaNdaNeaNeaNeaNeaNeaNdaNeaNdaNeaNfaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaBJaBKaBLaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBLaBKaBJaAmaAmaAmaLvaBKaLvaLwaJFaJFaNgaJFaJFaJFaJFaJFaNgaJFaJFaLwaLvaBKaLvaAmaAmaAmaIvaIvaNhaIvaLzaIvaIvaNiaIIaNjaIvaLRaIIaIIaIIaIIaNkaIIaIIaNlaIIaNmaLbaLsaLbaNnaMRaMRaMRaMRaNoaLbaNeaNpaNpaNpaNpaNpaNeaNeaNeaNpaNpaNpaNpaNqaNraLbaLsaLbaLbaLbaLbaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRaAmaAmaAmazRazRazRaJvaJjaNsaJvaJjaJjaNtaJjaJjaJvaNsaJjaJvazRazRazRaAmaAmaAmaIvaNuaIIaNvaNwaNxaIvaNyaIIaNzaIvaNAaNBaNCaNDaNEaIvaNFaNGaNGaNGaNHaLbaLsaLbaNnaNIaNJaNJaMRaMRaNKaNeaNeaNLaNMaNLaNeaNeaNeaNeaNeaNLaNMaNLaNNaNeaLbaLsaLsaLsaLsaLsaLsaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaaPaaPaaPaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaqZaaPaaPaaPazSaAmaAmaAmazSaaPaaPaJiaNOaNPaJiaNQaNRaNSaNTaNUaJiaNVaNWaJiaaPaaPazSazTazTazTaIvaNuaIIaNXaNYaNZaIvaOaaIIaObaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaLbaLbaLsaLbaLbaLbaLbaLbaLbaLbaLbaNeaNpaNpaNpaNpaNpaNeaNeaNeaNpaNpaNpaNpaOcaNeaLbaLbaLbaLbaLbaLbaLbaLsaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmaAmazSaqZaqZaqZaqZaaPaaPaaPaaPaaPaaPaaPaaPaaPaqZaqZaqZaqZazSaAmaAmaAmazSaqZaqZaJiaOdaOdaJiaOeaOfaNSaNSaOgaJiaOdaOdaJiaqZaqZazSaAmaAmaAmaIvaIvaOhaIvaIxaIxaIvaIvaMVaIvaIvaOiaOjaOkaIxaOlaOmaLNaOnaOnaOoaLbaLsaLsaLbaLbaOpaOpaOpaOpaOpaLbaOqaOqaOqaOqaOqaOqaOqaOqaOqaOqaOqaOqaOqaOraOqaLbaOsaOsaOsaOsaOsaLbaLsaLsaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFazRazRazRaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFazRazRazRaAFaaPaaPaJiaOtaOuaJiaOvaNSaOwaOxaOyaJiaOzaOAaJiaaPaaPaAFaAmaAmaAmaIvaOBaIIaNvaOCaODaIvaJHaIIaIJaLNaIMaIIaIJaIxaIMaIIaIIaIIaIIaIYaLbaLsaLbaLbaLbaOEaOEaOEaOEaOEaLbaOFaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOHaOFaLbaOEaOEaOEaOEaOEaLbaLbaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAjaAkaAjazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAjaAjaAjazRaaPaaPaJiaOIaOIaJiaOJaOKaNSaOLaOMaJiaOIaOIaJiaaPaaPazRaAmaAmaAmaIvaONaIIaIIaIIaOOaIvaJHaIIaIIaINaKmaIIaIIaOPaIIaIIaIIaIIaIIaIYaLbaLsaLbaOQaORaOSaOSaOSaOSaOSaOTaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOHaOGaOTaOUaOUaOUaOUaOUaORaOVaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRaaPaaPaJiaOWaOWaJiaJiaOIaOIaOIaJiaJiaOWaOWaJiaaPaaPazRaAmaAmaAmaIvaOXaIIaIIaNlaOYaIvaOZaIIaIIaIYaPaaIIaPbaIxaJBaIIaJaaIIaIIaIYaLbaLsaLbaOQaORaOSaPcaOSaPcaOSaOTaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOGaOHaOGaOTaOUaPdaOUaPdaOUaORaOVaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaJiaOWaOWaOWaJiaaPaaPaaPaaPaaPaaPazSaAmaAmaAmaIvaNuaIIaIIaIIaPeaIvaPfaIIaIIaPgaPhaIIaPiaIxaPjaPkaPlaPmaPmaPnaLbaLsaLbaOQaORaOSaOSaPoaOSaOSaOTaOGaOGaOGaOGaOGaOGaOGaPpaOGaOGaOGaOGaOGaOHaOGaOTaOUaOUaPqaOUaOUaORaOVaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaIvaPraPsaPtaPuaPvaIvaPwaPxaPyaPzaPAaKmaMUaIvaIvaIvaIvaIvaIvaIvaLbaLsaLbaOQaORaOSaOSaOSaOSaOSaOTaOGaOGaOGaOGaOGaOGaPBaPCaPBaOGaOGaOGaOGaOHaOGaOTaOUaOUaOUaOUaOUaORaOVaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaIvaaPaaPaaPaaPaaPaaPaLbaLsaLbaOQaORaOSaPcaOSaPcaOSaOTaOGaOGaOGaOGaOGaOGaPDaPEaPFaOGaOGaOGaOGaOHaOGaOTaOUaPdaOUaPdaOUaORaOVaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaLbaLsaLbaLsaORaOSaOSaOSaOSaOSaOTaOGaOGaOGaOGaOGaOGaOGaPGaOGaOGaOGaOGaOGaOHaOGaOTaOUaOUaOUaOUaOUaORaLsaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmazSaaPaaPaaPaaPaaPaaPaLbaLsaLbaPHaLbaPIaPIaPIaPIaPIaLbaOFaOGaOGaOGaOGaOGaOGaPGaOGaOGaOGaOGaOGaOHaOFaLbaPIaPIaPIaPIaPIaLbaPHaLbaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRaAnaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAmaAnazSaaPaaPaaPaaPaaPaaPaLbaLsaLsaLsaLbaPJaPJaPJaPJaPJaLbaOqaOqaOqaOqaOqaOqaPKaPLaPKaOqaOqaOqaOqaOraOqaLbaPMaPMaPMaPMaPMaLbaLsaLsaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRazRazRazRazRazSazSazSazSazRazRazRazRazSaPNaPNazSazSaaPaaPaaPaaPaaPaaPaLbaLbaLbaLsaLbaLbaLbaLbaLbaLbaLbaPOaPPaPPaPPaPPaPPaPQaPRaPOaPPaPPaPPaPPaPSaPOaLbaLbaLbaLbaLbaLbaLbaLsaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSazTazTazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaLbaLsaLsaLsaLsaLsaLsaLsaLbaPOaPOaPTaPOaPTaPOaPOaPUaPVaPOaPTaPOaPTaPWaPOaLbaLsaLsaLsaLsaLsaLsaLsaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaLbaLbaLbaLbaLbaLbaLbaLsaPXaPOaPOaPOaPYaPYaPYaPOaPOaPOaPYaPYaPYaPYaPYaPOaPXaLsaLbaLbaLbaLbaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaLbaLbaLbaPZaPZaPZaQaaQbaQcaQdaPOaQeaQfaQgaQhaQiaQjaQkaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaLbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQnaQmaQmaQmaQoaQoaQoaQmaQmaQoaQoaQoaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQpaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQqaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazSaAmaAmazSaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQraQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQpaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQsaQsaQsaQsaQsaQsaQsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQtaQraQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQsaQsaQsaQsaQsaQsaQsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPazRaAmaAmazRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQmaQuaQuaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQsaQsaQsaQsaQsaQsaQsaQsaQsaaPaQvaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQvazRaAmaAmazRaQvaQvaQvaQvaQvaQvaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQuaQxaQyaQuaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQvaQvaQvaQvaQvaQzaQwaQwaQwaQzaQwaQwaQwaQzaQAaQsaQsaQsaQsaQsaQsaQsaQsaQsaQAaQvaQBaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQvazSazTazTazSaQvaQDaQEaQFaQGaQGaQHaQIaQJaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQuaQKaQLaQuaQmaQmaQtaQmaQMaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQNaQOaQBaQPaQQaQvaQRaQRaQRaQvaQSaQSaQSaQvaQAaQTaQTaQTaQTaQTaQTaQTaQTaQTaQAaQvaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQvaQvaQUaQUaQvaQvaQVaQVaQVaQWaQXaQYaQVaQVaQZaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQmaQuaQuaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaQRaQRaQRaQvaQSaQSaQSaQvaQAaQTaQTaQTaQTaQTaQTaQTaQTaQTaQAaQvaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQvaRbaRcaRcaRbaQvaRdaReaQVaQVaQVaQVaQVaQVaRfaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQraQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQpaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaQRaQRaQRaQvaQSaQSaQSaQvaQAaQTaQTaQTaQTaQTaQTaQTaQTaQTaQAaQvaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQvaRcaRgaRgaRcaQvaQVaQVaQVaRhaRiaRjaQVaQVaRkaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQtaQraQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQraQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaQRaQRaQRaQvaQSaQSaQSaQvaQAaQTaQTaQTaQTaQTaQTaQTaQTaQTaQAaQvaQBaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQCaQvaRcaRgaRgaRcaQvaRlaRmaQVaRnaRoaRpaQVaQVaQVaQVaQVaRqaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaQmaQmaQmaQmaRraQmaRsaQmaRsaQmaRtaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRuaQOaQBaQBaQBaQvaQRaQRaQRaQvaQSaQSaQSaQvaQAaQTaQTaQTaQTaQTaQTaQTaQTaQTaQAaQvaQvaQvaQvaQvaQvaRvaRvaQvaQvaQvaQvaQvaQvaRcaRgaRgaRcaQvaRwaQVaQVaQVaQVaQVaQVaQVaQVaQVaQVaRqaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaQmaQmaQmaRxaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQmaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQvaQvaQvaQvaRyaQvaQvaQvaRzaQvaQvaQvaRAaQvaQvaQvaQvaQvaQvaQvaRBaQvaQvaQvaQvaQvaQvaRCaRcaRcaRcaRcaRDaRcaRcaRcaRcaRcaRbaQvaRcaRgaRgaRcaQvaRlaRmaQVaQVaREaREaRFaRGaRGaRHaQvaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaQlaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaRIaQlaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRJaRbaRcaRcaRcaRcaRcaRcaRKaRcaRcaRcaRLaRcaRcaRcaRcaRcaRcaRcaRMaRcaRcaRNaROaRPaQvaRcaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRcaQvaRcaRgaRgaRcaQzaRQaRQaRRaRRaRQaRQaRQaQvaQvaQvaQvaRSaRTaRUaRQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaRVaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRWaRVaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRJaRcaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRcaRXaRcaRgaRYaRYaRYaRYaRYaRYaRYaRYaRgaRcaRXaRcaRgaRgaRcaRXaRcaRcaRcaRcaRcaRcaRcaRcaRcaRcaRQaRZaSaaSbaRQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRJaRcaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaSeaRgaRgaSfaSfaSfaSfaSfaSfaSfaSfaRgaRgaSeaRgaRgaRgaRgaSeaRgaRgaRgaRgaRgaRgaRgaRgaRgaRcaSgaShaRTaSiaRQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRJaRcaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaRcaRXaRcaRgaSjaSjaSjaSjaSjaSjaSjaSjaRgaShaRRaRcaRgaRgaRcaRXaRcaRcaRcaRcaRcaRcaRcaRcaRcaRcaRQaSkaSaaSlaRQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRJaRbaRcaRcaRcaRcaRcaRcaSmaRcaRcaRcaSnaRcaRcaRcaSoaRcaRcaRcaSpaRcaRcaRcaRcaRbaQvaRcaRgaRgaRgaRgaRgaRgaRgaRgaRgaRgaShaQvaRcaRgaRgaRcaQzaRQaRQaSqaRQaRQaQvaRQaRQaSeaSeaQvaSraRTaSsaRQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaStaaRaaRaaRaaRaaRaaRaaRaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQvaQvaQvaQvaRyaQvaQvaQvaSuaQvaQvaQvaSvaQvaQvaQvaSwaQvaQvaQvaSxaQvaQvaQvaSyaQvaQvaRcaRcaRcaRcaRcaSzaRcaRcaRcaRcaRcaRbaQvaRcaRgaRgaRcaQvaSAaSBaSCaSDaSEaQvaSFaRgaRgaRgaQvaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraqraqraqraqraqraqraqraSGaSGaSGaSGaSGaStaSHaSIaSJaStaSGaSGaSGaSGaSGaSGaSGaSGaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQNaQOaQBaQBaQBaQvaSKaSKaSKaSLaSMaSMaSMaSLaSNaSNaSNaSLaSOaSOaSOaQvaRgaRgaRgaQvaQvaQvaQvaQvaQvaSPaSPaQvaQvaQvaQvaQvaQvaRcaRgaRgaRcaQvaSQaSCaSCaSCaSQaQvaSRaRgaRgaRgaRgaSSaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraqraqraqraqraqraqraqraSGaSGaSGaSGaSGaStaSTaSIaSIaStaSGaSGaSGaSGaSGaSGaSGaSGaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaSKaSKaSKaSLaSMaSMaSMaSLaSNaSNaSNaSLaSOaSOaSOaQvaRgaRgaRgaQvaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaQBaQvaRcaRgaRgaRcaQvaSVaSWaSCaSCaSCaQvaSFaRgaRgaSFaRgaSFaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraqraqraqraSGaSGaSGaStaStaStaStaSGaStaStaStaStaSXaStaStaStaStaStaStaStaSGaSGaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaSKaSKaSKaSLaSMaSMaSMaSLaSNaSNaSNaSLaSOaSOaSOaQvaRgaRgaRgaQvaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaQvaSYaRYaRYaSYaQvaRQaRQaSZaRQaRQaQvaSRaRgaSFaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaSGaSGaSGaTaaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaStaSGaSGaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRaaQOaQBaQBaQBaQvaSKaSKaSKaSLaSMaSMaSMaSLaSNaSNaSNaSLaSOaSOaSOaQvaRgaRgaRgaQvaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaQvaTbaTbaTbaTbaQvaTcaSCaSCaSCaTcaQvaSFaRgaSRaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaSGaSIaTaaTaaTaaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaStaTdaTeaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaRuaQOaQBaTfaTgaQvaSKaSKaSKaSLaSMaSMaSMaSLaSNaSNaSNaSLaSOaSOaSOaQvaThaTiaTjaQvaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaQvaQvaTkaTlaQvaQvaSCaSCaSCaSCaSCaQvaSRaRgaSFaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaSGaTaaTaaTaaSGaSGaSGaStaStaStaStaSXaStaStaStaStaSXaStaSIaSIaSIaSXaTmaTnaSGaSGaSGaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQvaQvaQvaQvaQvaQzaQwaQwaQwaQzaQwaQwaQwaQzaQwaQwaQwaQzaQwaQwaQwaQzaQvaQvaQvaQvaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaSUaQBaQvaaPaaPaaPaaPaQvaTcaSCaTcaSCaTcaQvaSFaRgaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaTaaTaaSGaSGaSGaSGaSGaSGaSGaSGaStaSIaSIaSTaStaToaSIaStaSIaSIaSIaSXaTmaTpaSGaSGaStaqraqraaRaqraqraqraqraqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaQvaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQwaQvaaPaaPaaPaaPaQvaQvaQvaQvaQvaQvaQvaQvaQvaQvaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaTaaSGaSGaSGaqraqraSGaStaStaStaStaTqaSIaSHaStaTqaSHaStaSIaSIaSIaStaTmaTmaTmaTraStaqraqraaRaqraqraqraaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraqraqraSGaTaaTaaSGaqraqraqraSGaTsaTtaTtaStaStaStaStaStaStaStaStaSIaSIaSIaStaTmaTmaTmaTuaStaqraqraaRaqraqraqraaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaSdaScaaR
+aaRaqraSGaTaaTaaTaaTaaSGaSGaqraqraSGaTvaTwaTvaSXaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaStaTxaTyaTzaStaStaqraqraaRaqraqraqraaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaScaaR
+aaRaqraTAaTaaTaaTaaTaaTaaSGaqraqraStaTBaTvaTvaSXaSIaSIaSIaSIaSIaSIaSIaSIaSIaSIaStaSGaSGaSGaSGaSGaqraqraaRaqraqraqraaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaRaaR
+aaRaqraTCaTDaTEaTaaTFaTaaTaaqraqraStaTBaTGaStaStaStaStaStaStaStaStaStaStaSXaStaStaStaStaStaStaStaStaStaStaqraqraaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraTHaTaaTEaTaaTEaTaaTaaqraqraSGaSGaSGaStaSIaSIaSIaSIaSIaSIaStaTIaTJaTJaTJaTKaStaSIaSIaSIaSIaSIaSIaStaqraaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraSGaTaaTEaTaaTLaTaaTaaqraqraaPaaPaqraStaSIaSHaSIaSIaSIaSIaStaTJaTJaTMaTJaTJaStaSIaSIaSIaSIaSHaSIaStaqraaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraSGaTNaTaaTaaTaaTOaTaaqraqraaPaaPaqraStaSIaSIaSIaSIaSIaSIaSXaTJaTJaTPaTJaTJaSXaSIaSIaSIaSIaSIaSIaStaqraaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraSGaSGaTaaTaaTaaTaaSGaqraqraqYaaPaaPaStaSIaSIaStaTQaTRaTSaStaTJaTTaTUaTJaTVaStaTQaTRaTSaStaSIaSIaStaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraSGaSGaSGaSGaTWaTXaSGaqraqZaqYaaPaaPaStaSIaSIaStaaPaaPaaPaStaStaTQaTRaTSaStaStaaPaaPaaPaStaSIaSIaStaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraSGaSGaSGaSGaSGaSGaqraaPaaPaaPaaPaaPaTYaTZaTZaUaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTYaTZaTZaUaaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraqraqraqraqraaPaaPaaPaaPaTYaUbaUcaUaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTYaUbaUcaUaaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUdaUdaUdaUeaUdaUdaUdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaTYaUbaUcaUaaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaTYaUbaUcaUaaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaUdaUeaUdaUdaUfaUgaUhaUdaUdaUeaUdaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraqraqraqraaPaaPaaPaaPaaPaUiaTZaTZaUiaaPaaPaaPaUiaaPaaPaaPaaPaaPaUiaaPaaPaaPaUiaTZaTZaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaUdaUdaUdaUjaUkaUdaUlaUmaUmaUdaUnaUoaUdaUdaUdaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaUpaUqaUiaaPaaPaaPaUiaUraUsaUsaUsaUtaUiaaPaaPaaPaUiaUuaUvaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaUdaUdaUwaUxaUyaUyaUdaUzaUmaUmaUdaUAaUBaUCaUDaUdaUdaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaUEaUFaUiaaPaaPaUiaUiaUiaUGaUHaUIaUJaUiaUiaaPaaPaUiaUKaULaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaUdaUdaUMaUNaUOaUyaUyaUdaUPaUmaUmaUdaUQaUQaUQaUQaURaUdaUdaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaUSaUTaUiaaPaaPaUiaUiaUUaUVaUWaUVaUXaUiaUiaaPaaPaUiaUYaUZaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaUdaVaaVbaVcaUOaUyaUyaVdaUQaUQaUQaVeaUQaUQaUQaVfaUQaVgaUdaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaVhaUiaUiaUiaUiaUiaViaVjaVjaVjaVjaVjaVkaUiaUiaUiaUiaUiaVlaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaUdaUdaUyaVmaVmaUyaUyaUyaUdaVnaUQaVoaUdaVpaUQaVqaUQaUQaVraUdaUdaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaVsaVtaVuaVvaVwaUiaVxaVjaVjaVjaVjaVjaVxaUiaVyaVzaVAaVBaVCaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaUeaVDaUyaUyaUyaUyaUyaVEaUdaVnaUQaVFaUdaVGaUQaUQaVHaUQaUQaVIaUeaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUiaVJaVKaVKaVKaVLaUiaUraUsaUtaVMaUraUsaUtaUiaVNaVKaVKaVOaVJaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUdaUdaUdaVPaVQaUyaVRaVQaUdaUdaUdaVeaUdaUdaUdaVSaVTaUQaVUaVVaUdaUdaUdaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaVWaVJaVKaVKaVKaVKaVMaVjaVjaVjaVjaVjaVjaVjaVMaVKaVKaVXaVKaVJaVWaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUdaUQaUdaUdaUdaVdaUdaUdaUdaVYaVZaWaaWbaWcaUdaUdaUdaVeaUdaUdaUdaWdaUdaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWeaWfaVKaWgaWhaVKaUiaWiaWjaVjaVjaVjaVjaWkaUiaVKaWlaVKaWmaVJaWeaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUeaWnaUQaWoaWpaUQaWqaWraUdaWsaWaaUQaWtaWuaUdaWvaWaaUQaWaaWwaWxaWdaUeaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaWyaWfaVKaVKaUiaVMaUiaUiaUiaWzaWAaWBaUiaUiaUiaVMaUiaWCaWDaWEaWyaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUeaWFaUQaWGaUQaUQaUQaUQaVeaWaaUQaUdaUQaWaaVeaUQaUQaUQaUQaWHaWdaWdaUeaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaUiaUiaWIaWJaWJaUiaVjaWKaVjaVWaWLaWMaWNaVWaWOaWPaVjaUiaWQaWRaWSaUiaUiaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUeaWTaUQaWaaWaaUQaWUaWVaUdaWWaWaaUQaWaaWXaUdaWYaWaaUQaWaaUdaWZaXaaUeaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaqraqraaPaaPaaPaUiaUiaXbaXbaUiaUiaVjaVjaVjaWeaWLaXcaWNaWeaVjaVjaXdaUiaUiaXbaXbaUiaUiaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUdaUQaUdaUdaUdaVeaUdaUdaUdaXeaXfaWaaXgaXhaUdaUdaUdaVeaUdaUdaUdaXiaUdaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaqraqraaPaaPaaPaaPaUiaXjaXjaUiaUiaXkaXlaVjaWyaXmaVjaXmaWyaVjaVjaXnaUiaUiaXjaXjaUiaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaUdaUdaUdaXoaXpaUQaXqaXraUdaUdaUdaVeaUdaUdaUdaXsaXtaUQaXuaXvaUdaUdaUdaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaVjaVjaVjaUiaUiaVMaUiaUiaXwaVjaXxaUiaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaUeaXyaUQaUQaUQaUQaUQaXzaUdaXAaXBaXCaUdaXDaUQaUQaUQaUQaUQaUQaUeaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUiaVjaVjaXdaUiaXEaVjaXFaUiaVjaVjaXGaUiaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaUdaUdaWdaXHaWdaXIaUQaXJaUdaXKaXLaXMaUdaXtaUQaXNaXOaXPaXQaUdaUdaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUiaUiaXRaVjaUiaXSaVjaXTaUiaXUaXVaUiaUiaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaUdaWdaXWaXXaXYaUQaUQaVeaXZaUQaYaaVeaUQaUQaYbaYcaYdaXQaUdaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUiaUiaUiaUiaUiaYeaYfaYgaUiaUiaUiaUiaUiaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaUdaUdaYhaWdaWdaUQaYiaUdaXKaUQaXMaUdaWaaUQaYjaYkaYlaUdaUdaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaUiaXbaXbaXbaXbaXbaUiaUiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaUdaUdaYmaYnaUQaYoaUdaUdaVeaUdaUdaWaaUQaXQaXQaUdaUdaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaUiaXjaXjaXjaXjaXjaUiaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaUdaUdaUdaYpaYqaUdaUQaUQaUQaUdaYraYsaUdaUdaUdaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaUdaUeaUdaUdaYtaYuaYvaUdaUdaUeaUdaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaUdaUdaUdaUeaUdaUdaUdaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraqraqraaPaaPaaPaaPaaPaaPaaPaqraqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbajbaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqraqraqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aaRaqraaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
+aqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaqlaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP
"}
-
diff --git a/maps/polaris-3.dmm b/maps/northern_star/polaris-3.dmm
similarity index 94%
rename from maps/polaris-3.dmm
rename to maps/northern_star/polaris-3.dmm
index 5c2ee3ba2e..dd7fb784cf 100644
--- a/maps/polaris-3.dmm
+++ b/maps/northern_star/polaris-3.dmm
@@ -1,675 +1,657 @@
-"aa" = (/turf/space,/area/space)
-"ab" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/derelict/ship)
-"ac" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/derelict/ship)
-"ad" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/derelict/ship)
-"ae" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 2},/area/derelict/ship)
-"af" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/derelict/ship)
-"ag" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"ah" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"ai" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/derelict/ship)
-"aj" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 2},/area/derelict/ship)
-"ak" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/derelict/ship)
-"al" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 4},/area/derelict/ship)
-"am" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"an" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"ao" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/derelict/ship)
-"ap" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/derelict/ship)
-"aq" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/derelict/ship)
-"ar" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/derelict/ship)
-"as" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/derelict/ship)
-"at" = (/obj/item/weapon/surgical/scalpel,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"au" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/derelict/ship)
-"av" = (/turf/simulated/shuttle/plating,/area/derelict/ship)
-"aw" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"ax" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
-"ay" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
-"az" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
-"aA" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aB" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/derelict/ship)
-"aC" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aD" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aE" = (/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aF" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aG" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/derelict/ship)
-"aH" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/derelict/ship)
-"aI" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/derelict/ship)
-"aJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
-"aK" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aL" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 4},/area/derelict/ship)
-"aM" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aN" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aO" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
-"aQ" = (/obj/machinery/light{dir = 1},/obj/machinery/sleeper{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aR" = (/obj/machinery/door/window,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aT" = (/obj/structure/lattice,/turf/space,/area/space)
-"aU" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/retro,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aV" = (/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/shuttle/plating,/area/derelict/ship)
-"aW" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aX" = (/obj/structure/table/standard,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"aY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
-"aZ" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"ba" = (/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bb" = (/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/padded,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bc" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bd" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
-"be" = (/obj/structure/table/standard,/obj/item/device/analyzer,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bf" = (/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bg" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bh" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bi" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
-"bj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
-"bk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"bl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/tcomsat)
-"bm" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"bn" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"bp" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
-"br" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 8},/area/derelict/ship)
-"bs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/derelict/ship)
-"bt" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/tcomsat)
-"bu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar North"; dir = 1},/turf/simulated/floor/airless,/area/tcomsat)
-"bv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"bw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
-"bx" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"by" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcomsat)
-"bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
-"bA" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/airless,/area/tcomsat)
-"bB" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bC" = (/obj/item/weapon/material/shard,/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bD" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bE" = (/obj/structure/cable,/obj/structure/frame/computer,/obj/item/stack/cable_coil/cut,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bF" = (/obj/structure/cable,/obj/structure/frame/computer,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bG" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bH" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bI" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bJ" = (/obj/machinery/power/apc{dir = 8; name = "west bump-derelict"; operating = 0; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bK" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bL" = (/obj/machinery/light/small,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bM" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/derelict/ship)
-"bN" = (/obj/item/trash/cheesie,/turf/space,/area/space)
-"bO" = (/obj/machinery/door/blast/regular{id = "oldship_gun"; name = "Pod Bay Door"},/turf/simulated/shuttle/plating,/area/derelict/ship)
-"bP" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/simulated/shuttle/plating,/area/derelict/ship)
-"bQ" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/plating,/area/derelict/ship)
-"bR" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bS" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bT" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/derelict/ship)
-"bU" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bV" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bW" = (/obj/structure/table/standard,/obj/item/device/radio/off,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
-"bX" = (/turf/simulated/shuttle/wall{tag = "icon-swall_t"; icon_state = "swall_t"},/area/derelict/ship)
-"bY" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
-"bZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless,/area/tcomsat)
-"ca" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
-"cb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"cc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"cd" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
-"ce" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/tcomsat)
-"cf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar West"; dir = 8},/turf/simulated/floor/airless,/area/tcomsat)
-"cg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcomsat)
-"ch" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar East"; dir = 4},/turf/simulated/floor/airless,/area/tcomsat)
-"ci" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/tcomsat)
-"cj" = (/turf/simulated/floor/airless,/area/tcomsat)
-"ck" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/tracker,/turf/simulated/floor/airless,/area/tcomsat)
-"cl" = (/turf/simulated/wall/r_wall,/area/tcomsat)
-"cm" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer)
-"cn" = (/obj/structure/lattice,/turf/space,/area/tcomsat)
-"co" = (/turf/space,/area/tcomsat)
-"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/tcomsat)
-"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcomsat)
-"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/tcomsat)
-"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/tcomsat)
-"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/tcomsat)
-"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat)
-"cv" = (/obj/item/weapon/bedsheet/green,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cw" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cx" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cy" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms Lounge"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cz" = (/obj/item/weapon/bedsheet/brown,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cA" = (/obj/item/weapon/bedsheet/red,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat)
-"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/tcomsat)
-"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/tcomsat)
-"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat)
-"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/tcomsat)
-"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat)
-"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
-"cJ" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Main Computer Room"},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cK" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cL" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cM" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cN" = (/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cO" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cQ" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat)
-"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat)
-"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat)
-"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat)
-"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat)
-"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat)
-"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
-"cY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"cZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"da" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"db" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dd" = (/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"de" = (/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
-"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
-"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat)
-"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
-"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
-"dk" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
-"dl" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/computer)
-"dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"do" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dp" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"dq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"ds" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"du" = (/obj/structure/bed/chair{dir = 8},/obj/structure/sign/deathsposal{pixel_x = 32},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dv" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat)
-"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/tcomsat)
-"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat)
-"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat)
-"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat)
-"dB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dF" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dG" = (/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
-"dH" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dI" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dJ" = (/obj/item/weapon/cigbutt,/obj/machinery/light,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dM" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"dN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer)
-"dO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/tcomsat)
-"dP" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar South"},/turf/simulated/floor/airless,/area/tcomsat)
-"dQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
-"dR" = (/obj/structure/frame/computer,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele)
-"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
-"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
-"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat)
-"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
-"dW" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"dY" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
-"dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/machinery/airlock_sensor/airlock_exterior{frequency = 1381; id_tag = "server_access_ex_sensor"; master_tag = "server_access_airlock"; pixel_x = 25; pixel_y = 22},/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"ea" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_outer"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/chamber)
-"eb" = (/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "server_access_sensor"; pixel_x = 12; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1381; id_tag = "server_access_pump"},/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller{frequency = 1381; id_tag = "server_access_airlock"; name = "Server Access Airlock"; pixel_x = 0; pixel_y = 25; tag_airpump = "server_access_pump"; tag_chamber_sensor = "server_access_sensor"; tag_exterior_door = "server_access_outer"; tag_exterior_sensor = "server_access_ex_sensor"; tag_interior_door = "server_access_inner"; tag_interior_sensor = "server_access_in_sensor"; tag_secure = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ec" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ed" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer)
-"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/tcomsat)
-"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat)
-"eg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"eh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/black,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ei" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ej" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ek" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"el" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_inner"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomsat)
-"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat)
-"eo" = (/obj/machinery/exonet_node{anchored = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
-"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat)
-"er" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"es" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"et" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ev" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment North"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ew" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ex" = (/obj/machinery/airlock_sensor/airlock_interior{frequency = 1381; id_tag = "server_access_in_sensor"; master_tag = "server_access_airlock"; name = "interior sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ey" = (/obj/machinery/airlock_sensor/airlock_interior{frequency = 1381; id_tag = "server_access_in_sensor"; name = "interior sensor"; pixel_y = 25},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ez" = (/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eB" = (/obj/machinery/pda_multicaster/prebuilt,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
-"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat)
-"eE" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
-"eJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"eK" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat)
-"eN" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eO" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eP" = (/obj/machinery/telecomms/server/presets/unused,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/tcomsat)
-"eR" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eS" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/tcomsat)
-"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat)
-"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
-"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat)
-"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/tcomsat)
-"eY" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/tcomsat)
-"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat)
-"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcomsat)
-"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
-"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/tcomsat)
-"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat)
-"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomsat)
-"fh" = (/obj/machinery/telecomms/hub/preset,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fi" = (/obj/machinery/teleport/station,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele)
-"fj" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/AIsattele)
-"fk" = (/obj/machinery/porta_turret{dir = 6},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat)
-"fm" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fn" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fo" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fp" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fq" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fr" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fs" = (/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ft" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fu" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/tcomsat)
-"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomsat)
-"fx" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomsat)
-"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcomsat)
-"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat)
-"fB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"fC" = (/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/tcomsat)
-"fD" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fE" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fF" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fG" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
-"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomsat)
-"fJ" = (/turf/simulated/floor,/area/tcomsat)
-"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat)
-"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/tcomsat)
-"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat)
-"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat)
-"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat)
-"fQ" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fR" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fT" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fU" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 5},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fV" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fX" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
-"fZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; use_power = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"ga" = (/obj/machinery/light,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment South"; dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"gb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
-"gc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
-"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat)
-"gf" = (/turf/simulated/wall/r_wall,/area/tcomfoyer)
-"gg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gk" = (/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gl" = (/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat)
-"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
-"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomsat)
-"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gt" = (/obj/machinery/turretid/stun{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Foyer"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms Foyer turret control"; pixel_y = 29; req_access = list(61)},/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat)
-"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/tcomsat)
-"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/tcomsat)
-"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
-"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gB" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
-"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
-"gD" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gE" = (/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"gG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
-"gJ" = (/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance)
-"gL" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
-"gM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance)
-"gN" = (/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
-"gO" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
-"gP" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Power Room West"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gQ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Power Room East"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gS" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_inner"; locked = 1; name = "External Access"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"gT" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"gV" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar Control"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"gW" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"gX" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms Entrance North"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"gY" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Airlock"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"gZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"ha" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hb" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar_control/autostart,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1381; id_tag = "telecoms_pump"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"he" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"hf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"hg" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hh" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_outer"; locked = 1; name = "External Access"; req_access = list(10,13)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hj" = (/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hk" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/power/sensor{long_range = 1; name_tag = "Telecommunications"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hl" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"hn" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1381; id_tag = "telecoms_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "telecoms_pump"; tag_exterior_door = "telecoms_outer"; frequency = 1381; id_tag = "telecoms_airlock"; tag_interior_door = "telecoms_inner"; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_chamber_sensor = "telecoms_sensor"},/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "telecoms_sensor"; pixel_x = 12; pixel_y = -25},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"ho" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
-"hp" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
-"hq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
-"hr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"ht" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hu" = (/obj/machinery/bluespace_beacon,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
-"hv" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hy" = (/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; inputting = 1; output_level = 250000; RCon_tag = "Telecommunications Satellite"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hB" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
-"hC" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hE" = (/obj/item/weapon/cell,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hH" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hI" = (/obj/machinery/door/airlock/hatch{name = "Power Control"; req_access = list(61)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"hJ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"hM" = (/turf/space,/area/syndicate_station/commssat)
-"hN" = (/turf/simulated/wall/r_wall,/area/AIsattele)
-"hQ" = (/turf/simulated/floor/airless,/area/AIsattele)
-"hR" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/AIsattele)
-"hS" = (/obj/structure/cable,/turf/simulated/floor/airless,/area/AIsattele)
-"hT" = (/obj/structure/table/rack,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/airless,/area/AIsattele)
-"hU" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/AIsattele)
-"hV" = (/obj/item/weapon/cell,/turf/simulated/floor/airless,/area/AIsattele)
-"hW" = (/obj/structure/grille/broken,/turf/simulated/floor/airless,/area/AIsattele)
-"hX" = (/turf/space,/area/AIsattele)
-"hY" = (/obj/structure/table,/turf/simulated/floor/airless,/area/AIsattele)
-"hZ" = (/obj/structure/lattice,/turf/space,/area/AIsattele)
-"ia" = (/obj/structure/closet,/turf/simulated/floor/airless,/area/AIsattele)
-"ib" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless,/area/AIsattele)
-"ic" = (/obj/structure/grille/broken,/turf/space,/area/AIsattele)
-"id" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/airless,/area/AIsattele)
-"ie" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
-"if" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"ig" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Entrance South"; dir = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"ih" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"ij" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
-"im" = (/obj/item/weapon/circuitboard/teleporter,/turf/space,/area/space)
+"aa" = (/turf/space,/area/space)
+"ab" = (/turf/simulated/shuttle/wall,/area/derelict/ship)
+"ac" = (/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ad" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ae" = (/obj/machinery/light{dir = 1},/obj/machinery/sleeper{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"af" = (/obj/machinery/computer/med_data,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ag" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ah" = (/obj/item/weapon/surgical/scalpel,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ai" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aj" = (/obj/machinery/door/airlock/glass{name = "Hibernation Pods"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ak" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/derelict/ship)
+"al" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"am" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"an" = (/obj/item/device/multitool,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ao" = (/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ap" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aq" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/derelict/ship)
+"ar" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/derelict/ship)
+"as" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"at" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"au" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"av" = (/turf/simulated/shuttle/plating,/area/derelict/ship)
+"aw" = (/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/bed/padded,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ax" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
+"ay" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
+"az" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
+"aA" = (/obj/machinery/door/window,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aB" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aC" = (/obj/structure/table/standard,/obj/item/weapon/gun/energy/retro,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aD" = (/obj/structure/table/standard,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aF" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aG" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/derelict/ship)
+"aH" = (/obj/structure/table/standard,/obj/item/device/analyzer,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aI" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/derelict/ship)
+"aJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
+"aK" = (/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aL" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aM" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
+"aN" = (/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/bed/padded,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aO" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
+"aQ" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aR" = (/obj/structure/table,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aS" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aT" = (/obj/structure/lattice,/turf/space,/area/space)
+"aU" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aV" = (/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/shuttle/plating,/area/derelict/ship)
+"aW" = (/obj/structure/bed/chair,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aX" = (/obj/item/weapon/material/shard,/obj/structure/bed/chair,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"aY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/derelict/ship)
+"aZ" = (/obj/structure/cable,/obj/structure/frame/computer,/obj/item/stack/cable_coil/cut,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"ba" = (/obj/structure/cable,/obj/structure/frame/computer,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bb" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/obj/item/weapon/tank/emergency/oxygen,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bc" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bd" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
+"be" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bf" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bg" = (/obj/machinery/door/airlock/glass{name = "Living Module"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
+"bh" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
+"bi" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
+"bj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
+"bk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"bl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/tcomsat)
+"bm" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"bn" = (/obj/machinery/power/apc{dir = 8; name = "west bump-derelict"; operating = 0; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"bp" = (/obj/machinery/light/small,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
+"br" = (/obj/machinery/door/airlock/glass{name = "Pod Bay"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bs" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bt" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/tcomsat)
+"bu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar North"; dir = 1},/turf/simulated/floor/airless,/area/tcomsat)
+"bv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"bw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/derelict/ship)
+"bx" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"by" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcomsat)
+"bz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
+"bA" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/airless,/area/tcomsat)
+"bB" = (/obj/structure/table/standard,/obj/item/device/radio/off,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bC" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/machinery/light,/turf/simulated/shuttle/floor/white,/area/derelict/ship)
+"bN" = (/obj/item/trash/cheesie,/turf/space,/area/space)
+"bO" = (/obj/machinery/door/blast/regular{id = "oldship_gun"; name = "Pod Bay Door"},/turf/simulated/shuttle/plating,/area/derelict/ship)
+"bP" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "oldship_gun"},/turf/simulated/shuttle/plating,/area/derelict/ship)
+"bY" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
+"bZ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless,/area/tcomsat)
+"ca" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
+"cb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"cc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"cd" = (/obj/machinery/power/solar,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/tcomsat)
+"ce" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/airless,/area/tcomsat)
+"cf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar West"; dir = 8},/turf/simulated/floor/airless,/area/tcomsat)
+"cg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcomsat)
+"ch" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar East"; dir = 4},/turf/simulated/floor/airless,/area/tcomsat)
+"ci" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/tcomsat)
+"cj" = (/turf/simulated/floor/airless,/area/tcomsat)
+"ck" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/tracker,/turf/simulated/floor/airless,/area/tcomsat)
+"cl" = (/turf/simulated/wall/r_wall,/area/tcomsat)
+"cm" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer)
+"cn" = (/obj/structure/lattice,/turf/space,/area/tcomsat)
+"co" = (/turf/space,/area/tcomsat)
+"cp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing North"},/turf/space,/area/tcomsat)
+"cq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcomsat)
+"cr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/turf/simulated/floor/plating,/area/tcomsat)
+"cs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/valve/digital/open{dir = 4; name = "Mixed Air Outlet Valve"},/turf/simulated/floor/plating,/area/tcomsat)
+"ct" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/meter,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/plating,/area/tcomsat)
+"cu" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat)
+"cv" = (/obj/item/weapon/bedsheet/green,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cw" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cx" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/purple,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cy" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms Lounge"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cz" = (/obj/item/weapon/bedsheet/brown,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cA" = (/obj/item/weapon/bedsheet/red,/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat)
+"cD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plating,/area/tcomsat)
+"cE" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/tcomsat)
+"cF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcomsat)
+"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/tcomsat)
+"cH" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/tcomsat)
+"cI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
+"cJ" = (/obj/structure/table/standard,/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Main Computer Room"},/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cK" = (/obj/structure/filingcabinet,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cL" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cM" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cN" = (/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cO" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cP" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cQ" = (/obj/machinery/computer/telecomms/monitor{network = "tcommsat"},/obj/item/device/radio/intercom{name = "General Listening Channel"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"cR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/tcomsat)
+"cS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating,/area/tcomsat)
+"cT" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat)
+"cU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/tcomsat)
+"cV" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcomsat)
+"cW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating,/area/tcomsat)
+"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
+"cY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"cZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"da" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"db" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dd" = (/obj/item/weapon/bedsheet/orange,/obj/machinery/light{dir = 8},/obj/structure/bed/padded,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"de" = (/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
+"dg" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
+"dh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/tcomsat)
+"di" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
+"dj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
+"dk" = (/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
+"dl" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/computer)
+"dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"do" = (/obj/structure/bed/chair/office/dark{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dp" = (/obj/machinery/computer/telecomms/server{network = "tcommsat"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"dq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"ds" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"du" = (/obj/structure/bed/chair{dir = 8},/obj/structure/sign/deathsposal{pixel_x = 32},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dv" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat)
+"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/tcomsat)
+"dy" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat)
+"dz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomsat)
+"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomsat)
+"dB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/hatch{name = "Telecoms Control Room"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dE" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dF" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dG" = (/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
+"dH" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dI" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dJ" = (/obj/item/weapon/cigbutt,/obj/machinery/light,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dM" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"dN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/computer)
+"dO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/tcomsat)
+"dP" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar South"},/turf/simulated/floor/airless,/area/tcomsat)
+"dQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcomsat)
+"dR" = (/obj/structure/frame/computer,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele)
+"dS" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
+"dT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
+"dU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/light,/turf/space,/area/tcomsat)
+"dV" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/tcomsat)
+"dW" = (/obj/machinery/light{dir = 8},/obj/structure/table/standard,/obj/item/device/multitool,/obj/structure/sign/electricshock{pixel_x = -32},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"dY" = (/obj/machinery/atmospherics/unary/freezer{dir = 2; icon_state = "freezer_1"; set_temperature = 73; use_power = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/computer)
+"dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/machinery/airlock_sensor/airlock_exterior{frequency = 1381; id_tag = "server_access_ex_sensor"; master_tag = "server_access_airlock"; pixel_x = 25; pixel_y = 22},/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"ea" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_outer"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/tcommsat/chamber)
+"eb" = (/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "server_access_sensor"; pixel_x = 12; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1381; id_tag = "server_access_pump"},/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller{frequency = 1381; id_tag = "server_access_airlock"; name = "Server Access Airlock"; pixel_x = 0; pixel_y = 25; tag_airpump = "server_access_pump"; tag_chamber_sensor = "server_access_sensor"; tag_exterior_door = "server_access_outer"; tag_exterior_sensor = "server_access_ex_sensor"; tag_interior_door = "server_access_inner"; tag_interior_sensor = "server_access_in_sensor"; tag_secure = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ec" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ed" = (/obj/machinery/door/airlock/hatch{name = "Telecoms Lounge"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/computer)
+"ee" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor/airless,/area/tcomsat)
+"ef" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/tcomsat)
+"eg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"eh" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/black,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ei" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ej" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ek" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"el" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1381; icon_state = "door_locked"; id_tag = "server_access_inner"; locked = 1; name = "Telecoms Server Access"; req_access = list(61)},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"em" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomsat)
+"en" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/tcomsat)
+"eo" = (/obj/machinery/exonet_node{anchored = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ep" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
+"eq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/space,/area/tcomsat)
+"er" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"es" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"et" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ev" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment North"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ew" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ex" = (/obj/machinery/airlock_sensor/airlock_interior{frequency = 1381; id_tag = "server_access_in_sensor"; master_tag = "server_access_airlock"; name = "interior sensor"; pixel_x = 8; pixel_y = 25},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ey" = (/obj/machinery/airlock_sensor/airlock_interior{frequency = 1381; id_tag = "server_access_in_sensor"; name = "interior sensor"; pixel_y = 25},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ez" = (/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eB" = (/obj/machinery/pda_multicaster/prebuilt,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
+"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/space,/area/tcomsat)
+"eE" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"eG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"eH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"eI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
+"eJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"eK" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"eL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"eM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/tcomsat)
+"eN" = (/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eO" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eP" = (/obj/machinery/telecomms/server/presets/unused,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eQ" = (/obj/structure/table/rack,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/processor,/obj/item/weapon/circuitboard/telecomms/receiver,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/server,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/bus,/obj/item/weapon/circuitboard/telecomms/broadcaster,/obj/item/weapon/circuitboard/telecomms/exonet_node,/turf/simulated/floor,/area/tcomsat)
+"eR" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eS" = (/obj/machinery/telecomms/server/presets/engineering,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"eT" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/space,/area/tcomsat)
+"eU" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat)
+"eV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcomsat)
+"eW" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/turf/simulated/floor,/area/tcomsat)
+"eX" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Storage"},/turf/simulated/floor,/area/tcomsat)
+"eY" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"eZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing Central"; dir = 8},/turf/space,/area/tcomsat)
+"fa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"fb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/space,/area/tcomsat)
+"fc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/tcomsat)
+"fd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
+"fe" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor,/area/tcomsat)
+"ff" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomsat)
+"fg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomsat)
+"fh" = (/obj/machinery/telecomms/hub/preset,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fi" = (/obj/machinery/teleport/station,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/AIsattele)
+"fj" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/AIsattele)
+"fk" = (/obj/machinery/porta_turret{dir = 6},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"fl" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 4},/turf/space,/area/tcomsat)
+"fm" = (/obj/structure/sign/nosmoking_2{pixel_x = -32; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fn" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fo" = (/obj/machinery/telecomms/processor/preset_two,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fp" = (/obj/machinery/telecomms/relay/preset/telecomms,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fq" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fr" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fs" = (/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ft" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fu" = (/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/obj/machinery/light{dir = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/space,/area/tcomsat)
+"fw" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomsat)
+"fx" = (/obj/machinery/telecomms/receiver/preset_right,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcomsat)
+"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/tcomsat)
+"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/tcomsat)
+"fB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"fC" = (/obj/machinery/turretid/lethal{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Satellite"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms lethal turret control"; pixel_y = 29; req_access = list(61)},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Foyer"},/turf/simulated/floor/tiled/dark,/area/tcomsat)
+"fD" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fE" = (/obj/machinery/telecomms/bus/preset_one,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fF" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fG" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/tcomsat)
+"fI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Telecoms Storage"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomsat)
+"fJ" = (/turf/simulated/floor,/area/tcomsat)
+"fK" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/tcomsat)
+"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"fM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor,/area/tcomsat)
+"fN" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomsat)
+"fO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor,/area/tcomsat)
+"fP" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/turf/simulated/floor,/area/tcomsat)
+"fQ" = (/obj/machinery/telecomms/server/presets/medical,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fR" = (/obj/machinery/telecomms/server/presets/science,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 9},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fT" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 6},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fU" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 5},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fV" = (/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/black{dir = 10},/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fX" = (/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"fY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcomsat)
+"fZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 140; external_pressure_bound_default = 140; icon_state = "map_vent_out"; use_power = 1; pressure_checks = 0; pressure_checks_default = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"ga" = (/obj/machinery/light,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Central Compartment South"; dir = 1},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"gb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; use_power = 1; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/chamber)
+"gc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gd" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
+"ge" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat)
+"gf" = (/turf/simulated/wall/r_wall,/area/tcomfoyer)
+"gg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gj" = (/obj/machinery/porta_turret{dir = 10},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gk" = (/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gl" = (/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = 32; pixel_y = 0},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gn" = (/obj/structure/window/reinforced,/obj/machinery/light{dir = 1},/turf/space,/area/tcomsat)
+"go" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/tcomsat)
+"gp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/tcomsat)
+"gq" = (/obj/machinery/door/airlock/hatch{name = "Telecoms West Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gt" = (/obj/machinery/turretid/stun{ailock = 1; check_synth = 1; control_area = "\improper Telecoms Foyer"; desc = "A firewall prevents AIs from interacting with this device."; name = "Telecoms Foyer turret control"; pixel_y = 29; req_access = list(61)},/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gu" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tcomsat)
+"gv" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms East Wing South"; dir = 8},/turf/space,/area/tcomsat)
+"gw" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms West Wing South"; dir = 4},/turf/space,/area/tcomsat)
+"gx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/tcomsat)
+"gy" = (/obj/machinery/door/airlock/hatch{name = "Telecoms East Wing"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gz" = (/obj/machinery/light/small,/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gB" = (/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
+"gC" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcomfoyer)
+"gD" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gE" = (/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"gG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"gI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcomfoyer)
+"gJ" = (/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance)
+"gL" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/entrance)
+"gM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/entrance)
+"gN" = (/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
+"gO" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
+"gP" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Power Room West"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gQ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms Power Room East"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gS" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_inner"; locked = 1; name = "External Access"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"gT" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access = list(61)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"gV" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Solar Control"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"gW" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"gX" = (/obj/machinery/camera/network/telecom{c_tag = "Telecoms Entrance North"},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"gY" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/camera/network/telecom{c_tag = "Telecoms - Airlock"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"gZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"ha" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hb" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar_control/autostart,/obj/machinery/light{dir = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1381; id_tag = "telecoms_pump"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hd" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"he" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"hf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"hg" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hh" = (/obj/machinery/door/airlock/external{frequency = 1381; icon_state = "door_locked"; id_tag = "telecoms_outer"; locked = 1; name = "External Access"; req_access = list(10,13)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hj" = (/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hk" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/power/sensor{long_range = 1; name_tag = "Telecommunications"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hl" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"hn" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1381; id_tag = "telecoms_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "telecoms_pump"; tag_exterior_door = "telecoms_outer"; frequency = 1381; id_tag = "telecoms_airlock"; tag_interior_door = "telecoms_inner"; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_chamber_sensor = "telecoms_sensor"},/obj/machinery/airlock_sensor{frequency = 1381; id_tag = "telecoms_sensor"; pixel_x = 12; pixel_y = -25},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"ho" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
+"hp" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1381; master_tag = "telecoms_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access = list(13)},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
+"hq" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless,/area/tcommsat/powercontrol)
+"hr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"ht" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hu" = (/obj/machinery/bluespace_beacon,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/tcommsat/entrance)
+"hv" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hy" = (/obj/machinery/power/smes/buildable{charge = 2.5e+006; input_attempt = 1; input_level = 250000; inputting = 1; output_level = 250000; RCon_tag = "Telecommunications Satellite"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hB" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/powercontrol)
+"hC" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hE" = (/obj/item/weapon/cell,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hH" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hI" = (/obj/machinery/door/airlock/hatch{name = "Power Control"; req_access = list(61)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"hJ" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"hM" = (/turf/space,/area/syndicate_station/commssat)
+"hN" = (/turf/simulated/wall/r_wall,/area/AIsattele)
+"hQ" = (/turf/simulated/floor/airless,/area/AIsattele)
+"hR" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/AIsattele)
+"hS" = (/obj/structure/cable,/turf/simulated/floor/airless,/area/AIsattele)
+"hT" = (/obj/structure/table/rack,/obj/item/clothing/gloves/yellow,/turf/simulated/floor/airless,/area/AIsattele)
+"hU" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/AIsattele)
+"hV" = (/obj/item/weapon/cell,/turf/simulated/floor/airless,/area/AIsattele)
+"hW" = (/obj/structure/grille/broken,/turf/simulated/floor/airless,/area/AIsattele)
+"hX" = (/turf/space,/area/AIsattele)
+"hY" = (/obj/structure/table,/turf/simulated/floor/airless,/area/AIsattele)
+"hZ" = (/obj/structure/lattice,/turf/space,/area/AIsattele)
+"ia" = (/obj/structure/closet,/turf/simulated/floor/airless,/area/AIsattele)
+"ib" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/airless,/area/AIsattele)
+"ic" = (/obj/structure/grille/broken,/turf/space,/area/AIsattele)
+"id" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/airless,/area/AIsattele)
+"ie" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plating,/area/tcommsat/powercontrol)
+"if" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"ig" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/machinery/camera/network/telecom{c_tag = "Telecoms Entrance South"; dir = 1},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"ih" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"ij" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance)
+"im" = (/obj/item/weapon/circuitboard/teleporter,/turf/space,/area/space)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacaeadacabababaaaaaaaaababakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababafacacacacacacagacababaaaaababaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacahacacacabababababavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacaiabababaxayazababajababababavavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacalacamabanacaoacacacacacacaGavababaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacamabacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJacacacacapabacacabasabababacatabauacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPacacacacacabacacabacawaAabacacabaBacacacababaaabababababababababababaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaCamacacacaVacacabaEaDatabacacaYacacacacacabababacacacacaFacacacacabaTaaaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaHaKacacacaMacacabacacacabacacbgacacacacacaLacaLacacacacacacacacacaLaTaaaTabacacacacacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPamamacacacaVacacabaOaNacabacacaYacacacacacabababacacacacacacacaQacabaTaTaTaLacacacacacacacacacbhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPacacacacacabacacabababasabacacabacacacacababaaabababababababababababaaaaaTabacacacacacaRacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwacacacacaSababacacacacacacacacabacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaUaXaWacabababababababacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacbaaZabababbbbebcababbnbfaobpaGavababakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacabacacacababavavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObPasacacacacacacbrbsacababababavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababbxacacacacacababababaaaaababaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacbCbBababababaaaaaaaaababaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaaaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbdbjbiaTaTaTbdbjbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbdbjbiaTaTaTbdbjbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaablbkbkbmbkbkboaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaaaaaaaaaaaTaaaaaaaaaaaTaaaabqaaaaaTaaaaaaaaaaaTaaaaaaaaaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaabtbkbkbkbkbkbkbkbkbkbkbkbkbkbubkbkbkbkbkbkbkbkbkbkbkbkbkbvaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaabtboclclclclclclclclclclclclclclclclclclclclclclclclclclclblbvaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabtboclclclclclclclclclclclclclclclclclclclclcmcmcmcmcmcmcmcmclblbvaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclclcncocpcqcrcsctcuclcmcmcmcmcmcmcmcmcvcNcxcwczcycAcNcmclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcncncncCcDcEcFcGcHcIcmcBcKcJcMcLcOcmcPcNcNcNcNcNcNcNcmclclbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbqclclcocncocRcScTcUcVcWcXcmcYcZdadbdccQcmddcNcNcNcNcNcNdecmclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcocncocodfdgdhdidjdkdldmdncNcNdodpcmdrdqdqdqdtdsdvducmclclbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqclclcocncocRdxdwdzdAdAdAdBdCdDdEdDdFdGdGdGcmdIdHdKdJdMdLdNbybybzbZbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYbYaaaabqclclcocncocRdSdTdUdVdVdVcmdWdYdXcNdZeaebeccmcmcmedcmcmcmcmclclbqaaaaaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaTaaaaaabqclclcneecnefdScIdGdGdGdGdGegeheiejekdGdGeldGdGefemencneecnclclbqaaaaaaaaaTaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacacacacacacacacacacaaaaabqclclcocncocRepeqdGererereseteueverewexeyezeAdGefemcXcocncoclclblbvaaaacacacacacacacacacacaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcbcbcbcbcbcbcbcbcbcbbvaTbqclclcocncocReCeDdGerezezezeEezezezeEezezezerdGefemcXeGeFeHclclclbqaTbtccccccccccccccccccccaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacdcdcdcdcdcdcdcdcdcdbqaabqclclcocncocReIeMdGereOeNePeEezerezeEezeReSerdGeTeUcXeLeWeXeQclclbqaabqcdcdcdcdcdcdcdcdcdcdaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaaaaaaaaaaaaaTaabqaabqclclcocncocReVeZdGerezezezeEezeoezeEezezezerdGfbfcfdfafffgfeclclbqaabqaaaTaaaaaaaaaaaaaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaTaTaTaTaTaTaTaTcecgcfclclcncncnefdSfldGfmfofnfpewfqfhfxewfsfrftfudGfvfwdyfIfyfzfAclclchcgciaTaTaTaTaTaTaTaTaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaaaaaaaaaaaaaTaabqaabqclclcocncocRdScXdGerfEfDezeEezerezeEezfFfGerdGcRemfHfLfJfKfMclclbqaabqaaaTaaaaaaaaaaaaaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacacacacacacacacacacabqaabqclclcocncocReVcXdGerezezezeEezerezeEezezezerdGcRemcXeLfNfOfPclclbqaabqcacacacacacacacacacaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcbcbcbcbcbcbcbcbcbcbboaTbqclclcocncocRdScXdGerfRfQfTfSezeBezfUfWfVfXerdGcRemcXfYeFeHclclclbqaTblccccccccccccccccccccaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacdcdcdcdcdcdcdcdcdcdaaaabqclclcocncocRdScXdGerererfZerergaerergberererdGcRemcXcocncoclclbtboaaaacdcdcdcdcdcdcdcdcdcdaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaTaaaaaabqclclcneecnefeVcIdGdGdGdGdGdGdGcldGdGdGdGdGdGdGefemcIcneecnclclbqaaaaaaaaaTaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYbYaaaabqclclcocncocReVgdgedkdkgffBfkglfCglgjgmgfdkdkgngoemcXcocncoclclbqaaaaaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqclclcocncocRgpdwdwdwdwgqgcgsgsgggrgrghgydydydydygucXcocngvclclbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclgwcncocodVdVgxdVdVgfgCgzgkgAgkgzgigfdVdVdVdVdVcococncoclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbqclclcocncococococncogfgfgfgfgfgIgfgfgfgfgfcococococococncoclclbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcncncncncncncncngKgJgJgBgDgAgtgBgJgJgMcncncncncncncncnclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclclcncocococococlgBgJgQgPgEgGgEgRgTgJgBclcocococococnclclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaablbvclclclclclclclclclgBgBgBgBgLgUgLgBgBgBgBclclclclclclclclclbtboaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaablbvclgNgOgNgNgNgNgNgNgNgBgBgJgGgXgBgBgBclclclclclclclclclbtboaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaablbvgNhcgYgShdhggVgWgNgBgBhlgGgJgBgBgBbtbkbkbkbkbkbkbkbkboaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaabqgNhthngNgZhahahbgNgBhvhAhehDhCgBgBbqaaaaaaaaaaaaaaaTaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaabqgNhhgNgNhihjhjhkgNgJhEgEhmgEgJhHgBbqaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaablhohphqgNhrhjhjhshIhDhfhfhugEgEhJgBbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcjcjbqcjgNhxhyeJiehBifgJgEgEgEgJhHgBbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacjcjbqcjgNgNgNgNgNgNgBiggJgJgJihgBgBbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackbkdObkbkbkbkbkbkbvgBgBijeKeYgBgBbtboaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaTaaaablbvgBgBgBgBgBbtboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYaaaablbkbkdPbkbkboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaabqaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbkbkdObkbkbvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbddQbiaTaTaTbddQbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbddQbiaTaTaTbddQbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaaaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhNhNhNhNaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaThNhNdRfifjhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaThNhNhRhQhShQhThNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahUhVhQhWhXhQhQhYhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQhQhQhZhZhZhQhQhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhQhZhZhXhZhXiahNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaThNhNibichXhZidhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaThNhNhQhZhQhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhNhQhNhNaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaTaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaahMhMhMhMhMaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaahMhMhMhMhMaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaaaaaaaaaaaaaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaimaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
-(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacadaeaaaaaaaaaaaaaaabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafagagaQahaiajadaeaaaaaaaaabajakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabalamagagagagagaganaiaoaeaaaaabapaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaoajasagagagagatagagagauaoaeabapavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaoafawaiacadaxayazacacaAajajajalavavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBafagaCagaDaBaEagaFagagagagagagaGavaHacaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBagagagagaDaBagagagagagagagagagauacaoaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJagagagagaKaBagagaLaMacacasagaNaBaOaiajadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPagagagagagaBagagaBagbaaRaBagagaBaSagagaiaoaeaaabadacacacacacacacadaeaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaUaDagagagaVagagaBaWaXaNaBagagaYagagagagaiaoacaoafagagagaZagagagaialaTaaaaabadacacacacacacacadaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPbebfagagagaMagagaBagagagaBagagbgagagagagagbhagbhagagagagagagagagagbhaTaaaTauafagagagagagagagaialaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaDaDagagagaVagagaBbnbbagaBagagaYagagagagaLaoacaoasagagagagagagbpaLalaTaTaTbhagagagagagagagagagbhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPagagagagagaBagagaiacacaMafagagaBagagagaLaobraabsajacacacacacacacajbraaaaaTauasagagagagbcagagaLalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwagagagagbxauasagagagagagagagagaBagaLadajbraaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaabsajacacacacacacacajbraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBbBbCbDagaLaoajacacadasagagagagauacaobraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBagbFbEaLaoafbGbHbIaialbJbKaFbLaGavbMadakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsacadacaoafagagagagagaBagagaLadalavavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObPbQagagagagagagbRbSaLaobrbsbTavaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsacalbUagagagagagauadaobraaaabsbTaqaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsadasagbVbWaLaobXbraaaaaaaabsadaIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbXacacacbXbraaaaaaaaaaaaaabsbraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaaaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbdbjbiaTaTaTbdbjbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbdbjbiaTaTaTbdbjbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabdbjbiaaaTaabdbjbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaablbkbkbmbkbkboaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaaaaaaaaaaaTaaaaaaaaaaaTaaaabqaaaaaTaaaaaaaaaaaTaaaaaaaaaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaabtbkbkbkbkbkbkbkbkbkbkbkbkbkbubkbkbkbkbkbkbkbkbkbkbkbkbkbvaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaabtboclclclclclclclclclclclclclclclclclclclclclclclclclclclblbvaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabtboclclclclclclclclclclclclclclclclclclclclcmcmcmcmcmcmcmcmclblbvaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclclcncocpcqcrcsctcuclcmcmcmcmcmcmcmcmcvcNcxcwczcycAcNcmclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcncncncCcDcEcFcGcHcIcmcBcKcJcMcLcOcmcPcNcNcNcNcNcNcNcmclclbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbqclclcocncocRcScTcUcVcWcXcmcYcZdadbdccQcmddcNcNcNcNcNcNdecmclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcocncocodfdgdhdidjdkdldmdncNcNdodpcmdrdqdqdqdtdsdvducmclclbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqclclcocncocRdxdwdzdAdAdAdBdCdDdEdDdFdGdGdGcmdIdHdKdJdMdLdNbybybzbZbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYbYaaaabqclclcocncocRdSdTdUdVdVdVcmdWdYdXcNdZeaebeccmcmcmedcmcmcmcmclclbqaaaaaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaTaaaaaabqclclcneecnefdScIdGdGdGdGdGegeheiejekdGdGeldGdGefemencneecnclclbqaaaaaaaaaTaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacacacacacacacacacacaaaaabqclclcocncocRepeqdGererereseteueverewexeyezeAdGefemcXcocncoclclblbvaaaacacacacacacacacacacaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcbcbcbcbcbcbcbcbcbcbbvaTbqclclcocncocReCeDdGerezezezeEezezezeEezezezerdGefemcXeGeFeHclclclbqaTbtccccccccccccccccccccaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacdcdcdcdcdcdcdcdcdcdbqaabqclclcocncocReIeMdGereOeNePeEezerezeEezeReSerdGeTeUcXeLeWeXeQclclbqaabqcdcdcdcdcdcdcdcdcdcdaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaaaaaaaaaaaaaTaabqaabqclclcocncocReVeZdGerezezezeEezeoezeEezezezerdGfbfcfdfafffgfeclclbqaabqaaaTaaaaaaaaaaaaaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaTaTaTaTaTaTaTaTcecgcfclclcncncnefdSfldGfmfofnfpewfqfhfxewfsfrftfudGfvfwdyfIfyfzfAclclchcgciaTaTaTaTaTaTaTaTaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaaaTaaaaaaaaaaaaaTaabqaabqclclcocncocRdScXdGerfEfDezeEezerezeEezfFfGerdGcRemfHfLfJfKfMclclbqaabqaaaTaaaaaaaaaaaaaTaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacacacacacacacacacacabqaabqclclcocncocReVcXdGerezezezeEezerezeEezezezerdGcRemcXeLfNfOfPclclbqaabqcacacacacacacacacacaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcbcbcbcbcbcbcbcbcbcbboaTbqclclcocncocRdScXdGerfRfQfTfSezeBezfUfWfVfXerdGcRemcXfYeFeHclclclbqaTblccccccccccccccccccccaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacdcdcdcdcdcdcdcdcdcdaaaabqclclcocncocRdScXdGerererfZerergaerergberererdGcRemcXcocncoclclbtboaaaacdcdcdcdcdcdcdcdcdcdaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaTaaaaaabqclclcneecnefeVcIdGdGdGdGdGdGdGcldGdGdGdGdGdGdGefemcIcneecnclclbqaaaaaaaaaTaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYbYaaaabqclclcocncocReVgdgedkdkgffBfkglfCglgjgmgfdkdkgngoemcXcocncoclclbqaaaaaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqclclcocncocRgpdwdwdwdwgqgcgsgsgggrgrghgydydydydygucXcocngvclclbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclgwcncocodVdVgxdVdVgfgCgzgkgAgkgzgigfdVdVdVdVdVcococncoclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbqclclcocncococococncogfgfgfgfgfgIgfgfgfgfgfcococococococncoclclbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclcncncncncncncncngKgJgJgBgDgAgtgBgJgJgMcncncncncncncncnclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabqclclclcncocococococlgBgJgQgPgEgGgEgRgTgJgBclcocococococnclclclbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaablbvclclclclclclclclclgBgBgBgBgLgUgLgBgBgBgBclclclclclclclclclbtboaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaaaablbvclgNgOgNgNgNgNgNgNgNgBgBgJgGgXgBgBgBclclclclclclclclclbtboaaaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaablbvgNhcgYgShdhggVgWgNgBgBhlgGgJgBgBgBbtbkbkbkbkbkbkbkbkboaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaaaabqgNhthngNgZhahahbgNgBhvhAhehDhCgBgBbqaaaaaaaaaaaaaaaTaaaabYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYaabqgNhhgNgNhihjhjhkgNgJhEgEhmgEgJhHgBbqaabYbYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaablhohphqgNhrhjhjhshIhDhfhfhugEgEhJgBbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTcjcjbqcjgNhxhyeJiehBifgJgEgEgEgJhHgBbqaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaacjcjbqcjgNgNgNgNgNgNgBiggJgJgJihgBgBbqaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackbkdObkbkbkbkbkbkbvgBgBijeKeYgBgBbtboaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaTaaaablbvgBgBgBgBgBbtboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYaaaablbkbkdPbkbkboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaabqaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtbkbkdObkbkbvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbddQbiaTaTaTbddQbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaTaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaTbddQbiaTaTaTbddQbiaTbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYaabddQbiaaaaaabddQbiaabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYbYbYbYbYbYbYbYbYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhNhNhNhNaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaThNhNdRfifjhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaThNhNhRhQhShQhThNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahUhVhQhWhXhQhQhYhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahQhQhQhZhZhZhQhQhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhQhZhZhXhZhXiahNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaThNhNibichXhZidhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaThNhNhQhZhQhNhNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahNhNhQhNhNaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaTaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaahMhMhMhMhMaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaahMhMhMhMhMaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahMhMhMhMhMaaaaaaaaaaaaaahMhMhMhMhMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaimaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-"}
-
diff --git a/maps/polaris-4.dmm b/maps/northern_star/polaris-4.dmm
similarity index 98%
rename from maps/polaris-4.dmm
rename to maps/northern_star/polaris-4.dmm
index f4ea399925..a55043f632 100644
--- a/maps/polaris-4.dmm
+++ b/maps/northern_star/polaris-4.dmm
@@ -1,570 +1,563 @@
-"aa" = (/turf/space,/area/space)
-"ab" = (/turf/simulated/mineral,/area/mine/unexplored)
-"ac" = (/turf/simulated/wall,/area/mine/explored)
-"ad" = (/obj/structure/grille,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"ae" = (/obj/structure/lattice,/turf/space,/area/space)
-"af" = (/turf/simulated/floor/airless,/area/mine/explored)
-"ag" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/airless,/area/mine/explored)
-"ah" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"ai" = (/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/airless,/area/mine/explored)
-"aj" = (/obj/structure/girder,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"ak" = (/obj/structure/frame/computer,/turf/simulated/floor/airless,/area/mine/explored)
-"al" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/mine/explored)
-"am" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/mine/explored)
-"an" = (/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
-"ao" = (/obj/structure/door_assembly/door_assembly_med,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"ap" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
-"aq" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
-"ar" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
-"as" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
-"at" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/wreck/main)
-"au" = (/turf/simulated/wall/skipjack,/area/wreck/main)
-"av" = (/turf/simulated/floor/airless,/area/wreck/main)
-"aw" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
-"ax" = (/obj/item/stack/material/steel,/turf/simulated/floor/airless,/area/wreck/main)
-"ay" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
-"az" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
-"aA" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/surgical/scalpel/laser3,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"aB" = (/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"aC" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/airless,/area/wreck/main)
-"aD" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"aE" = (/obj/effect/decal/mecha_wreckage/phazon,/turf/simulated/floor/airless,/area/wreck/main)
-"aF" = (/obj/item/weapon/ore,/turf/simulated/floor/airless,/area/wreck/main)
-"aH" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless,/area/wreck/main)
-"aI" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"aJ" = (/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"aK" = (/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"aL" = (/obj/effect/floor_decal/asteroid,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
-"aM" = (/obj/effect/decal/mecha_wreckage/gygax/dark,/turf/simulated/floor/airless,/area/wreck/main)
-"aN" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/airless,/area/wreck/main)
-"aO" = (/obj/structure/table/rack,/turf/simulated/floor/airless,/area/wreck/main)
-"aP" = (/obj/structure/table/rack,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/airless,/area/wreck/main)
-"aQ" = (/obj/effect/decal/cleanable/blood/gibs/robot/down,/turf/simulated/floor/airless,/area/wreck/main)
-"aR" = (/obj/machinery/optable,/obj/effect/decal/remains/xeno,/obj/effect/decal/cleanable/blood/xeno,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"aS" = (/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/wreck/main)
-"aT" = (/obj/structure/table/rack,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"aU" = (/obj/machinery/door/airlock/glass_medical{name = "Medbay"; req_one_access = list(65,5)},/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
-"aV" = (/obj/effect/decal/cleanable/blood/xeno,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"aW" = (/obj/item/weapon/ore,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
-"aX" = (/obj/effect/overlay/wallrot,/turf/simulated/wall/skipjack,/area/wreck/main)
-"aY" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"aZ" = (/obj/structure/window/phoronreinforced,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"ba" = (/obj/item/device/flashlight/flare,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bb" = (/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/structure/ore_box,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/turf/simulated/floor/airless,/area/wreck/main)
-"bc" = (/obj/item/clothing/head/helmet/space/deathsquad,/obj/structure/table/rack,/obj/effect/decal/cleanable/molten_item,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bd" = (/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "white"},/area/mine/explored)
-"be" = (/obj/machinery/crystal,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
-"bf" = (/obj/machinery/compressor{dir = 4},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
-"bg" = (/obj/item/device/gps,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bh" = (/obj/structure/ore_box,/turf/simulated/floor/airless,/area/wreck/main)
-"bi" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bj" = (/obj/structure/closet/acloset,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bk" = (/obj/item/weapon/ore,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bl" = (/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bm" = (/obj/item/clothing/under/color/pink,/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bn" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/void,/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bo" = (/obj/effect/wingrille_spawn/phoron,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bp" = (/obj/structure/table/rack,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bq" = (/obj/item/broken_device,/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains/robot,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"br" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bs" = (/obj/item/weapon/tank/oxygen/yellow,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bt" = (/obj/effect/decal/cleanable/blood/gibs/robot/down,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bu" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bv" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bw" = (/obj/structure/AIcore,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bx" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"by" = (/obj/item/device/flashlight/glowstick,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bz" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bA" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bB" = (/obj/item/robot_parts/head,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bC" = (/obj/item/stack/material/steel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bD" = (/obj/item/clothing/under/color/lightblue,/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bE" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bF" = (/obj/item/clothing/under/color/lightpurple,/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"bG" = (/obj/structure/dispenser{oxygentanks = 0; phorontanks = 0},/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bH" = (/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bI" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/airless,/area/wreck/main)
-"bJ" = (/obj/machinery/crystal,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
-"bK" = (/obj/machinery/compressor{dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
-"bL" = (/obj/structure/largecrate,/turf/simulated/floor/airless,/area/wreck/main)
-"bM" = (/obj/effect/decal/cleanable/molten_item,/turf/simulated/floor/airless,/area/wreck/main)
-"bN" = (/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bO" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 4},/area/wreck/main)
-"bP" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/wreck/main)
-"bQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/wreck/main)
-"bR" = (/obj/structure/largecrate/hoverpod,/turf/simulated/floor/airless,/area/wreck/main)
-"bS" = (/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/effect/decal/mecha_wreckage/hoverpod,/turf/simulated/floor/airless,/area/wreck/main)
-"bT" = (/obj/item/stack/material/steel,/obj/item/stack/material/steel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bU" = (/obj/structure/table/rack,/obj/item/clothing/glasses/welding,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"bV" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/airless,/area/wreck/main)
-"bW" = (/obj/item/frame/light,/turf/simulated/floor/airless,/area/wreck/main)
-"bX" = (/obj/effect/decal/mecha_wreckage/mauler,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/wreck/main)
-"bY" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless,/area/wreck/main)
-"bZ" = (/obj/item/stack/material/steel,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
-"ca" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/wreck/main)
-"cb" = (/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
-"cc" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"cd" = (/obj/structure/frame/computer,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"ce" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/airless,/area/wreck/main)
-"cf" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/airless,/area/wreck/main)
-"cg" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 8},/area/wreck/main)
-"ch" = (/turf/simulated/floor/airless,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_c"},/area/wreck/main)
-"ci" = (/turf/simulated/floor/airless,/turf/simulated/shuttle/wall{dir = 4; icon_state = "swall_c"},/area/wreck/main)
-"cj" = (/turf/simulated/shuttle/wall{icon_state = "swall_s"; dir = 1},/area/wreck/main)
-"ck" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/wreck/main)
-"cl" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/wreck/main)
-"cm" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/wreck/main)
-"cn" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/wreck/main)
-"co" = (/turf/space,/area/mine/unexplored)
-"cp" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
-"cq" = (/turf/simulated/wall/r_wall,/area/outpost/abandoned)
-"cr" = (/turf/simulated/floor/airless,/area/outpost/abandoned)
-"cs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/material/shard,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/outpost/abandoned)
-"ct" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cw" = (/turf/simulated/floor,/area/outpost/abandoned)
-"cx" = (/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/outpost/abandoned)
-"cy" = (/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cA" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/outpost/abandoned)
-"cB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cD" = (/obj/machinery/floodlight,/turf/simulated/floor,/area/outpost/abandoned)
-"cE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/door_assembly/door_assembly_eng,/turf/simulated/floor,/area/outpost/abandoned)
-"cF" = (/obj/structure/sign/vacuum{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cG" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/outpost/abandoned)
-"cI" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
-"cJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/frame,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cK" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
-"cL" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/binary/pump/on{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"cM" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"cN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (NORTHEAST)"; icon_state = "intact-scrubbers"; dir = 5},/turf/simulated/floor,/area/outpost/abandoned)
-"cO" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"cP" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Atmospherics"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/turf/simulated/floor/plating,/area/outpost/abandoned)
-"cQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"cR" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cT" = (/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"cU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/outpost/abandoned)
-"cW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"cX" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"cY" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/outpost/abandoned)
-"cZ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/outpost/abandoned)
-"da" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"db" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"dc" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"de" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"df" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"dg" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/turf/simulated/floor,/area/outpost/abandoned)
-"dh" = (/obj/structure/table/rack,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"di" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dj" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/outpost/abandoned)
-"dk" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/outpost/abandoned)
-"dl" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
-"dm" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor,/area/outpost/abandoned)
-"dn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
-"do" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dr" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ds" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"dt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"du" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dw" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "outpost_o2_sensor"},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
-"dx" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/outpost/abandoned)
-"dy" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{dir = 4; frequency = 1441; id_tag = "outpost_o2_out"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
-"dz" = (/obj/machinery/atmospherics/omni/mixer{tag_east = 0; tag_east_con = null; tag_north = 2; tag_south = 1; tag_south_con = 0.79; tag_west = 1; tag_west_con = 0.21},/turf/simulated/floor,/area/outpost/abandoned)
-"dA" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"dB" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dC" = (/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/outpost/abandoned)
-"dE" = (/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
-"dF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"dG" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "outpost_o2_in"; pixel_y = 1; use_power = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
-"dH" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/simulated/floor,/area/outpost/abandoned)
-"dI" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 10},/turf/simulated/floor,/area/outpost/abandoned)
-"dJ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/outpost/abandoned)
-"dK" = (/obj/structure/girder/displaced,/turf/simulated/floor,/area/outpost/abandoned)
-"dL" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dM" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dN" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dP" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"dQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/outpost/abandoned)
-"dR" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/outpost/abandoned)
-"dS" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable,/turf/simulated/floor,/area/outpost/abandoned)
-"dT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'COMPRESSED GAS'."; name = "COMPRESSED GAS"; pixel_x = -32; pixel_y = 0},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
-"dU" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"dV" = (/obj/machinery/atmospherics/omni/filter{power_rating = 15000; tag_east = 1; tag_north = 3; tag_south = 4; tag_west = 2},/turf/simulated/floor,/area/outpost/abandoned)
-"dW" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"dX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/outpost/abandoned)
-"dY" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Atmospherics"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
-"dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ea" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ec" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ee" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ef" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Outpost Solars"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/outpost/abandoned)
-"eh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ei" = (/obj/structure/table/reinforced,/obj/item/stack/material/phoron{amount = 10},/obj/random/powercell,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/material/phoron{amount = 10},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ej" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/outpost/abandoned)
-"ek" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
-"el" = (/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
-"em" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "outpost_n2_in"; pixel_y = 1; use_power = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
-"en" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
-"eo" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 9},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
-"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/outpost/abandoned)
-"eq" = (/obj/structure/girder/reinforced,/turf/simulated/floor,/area/outpost/abandoned)
-"er" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"es" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"et" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ev" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ew" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ex" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
-"ey" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ez" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eA" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/outpost/abandoned)
-"eB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eC" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "outpost_n2_sensor"},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
-"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"eE" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{dir = 4; frequency = 1441; id_tag = "outpost_n2_out"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
-"eF" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/light,/turf/simulated/floor,/area/outpost/abandoned)
-"eG" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eH" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eI" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eJ" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eK" = (/obj/structure/cable,/turf/simulated/floor,/area/outpost/abandoned)
-"eL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eM" = (/obj/structure/frame/computer,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eN" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/alarm{frequency = 1439; pixel_y = 22},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eO" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eP" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eR" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eS" = (/obj/structure/closet,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eT" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eU" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eV" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eW" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eX" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eY" = (/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"eZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fc" = (/obj/structure/disposalpipe/broken{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
-"fd" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/vacuum{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/outpost/abandoned)
-"ff" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fg" = (/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fh" = (/obj/machinery/door/airlock/glass_engineering{name = "Break Room"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"fi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"fj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"fk" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Airlock"},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
-"fl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/outpost/abandoned)
-"fm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fo" = (/obj/structure/table/standard,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fp" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/outpost/abandoned)
-"fq" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/frame/computer,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fs" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"ft" = (/obj/machinery/door/airlock/glass_engineering{name = "Break Room"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/outpost/abandoned)
-"fu" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/outpost/abandoned)
-"fv" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/outpost/abandoned)
-"fx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fy" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"fz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/motor,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fB" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fE" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/abandoned)
-"fG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fI" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"fJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/outpost/abandoned)
-"fK" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/outpost/abandoned)
-"fL" = (/obj/structure/grille,/turf/space,/area/space)
-"fM" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
-"fN" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
-"fO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fR" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/outpost/abandoned)
-"fS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
-"fU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
-"fV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
-"fW" = (/turf/simulated/wall,/area/outpost/abandoned)
-"fX" = (/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
-"fY" = (/obj/machinery/light{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/outpost/abandoned)
-"fZ" = (/obj/machinery/light{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/outpost/abandoned)
+"aa" = (/turf/space,/area/space)
+"ab" = (/turf/simulated/mineral,/area/mine/unexplored)
+"ac" = (/turf/simulated/wall,/area/mine/explored)
+"ad" = (/obj/structure/grille,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"ae" = (/obj/structure/lattice,/turf/space,/area/space)
+"af" = (/turf/simulated/floor/airless,/area/mine/explored)
+"ag" = (/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/airless,/area/mine/explored)
+"ah" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"ai" = (/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/airless,/area/mine/explored)
+"aj" = (/obj/structure/girder,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"ak" = (/obj/structure/frame/computer,/turf/simulated/floor/airless,/area/mine/explored)
+"al" = (/obj/machinery/teleport/station,/turf/simulated/floor/airless,/area/mine/explored)
+"am" = (/obj/machinery/teleport/hub,/turf/simulated/floor/airless,/area/mine/explored)
+"an" = (/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
+"ao" = (/obj/structure/door_assembly/door_assembly_med,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"ap" = (/obj/machinery/optable,/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
+"aq" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
+"ar" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
+"as" = (/obj/item/weapon/ore,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
+"at" = (/obj/structure/girder,/turf/simulated/floor/airless,/area/wreck/main)
+"au" = (/turf/simulated/wall/skipjack,/area/wreck/main)
+"av" = (/turf/simulated/floor/airless,/area/wreck/main)
+"aw" = (/obj/effect/floor_decal/asteroid,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
+"ax" = (/obj/item/stack/material/steel,/turf/simulated/floor/airless,/area/wreck/main)
+"ay" = (/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
+"az" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
+"aA" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/surgical/scalpel/laser3,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"aB" = (/obj/item/weapon/surgical/circular_saw,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"aC" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/airless,/area/wreck/main)
+"aD" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"aE" = (/obj/effect/decal/mecha_wreckage/phazon,/turf/simulated/floor/airless,/area/wreck/main)
+"aF" = (/obj/item/weapon/ore,/turf/simulated/floor/airless,/area/wreck/main)
+"aG" = (/turf/simulated/shuttle/wall,/area/wreck/main)
+"aH" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/airless,/area/wreck/main)
+"aI" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"aJ" = (/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"aK" = (/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"aL" = (/obj/effect/floor_decal/asteroid,/obj/effect/decal/cleanable/molten_item,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/unexplored)
+"aM" = (/obj/effect/decal/mecha_wreckage/gygax/dark,/turf/simulated/floor/airless,/area/wreck/main)
+"aN" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/airless,/area/wreck/main)
+"aO" = (/obj/structure/table/rack,/turf/simulated/floor/airless,/area/wreck/main)
+"aP" = (/obj/structure/table/rack,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/airless,/area/wreck/main)
+"aQ" = (/obj/effect/decal/cleanable/blood/gibs/robot/down,/turf/simulated/floor/airless,/area/wreck/main)
+"aR" = (/obj/machinery/optable,/obj/effect/decal/remains/xeno,/obj/effect/decal/cleanable/blood/xeno,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"aS" = (/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/wreck/main)
+"aT" = (/obj/structure/table/rack,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"aU" = (/obj/machinery/door/airlock/glass_medical{name = "Medbay"; req_one_access = list(65,5)},/turf/simulated/floor/tiled/white/airless,/area/mine/explored)
+"aV" = (/obj/effect/decal/cleanable/blood/xeno,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"aW" = (/obj/item/weapon/ore,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
+"aX" = (/obj/effect/overlay/wallrot,/turf/simulated/wall/skipjack,/area/wreck/main)
+"aY" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"aZ" = (/obj/structure/window/phoronreinforced,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"ba" = (/obj/item/device/flashlight/flare,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bb" = (/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/structure/ore_box,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/turf/simulated/floor/airless,/area/wreck/main)
+"bc" = (/obj/item/clothing/head/helmet/space/deathsquad,/obj/structure/table/rack,/obj/effect/decal/cleanable/molten_item,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bd" = (/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "white"},/area/mine/explored)
+"be" = (/obj/machinery/crystal,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
+"bf" = (/obj/machinery/compressor{dir = 4},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
+"bg" = (/obj/item/device/gps,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bh" = (/obj/structure/ore_box,/turf/simulated/floor/airless,/area/wreck/main)
+"bi" = (/obj/item/weapon/circuitboard/broken,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bj" = (/obj/structure/closet/acloset,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bk" = (/obj/item/weapon/ore,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bl" = (/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bm" = (/obj/item/clothing/under/color/pink,/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bn" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/void,/obj/item/clothing/suit/space/syndicate/green,/obj/item/clothing/head/helmet/space/syndicate/green,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bo" = (/obj/effect/wingrille_spawn/phoron,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bp" = (/obj/structure/table/rack,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bq" = (/obj/item/broken_device,/obj/structure/bed/chair{dir = 8},/obj/effect/decal/remains/robot,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"br" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bs" = (/obj/item/weapon/tank/oxygen/yellow,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bt" = (/obj/effect/decal/cleanable/blood/gibs/robot/down,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bu" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bv" = (/obj/effect/decal/cleanable/vomit,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bw" = (/obj/structure/AIcore,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bx" = (/obj/item/frame/apc,/obj/item/weapon/module/power_control,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"by" = (/obj/item/device/flashlight/glowstick,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bz" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bA" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bB" = (/obj/item/robot_parts/head,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bC" = (/obj/item/stack/material/steel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bD" = (/obj/item/clothing/under/color/lightblue,/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bE" = (/obj/structure/table/steel_reinforced,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bF" = (/obj/item/clothing/under/color/lightpurple,/obj/structure/bed,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"bG" = (/obj/structure/dispenser{oxygentanks = 0; phorontanks = 0},/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bH" = (/obj/item/stack/material/glass{amount = 50; pixel_x = -2; pixel_y = 2},/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bI" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/airless,/area/wreck/main)
+"bJ" = (/obj/machinery/crystal,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (EAST)"; icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
+"bK" = (/obj/machinery/compressor{dir = 4},/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (WEST)"; icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/reinforced/phoron,/area/wreck/main)
+"bL" = (/obj/structure/largecrate,/turf/simulated/floor/airless,/area/wreck/main)
+"bM" = (/obj/effect/decal/cleanable/molten_item,/turf/simulated/floor/airless,/area/wreck/main)
+"bN" = (/obj/structure/window/phoronreinforced{tag = "icon-phoronrwindow (NORTH)"; icon_state = "phoronrwindow"; dir = 1},/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bR" = (/obj/structure/largecrate/hoverpod,/turf/simulated/floor/airless,/area/wreck/main)
+"bS" = (/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/item/stack/material/wood,/obj/effect/decal/mecha_wreckage/hoverpod,/turf/simulated/floor/airless,/area/wreck/main)
+"bT" = (/obj/item/stack/material/steel,/obj/item/stack/material/steel,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bU" = (/obj/structure/table/rack,/obj/item/clothing/glasses/welding,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"bV" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/airless,/area/wreck/main)
+"bW" = (/obj/item/frame/light,/turf/simulated/floor/airless,/area/wreck/main)
+"bX" = (/obj/effect/decal/mecha_wreckage/mauler,/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/wreck/main)
+"bY" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/airless,/area/wreck/main)
+"bZ" = (/obj/item/stack/material/steel,/obj/item/stack/rods,/turf/simulated/floor/airless,/area/wreck/main)
+"ca" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/wreck/main)
+"cb" = (/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/tiled/white/airless,/area/wreck/main)
+"cc" = (/obj/machinery/teleport/station,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"cd" = (/obj/structure/frame/computer,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"ce" = (/obj/machinery/teleport/hub,/turf/simulated/floor/tiled/airless,/area/wreck/main)
+"cf" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/airless,/area/wreck/main)
+"ck" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/wreck/main)
+"cm" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/wreck/main)
+"cn" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/space,/area/wreck/main)
+"co" = (/turf/space,/area/mine/unexplored)
+"cp" = (/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
+"cq" = (/turf/simulated/wall/r_wall,/area/outpost/abandoned)
+"cr" = (/turf/simulated/floor/airless,/area/outpost/abandoned)
+"cs" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/material/shard,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/outpost/abandoned)
+"ct" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cw" = (/turf/simulated/floor,/area/outpost/abandoned)
+"cx" = (/obj/item/weapon/material/shard/shrapnel,/turf/simulated/floor/airless,/area/outpost/abandoned)
+"cy" = (/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cA" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/outpost/abandoned)
+"cB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cD" = (/obj/machinery/floodlight,/turf/simulated/floor,/area/outpost/abandoned)
+"cE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/door_assembly/door_assembly_eng,/turf/simulated/floor,/area/outpost/abandoned)
+"cF" = (/obj/structure/sign/vacuum{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cG" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor,/area/outpost/abandoned)
+"cI" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
+"cJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/frame,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cK" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
+"cL" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/atmospherics/binary/pump/on{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"cM" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"cN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (NORTHEAST)"; icon_state = "intact-scrubbers"; dir = 5},/turf/simulated/floor,/area/outpost/abandoned)
+"cO" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"cP" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Atmospherics"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/turf/simulated/floor/plating,/area/outpost/abandoned)
+"cQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"cR" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cT" = (/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"cU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/outpost/abandoned)
+"cW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"cX" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"cY" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor,/area/outpost/abandoned)
+"cZ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor,/area/outpost/abandoned)
+"da" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"db" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"dc" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"dd" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"de" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"df" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"dg" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/obj/item/weapon/pickaxe,/turf/simulated/floor,/area/outpost/abandoned)
+"dh" = (/obj/structure/table/rack,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"di" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dj" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/visible/cyan{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor,/area/outpost/abandoned)
+"dk" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/outpost/abandoned)
+"dl" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{tag = "icon-map (EAST)"; icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
+"dm" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/turf/simulated/floor,/area/outpost/abandoned)
+"dn" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1},/turf/simulated/floor,/area/outpost/abandoned)
+"do" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dr" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ds" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"dt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"du" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dw" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "outpost_o2_sensor"},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
+"dx" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/outpost/abandoned)
+"dy" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{dir = 4; frequency = 1441; id_tag = "outpost_o2_out"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
+"dz" = (/obj/machinery/atmospherics/omni/mixer{tag_east = 0; tag_east_con = null; tag_north = 2; tag_south = 1; tag_south_con = 0.79; tag_west = 1; tag_west_con = 0.21},/turf/simulated/floor,/area/outpost/abandoned)
+"dA" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"dB" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dC" = (/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/dark,/area/outpost/abandoned)
+"dE" = (/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
+"dF" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"dG" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "outpost_o2_in"; pixel_y = 1; use_power = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/oxygen,/area/outpost/abandoned)
+"dH" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/simulated/floor,/area/outpost/abandoned)
+"dI" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 10},/turf/simulated/floor,/area/outpost/abandoned)
+"dJ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/outpost/abandoned)
+"dK" = (/obj/structure/girder/displaced,/turf/simulated/floor,/area/outpost/abandoned)
+"dL" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dM" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dN" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dP" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"dQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/outpost/abandoned)
+"dR" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/frame/apc,/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/outpost/abandoned)
+"dS" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable,/turf/simulated/floor,/area/outpost/abandoned)
+"dT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'COMPRESSED GAS'."; name = "COMPRESSED GAS"; pixel_x = -32; pixel_y = 0},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
+"dU" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"dV" = (/obj/machinery/atmospherics/omni/filter{power_rating = 15000; tag_east = 1; tag_north = 3; tag_south = 4; tag_west = 2},/turf/simulated/floor,/area/outpost/abandoned)
+"dW" = (/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"dX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/outpost/abandoned)
+"dY" = (/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{tag = "icon-intact-scrubbers (EAST)"; icon_state = "intact-scrubbers"; dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Atmospherics"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
+"dZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ea" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ec" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ee" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ef" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engineering Outpost Solars"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eg" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/outpost/abandoned)
+"eh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ei" = (/obj/structure/table/reinforced,/obj/item/stack/material/phoron{amount = 10},/obj/random/powercell,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/material/phoron{amount = 10},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ej" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/outpost/abandoned)
+"ek" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
+"el" = (/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
+"em" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "outpost_n2_in"; pixel_y = 1; use_power = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
+"en" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
+"eo" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 9},/obj/machinery/meter,/turf/simulated/floor,/area/outpost/abandoned)
+"ep" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/outpost/abandoned)
+"eq" = (/obj/structure/girder/reinforced,/turf/simulated/floor,/area/outpost/abandoned)
+"er" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"es" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"et" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ev" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ew" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ex" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/outpost/abandoned)
+"ey" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ez" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eA" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/outpost/abandoned)
+"eB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eC" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "outpost_n2_sensor"},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
+"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"eE" = (/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{dir = 4; frequency = 1441; id_tag = "outpost_n2_out"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/reinforced/nitrogen,/area/outpost/abandoned)
+"eF" = (/obj/machinery/atmospherics/pipe/simple/visible/blue{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/light,/turf/simulated/floor,/area/outpost/abandoned)
+"eG" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eH" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eI" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eJ" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Airlock"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eK" = (/obj/structure/cable,/turf/simulated/floor,/area/outpost/abandoned)
+"eL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eM" = (/obj/structure/frame/computer,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eN" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/machinery/alarm{frequency = 1439; pixel_y = 22},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eO" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/orange,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eP" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eR" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eS" = (/obj/structure/closet,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eT" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 6; icon_state = "intact"; tag = "icon-intact-f (SOUTHEAST)"},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eU" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eV" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eW" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eX" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eY" = (/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"eZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fc" = (/obj/structure/disposalpipe/broken{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/mine/explored)
+"fd" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/sign/vacuum{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/outpost/abandoned)
+"ff" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fg" = (/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fh" = (/obj/machinery/door/airlock/glass_engineering{name = "Break Room"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"fi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"fj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"fk" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering Airlock"},/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/abandoned)
+"fl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/outpost/abandoned)
+"fm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fo" = (/obj/structure/table/standard,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fp" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/outpost/abandoned)
+"fq" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/frame/computer,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fs" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"ft" = (/obj/machinery/door/airlock/glass_engineering{name = "Break Room"; req_access = list(10)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/outpost/abandoned)
+"fu" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor,/area/outpost/abandoned)
+"fv" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/outpost/abandoned)
+"fx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fy" = (/obj/structure/lattice,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"fz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fA" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/motor,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fB" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fE" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/abandoned)
+"fG" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fI" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"fJ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/outpost/abandoned)
+"fK" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/outpost/abandoned)
+"fL" = (/obj/structure/grille,/turf/space,/area/space)
+"fM" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
+"fN" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
+"fO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fR" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/outpost/abandoned)
+"fS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/outpost/abandoned)
+"fU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
+"fV" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/abandoned)
+"fW" = (/turf/simulated/wall,/area/outpost/abandoned)
+"fX" = (/obj/item/stack/flag/yellow,/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored)
+"fY" = (/obj/machinery/light{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/outpost/abandoned)
+"fZ" = (/obj/machinery/light{dir = 8},/turf/simulated/mineral/floor/ignore_mapgen,/area/outpost/abandoned)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacadadacaaaaaeaaaaacadadacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadafafacacaeaeaeacacafafadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadafafafacadadadacafafafadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadafafafafafafafafafafafadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacafafafafafafafafafafafacababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacafafafafafafafafafafafacababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacafafafafafafafafafacacabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababacacafafafafafafafacacabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababacacafafafafafacacabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababacacagagagacacababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahabababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababarararararabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababararararasarararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatatauauauauavavarararawawarararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavayaxatazaAcdaDaCauavavavawasarararawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaEaFavavavaHaBaJaIaJaKaHavavavavavaLararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaMaNaFaOaOauaJaJaJaJaJauaPaOavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaQaFavauauauaJaJaRaJaJauauauavavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaSavavavauauaTauaJaJaVaJaJauaTauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaWavavauauaKaKauaKaJaJaJaKaHaKaKauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaxauauaKaKaKauauaYaXaKaZaubaaKaKauaubbavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaFaubcaKaJaJaJaJaJaubfbeaubgaKaKaKaubhbhavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababauauauauauauaKaJaKaKaKaKauauauauauauaKaKauauauauauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababahahahahafaiafacacacajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababauaCbiaKbjauauaYauauaJbkaJbmblaDblauaKaKaKbobnbpauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababahahahahahafafafafafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatcdbqbraKaKaKaJcdauaJaKaKaKaJaKaJauaKaKaKbobsaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababahahahabahahahahafafafafahafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatcdbtaKbubvaKaJbwaubxaKauaKaJaJaJauaKbyaKbzaKaKaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababahahahahahabahahahahahajafahafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaucdbAbBaKaKaKaJcdauaJaKaKaKaJaKaJauaKaKaKboaKaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahahahahahahahahababababahahahabahahahabahahahahahahafafahafahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaybCbjauauaYauauaJaJaJbEbDaDbFauaKaKaKbobGaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahababababahahahahahahahahahahahahabababahahajahahahahahafafafafafahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataubHaJaKaKaKaKauauauauauauaKaKauauauauauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababahahahahahahahahahababababababahahahahahababahafakalamafacahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbIayaJaJaJaJaJaubKbJauaKaKaKaKaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababahahahahahababahacacajajajacahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbMaKaKauauaYaubNbNauaKaKaKauaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGaGaGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababahahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataKaKauaKaJaJaJaKaHaKaKauaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavbRbSavabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataubTauaJaJaJaJaJaubUauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbVavavavbWaGababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXauauauaJaJaJaJaJauauauavbMavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbZaOaOauaJaJaJaJaJaucaaOavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavavaHaKcbaJaJaKaHavavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavavavavavaGababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaybMauaCcdccceaCauavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavauauauauauauauavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGbVavavavcfaGababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGavavavaGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGckckckaGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababananananabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacncmcmcmabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahabababababababababababababahahabananananabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoararababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababahaoahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababahahahabananananahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababahahahabababananananajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahahahabababababanapananajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababahababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababahababababababababababababababababahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababahahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababahahahahababababababababahahahahahahahacajaoajajacacahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababababahahahahahananananananananacahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababaqaqaqaqaqaqaqahahahabababababahahahahajanananahahahananananahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababcpaqaqaqcpaqaqaqaqahahahababababahahahahahananananananananananahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababcqcscrcuctcqaqaqaqaqahahahahajajahahanahanananananananananananahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababcqcqcqcqcrcrcrcvcqcqcqaqaqaqaqahahananananahanahananananananananananacahahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababcqcqcqcwcwcqcrcxcrcvcycycqczcqaqaqaqahaUananahananananananahahanananananajahahahabababahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababcqcqcqcwcwcwcqcBcAcucCcycycycycqcqaqaqaqbdananananananananananahanananananajahahahabababahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababcqcqcDcqcqcEcqcqcFcwcGcqcIcHcycycJcqcqaqahajajacahanahanananananananananananacahahahabababababababahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababcqcKcMcLcOcNcQcPcScRcUcTcWcVcycycycXcqaqabababahahahahacananananananananahahahahahahabababababababahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababcqcqcYdacZcMdbdccqcydddecqdgdfdidhcycycqcqabababahahahahacajajahahahahahahahahahahababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababcqdkdjdmdldndndncqdpdodqcqdrcycycycycydhcqabababahahahahahahahahahahahahahahabababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababcqcqcqcqcwdscqcqcqcqdudtdvcqcqdrdrcycycycqcqcqababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababcqdwdydxdAdzcwcwcqcwcydddedBcqcqcqdCdCcqcqdDcqcqcqcqcqcqabababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababcqdEdGdFdIdHcwcwdKdJdMdLdqcGducydNcycydOcycycqdPdRdQdScqcqababababababababababababababababababababababahahabababababaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababcqcqcqdTdVdUdmdWdYdXdZcqebeaeccScScScSedcSeeefcSehegejeicqababababababababababababababababababababababahahahaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababcqelemdFeoencwcweqepesereuetduevcycycyewcyexcqcyezeyeBeAcqabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababcqeCeEeDdAeFcwcwcqeGcyeHdeeIcqcqcqeJeJcqcqeKcqcqcqeteLcwcqabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababcqcqcqcqcqcqcqcqcqcqdudtdvcqcqeMeNcycyeOcqcqcqabcqcyeLcycqababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababcqePcwcycycGcycycqdpdoeQcqcyeRcGcycycyeScqababcqeTeVeUcqababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahabababababcqcqcqcyeWeYeXcwcqeMddeZcqcIcyfacycyeOcqcqababcqfbeVeUcqababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahabababfcekfefdcyeWfgfffifhfjcRflfkcWfmfncycyfocqabababcqfpfrfqcqabababababababababahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahabcqcqfscyetcycwftcwfueweJcycyetcyfvcqcqababahcqfwfzfxcqabababababababababahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahcqcqfAfBcycyfCfDcAcuctcycyfEcycqcqabababahfGfFcwfHabababababababahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahcqfJcqcycycvcwcwcwcvcwcwcqcBcqabababahahfHfFcwfHababababababahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahcqcqcqcvfKcycwcvcqcqcqaqaqahahahahahfOfwfzfPahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahcqfQfDfRfTfScqaqaqaqahahahahahahfVfUcpahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahfWahahahahahfWahahahahahahahahahfXaqahahahahahahahadahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahfVahahahahahfVahahadahaqaqaqaqaqahaqahaqaqaqaqaqahadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahaqahahahahahaqahahadfyaqaqaqaqaqaqaqaqaqaqaqaqaqfyadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahaqahahahahahaqahahadahaqaqaqahahahaqahaqaqaqaqaqahadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahahaqahahadahahahahahahahahahahahahfyahahfIahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahahahahadahaqaqaqaqaqahaqahaqaqaqaqaqahadahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahfYfWahahahahahfWfZahfyfyaqaqaqaqaqaqaqaqaqaqaqaqaqfyadahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahfyfWaqaqaqfWfyahahadahaqahahaqaqahaqahaqaqaqaqaqahadahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahadahahahahahahahaqahahahahfyahahfyahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahadahahahaqaqaqahaqahaqaqahahaqahadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahadfyaqaqaqaqaqahahaqaqahahahaqfyadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahfIahaqaqaqaqaqahahahahahahaqaqahadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahadahahahahahahahaqahahahahahahahadahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahadahaqaqaqaqaqahaqahaqahahaqaqahadahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfyaaaqaqaqaqaqaqaqaqaqahahaqfyadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLaeaaaaaaaqaqahaqahaqaqaqaaaaaafLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMaaaaaaaaaaahahaqahahahahahaaaafMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaefNfNfNfNfLfLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
-(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacadadacaaaaaeaaaaacadadacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababadafafacacaeaeaeacacafafadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababadafafafacadadadacafafafadababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababadafafafafafafafafafafafadabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacafafafafafafafafafafafacababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacafafafafafafafafafafafacababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacafafafafafafafafafacacabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababacacafafafafafafafacacabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababacacafafafafafacacabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababacacagagagacacababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahabababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababarararararabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababararararasarararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatatauauauauavavarararawawarararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavayaxatazaAcdaDaCauavavavawasarararawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaEaFavavavaHaBaJaIaJaKaHavavavavavaLararaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaMaNaFaOaOauaJaJaJaJaJauaPaOavavavavasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaQaFavauauauaJaJaRaJaJauauauavavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaSavavavauauaTauaJaJaVaJaJauaTauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaWavavauauaKaKauaKaJaJaJaKaHaKaKauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaxauauaKaKaKauauaYaXaKaZaubaaKaKauaubbavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaFaubcaKaJaJaJaJaJaubfbeaubgaKaKaKaubhbhavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababauauauauauauaKaJaKaKaKaKauauauauauauaKaKauauauauauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababahahahahafaiafacacacajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababauaCbiaKbjauauaYauauaJbkaJbmblaDblauaKaKaKbobnbpauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababahahahahahafafafafafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatcdbqbraKaKaKaJcdauaJaKaKaKaJaKaJauaKaKaKbobsaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababahahahabahahahahafafafafahafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababatcdbtaKbubvaKaJbwaubxaKauaKaJaJaJauaKbyaKbzaKaKaHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababahahahahahabahahahahahajafahafafafabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaucdbAbBaKaKaKaJcdauaJaKaKaKaJaKaJauaKaKaKboaKaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahahahahahahahahababababahahahabahahahabahahahahahahafafahafahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaybCbjauauaYauauaJaJaJbEbDaDbFauaKaKaKbobGaKauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahababababahahahahahahahahahahahahabababahahajahahahahahafafafafafahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataubHaJaKaKaKaKauauauauauauaKaKauauauauauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababahahahahahahahahahababababababahahahahahababahafakalamafacahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbIayaJaJaJaJaJaubKbJauaKaKaKaKaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababahahahahahababahacacajajajacahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbMaKaKauauaYaubNbNauaKaKaKauaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabObPbPbPababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababahahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataKaKauaKaJaJaJaKaHaKaKauaubLavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavbRbSavabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababataubTauaJaJaJaJaJaubUauauavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQbVavavavbWbQababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbXauauauaJaJaJaJaJauauauavbMavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbZaOaOauaJaJaJaJaJaucaaOavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavavaHaKcbaJaJaKaHavavavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavavavavavbQababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaybMauaCcdccceaCauavavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababavauauauauauauauavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQavavavavavbYababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQbVavavavcfbQababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgchavavavciabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjclckckckclabababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahababababababababababababababababananananabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacncmcmcmabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahabababababababababababababahahabananananabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoararababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababahaoahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababahahahabananananahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararabababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababahahahabababananananajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaararababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahahahahahahabababababanapananajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababajababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababahababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababahababababababababababababababababahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababahahabababababababababababababababahahahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababahahahahababababababababahahahahahahahacajaoajajacacahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababahahahahahahabababababababahahahahahananananananananacahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababaqaqaqaqaqaqaqahahahabababababahahahahajanananahahahananananahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababcpaqaqaqcpaqaqaqaqahahahababababahahahahahananananananananananahahahahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababcqcscrcuctcqaqaqaqaqahahahahajajahahanahanananananananananananahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababcqcqcqcqcrcrcrcvcqcqcqaqaqaqaqahahananananahanahananananananananananacahahahahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababcqcqcqcwcwcqcrcxcrcvcycycqczcqaqaqaqahaUananahananananananahahanananananajahahahabababahahahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababcqcqcqcwcwcwcqcBcAcucCcycycycycqcqaqaqaqbdananananananananananahanananananajahahahabababahahahahahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababcqcqcDcqcqcEcqcqcFcwcGcqcIcHcycycJcqcqaqahajajacahanahanananananananananananacahahahabababababababahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababcqcKcMcLcOcNcQcPcScRcUcTcWcVcycycycXcqaqabababahahahahacananananananananahahahahahahabababababababahahahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababcqcqcYdacZcMdbdccqcydddecqdgdfdidhcycycqcqabababahahahahacajajahahahahahahahahahahababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababcqdkdjdmdldndndncqdpdodqcqdrcycycycycydhcqabababahahahahahahahahahahahahahahabababababababababababababahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababcqcqcqcqcwdscqcqcqcqdudtdvcqcqdrdrcycycycqcqcqababababababababababababababababababababababababababababahahahabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababcqdwdydxdAdzcwcwcqcwcydddedBcqcqcqdCdCcqcqdDcqcqcqcqcqcqabababababababababababababababababababababababahahababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababcqdEdGdFdIdHcwcwdKdJdMdLdqcGducydNcycydOcycycqdPdRdQdScqcqababababababababababababababababababababababahahabababababaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababcqcqcqdTdVdUdmdWdYdXdZcqebeaeccScScScSedcSeeefcSehegejeicqababababababababababababababababababababababahahahaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababcqelemdFeoencwcweqepesereuetduevcycycyewcyexcqcyezeyeBeAcqabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababcqeCeEeDdAeFcwcwcqeGcyeHdeeIcqcqcqeJeJcqcqeKcqcqcqeteLcwcqabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababcqcqcqcqcqcqcqcqcqcqdudtdvcqcqeMeNcycyeOcqcqcqabcqcyeLcycqababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababcqePcwcycycGcycycqdpdoeQcqcyeRcGcycycyeScqababcqeTeVeUcqababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabahabababababcqcqcqcyeWeYeXcwcqeMddeZcqcIcyfacycyeOcqcqababcqfbeVeUcqababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahabababfcekfefdcyeWfgfffifhfjcRflfkcWfmfncycyfocqabababcqfpfrfqcqabababababababababahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahabcqcqfscyetcycwftcwfueweJcycyetcyfvcqcqababahcqfwfzfxcqabababababababababahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahcqcqfAfBcycyfCfDcAcuctcycyfEcycqcqabababahfGfFcwfHabababababababahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahcqfJcqcycycvcwcwcwcvcwcwcqcBcqabababahahfHfFcwfHababababababahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahcqcqcqcvfKcycwcvcqcqcqaqaqahahahahahfOfwfzfPahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahcqfQfDfRfTfScqaqaqaqahahahahahahfVfUcpahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahfWahahahahahfWahahahahahahahahahfXaqahahahahahahahadahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahfVahahahahahfVahahadahaqaqaqaqaqahaqahaqaqaqaqaqahadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahaqahahahahahaqahahadfyaqaqaqaqaqaqaqaqaqaqaqaqaqfyadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahaqahahahahahaqahahadahaqaqaqahahahaqahaqaqaqaqaqahadahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahahaqahahadahahahahahahahahahahahahfyahahfIahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahahahahahadahaqaqaqaqaqahaqahaqaqaqaqaqahadahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahfYfWahahahahahfWfZahfyfyaqaqaqaqaqaqaqaqaqaqaqaqaqfyadahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahfyfWaqaqaqfWfyahahadahaqahahaqaqahaqahaqaqaqaqaqahadahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahahahadahahahahahahahaqahahahahfyahahfyahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahahadahahahaqaqaqahaqahaqaqahahaqahadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahahadfyaqaqaqaqaqahahaqaqahahahaqfyadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahahfIahaqaqaqaqaqahahahahahahaqaqahadahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahahahadahahahahahahahaqahahahahahahahadahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahahahadahaqaqaqaqaqahaqahaqahahaqaqahadahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfyaaaqaqaqaqaqaqaqaqaqahahaqfyadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLaeaaaaaaaqaqahaqahaqaqaqaaaaaafLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMaaaaaaaaaaahahaqahahahahahaaaafMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaefNfNfNfNfLfLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-"}
-
diff --git a/maps/polaris-5.dmm b/maps/northern_star/polaris-5.dmm
similarity index 99%
rename from maps/polaris-5.dmm
rename to maps/northern_star/polaris-5.dmm
index 96502312f1..a0f40c8b5e 100644
--- a/maps/polaris-5.dmm
+++ b/maps/northern_star/polaris-5.dmm
@@ -412,7 +412,7 @@
"hV" = (/obj/structure/closet/l3closet/scientist,/obj/effect/floor_decal/industrial/warning,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenobiology Access"; dir = 1},/turf/simulated/floor/tiled/white,/area/outpost/research/xenobiology)
"hW" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/outpost/research/xenobiology)
"hX" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped,/turf/simulated/floor/tiled/white,/area/outpost/research/xenobiology)
-"hY" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled,/area/outpost/research/xenobiology)
+"hY" = (/obj/structure/table/standard,/obj/item/clothing/gloves/latex,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled,/area/outpost/research/xenobiology)
"hZ" = (/obj/structure/table/standard,/obj/item/glass_jar,/obj/item/glass_jar,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/tiled/white,/area/outpost/research/xenobiology)
"ia" = (/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/research/xenobiology)
"ib" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/button/remote/blast_door{id = "xenobio4"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access = list(55)},/turf/simulated/floor/tiled/white,/area/outpost/research/xenobiology)
@@ -788,8 +788,8 @@
"ph" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
"pi" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
"pj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/freezer,/area/outpost/research/dorms)
-"pk" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
-"pl" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
+"pk" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
+"pl" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/sign/nosmoking_2{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
"pm" = (/obj/effect/floor_decal/corner/purple{dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
"pn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
"po" = (/obj/effect/floor_decal/corner/purple,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/outpost/research/hallway/mid)
@@ -937,7 +937,7 @@
"sa" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
"sb" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/item/weapon/tape_roll,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
"sc" = (/obj/structure/table/standard,/obj/machinery/computer/atmoscontrol/laptop{monitored_alarm_ids = list("isolation_one","isolation_two","isolation_three"); req_one_access = list(47,24,11)},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
-"sd" = (/obj/structure/table/standard,/obj/item/clothing/gloves/sterile/latex,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
+"sd" = (/obj/structure/table/standard,/obj/item/clothing/gloves/latex,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
"se" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
"sf" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
"sg" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/outpost/research/anomaly)
diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm
new file mode 100644
index 0000000000..ab8940d975
--- /dev/null
+++ b/maps/southern_cross/southern_cross-3.dmm
@@ -0,0 +1,463 @@
+"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/northwest)
+"ab" = (/turf/unsimulated/wall/planetary/sif,/area/awaymission/example)
+"ac" = (/turf/unsimulated/wall/planetary/sif,/area/surface/north)
+"ad" = (/turf/unsimulated/wall/planetary/sif,/area/surface/northeast)
+"ae" = (/turf/simulated/floor/outdoors/dirt,/area/surface/northwest)
+"af" = (/obj/effect/zone_divider,/turf/simulated/mineral,/area/awaymission/example)
+"ag" = (/turf/simulated/mineral,/area/surface/north)
+"ah" = (/turf/simulated/mineral,/area/surface/northeast)
+"ai" = (/turf/simulated/floor/outdoors/snow,/area/surface/north)
+"aj" = (/turf/simulated/floor/outdoors/dirt,/area/surface/north)
+"ak" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow,/area/awaymission/example)
+"al" = (/turf/unsimulated/wall/planetary/sif,/area/space)
+"am" = (/obj/effect/zone_divider,/turf/simulated/floor/greengrid,/area/awaymission/example)
+"an" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow,/area/surface/center)
+"ao" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt,/area/surface/center)
+"ap" = (/obj/effect/zone_divider,/turf/simulated/mineral,/area/surface/center)
+"aq" = (/turf/unsimulated/wall/planetary/sif,/area/surface/west)
+"ar" = (/turf/simulated/floor/outdoors/snow,/area/surface/west)
+"as" = (/turf/simulated/floor/outdoors/snow,/area/surface/center)
+"at" = (/turf/simulated/floor/outdoors/dirt,/area/surface/center)
+"au" = (/turf/simulated/mineral,/area/surface/center)
+"av" = (/turf/simulated/mineral,/area/surface/east)
+"aw" = (/turf/unsimulated/wall/planetary/sif,/area/surface/east)
+"ax" = (/turf/simulated/floor/water/deep,/area/surface/east)
+"ay" = (/turf/simulated/floor/outdoors/grass/sif,/area/surface/center)
+"az" = (/turf/simulated/floor/water,/area/surface/east)
+"aA" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif,/area/surface/center)
+"aB" = (/turf/simulated/floor/outdoors/grass/sif,/area/surface/east)
+"aC" = (/turf/simulated/floor/outdoors/rocks,/area/surface/east)
+"aD" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/east)
+"aE" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/east)
+"aF" = (/turf/simulated/floor/outdoors/dirt,/area/surface/east)
+"aG" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/surface/east)
+"aH" = (/turf/simulated/floor/water/shoreline/corner,/area/surface/east)
+"aI" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHEAST)"; icon_state = "shoreline"; dir = 6},/area/surface/east)
+"aJ" = (/turf/simulated/wall/wood,/area/surface/center)
+"aK" = (/turf/simulated/floor/wood,/area/surface/center)
+"aL" = (/turf/simulated/floor/water,/area/surface/center)
+"aM" = (/turf/simulated/floor/greengrid,/area/surface/center)
+"aN" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHWEST)"; icon_state = "shoreline"; dir = 9},/area/surface/east)
+"aO" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTH)"; icon_state = "shoreline"; dir = 1},/area/surface/east)
+"aP" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (EAST)"; icon_state = "shorelinecorner"; dir = 4},/area/surface/east)
+"aQ" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (EAST)"; icon_state = "shoreline"; dir = 4},/area/surface/east)
+"aR" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (SOUTHWEST)"; icon_state = "shoreline"; dir = 10},/area/surface/east)
+"aS" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (NORTH)"; icon_state = "shorelinecorner"; dir = 1},/area/surface/east)
+"aT" = (/turf/simulated/floor/water/shoreline,/area/surface/east)
+"aU" = (/obj/effect/landmark{name = "JoinLate"},/turf/simulated/floor/outdoors/dirt,/area/surface/center)
+"aV" = (/obj/effect/landmark/start,/turf/simulated/floor/outdoors/dirt,/area/surface/center)
+"aW" = (/obj/effect/landmark{name = "JoinLate"},/turf/simulated/floor/outdoors/grass/sif,/area/surface/center)
+"aX" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/center)
+"aY" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif,/area/awaymission/example)
+"aZ" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt,/area/awaymission/example)
+"ba" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks,/area/awaymission/example)
+"bb" = (/obj/effect/zone_divider,/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (WEST)"; icon_state = "shoreline"; dir = 8},/area/awaymission/example)
+"bc" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/awaymission/example)
+"bd" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/awaymission/example)
+"be" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southwest)
+"bf" = (/turf/simulated/floor/outdoors/snow,/area/surface/southwest)
+"bg" = (/turf/simulated/floor/outdoors/grass/sif,/area/surface/south)
+"bh" = (/turf/simulated/floor/water,/area/surface/south)
+"bi" = (/turf/simulated/floor/outdoors/dirt,/area/surface/south)
+"bj" = (/turf/simulated/floor/outdoors/grass/sif,/area/surface/southeast)
+"bk" = (/turf/simulated/floor/outdoors/dirt,/area/surface/southeast)
+"bl" = (/turf/simulated/floor/outdoors/rocks,/area/surface/southeast)
+"bm" = (/turf/simulated/floor/water/shoreline/corner{tag = "icon-shorelinecorner (WEST)"; icon_state = "shorelinecorner"; dir = 8},/area/surface/southeast)
+"bn" = (/turf/simulated/floor/water/shoreline{tag = "icon-shoreline (NORTHEAST)"; icon_state = "shoreline"; dir = 5},/area/surface/southeast)
+"bo" = (/turf/simulated/floor/water,/area/surface/southeast)
+"bp" = (/turf/simulated/floor/water/deep,/area/surface/southeast)
+"bq" = (/turf/unsimulated/wall/planetary/sif,/area/surface/southeast)
+"br" = (/turf/simulated/floor/outdoors/grass/sif,/area/surface/southwest)
+"bs" = (/turf/simulated/floor/water/deep,/area/surface/south)
+"bt" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/surface/southwest)
+"bu" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest,/area/awaymission/example)
+"bv" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/surface/south)
+"bw" = (/turf/simulated/floor/outdoors/grass/sif/forest,/area/surface/southeast)
+"bx" = (/turf/unsimulated/wall/planetary/sif,/area/surface/south)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagagagaiagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagagaiaiaiaiaiagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajajajajajajajajaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafagagaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+aaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeakaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiajajaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiagagagagagagagagagagagagagagagagagagagagagagagafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahad
+alamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamanananananananananananananananananananananananananananananananananananananananananaoaoanananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananapapapapapapapapapapapapapapapapapapapapapapapapafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafab
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasauauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayauauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayauauauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayauauauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayauauauauauauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavazazazazazazazazazazazazavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayauauauauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxavavavavavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayauauauauapavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavavazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxavavavavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBavavavavavavavavavavavavavaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxavavavavavavavavavavavavavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxavavavavavavavavavaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaJaKaKaJasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaKaKaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaKaKaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaKaKaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLaLaKaKasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLaLaLaLaLasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLasasaKaKasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLaLaLaLaLasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLasasasasaJaKaKaJasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLasasasasasasasatatasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLaLasasasasasasasasasatatatasasasasasasasasasasasasasasasasasasasasayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasatatasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasatatasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLasasasasasasasasasasasasasasasasatatatasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasatatasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasatatasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasatatasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasatatasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasasatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasayayatatayayayayayayatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayatatayayayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayatatayayayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayatatayayayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasaLaLaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayatatayayayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasaLaLaLaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayatatayayayayayatatatatatatatatataMatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaNaOaOaOaEazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasaLaLaLaLaLasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayatatayayayayayatatatatatatatatataMatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazaNaPaCaCaCaDaOaEazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayatatayayayayayatatatatatatataMaMaMaMaMatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaFaFaFaFaFaFaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazaQaCaFaFaCaCaCaDaOaEazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayatatayayayayayatatatatatatatatataMatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayayaAaBaBaBaBaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaQaCaCaFaFaFaCaCaCaDaEazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayatatatayayayayatatatatatatatatataMatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayaAaBaBaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaNaPaCaCaFaFaFaFaFaCaCaDaOaEazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayatatayayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayatatatatatataoaFaFaFaFaFaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazaNaPaCaCaFaFaBaBaBaFaCaCaCaCaGazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayatatatayayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayatatatatatatatatataoaFaFaFaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazaQaCaCaFaFaBaBaBaBaFaFaFaFaCaDaEazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayatatatayayatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayatatatatatatayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazaRaSaCaFaFaFaBaBaBaBaFaFaFaFaCaDaEazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayatatatatatatatatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaJaLaLaLaLaLayaJayatatatatayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaRaSaCaFaFaFaFaBaBaBaBaFaFaFaCaDaEazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayatatatatayayatatatatatatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatataKaKaKaKaKaKaKaKatatatayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaRaSaCaCaFaFaFaFaFaFaFaFaFaCaCaGazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatatataKaKaKaKaKaKaKaKatatayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaRaSaCaCaFaFaFaFaFaFaCaCaCaCaGazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatayayayayaJayayaLaLaLaLaJayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazaRaTaSaCaCaCaCaCaCaCaHaTaTaIazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayataUaUaUataVatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazazaRaTaTaTaTaTaTaTaIazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayaUaUaUatatatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayaWaWaWayayatatatatatatatatatatayayayayayayayayayayayayayayayayayayayatatatatatayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatatatatayayayayayayayayayayayayatatatatatatayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatatayayayayayayayayayatatatatatatayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaHaTaIazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayatatatatatatayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaHaTaTaTaIazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatayayatatatatatayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaTaTaTaIazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFazazazazazazazazazaNaOaOaOaOaOaOaEazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBazazazazazazazazazazazazaNaOaPaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLayayayayayayayaAaBaBaBaBaBaBaBaBaBaBazazazazazazazazazazazazaOaOaPaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayaAaBaBaBaBaBaBaBaBazazazazazazazazazazazazazazaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayaAaBaBaBaBaBaBaBazazazazazazazazazazazaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaXazazazazazazazazazazazazazazazaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaXazazazazazazazazazazazazaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaLaXazazazazazazazazazazazazaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaXazazazazazazazazazazazazazaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLayayayayayayayaLaLaXazazazazazazazazazazazazazazazaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLayayayayayayayayayayayaAaBaBaBaBazazazazazazazazazazazazazaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayaAaBaBaBaBaBazazazazazazazazazazazazazazaCaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBazazazazazazazazaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFazazazazazazazaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFazazazazazazazaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFazazazazazazaTaSaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFazazazazazaRaSaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCazazazazazaRaTaTaSaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaJaKaKaJayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCazazazazazazazaRaTaIazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaKaKaLaLaLaLaLaLaLaLayayayayayayayaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaDaOaOaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaKaKaLaLaLaLaLaLaLaLaLayayayayaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaKaKaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaDaOaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaLaKaKaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLaLaLayayayayaJaKaKaJayayayaLaLaLaLaLaLaLaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLayayayayayayayayatatayayayayayayayayayayaLaLaLaLaLaLaLayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLaLayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLaLayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLaLayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLaLayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaDaEazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLaLayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayatatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanasayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaCaGazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+aqarararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararararanayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaLaLaLayayayayayayayayayayayayayayayatatayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayayaAaBaBaBaBaBaBaBaBaBaBaBaBaBaFaFaFaFaFaFaCaCaCaCaCaCaCaCaCaCaCaCaHaIazazazazazazazazazazazazazazazazazazazazazazazazazazazaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaxaw
+alakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakanaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaXaXaXaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaoaoaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaYaYaYaYaYaYaYaYaYaYaYaYaYaZaZaZaZaZaZbababababababababababababbbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdab
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfakbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblbmbnbobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbgbgbgbgbgbgbgbgbgbibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbgbgbgbgbgbgbgbgbgbibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbgbgbgbgbgbgbgbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbgbgbgbgbgbgbgbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbgbgbgbgbgbgbgbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbgbgbgbgbgbgbgbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbgbgbgbgbgbgbgbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbgbgbgbgbgbibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbgbgbgbgbibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbgbgbibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbgbibibibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbhbhbhbhbhbibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbhbhbhbhbhbibibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbhbhbhbhbhbhbibibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebfbfbfbfbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbhbhbhbhbhbhbhbibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbhbhbhbhbhbhbhbibibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbsbhbhbhbhbhbhbhbibibibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbsbhbhbhbhbhbhbhbhbhbibibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbibibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbibibibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbibibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbpbobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbibibibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbibibibgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbrbrbrbrbrbrbrbrbrbraYbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbsbsbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbsbsbsbsbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbobobobq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbhbhbhbhbhbhbhbhbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkblblblblbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbkbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbkbkbkbkbkbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgbgbgbgbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbgbgbgbgbgaYbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbtbubvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbvbubwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbwbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbjbq
+bebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebebealbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxbxalbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbq
+"}
diff --git a/maps/southern_cross/southern_cross-5.dmm b/maps/southern_cross/southern_cross-5.dmm
new file mode 100644
index 0000000000..f57ff23a52
--- /dev/null
+++ b/maps/southern_cross/southern_cross-5.dmm
@@ -0,0 +1,633 @@
+"aa" = (/turf/space,/area/space)
+"ab" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"ac" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"ad" = (/turf/simulated/mineral,/area/space)
+"ae" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
+"af" = (/obj/structure/lattice,/turf/space,/area/space)
+"ag" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
+"ah" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
+"ai" = (/turf/unsimulated/wall,/area/space)
+"aj" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 8},/obj/item/clothing/glasses/sunglasses/prescription,/obj/item/clothing/glasses/sunglasses/prescription,/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"ak" = (/obj/structure/table/standard,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/obj/item/device/radio/headset/syndicate/alt,/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"al" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"am" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/space)
+"an" = (/obj/item/weapon/bedsheet/hos,/obj/structure/bed/padded,/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"ao" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"ap" = (/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"aq" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/space)
+"ar" = (/turf/unsimulated/wall/fakeglass,/area/space)
+"as" = (/obj/structure/undies_wardrobe,/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"at" = (/obj/structure/table/standard,/obj/item/device/pda/syndicate,/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"au" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"av" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"aw" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"ax" = (/obj/machinery/door/airlock/centcom{name = "Barracks"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "lino"},/area/space)
+"ay" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space)
+"az" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"aA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"aB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"aC" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space)
+"aD" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"aE" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"aF" = (/obj/structure/sign/double/map/left{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"aG" = (/obj/structure/sign/double/map/right{pixel_y = 32},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"aH" = (/obj/machinery/vending/snack{name = "hacked Getmore Chocolate Corp"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"aI" = (/obj/structure/table/standard,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aJ" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aK" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aL" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aM" = (/obj/effect/landmark{name = "Nuclear-Code"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space)
+"aN" = (/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"aO" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space)
+"aP" = (/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space)
+"aQ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
+"aR" = (/obj/structure/table/standard,/obj/machinery/recharger,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"aS" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"aT" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"aU" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"aV" = (/obj/structure/table/standard,/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"aW" = (/obj/structure/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"aX" = (/obj/machinery/door/airlock/centcom{name = "Kitchen"; opacity = 1; req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aY" = (/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"aZ" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"ba" = (/obj/structure/table/standard,/obj/machinery/microwave{pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bb" = (/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bc" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bd" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"be" = (/obj/item/weapon/folder{pixel_y = 2},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bf" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_y = 4},/obj/structure/table/glass,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bg" = (/obj/structure/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bh" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"bi" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/green,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/green,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bj" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/blue,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/blue,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bk" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 3},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bl" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bm" = (/obj/structure/frame/computer,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bn" = (/obj/structure/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bo" = (/obj/machinery/vending/cola{name = "hacked Robust Softdrinks"; prices = list()},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bp" = (/obj/structure/closet/secure_closet/freezer/kitchen{req_access = list(150)},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"bq" = (/obj/structure/reagent_dispensers/beerkeg/fakenuke,/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"br" = (/obj/structure/table/reinforced,/obj/item/weapon/tray{pixel_y = 5},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"bs" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 12},/obj/item/weapon/reagent_containers/food/drinks/bottle/wine{pixel_x = -1; pixel_y = 8},/turf/unsimulated/floor{icon_state = "white"},/area/space)
+"bt" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/med,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/med,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bu" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bv" = (/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 15},/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bw" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bx" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 8},/obj/item/weapon/pen{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"by" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/space)
+"bz" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/engie,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bA" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bB" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
+"bC" = (/obj/machinery/door/window/northright{name = "Flight Deck"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bD" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space)
+"bE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"bF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"bG" = (/obj/structure/urinal{pixel_y = 32},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bH" = (/obj/machinery/shower{pixel_y = 32},/obj/structure/window/basic{dir = 8},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bI" = (/obj/machinery/shower{pixel_y = 32},/obj/item/weapon/soap/syndie,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bJ" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bK" = (/obj/structure/table/rack,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava/tactical,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/obj/item/clothing/mask/balaclava,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bL" = (/obj/structure/closet/secure_closet/medical_wall{pixel_x = -32; pixel_y = 0; req_access = list(150)},/obj/item/stack/medical/splint,/obj/item/stack/medical/ointment,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack,/obj/item/weapon/storage/belt/medical/emt,/obj/item/weapon/storage/belt/medical/emt,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bM" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bN" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bO" = (/obj/structure/closet/hydrant{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bP" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/ammo_magazine/mc9mm/flash,/obj/item/weapon/gun/projectile/pistol/flash,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"bR" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bS" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bT" = (/obj/machinery/shower{dir = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"bU" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/obj/item/clothing/suit/storage/vest/heavy/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"bV" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bW" = (/obj/structure/bed/chair{dir = 8},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bX" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"bY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"bZ" = (/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/space)
+"ca" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"cb" = (/obj/machinery/door/airlock/centcom{name = "Suit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cc" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cd" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/item/weapon/reagent_containers/food/snacks/liquidfood,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ce" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
+"cf" = (/obj/structure/table/rack,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/material/hatchet/tacknife/combatknife,/obj/item/weapon/material/hatchet/tacknife/combatknife,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cg" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = 32},/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"ch" = (/obj/structure/table/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/obj/item/weapon/crowbar/red,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"ci" = (/obj/structure/table/rack,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cj" = (/obj/structure/table/rack,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/obj/item/device/flashlight/maglight,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"ck" = (/obj/structure/table/rack,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera_film,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cl" = (/obj/structure/table/rack,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/ammo_magazine/a10mm,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cm" = (/obj/structure/table/rack,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/ammo_magazine/c762,/obj/item/weapon/gun/projectile/automatic/sts35,/obj/item/weapon/gun/projectile/automatic/sts35,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cn" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"co" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cp" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
+"cq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/space)
+"cr" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/handcuffs{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/smokes,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cs" = (/obj/structure/table/rack,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/pinpointer/nukeop,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/obj/item/weapon/shield/energy,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"ct" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cu" = (/obj/structure/toilet{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/space)
+"cv" = (/obj/machinery/flasher{id = "syndieflash"; pixel_x = 0; pixel_y = 28},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/space)
+"cw" = (/obj/item/device/radio/electropack,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/space)
+"cx" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 0; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cy" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cA" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 1},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 8; pixel_y = 25},/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cC" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"cD" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_base_hatch"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cE" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cF" = (/obj/machinery/door/airlock/vault{name = "Armory"; req_access = list(150)},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cG" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cH" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cI" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space)
+"cJ" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space)
+"cK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/space)
+"cL" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/space)
+"cM" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/space)
+"cN" = (/obj/machinery/door/window{dir = 2; name = "Seating"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cO" = (/obj/machinery/door/window{tag = "icon-right"; name = "Seating"; icon_state = "right"; dir = 2; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cP" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cQ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cR" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cS" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"cT" = (/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cU" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/weapon/tank/jetpack/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cV" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/tank/jetpack/carbondioxide,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cW" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cX" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cY" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"cZ" = (/obj/machinery/door/window{dir = 1; name = "Cell"; req_access = list(150)},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"da" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"db" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVend"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dc" = (/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/space)
+"dd" = (/obj/machinery/door/airlock/external{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"de" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
+"df" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/space)
+"dg" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dh" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"di" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/obj/item/clothing/accessory/storage/white_vest,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dj" = (/obj/structure/table/rack,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/obj/item/device/binoculars,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dk" = (/obj/structure/table/rack,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dl" = (/obj/structure/table/rack,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/obj/item/device/radio,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dm" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/obj/machinery/recharger/wallcharger{pixel_x = 5; pixel_y = -32},/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dn" = (/obj/structure/table/rack,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/obj/item/weapon/tank/emergency/oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"do" = (/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"dp" = (/turf/simulated/shuttle/wall/voidcraft/red{join_group = "base"; name = "base wall"},/area/space)
+"dq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"dr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"ds" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"dt" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"du" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"dv" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"dw" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"dx" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dy" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dz" = (/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dA" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dB" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dC" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dD" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dE" = (/obj/machinery/door/airlock/centcom{name = "Hardsuit Storage"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dF" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/door/airlock/voidcraft{frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"dG" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/wall/voidcraft/red,/area/syndicate_station/start)
+"dI" = (/obj/structure/table/steel,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"dJ" = (/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"dK" = (/obj/machinery/autolathe{hacked = 1; name = "hacked autolathe"},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"dM" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/turf/simulated/floor/airless,/area/syndicate_station/start)
+"dN" = (/obj/structure/shuttle/engine/router{tag = "icon-router (WEST)"; icon_state = "router"; dir = 8},/turf/simulated/floor/airless,/area/syndicate_station/start)
+"dO" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (EAST)"; icon_state = "propulsion_r"; dir = 4},/turf/space,/area/syndicate_station/start)
+"dP" = (/obj/structure/table/standard,/obj/item/weapon/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dQ" = (/obj/machinery/door/window{dir = 4; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dR" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dS" = (/obj/structure/closet/syndicate/suit{name = "suit closet"},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"dT" = (/obj/structure/table/rack,/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/void/merc,/obj/item/clothing/mask/gas/syndicate,/obj/item/clothing/head/helmet/space/void/merc,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"dW" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/button/remote/blast_door{id = "smindicate"; name = "ship lockdown control"; pixel_x = -25},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"dX" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "merc_shuttle_sensor"; pixel_x = 28; pixel_y = 8},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"eb" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"ec" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"ee" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/structure/table/steel,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"ef" = (/obj/machinery/light{dir = 4},/obj/structure/table/rack,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eg" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/syndicate_station/start)
+"eh" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ei" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Brig"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ej" = (/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "Preparation"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ek" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"el" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"em" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-map (WEST)"; icon_state = "map"; dir = 8},/obj/machinery/door/airlock/voidcraft/vertical{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"en" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/light/small,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"eo" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "merc_shuttle_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "merc_shuttle"; pixel_x = -8; pixel_y = -25; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"ep" = (/obj/machinery/door/airlock/voidcraft/vertical{frequency = 1331; id_tag = "merc_shuttle_inner"; name = "Ship External Access"; req_access = list(0)},/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"eq" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "merc_shuttle"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"er" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"es" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/meter,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"et" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eu" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/structure/table/steel,/obj/item/weapon/storage/box/frags,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"ew" = (/obj/machinery/porta_turret/ai_defense,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eB" = (/obj/structure/table/steel,/obj/effect/spawner/newbomb/timer/syndicate,/obj/item/weapon/screwdriver,/obj/item/device/assembly/signaler{pixel_y = 2},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eC" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eD" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"eE" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"eF" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (EAST)"; icon_state = "propulsion_l"; dir = 4},/turf/space,/area/syndicate_station/start)
+"eG" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"eH" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"eI" = (/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"eJ" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"eK" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"eL" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eM" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eN" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eO" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/signaler{pixel_y = 2},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eP" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eQ" = (/obj/structure/table/standard,/obj/item/clothing/gloves/yellow,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"eR" = (/obj/structure/frame/computer,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eS" = (/obj/structure/frame/computer,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eT" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eU" = (/obj/machinery/suit_cycler/syndicate{locked = 0},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eV" = (/obj/machinery/light,/obj/structure/closet/syndicate/suit{name = "suit closet"},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eY" = (/obj/machinery/light,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"eZ" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_x = 0; pixel_y = -25; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fa" = (/obj/machinery/door/blast/regular{dir = 4; id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fb" = (/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fc" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"ff" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fg" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fh" = (/obj/structure/table/standard,/obj/item/weapon/screwdriver,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"fj" = (/obj/structure/table/rack,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/obj/item/device/suit_cooling_unit,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"fk" = (/obj/structure/table/rack,/obj/item/weapon/rig/merc/empty,/turf/unsimulated/floor{icon_state = "dark"},/area/space)
+"fl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"fm" = (/obj/structure/table/steel_reinforced,/obj/machinery/button/remote/blast_door{id = "syndieshutters"; name = "remote shutter control"; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fn" = (/obj/structure/bed/chair/comfy/red{tag = "icon-comfychair_preview (NORTH)"; icon_state = "comfychair_preview"; dir = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fo" = (/obj/machinery/light{dir = 4},/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fp" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fq" = (/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fr" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fs" = (/obj/machinery/door/airlock/voidcraft,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"ft" = (/obj/machinery/vending/cigarette{name = "hacked cigarette machine"; prices = list(); products = list(/obj/item/weapon/storage/fancy/cigarettes = 10, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fv" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fw" = (/obj/structure/table/rack,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fx" = (/obj/structure/table/rack,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fy" = (/obj/structure/table/rack,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"fB" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fC" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fD" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fE" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fF" = (/obj/item/weapon/stool/padded,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fG" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/frags,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"fI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"fJ" = (/obj/machinery/turretid{pixel_x = 32; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fK" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fL" = (/obj/machinery/turretid{pixel_x = 0; pixel_y = 32; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fM" = (/obj/structure/table/rack,/obj/item/device/aicard,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"fP" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fQ" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fR" = (/obj/structure/table/standard,/obj/item/device/aicard,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"fS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "syndieshutters_workshop"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/space)
+"fT" = (/obj/machinery/computer/shuttle_control/multi/syndicate,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"fU" = (/obj/structure/bed/chair/comfy/red{tag = "icon-comfychair_preview (WEST)"; icon_state = "comfychair_preview"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fV" = (/obj/machinery/door/airlock/voidcraft/vertical,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fW" = (/mob/living/simple_animal/cat/kitten{name = "Enola"},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"fX" = (/obj/machinery/door/airlock/voidcraft/vertical,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fY" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"fZ" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ga" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gb" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gc" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gd" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ge" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_telebay"; name = "remote shutter control"; pixel_x = 0; pixel_y = -25; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gf" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_workshop"; name = "remote shutter control"; pixel_x = 25},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gg" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"gh" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gi" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gj" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/surgicaldrill,/obj/item/weapon/surgical/cautery,/obj/item/weapon/surgical/retractor,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gn" = (/obj/machinery/door/window{dir = 1; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"go" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/circular_saw,/obj/item/weapon/surgical/FixOVein{pixel_x = -6; pixel_y = 1},/obj/item/weapon/surgical/hemostat,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gp" = (/obj/structure/table/standard,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/adv{pixel_x = 1},/obj/item/weapon/storage/firstaid/fire{pixel_x = 1},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gq" = (/obj/structure/table/standard,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gr" = (/obj/item/weapon/weldingtool,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gs" = (/obj/structure/sign/securearea{name = "\improper CAUTION"; pixel_x = 32},/obj/machinery/light{dir = 4},/obj/structure/mopbucket,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gt" = (/obj/machinery/telecomms/allinone{intercept = 1},/obj/machinery/door/window/northright{name = "Telecoms Mainframe"; req_access = list(150)},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gu" = (/obj/machinery/door/blast/regular{id = "syndieshutters_telebay"; name = "Outer Airlock"},/turf/simulated/shuttle/plating,/area/space)
+"gv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"gw" = (/obj/structure/table/steel_reinforced,/obj/machinery/recharger,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"gx" = (/obj/structure/bed/chair/comfy/red,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gy" = (/obj/machinery/vending/assist{contraband = null; name = "AntagCorpVend"; products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/weapon/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/weapon/cartridge/signal = 4, /obj/item/clothing/glasses/sunglasses = 4)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"gA" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gB" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/syndicate{pixel_x = -1; pixel_y = 3},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gC" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/obj/machinery/light/small,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gD" = (/obj/structure/table/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gG" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gH" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gI" = (/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gK" = (/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gM" = (/obj/structure/frame/computer,/obj/machinery/light,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"gN" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"gQ" = (/obj/machinery/light{dir = 1},/obj/structure/table/steel,/obj/item/roller,/obj/item/roller,/obj/item/roller,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gR" = (/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gS" = (/obj/machinery/atmospherics/pipe/manifold/visible{tag = "icon-map (WEST)"; icon_state = "map"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gT" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"gU" = (/obj/machinery/iv_drip,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gV" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gW" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/standard,/obj/item/weapon/surgical/scalpel,/obj/item/weapon/surgical/bonesetter,/obj/item/weapon/surgical/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/stack/medical/advanced/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gX" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/space)
+"gY" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"gZ" = (/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/space)
+"ha" = (/obj/machinery/door/airlock/voidcraft,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"hc" = (/obj/machinery/door/window{dir = 8; name = "Cell"; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"hd" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"he" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hf" = (/obj/machinery/atmospherics/portables_connector{tag = "icon-map_connector (EAST)"; icon_state = "map_connector"; dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hg" = (/obj/structure/table/steel,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hh" = (/obj/machinery/atmospherics/unary/freezer{tag = "icon-freezer_0 (WEST)"; icon_state = "freezer_0"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hi" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/space)
+"hj" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space)
+"hk" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/space,/area/space)
+"hl" = (/obj/structure/toilet{dir = 4},/obj/machinery/flasher{id = "syndieflash"; pixel_x = -28; pixel_y = 0},/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"hm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"hn" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"ho" = (/obj/machinery/light{dir = 4},/obj/machinery/button/flasher{id = "syndieflash"; name = "Flasher"; pixel_x = 27; pixel_y = 0; tag = "permflash"},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"hp" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/window{dir = 8; name = "Surgery"; req_access = list(150)},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hq" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hs" = (/obj/structure/closet{name = "custodial"},/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"ht" = (/obj/structure/mopbucket,/turf/simulated/shuttle/floor/voidcraft/dark,/area/syndicate_station/start)
+"hu" = (/obj/structure/table/steel,/obj/item/weapon/material/kitchen/utensil/knife{pixel_x = -6},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 9},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/syringe/drugs{pixel_x = 3; pixel_y = -1},/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"hv" = (/obj/item/device/radio/electropack,/obj/structure/table/steel,/turf/simulated/shuttle/floor/voidcraft,/area/syndicate_station/start)
+"hw" = (/obj/machinery/button/remote/blast_door{id = "syndieshutters_infirmary"; name = "remote shutter control"; pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/steel,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/nanopaste,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hy" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/closet/secure_closet/medical_wall{pixel_x = 32; pixel_y = 0; req_access = list(150)},/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/obj/item/clothing/mask/surgical,/obj/item/clothing/gloves/latex,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hz" = (/obj/machinery/bodyscanner{dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hA" = (/obj/machinery/body_scanconsole,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/steel,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hC" = (/obj/machinery/optable,/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hD" = (/obj/machinery/iv_drip,/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/syndicate_station/start)
+"hE" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/machinery/turretid{pixel_x = 32; req_access = list(150)},/obj/machinery/turretid{pixel_x = 32; req_access = list(150)},/turf/simulated/floor/airless,/area/syndicate_station/start)
+"hF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"hG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"hH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
+"hK" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+"hL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacac
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaadadadaaaaaaaaaaadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaadadadadadadadadadaaadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaeaaafadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaeafadadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaeaaadadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaaaaaaaaaagafadadadadadadadadadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadaaaaaaaaaaaaahaaafadadaiaiaiaiaiadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaiaiajakalaiaiadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaamanaoapaoanaiadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaqanaoapaoanaiadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaranaoapaoanaiadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaiapapapaiaiadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaadadadadadaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiasapataiadadadadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauavavawaiaiaxaiaiaiaiaiaiaiadadadaiaiaiaiaiaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaayazaAaAaAaBaCaaaaaDaEaFaGaEaEaEaHaiaIaJaKaLaiadadadaiaMaNaOaPaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaayaQaRaSaTaUaVaQaCaaaDaEaWaWaEaEaEaEaXaYaYaYaZaiadadadaiaiaiaiaiaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaQbabbbbbcbbbbaUaQaaaDbdbebfbgaEaEaEaiaYaYaYbhaiadadadaibiaNaNbjaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaQbkbbbbbbbbblbmaQaaaDaEbnbnaEaEaEboaibpbqbrbsaiadadadaibtaNaNbuaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQbvbbbbbwbbbbbxaQaaaDaEaEaEaEaEaEbyaiaiaiaiaiaiadadadaibzaNaNbAaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBaQbCaQaQaQaQaQbDaabEavavbFaiaPaPaPaibGbGbHbIaiadadadaibJaNaNbKaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQbLbMbNbObPaQaaaaaaaaaaaabQaPaPaPbRbSbSbTbTaiadadadaibJaNaNbUaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQbVbWblbbbXaQaaaaaaaaaaaabYaPaPaPaibZbSaiaiaiaiaiaiaicacbcbcaaiaiaiaiadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaQccbMblbbcdaQaCaaaaahagceaiaPaPaPaiaiaiaicfcgchcicjckaNaNaNaNclclcmaiaiad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaQaQaQaQcnbMblbbcoaQaQaQaQaCcpcpaicqaPaPaPaicrcsaNaNaNaNaNaNaNaNaNaNaNaNaNctaiad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQcucvcwaQcxbbbbcyaQaQczcAcBcCcDcEcDaPaPaPaPcFaNaNaNaNaNaNaPaNcGaNaNaNaNaNaNcHaiad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIcDcDcJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaacKcLcMcLaQaQcNcOaQaQcPcQcRcScCcDcTcDaPaPaPaPaicUcVaNaNaNaNaNaNaNaNaNaNaNaNaNcWaiad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIcXcYcJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayazaAaAaAaBaCaaaaaDaEaFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaQaQcKcZaQaQdabbdbaQaQdcdddcaQdedeaidfavbFaiaiaiaidgdhdidjdkdlaNaNaNaNdmdmdnaiaiad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIcDcDcJaaaaaaaaaaaadododqdrdsdododododododoaaaaaaaaaaaaaaaaaaaaayaQaRaSaTaUaVaQaCaaaDaEaWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaQdxbbbbdyaQdzbbbbaQdAdBdCdDaQafaaafaaaaaaaaadadaiaiaiaiaiaiaicadEdEcaaiaiaiaiadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadodFdFdoaaaaaadododododIdJdJdJdJdJdKdodMdNdOaaaaaaaaaaaaaaaaaaaaaQbabbbbbcbbbbaUaQaaaDbdbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaQdPbbbbbbdQbbbbbbdRbbbbbbdSaQagagagagaaaaaaaaadadadadadadadaidTaNaNdTaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaaaaaadododododtdWdXdudvdododoebecdoeedJdJdJdJdJefdodMdNegaaaaaaaaaaaaaaaaaaaaaQbkbbbbbbbbblbmaQaaaDaEbnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaQehbbbbbbeibbbbbbejbbbbbbekaQaaaaaaaaaaaaaaaaaaadadadadadadaidTaNaNdTaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaadodododJdJelemeneoepeqereresetdJdoeudJdJdJdododododMdNegaaaaaaaaaaaaaaaaaaaaaQbvbbbbbwbbbbbxaQaaaDaEaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaayaQaQaQaQaQaQbbbbbbaQaQaQaQaQaQaCaaaaaaaaaaaeaaafadadadadadadaidTaNaNdTaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaadodododoewdJdJdodwdudududGdJdJdJdJewdoeBdJdJeCdoeDeEdodMdNeFaaaaaaaaaaaaaaaaaaaabBaQbCaQaQaQaQaQbDaabEavavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaQeGeHeIeJeKaQeLbbeMaQeNeOeOePeQaQaaaaaaaaaaaeafadadadadadadadaidTaNaNdTaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdodoeReSdodJdJeTdodJdJdJdJdoeUeVdJdJdododoeYdJeZfafbfcdododododoaaaaaaaaaaaaaaaaaaaaaQbLbMbNbObPaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaafeffffffffffaQbbbbbbaQfgbbbbbbfhfiaaaaaaaaaaahaaadadadadadadadaiaifjfkaiaiadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpflfmdJfndodJdJfodofpfqfqfrdodododofsdoftdodofsdodofbfvdofwfxfydodoaaaaaaaaaaaaaaaaaaaQbVbWblbbbXaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaafAfBfCfffffffDbbbbbbfEbbbbbbfFfGfHaaaaaaaaaaaeafafadadadadadadadaiaiaiaiadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpfIeSfqfJdodJdJeTdodJfqfqdJdodJfKfLfqdJdJdJfKfqdJdodododofbfbfbfMdodoaaaaaaaaaaaaaaayaQccbMblbbcdaQaCaaaaahagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfffffffffffPbbbbbbfQbbbbbbbbfRfSaaaaaaaaaaaeaaaaafadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpfIfTfUfqfVfqfqfqfVfqfqfqfqfVfqfqfqfqfqfWfqfqfqfbfbfbfbfXfbfbfbfbfYdoaaaaaaaaayaQaQaQaQcnbMblbbcoaQaQaQaQaCcpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQfZffffffgaaQdcgbdcaQgcgdgebbgfaQaaaaaaaaaaaaaaaaaaadadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpfIggfqghdodJdJeTdodJfqfqdJdodJeYdJfqdJdJdJeYfqdJdodododogifbfbgjdodoaaaaaaaaaQcucvcwaQcxbbbbcyaQaQczcAcBcCcDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgmgngogpgqaQgrbbgsaQgtaQaQguaQaQaaaaaaaaaaaaaaaeaaafadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpgvgwdJgxdodJdJfodofpfqfqfrdodododofsdogydodofsdodogAgAdogBgCgDdodoaaaaaaaaaacKcLcMcLaQaQcNcOaQaQcPcQcRcScCcDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgFffgGaQaQaQgHbbgIaQaQaQgJbbgKaQaaaaaaaaaaaaaaaeafafadadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdodogMeSdodJdJeTdodJdJdJdJdogNgOdodJdododogQfqgRfqgSgTdododododoaaaaaaaaaaaaaQaQcKcZaQaQdabbdbaQaQdcdddcaQdeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgUgVgWaQaaaQgXgXgXaQaaaQaUgYgZaQaaaaaaaaaaaaaaaeaaafaaadadadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaadodododoewdJdJdododohadodofbfbhcdJeTdohdhefqfqhfhghhdodMdNdOaaaaaaaaaaaaaaaQdxbbbbdyaQdzbbbbaQdAdBdCdDaQafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgXgXgXaQaabBhihjhkbDaaaQgXgXgXaQaaaaaaaaaaaaaaaeafafafafafadadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaadodododJdJdJdoeDfbdohlfbfbhmhnhodofqfqfqfqhphqhrdodMdNegaaaaaaaaaaaaaaaQdPbbbbbbdQbbbbbbdRbbbbbbdSaQagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaabBhihjhkbDaaaaaaaaaaaaaabBhihjhkbDaaaaaaaaaaaaaaaeaaafaaafaaaaadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaaaaaadododododohshtdodohmdodohuhvdohwfqfqfqhxfqhydodMdNegaaaaaaaaaaaaaaaQehbbbbbbeibbbbbbejbbbbbbekaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaaaaaaaaaaaaaadodododoaaaaaadodododohzhAfqfqhBhChDdohEdNeFaaaaaaaaaaaaayaQaQaQaQaQaQbbbbbbaQaQaQaQaQaQaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadodohFhGhHdododododododoaaaaaaaaaaaaaQeGeHeIeJeKaQeLbbeMaQeNeOeOePeQaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpdpaaaaaaaaaaaaaaaaaaaafeffffffffffaQbbbbbbaQfgbbbbbbfhfiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafAfBfCfffffffDbbbbbbfEbbbbbbfFfGfHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOfffffffffffPbbbbbbfQbbbbbbbbfRfSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQfZffffffgaaQdcgbdcaQgcgdgebbgfaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgmgngogpgqaQgrbbgsaQgtaQaQguaQaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgFffgGaQaQaQgHbbgIaQaQaQgJbbgKaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgUgVgWaQaaaQgXgXgXaQaaaQaUgYgZaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQgXgXgXaQaabBhihjhkbDaaaQgXgXgXaQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBhihjhkbDaaaaaaaaaaaaaabBhihjhkbDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaadadadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaad
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahLacacacacacacacacacacacacacacacacacacacacachKacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacac
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
+
diff --git a/maps/southern_cross/southern_cross.dm b/maps/southern_cross/southern_cross.dm
new file mode 100644
index 0000000000..68819ce53a
--- /dev/null
+++ b/maps/southern_cross/southern_cross.dm
@@ -0,0 +1,15 @@
+// You probably don't want to tick this file yet.
+
+#if !defined(USING_MAP_DATUM)
+
+ #include "southern_cross_defines.dm"
+
+ #define USING_MAP_DATUM /datum/map/southern_cross
+
+ // todo: map.dmm-s here
+
+#elif !defined(MAP_OVERRIDE)
+
+ #warn A map has already been included, ignoring Southern Cross
+
+#endif
\ No newline at end of file
diff --git a/maps/southern_cross/southern_cross_areas.dm b/maps/southern_cross/southern_cross_areas.dm
new file mode 100644
index 0000000000..62d4596fb2
--- /dev/null
+++ b/maps/southern_cross/southern_cross_areas.dm
@@ -0,0 +1,38 @@
+/area/surface
+ name = "The Surface (Don't Use)"
+
+/area/surface/center
+ name = "Outpost"
+ icon_state = "center"
+
+/area/surface/north
+ name = "Mountains"
+ icon_state = "north"
+
+/area/surface/south
+ name = "Lake"
+ icon_state = "south"
+
+/area/surface/east
+ name = "Shoreline"
+ icon_state = "east"
+
+/area/surface/west
+ name = "Snowfields"
+ icon_state = "west"
+
+/area/surface/northeast
+ name = "Depths"
+ icon_state = "northeast"
+
+/area/surface/northwest
+ name = "To Be Decided"
+ icon_state = "northwest"
+
+/area/surface/southwest
+ name = "Glowing Forest"
+ icon_state = "southwest"
+
+/area/surface/southeast
+ name = "To Be Decided"
+ icon_state = "southeast"
\ No newline at end of file
diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm
new file mode 100644
index 0000000000..15a4b1bf4e
--- /dev/null
+++ b/maps/southern_cross/southern_cross_defines.dm
@@ -0,0 +1,41 @@
+// To be filled out when more progress on the new map occurs.
+
+/datum/map/southern_cross
+ name = "Southern Cross"
+ full_name = "Southern Cross"
+ path = "southern_cross"
+
+ lobby_icon = 'icons/misc/title.dmi'
+ lobby_screens = list("mockingjay00") // New lobby screen if possible.
+
+ station_levels = list()
+
+ admin_levels = list()
+ contact_levels = list()
+
+ player_levels = list()
+
+ sealed_levels = list()
+ empty_levels = list()
+ accessible_z_levels = list()
+ base_turf_by_z = list()
+
+ station_name = "Southern Cross"
+ station_short = "Southern Cross"
+ dock_name = "NCS Northern Star" // Now we're the centcom!
+ boss_name = "Central Command"
+ boss_short = "Centcomm"
+ company_name = "NanoTrasen"
+ company_short = "NT"
+ starsys_name = "Vir"
+
+ shuttle_docked_message = "The scheduled shuttle to the %dock_name% has docked with the station at docks one and two. It will depart in approximately %ETD%."
+ shuttle_leaving_dock = "The Crew Transfer Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ shuttle_called_message = "A crew transfer to %Dock_name% has been scheduled. The shuttle has been called. Those leaving should procede to docks one and two in approximately %ETA%"
+ shuttle_recall_message = "The scheduled crew transfer has been cancelled."
+ emergency_shuttle_docked_message = "The Emergency Shuttle has docked with the station at docks one and two. You have approximately %ETD% to board the Emergency Shuttle."
+ emergency_shuttle_leaving_dock = "The Emergency Shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%."
+ emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive at docks one and two in approximately %ETA%"
+ emergency_shuttle_recall_message = "The emergency shuttle has been recalled."
+
+ station_networks = list()
\ No newline at end of file
diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm
new file mode 100644
index 0000000000..0ee2316a4b
--- /dev/null
+++ b/maps/~map_system/maps.dm
@@ -0,0 +1,114 @@
+
+var/datum/map/using_map = new USING_MAP_DATUM
+var/list/all_maps = list()
+
+/hook/startup/proc/initialise_map_list()
+ for(var/type in typesof(/datum/map) - /datum/map)
+ var/datum/map/M
+ if(type == using_map.type)
+ M = using_map
+ M.setup_map()
+ else
+ M = new type
+ if(!M.path)
+ log_debug("Map '[M]' does not have a defined path, not adding to map list!")
+ else
+ all_maps[M.path] = M
+ return 1
+
+
+/datum/map
+ var/name = "Unnamed Map"
+ var/full_name = "Unnamed Map"
+ var/path
+
+ var/list/station_levels = list() // Z-levels the station exists on
+ var/list/admin_levels = list() // Z-levels for admin functionality (Centcom, shuttle transit, etc)
+ var/list/contact_levels = list() // Z-levels that can be contacted from the station, for eg announcements
+ var/list/player_levels = list() // Z-levels a character can typically reach
+ var/list/sealed_levels = list() // Z-levels that don't allow random transit at edge
+ var/list/empty_levels = null // Empty Z-levels that may be used for various things (currently used by bluespace jump)
+
+ var/list/map_levels // Z-levels available to various consoles, such as the crew monitor (when that gets coded in). Defaults to station_levels if unset.
+ var/list/base_turf_by_z = list() // Custom base turf by Z-level. Defaults to world.turf for unlisted Z-levels
+
+ //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
+ var/list/accessible_z_levels = list()
+
+ var/list/allowed_jobs = list() //Job datums to use.
+ //Works a lot better so if we get to a point where three-ish maps are used
+ //We don't have to C&P ones that are only common between two of them
+ //That doesn't mean we have to include them with the rest of the jobs though, especially for map specific ones.
+ //Also including them lets us override already created jobs, letting us keep the datums to a minimum mostly.
+ //This is probably a lot longer explanation than it needs to be.
+
+ var/station_name = "BAD Station"
+ var/station_short = "Baddy"
+ var/dock_name = "THE PirateBay"
+ var/boss_name = "Captain Roger"
+ var/boss_short = "Cap'"
+ var/company_name = "BadMan"
+ var/company_short = "BM"
+ var/starsys_name = "Dull Star"
+
+ var/shuttle_docked_message
+ var/shuttle_leaving_dock
+ var/shuttle_called_message
+ var/shuttle_recall_message
+ var/emergency_shuttle_docked_message
+ var/emergency_shuttle_leaving_dock
+ var/emergency_shuttle_called_message
+ var/emergency_shuttle_recall_message
+
+ var/list/station_networks = list() // Camera networks that will show up on the console.
+
+ var/allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage")
+
+ var/lobby_icon = 'icons/misc/title.dmi' // The icon which contains the lobby image(s)
+ var/list/lobby_screens = list("mockingjay00") // The list of lobby screen to pick() from. If left unset the first icon state is always selected.
+
+ var/default_law_type = /datum/ai_laws/nanotrasen // The default lawset use by synth units, if not overriden by their laws var.
+
+ var/id_hud_icons = 'icons/mob/hud.dmi' // Used by the ID HUD (primarily sechud) overlay.
+
+/datum/map/New()
+ ..()
+ if(!map_levels)
+ map_levels = station_levels.Copy()
+ if(!allowed_jobs || !allowed_jobs.len)
+ allowed_jobs = subtypesof(/datum/job)
+
+/datum/map/proc/setup_map()
+ return
+
+/datum/map/proc/perform_map_generation()
+ return
+
+// Used to apply various post-compile procedural effects to the map.
+/datum/map/proc/refresh_mining_turfs()
+
+ set background = 1
+ set waitfor = 0
+
+ // Update all turfs to ensure everything looks good post-generation. Yes,
+ // it's brute-forcey, but frankly the alternative is a mine turf rewrite.
+ for(var/turf/simulated/mineral/M in world) // Ugh.
+ M.update_icon()
+
+/datum/map/proc/get_network_access(var/network)
+ return 0
+
+// By default transition randomly to another zlevel
+/datum/map/proc/get_transit_zlevel(var/current_z_level)
+ var/list/candidates = using_map.accessible_z_levels.Copy()
+ candidates.Remove(num2text(current_z_level))
+
+ if(!candidates.len)
+ return current_z_level
+ return text2num(pickweight(candidates))
+
+/datum/map/proc/get_empty_zlevel()
+ if(empty_levels == null)
+ world.maxz++
+ empty_levels = list(world.maxz)
+ return pick(empty_levels)
\ No newline at end of file
diff --git a/nano/css/shared.css b/nano/css/shared.css
index 8728102b08..815171c0ef 100644
--- a/nano/css/shared.css
+++ b/nano/css/shared.css
@@ -212,6 +212,10 @@ h4 {
font-size: 10px;
}
+.multiLine {
+ white-space: pre-wrap;
+}
+
.noticePlaceholder {
position: relative;
font-size: 12px;
@@ -659,7 +663,7 @@ th.misc {
}
.oxyloss {
- color: #4444FF;
+ color: cyan;
}
/* 75px width used in power monitoring console buttons */
diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl
index 7f7e931caf..2dbd997cbd 100644
--- a/nano/templates/adv_med.tmpl
+++ b/nano/templates/adv_med.tmpl
@@ -169,13 +169,21 @@ Used In File(s): \code\game\machinery\adv_med.dm
Acute Infection
{{else value.germ_level < 800}}
Acute Infection+
- {{else value.germ_level < 900}}
+ {{else value.germ_level < 950}}
Acute Infection++
- {{else value.germ_level >= 900}}
- Septic
+ {{else value.germ_level >= 950}}
+ Gangrene Detected
{{/if}}
{{/if}}
+ {{if value.status.dead}}
+
+ Necrosis
+
+
+ Necrotic Tissue Present
+
+ {{/if}}
{{if value.open}}
Operation Status
@@ -225,10 +233,10 @@ Used In File(s): \code\game\machinery\adv_med.dm
Acute Infection
{{else value.germ_level < 800}}
Acute Infection+
- {{else value.germ_level < 900}}
+ {{else value.germ_level < 950}}
Acute Infection++
- {{else value.germ_level >= 900}}
- Septic
+ {{else value.germ_level >= 950}}
+ Necrosis Detected
{{/if}}
{{/if}}
diff --git a/nano/templates/pai_medrecords.tmpl b/nano/templates/pai_medrecords.tmpl
index 37b1d7061c..89926d3915 100644
--- a/nano/templates/pai_medrecords.tmpl
+++ b/nano/templates/pai_medrecords.tmpl
@@ -75,7 +75,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
Important Notes
-
{{:data.medical.notes}}
+
{{:data.medical.notes}}
{{/if}}
diff --git a/nano/templates/pai_secrecords.tmpl b/nano/templates/pai_secrecords.tmpl
index e139034c0d..51cb45dee2 100644
--- a/nano/templates/pai_secrecords.tmpl
+++ b/nano/templates/pai_secrecords.tmpl
@@ -65,7 +65,7 @@ code/modules/mob/living/silicon/pai/software_modules.dm
Important Notes
-
{{:data.security.notes}}
+
{{:data.security.notes}}
{{/if}}
diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl
index 396cf8e34f..6cd3004654 100644
--- a/nano/templates/pda.tmpl
+++ b/nano/templates/pda.tmpl
@@ -591,7 +591,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
Details: {{:data.records.medical.alg_d}}
Current Disease: {{:data.records.medical.cdi}}
Details: {{:data.records.medical.alg_d}}
- Important Notes: {{:data.records.medical.notes}}
+ Important Notes: {{:data.records.medical.notes}}
{{else}}
Medical Record Lost!
@@ -643,7 +643,7 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
Details: {{:data.records.security.mi_crim_d}}
Major Crimes: {{:data.records.security.ma_crim}}
Details: {{:data.records.security.ma_crim_d}}
- Important Notes: {{:data.records.security.notes}}
+ Important Notes: {{:data.records.security.notes}}
{{else}}
Security Record Lost!
diff --git a/polaris.dme b/polaris.dme
index ad53ed1052..2fd1022631 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -148,6 +148,7 @@
#include "code\controllers\Processes\mob.dm"
#include "code\controllers\Processes\nanoui.dm"
#include "code\controllers\Processes\obj.dm"
+#include "code\controllers\Processes\planet.dm"
#include "code\controllers\Processes\scheduler.dm"
#include "code\controllers\Processes\Shuttle.dm"
#include "code\controllers\Processes\sun.dm"
@@ -204,6 +205,7 @@
#include "code\datums\observation\moved.dm"
#include "code\datums\observation\observation.dm"
#include "code\datums\observation\task_triggered.dm"
+#include "code\datums\observation\turf_changed.dm"
#include "code\datums\observation\unequipped.dm"
#include "code\datums\observation\~cleanup.dm"
#include "code\datums\repositories\cameras.dm"
@@ -723,6 +725,7 @@
#include "code\game\objects\effects\portals.dm"
#include "code\game\objects\effects\spiders.dm"
#include "code\game\objects\effects\step_triggers.dm"
+#include "code\game\objects\effects\zone_divider.dm"
#include "code\game\objects\effects\chem\chemsmoke.dm"
#include "code\game\objects\effects\chem\foam.dm"
#include "code\game\objects\effects\chem\water.dm"
@@ -777,6 +780,7 @@
#include "code\game\objects\items\devices\taperecorder.dm"
#include "code\game\objects\items\devices\traitordevices.dm"
#include "code\game\objects\items\devices\transfer_valve.dm"
+#include "code\game\objects\items\devices\translator.dm"
#include "code\game\objects\items\devices\tvcamera.dm"
#include "code\game\objects\items\devices\uplink.dm"
#include "code\game\objects\items\devices\uplink_random_lists.dm"
@@ -862,6 +866,7 @@
#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
+#include "code\game\objects\items\weapons\circuitboards\machinery\papershredder.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\power.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\research.dm"
@@ -1003,6 +1008,11 @@
#include "code\game\turfs\simulated\wall_icon.dm"
#include "code\game\turfs\simulated\wall_types.dm"
#include "code\game\turfs\simulated\walls.dm"
+#include "code\game\turfs\simulated\water.dm"
+#include "code\game\turfs\simulated\outdoors\dirt.dm"
+#include "code\game\turfs\simulated\outdoors\grass.dm"
+#include "code\game\turfs\simulated\outdoors\outdoors.dm"
+#include "code\game\turfs\simulated\outdoors\snow.dm"
#include "code\game\turfs\snow\snow.dm"
#include "code\game\turfs\space\cracked_asteroid.dm"
#include "code\game\turfs\space\space.dm"
@@ -1010,6 +1020,7 @@
#include "code\game\turfs\unsimulated\beach.dm"
#include "code\game\turfs\unsimulated\floor.dm"
#include "code\game\turfs\unsimulated\planetary.dm"
+#include "code\game\turfs\unsimulated\shuttle.dm"
#include "code\game\turfs\unsimulated\walls.dm"
#include "code\game\verbs\advanced_who.dm"
#include "code\game\verbs\ignore.dm"
@@ -1138,6 +1149,9 @@
#include "code\modules\awaymissions\trigger.dm"
#include "code\modules\awaymissions\zlevel.dm"
#include "code\modules\blob\blob.dm"
+#include "code\modules\busy_space\air_traffic.dm"
+#include "code\modules\busy_space\loremaster.dm"
+#include "code\modules\busy_space\organizations.dm"
#include "code\modules\client\client defines.dm"
#include "code\modules\client\client procs.dm"
#include "code\modules\client\movement.dm"
@@ -1207,8 +1221,8 @@
#include "code\modules\clothing\masks\miscellaneous.dm"
#include "code\modules\clothing\masks\monitor.dm"
#include "code\modules\clothing\masks\voice.dm"
+#include "code\modules\clothing\shoes\boots.dm"
#include "code\modules\clothing\shoes\colour.dm"
-#include "code\modules\clothing\shoes\jobs.dm"
#include "code\modules\clothing\shoes\leg_guards.dm"
#include "code\modules\clothing\shoes\magboots.dm"
#include "code\modules\clothing\shoes\miscellaneous.dm"
@@ -1298,9 +1312,11 @@
#include "code\modules\error_handler\error_viewer.dm"
#include "code\modules\error_handler\~defines.dm"
#include "code\modules\events\apc_damage.dm"
+#include "code\modules\events\atmos_leak.dm"
#include "code\modules\events\blob.dm"
#include "code\modules\events\brand_intelligence.dm"
#include "code\modules\events\camera_damage.dm"
+#include "code\modules\events\canister_leak.dm"
#include "code\modules\events\carp_migration.dm"
#include "code\modules\events\comms_blackout.dm"
#include "code\modules\events\communications_blackout.dm"
@@ -1351,12 +1367,14 @@
#include "code\modules\flufftext\Dreaming.dm"
#include "code\modules\flufftext\Hallucination.dm"
#include "code\modules\flufftext\TextFilters.dm"
+#include "code\modules\food\recipe_dump.dm"
#include "code\modules\food\recipes_microwave.dm"
#include "code\modules\gamemaster\controller.dm"
#include "code\modules\gamemaster\defines.dm"
#include "code\modules\gamemaster\game_master.dm"
#include "code\modules\gamemaster\helpers.dm"
#include "code\modules\gamemaster\actions\action.dm"
+#include "code\modules\gamemaster\actions\canister_leak.dm"
#include "code\modules\gamemaster\actions\carp_migration.dm"
#include "code\modules\gamemaster\actions\comms_blackout.dm"
#include "code\modules\gamemaster\actions\dust.dm"
@@ -1662,45 +1680,46 @@
#include "code\modules\mob\living\silicon\robot\drone\drone_manufacturer.dm"
#include "code\modules\mob\living\silicon\robot\drone\drone_say.dm"
#include "code\modules\mob\living\simple_animal\corpse.dm"
-#include "code\modules\mob\living\simple_animal\parrot.dm"
-#include "code\modules\mob\living\simple_animal\shade.dm"
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
-#include "code\modules\mob\living\simple_animal\worm.dm"
+#include "code\modules\mob\living\simple_animal\aliens\alien.dm"
+#include "code\modules\mob\living\simple_animal\aliens\creature.dm"
+#include "code\modules\mob\living\simple_animal\aliens\drone.dm"
+#include "code\modules\mob\living\simple_animal\aliens\faithless.dm"
+#include "code\modules\mob\living\simple_animal\aliens\hivebot.dm"
+#include "code\modules\mob\living\simple_animal\aliens\mimic.dm"
+#include "code\modules\mob\living\simple_animal\aliens\shade.dm"
+#include "code\modules\mob\living\simple_animal\animals\bat.dm"
+#include "code\modules\mob\living\simple_animal\animals\bear.dm"
+#include "code\modules\mob\living\simple_animal\animals\carp.dm"
+#include "code\modules\mob\living\simple_animal\animals\cat.dm"
+#include "code\modules\mob\living\simple_animal\animals\corgi.dm"
+#include "code\modules\mob\living\simple_animal\animals\crab.dm"
+#include "code\modules\mob\living\simple_animal\animals\farm_animals.dm"
+#include "code\modules\mob\living\simple_animal\animals\fish.dm"
+#include "code\modules\mob\living\simple_animal\animals\giant_spider.dm"
+#include "code\modules\mob\living\simple_animal\animals\goose.dm"
+#include "code\modules\mob\living\simple_animal\animals\lizard.dm"
+#include "code\modules\mob\living\simple_animal\animals\mouse.dm"
+#include "code\modules\mob\living\simple_animal\animals\parrot.dm"
+#include "code\modules\mob\living\simple_animal\animals\penguin.dm"
+#include "code\modules\mob\living\simple_animal\animals\slime.dm"
+#include "code\modules\mob\living\simple_animal\animals\spiderbot.dm"
+#include "code\modules\mob\living\simple_animal\animals\tomato.dm"
+#include "code\modules\mob\living\simple_animal\animals\tree.dm"
+#include "code\modules\mob\living\simple_animal\animals\worm.dm"
#include "code\modules\mob\living\simple_animal\borer\borer.dm"
#include "code\modules\mob\living\simple_animal\borer\borer_captive.dm"
#include "code\modules\mob\living\simple_animal\borer\borer_powers.dm"
#include "code\modules\mob\living\simple_animal\borer\say.dm"
#include "code\modules\mob\living\simple_animal\constructs\constructs.dm"
#include "code\modules\mob\living\simple_animal\constructs\soulstone.dm"
-#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
-#include "code\modules\mob\living\simple_animal\friendly\corgi.dm"
-#include "code\modules\mob\living\simple_animal\friendly\crab.dm"
-#include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm"
-#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
-#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
-#include "code\modules\mob\living\simple_animal\friendly\mushroom.dm"
-#include "code\modules\mob\living\simple_animal\friendly\penguin.dm"
-#include "code\modules\mob\living\simple_animal\friendly\slime.dm"
-#include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm"
-#include "code\modules\mob\living\simple_animal\friendly\tomato.dm"
-#include "code\modules\mob\living\simple_animal\hostile\alien.dm"
-#include "code\modules\mob\living\simple_animal\hostile\bat.dm"
-#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
-#include "code\modules\mob\living\simple_animal\hostile\carp.dm"
-#include "code\modules\mob\living\simple_animal\hostile\creature.dm"
-#include "code\modules\mob\living\simple_animal\hostile\faithless.dm"
-#include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm"
-#include "code\modules\mob\living\simple_animal\hostile\goose.dm"
-#include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"
-#include "code\modules\mob\living\simple_animal\hostile\hostile.dm"
-#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
-#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
-#include "code\modules\mob\living\simple_animal\hostile\russian.dm"
-#include "code\modules\mob\living\simple_animal\hostile\syndicate.dm"
-#include "code\modules\mob\living\simple_animal\hostile\tree.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm"
-#include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\clown.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\head.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\kobold.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\mechamobs.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\pirate.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\russian.dm"
+#include "code\modules\mob\living\simple_animal\humanoids\syndicate.dm"
#include "code\modules\mob\living\voice\voice.dm"
#include "code\modules\mob\new_player\login.dm"
#include "code\modules\mob\new_player\logout.dm"
@@ -1787,6 +1806,10 @@
#include "code\modules\paperwork\photography.dm"
#include "code\modules\paperwork\silicon_photography.dm"
#include "code\modules\paperwork\stamps.dm"
+#include "code\modules\planet\planet.dm"
+#include "code\modules\planet\sif.dm"
+#include "code\modules\planet\time.dm"
+#include "code\modules\planet\weather.dm"
#include "code\modules\power\apc.dm"
#include "code\modules\power\batteryrack.dm"
#include "code\modules\power\breaker_box.dm"
@@ -2043,6 +2066,15 @@
#include "code\modules\tables\rack.dm"
#include "code\modules\tables\tables.dm"
#include "code\modules\tables\update_triggers.dm"
+#include "code\modules\turbolift\_turbolift.dm"
+#include "code\modules\turbolift\turbolift.dm"
+#include "code\modules\turbolift\turbolift_areas.dm"
+#include "code\modules\turbolift\turbolift_console.dm"
+#include "code\modules\turbolift\turbolift_door.dm"
+#include "code\modules\turbolift\turbolift_floor.dm"
+#include "code\modules\turbolift\turbolift_map.dm"
+#include "code\modules\turbolift\turbolift_process.dm"
+#include "code\modules\turbolift\turbolift_turfs.dm"
#include "code\modules\vehicles\cargo_train.dm"
#include "code\modules\vehicles\train.dm"
#include "code\modules\vehicles\vehicle.dm"
@@ -2161,9 +2193,6 @@
#include "code\ZAS\Zone.dm"
#include "interface\interface.dm"
#include "interface\skin.dmf"
-#include "maps\polaris-1.dmm"
-#include "maps\polaris-2.dmm"
-#include "maps\polaris-3.dmm"
-#include "maps\polaris-4.dmm"
-#include "maps\polaris-5.dmm"
+#include "maps\northern_star\northern_star.dm"
+#include "maps\~map_system\maps.dm"
// END_INCLUDE
diff --git a/sound/effects/fingersnap.ogg b/sound/effects/fingersnap.ogg
new file mode 100644
index 0000000000..f704640351
Binary files /dev/null and b/sound/effects/fingersnap.ogg differ
diff --git a/sound/effects/mob_effects/f_cougha.ogg b/sound/effects/mob_effects/f_cougha.ogg
new file mode 100644
index 0000000000..f53e0f5bd2
Binary files /dev/null and b/sound/effects/mob_effects/f_cougha.ogg differ
diff --git a/sound/effects/mob_effects/f_coughb.ogg b/sound/effects/mob_effects/f_coughb.ogg
new file mode 100644
index 0000000000..2626f8d662
Binary files /dev/null and b/sound/effects/mob_effects/f_coughb.ogg differ
diff --git a/sound/effects/mob_effects/f_machine_cougha.ogg b/sound/effects/mob_effects/f_machine_cougha.ogg
new file mode 100644
index 0000000000..e0a8441e3d
Binary files /dev/null and b/sound/effects/mob_effects/f_machine_cougha.ogg differ
diff --git a/sound/effects/mob_effects/f_machine_coughb.ogg b/sound/effects/mob_effects/f_machine_coughb.ogg
new file mode 100644
index 0000000000..b70b6d16c1
Binary files /dev/null and b/sound/effects/mob_effects/f_machine_coughb.ogg differ
diff --git a/sound/effects/mob_effects/f_machine_sneeze.ogg b/sound/effects/mob_effects/f_machine_sneeze.ogg
new file mode 100644
index 0000000000..9649c86244
Binary files /dev/null and b/sound/effects/mob_effects/f_machine_sneeze.ogg differ
diff --git a/sound/effects/mob_effects/f_sneeze.ogg b/sound/effects/mob_effects/f_sneeze.ogg
new file mode 100644
index 0000000000..e6c4a49ade
Binary files /dev/null and b/sound/effects/mob_effects/f_sneeze.ogg differ
diff --git a/sound/effects/mob_effects/m_cougha.ogg b/sound/effects/mob_effects/m_cougha.ogg
new file mode 100644
index 0000000000..146beefdf8
Binary files /dev/null and b/sound/effects/mob_effects/m_cougha.ogg differ
diff --git a/sound/effects/mob_effects/m_coughb.ogg b/sound/effects/mob_effects/m_coughb.ogg
new file mode 100644
index 0000000000..745fb50e19
Binary files /dev/null and b/sound/effects/mob_effects/m_coughb.ogg differ
diff --git a/sound/effects/mob_effects/m_coughc.ogg b/sound/effects/mob_effects/m_coughc.ogg
new file mode 100644
index 0000000000..abfe70d276
Binary files /dev/null and b/sound/effects/mob_effects/m_coughc.ogg differ
diff --git a/sound/effects/mob_effects/m_machine_cougha.ogg b/sound/effects/mob_effects/m_machine_cougha.ogg
new file mode 100644
index 0000000000..3e803f64b1
Binary files /dev/null and b/sound/effects/mob_effects/m_machine_cougha.ogg differ
diff --git a/sound/effects/mob_effects/m_machine_coughb.ogg b/sound/effects/mob_effects/m_machine_coughb.ogg
new file mode 100644
index 0000000000..d128707092
Binary files /dev/null and b/sound/effects/mob_effects/m_machine_coughb.ogg differ
diff --git a/sound/effects/mob_effects/m_machine_coughc.ogg b/sound/effects/mob_effects/m_machine_coughc.ogg
new file mode 100644
index 0000000000..67e1331493
Binary files /dev/null and b/sound/effects/mob_effects/m_machine_coughc.ogg differ
diff --git a/sound/effects/mob_effects/machine_sneeze.ogg b/sound/effects/mob_effects/machine_sneeze.ogg
new file mode 100644
index 0000000000..f0ba0ab817
Binary files /dev/null and b/sound/effects/mob_effects/machine_sneeze.ogg differ
diff --git a/sound/effects/mob_effects/sneeze.ogg b/sound/effects/mob_effects/sneeze.ogg
new file mode 100644
index 0000000000..e7587bab20
Binary files /dev/null and b/sound/effects/mob_effects/sneeze.ogg differ
diff --git a/sound/effects/slime_squish.ogg b/sound/effects/slime_squish.ogg
new file mode 100644
index 0000000000..60e118e217
Binary files /dev/null and b/sound/effects/slime_squish.ogg differ
diff --git a/sound/voice/shriekcough.ogg b/sound/voice/shriekcough.ogg
new file mode 100644
index 0000000000..15dc2e3873
Binary files /dev/null and b/sound/voice/shriekcough.ogg differ
diff --git a/sound/voice/shrieksneeze.ogg b/sound/voice/shrieksneeze.ogg
new file mode 100644
index 0000000000..9b1a5d1cca
Binary files /dev/null and b/sound/voice/shrieksneeze.ogg differ
diff --git a/tools/HumanScissors/!README.txt b/tools/HumanScissors/!README.txt
new file mode 100644
index 0000000000..d8396c8b85
--- /dev/null
+++ b/tools/HumanScissors/!README.txt
@@ -0,0 +1,7 @@
+This small Byond program takes all the icons in SpritesToSnip.dmi,
+cuts them using all the icons in CookieCutter.dmi, and produces a file save
+dialog for you to download the resulting DMI.
+
+Useful for cutting up species sprites from full body ones. Or whatever else.
+
+--Arokha/Aronai
\ No newline at end of file
diff --git a/tools/HumanScissors/CookieCutter.dmi b/tools/HumanScissors/CookieCutter.dmi
new file mode 100644
index 0000000000..3d6658ad17
Binary files /dev/null and b/tools/HumanScissors/CookieCutter.dmi differ
diff --git a/tools/HumanScissors/HumanScissors.dm b/tools/HumanScissors/HumanScissors.dm
new file mode 100644
index 0000000000..9d5d1ebb20
--- /dev/null
+++ b/tools/HumanScissors/HumanScissors.dm
@@ -0,0 +1,56 @@
+/*
+ These are simple defaults for your project.
+ */
+
+world
+ fps = 25 // 25 frames per second
+ icon_size = 32 // 32x32 icon size by default
+
+ view = 6 // show up to 6 tiles outward from center (13x13 view)
+
+
+// Make objects move 8 pixels per tick when walking
+//usr << ftp(usr.working,"[usr.outfile].dmi")
+mob
+ step_size = 8
+
+obj
+ step_size = 8
+
+
+
+client/verb/split_sprites()
+ set name = "Begin The Decimation"
+ set desc = "Loads SpritesToSnip.dmi and cuts them with CookieCutter.dmi"
+ set category = "Here"
+
+ var/icon/SpritesToSnip = icon('SpritesToSnip.dmi')
+ var/icon/CookieCutter = icon('CookieCutter.dmi')
+
+ var/icon/RunningOutput = new ()
+
+ //For each original project
+ for(var/OriginalState in icon_states(SpritesToSnip))
+ //For each piece we're going to cut
+ for(var/CutterState in icon_states(CookieCutter))
+
+ //The fully assembled icon to cut
+ var/icon/Original = icon(SpritesToSnip,OriginalState)
+
+ //Our cookie cutter sprite
+ var/icon/Cutter = icon(CookieCutter,CutterState)
+
+ //We have to make these all black to cut with
+ Cutter.Blend(rgb(0,0,0),ICON_MULTIPLY)
+
+ //Blend with AND to cut
+ Original.Blend(Cutter,ICON_AND) //AND, not ADD
+
+ //Make a useful name
+ var/good_name = "[OriginalState]-[CutterState]"
+
+ //Add to the output with the good name
+ RunningOutput.Insert(Original,good_name)
+
+ //Give the output
+ usr << ftp(RunningOutput,"CutUpPeople.dmi")
diff --git a/tools/HumanScissors/HumanScissors.dme b/tools/HumanScissors/HumanScissors.dme
new file mode 100644
index 0000000000..86377f1c57
--- /dev/null
+++ b/tools/HumanScissors/HumanScissors.dme
@@ -0,0 +1,18 @@
+// DM Environment file for HumanScissors.dme.
+// All manual changes should be made outside the BEGIN_ and END_ blocks.
+// New source code should be placed in .dm files: choose File/New --> Code File.
+
+// BEGIN_INTERNALS
+// END_INTERNALS
+
+// BEGIN_FILE_DIR
+#define FILE_DIR .
+// END_FILE_DIR
+
+// BEGIN_PREFERENCES
+// END_PREFERENCES
+
+// BEGIN_INCLUDE
+#include "HumanScissors.dm"
+// END_INCLUDE
+
diff --git a/tools/HumanScissors/SpritesToSnip.dmi b/tools/HumanScissors/SpritesToSnip.dmi
new file mode 100644
index 0000000000..f4dbfb6b81
Binary files /dev/null and b/tools/HumanScissors/SpritesToSnip.dmi differ
diff --git a/tools/IconSplitter/!README.txt b/tools/IconSplitter/!README.txt
new file mode 100644
index 0000000000..c4c8c35b1c
--- /dev/null
+++ b/tools/IconSplitter/!README.txt
@@ -0,0 +1,5 @@
+This Byond program takes all the icons in DmiToSplit along with input from the user and
+splits the icons from the original file into a new file based on the user's provided criteria.
+It also produces a file that is the original file minus the icons split into the new file.
+
+-- Yoshax
\ No newline at end of file
diff --git a/tools/IconSplitter/DmiToSplit.dmi b/tools/IconSplitter/DmiToSplit.dmi
new file mode 100644
index 0000000000..cf74d73796
Binary files /dev/null and b/tools/IconSplitter/DmiToSplit.dmi differ
diff --git a/tools/IconSplitter/IconSplitter.dm b/tools/IconSplitter/IconSplitter.dm
new file mode 100644
index 0000000000..a13aad9b73
--- /dev/null
+++ b/tools/IconSplitter/IconSplitter.dm
@@ -0,0 +1,49 @@
+/*
+ These are simple defaults for your project.
+ */
+
+world
+ fps = 25 // 25 frames per second
+ icon_size = 32 // 32x32 icon size by default
+
+ view = 6 // show up to 6 tiles outward from center (13x13 view)
+
+
+// Make objects move 8 pixels per tick when walking
+
+mob
+ step_size = 8
+
+obj
+ step_size = 8
+
+
+
+
+client/verb/split_dmi()
+ set name = "Split Dmi"
+ set desc = "Loads DmiToSplit.dmi and removes the icon_states of user provided input into another .dmi."
+ set category = "Here"
+
+ var/icon/DMIToSplit = icon('DmiToSplit.dmi')
+
+ var/icon/RunningOutputCut = new()
+ var/icon/RunningOutput = new()
+
+ var/user_input
+ while(!user_input)
+ user_input = input(usr, "Enter the criteria for the icon_states you wish to be split. For example, doing _d_s will remove all rolled down jumpsuits.","Split Criteria", "")
+ world << "Your split criteria is [user_input]"
+
+ for(var/OriginalState in icon_states(DMIToSplit))
+ if(findtext(OriginalState, user_input))
+ var/icon/ToAdd = icon(DMIToSplit, OriginalState)
+ var/good_name = replacetext(OriginalState, user_input, "")
+ good_name = "[good_name]_s"
+ RunningOutputCut.Insert(ToAdd, good_name)
+ else
+ var/icon/ToAdd = icon(DMIToSplit, OriginalState)
+ RunningOutput.Insert(ToAdd, OriginalState)
+
+ usr << ftp(RunningOutput,"CutUpDmi.dmi")
+ usr << ftp(RunningOutputCut, "CutUpDmiWithCriteria.dmi")
\ No newline at end of file
diff --git a/tools/IconSplitter/IconSplitter.dme b/tools/IconSplitter/IconSplitter.dme
new file mode 100644
index 0000000000..2c3171b194
--- /dev/null
+++ b/tools/IconSplitter/IconSplitter.dme
@@ -0,0 +1,18 @@
+// DM Environment file for IconSplitter.dme.
+// All manual changes should be made outside the BEGIN_ and END_ blocks.
+// New source code should be placed in .dm files: choose File/New --> Code File.
+
+// BEGIN_INTERNALS
+// END_INTERNALS
+
+// BEGIN_FILE_DIR
+#define FILE_DIR .
+// END_FILE_DIR
+
+// BEGIN_PREFERENCES
+// END_PREFERENCES
+
+// BEGIN_INCLUDE
+#include "IconSplitter.dm"
+// END_INCLUDE
+
diff --git a/tools/mapmerge/1prepare_map.bat b/tools/mapmerge/1prepare_map.bat
index 365d5f00e8..6196ba01b3 100644
--- a/tools/mapmerge/1prepare_map.bat
+++ b/tools/mapmerge/1prepare_map.bat
@@ -1,4 +1,10 @@
-cd ../../maps
+cd ../../maps/northern_star
+
+FOR %%f IN (*.dmm) DO (
+ copy %%f %%f.backup
+)
+
+cd ../../maps/southern_cross
FOR %%f IN (*.dmm) DO (
copy %%f %%f.backup
diff --git a/tools/mapmerge/2clean_map.bat b/tools/mapmerge/2clean_map.bat
index a719963df4..7422875773 100644
--- a/tools/mapmerge/2clean_map.bat
+++ b/tools/mapmerge/2clean_map.bat
@@ -1,8 +1,12 @@
SET z_levels=6
cd
-FOR %%f IN (../../maps/*.dmm) DO (
- java -jar MapPatcher.jar -clean ../../maps/%%f.backup ../../maps/%%f ../../maps/%%f
+FOR %%f IN (../../maps/northern_star/*.dmm) DO (
+ java -jar MapPatcher.jar -clean ../../maps/northern_star/%%f.backup ../../maps/northern_star/%%f ../../maps/northern_star/%%f
+)
+
+FOR %%f IN (../../maps/southern_cross/*.dmm) DO (
+ java -jar MapPatcher.jar -clean ../../maps/southern_cross/%%f.backup ../../maps/southern_cross/%%f ../../maps/southern_cross/%%f
)
pause