Merge pull request #12 from ParadiseSS13/master

Merge
This commit is contained in:
Mark van Alphen
2014-12-17 19:11:46 +01:00
38 changed files with 803 additions and 2097 deletions
-64
View File
@@ -99,70 +99,6 @@
/mob/living/carbon/alien/RestrainedClickOn(var/atom/A)
return
/mob/living/carbon/alien/humanoid/RangedAttack(var/atom/A)
if(!large && a_intent == "harm")
Neurotox(A)
return
else if(large && a_intent == "harm")
NeuroAOE(A)
return
/mob/living/carbon/alien/humanoid/proc/Neurotox(atom/A)
if(world.time < next_attack)
return
var/turf/T = get_turf(src)
var/turf/U = get_turf(A) // Get the tile infront of the move, based on their direction
if(!isturf(U) || !isturf(T))
return
var/obj/item/projectile/bullet/neurotoxin/NT = new /obj/item/projectile/bullet/neurotoxin(loc)
NT.firer = src
// NT.def_zone = get_organ_target()
NT.original = A
NT.current = T
NT.yo = U.y - T.y
NT.xo = U.x - T.x
spawn(1)
NT.process()
next_attack = world.time + 60
/mob/living/carbon/alien/humanoid/proc/NeuroAOE(atom/A)
if(world.time < next_attack)
return
var/direction = get_dir(src,A)
var/turf/T = get_turf(A)
var/turf/T1 = get_step(T,turn(direction, 90))
var/turf/T2 = get_step(T,turn(direction, -90))
var/list/the_targets = list(T,T1,T2)
for(var/a=0, a<5, a++)
spawn(0)
var/obj/effect/effect/water/D = new /obj/effect/effect/water( get_turf(src) )
D.color = "#00FF21"
var/turf/my_target = pick(the_targets)
for(var/b=0, b<5, b++)
if(!step_towards(D,my_target)) return
if(!D) return
// D.reagents.reaction(get_turf(D))
for(var/atom/atm in get_turf(D))
if(!D) return
if(istype(atm, /mob/living/carbon/alien))
return
if(istype(atm, /mob/living/carbon))
var/mob/living/carbon/C = atm
C.Weaken(5)
C.adjustToxLoss(20)
C << "You were drenched with neurotoxin!"
// D.reagents.reaction(atm, TOUCH) // Touch, since we sprayed it.
if(D.loc == my_target) break
sleep(2)
next_attack = world.time + 60
// Babby aliens
/mob/living/carbon/alien/larva/UnarmedAttack(var/atom/A)
A.attack_larva(src)
-8
View File
@@ -108,14 +108,6 @@ var/list/uplink_items = list()
cost = 8
job = list("Clown")
//Detective
/datum/uplink_item/jobspecific/evidenceforger
name = "Evidence Forger"
desc = "An evidence scanner that allows you forge evidence by setting the output before scanning the item."
item = /obj/item/device/detective_scanner/forger
cost = 6
job = list("Detective")
/datum/uplink_item/jobspecific/conversionkit
name = "Conversion Kit Bundle"
desc = "A bundle that comes with a professional revolver conversion kit and 1 box of .357 ammo. The kit allows you to convert your revolver to fire lethal rounds or vice versa, modification is nearly perfect and will not result in catastrophic failure."
+4 -4
View File
@@ -23,7 +23,7 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , va
//world << "Room spawned at [start_loc.x],[start_loc.y],[start_loc.z]"
if(!wall)
wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/effect/alien/resin)
wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/structure/alien/resin)
if(!floor)
floor = pick(/turf/simulated/floor,/turf/simulated/floor/engine)
@@ -44,9 +44,9 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor , va
if(x == 0 || x==x_size-1 || y==0 || y==y_size-1)
if(wall == /obj/effect/alien/resin)
if(wall == /obj/structure/alien/resin)
T = new floor(cur_loc)
new /obj/effect/alien/resin(T)
new /obj/structure/alien/resin(T)
else
T = new wall(cur_loc)
room_turfs["walls"] += T
@@ -74,7 +74,7 @@ proc/admin_spawn_room_at_pos()
if("Regular wall")
wall=/turf/simulated/wall
if("Resin wall")
wall=/obj/effect/alien/resin
wall=/obj/structure/alien/resin
switch(alert("Floor type",null,"Regular floor","Reinforced floor"))
if("Regular floor")
floor=/turf/simulated/floor
+44 -85
View File
@@ -251,35 +251,32 @@ its easier to just keep the beam vertical.
/atom/proc/add_hiddenprint(mob/living/M as mob)
if(isnull(M)) return
if(isnull(M.key)) return
if (!( src.flags ) & FPRINT)
return
if (ishuman(M))
if(ishuman(M))
var/mob/living/carbon/human/H = M
if (!istype(H.dna, /datum/dna))
if(!istype(H.dna, /datum/dna))
return 0
if (H.gloves)
if(src.fingerprintslast != H.key)
src.fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key)
src.fingerprintslast = H.key
if(H.gloves)
if(fingerprintslast != H.ckey)
fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key)
fingerprintslast = H.ckey
return 0
if (!( src.fingerprints ))
if(src.fingerprintslast != H.key)
src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key)
src.fingerprintslast = H.key
if(!( fingerprints ))
if(fingerprintslast != H.ckey)
fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key)
fingerprintslast = H.ckey
return 1
else
if(src.fingerprintslast != M.key)
src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key)
src.fingerprintslast = M.key
if(fingerprintslast != M.ckey)
fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key)
fingerprintslast = M.ckey
return
//Set ignoregloves to add prints irrespective of the mob having gloves on.
/atom/proc/add_fingerprint(mob/living/M as mob, ignoregloves = 0)
if(isnull(M)) return
if(isAI(M)) return
if(isnull(M.key)) return
if (!( src.flags ) & FPRINT)
return
if (ishuman(M))
if(ishuman(M))
//Add the list if it does not exist.
if(!fingerprintshidden)
fingerprintshidden = list()
@@ -301,25 +298,25 @@ its easier to just keep the beam vertical.
H.dna.real_name = H.real_name
H.check_dna()
//Now, deal with gloves.
if (H.gloves && H.gloves != src)
if(fingerprintslast != H.key)
fingerprintshidden += text("\[[]\](Wearing gloves). Real name: [], Key: []",time_stamp(), H.real_name, H.key)
fingerprintslast = H.key
H.gloves.add_fingerprint(M)
//Check if the gloves (if any) hide fingerprints
if(H.gloves)
var/obj/item/clothing/gloves/G = H.gloves
if(G.transfer_prints)
ignoregloves = 1
//Deal with gloves the pass finger/palm prints.
//Now, deal with gloves.
if(!ignoregloves)
if(H.gloves != src)
if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex))
return 0
else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex))
return 0
if(H.gloves && H.gloves != src)
if(fingerprintslast != H.ckey)
fingerprintshidden += text("\[[]\](Wearing gloves). Real name: [], Key: []",time_stamp(), H.real_name, H.key)
fingerprintslast = H.ckey
H.gloves.add_fingerprint(M)
return 0
//More adminstuffz
if(fingerprintslast != H.key)
if(fingerprintslast != H.ckey)
fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), H.real_name, H.key)
fingerprintslast = H.key
fingerprintslast = H.ckey
//Make the list if it does not exist.
if(!fingerprints)
@@ -329,75 +326,37 @@ its easier to just keep the beam vertical.
var/full_print = md5(H.dna.uni_identity)
// Add the fingerprints
//
if(fingerprints[full_print])
switch(stringpercent(fingerprints[full_print])) //tells us how many stars are in the current prints.
if(28 to 32)
if(prob(1))
fingerprints[full_print] = full_print // You rolled a one buddy.
else
fingerprints[full_print] = stars(full_print, rand(0,40)) // 24 to 32
if(24 to 27)
if(prob(3))
fingerprints[full_print] = full_print //Sucks to be you.
else
fingerprints[full_print] = stars(full_print, rand(15, 55)) // 20 to 29
if(20 to 23)
if(prob(5))
fingerprints[full_print] = full_print //Had a good run didn't ya.
else
fingerprints[full_print] = stars(full_print, rand(30, 70)) // 15 to 25
if(16 to 19)
if(prob(5))
fingerprints[full_print] = full_print //Welp.
else
fingerprints[full_print] = stars(full_print, rand(40, 100)) // 0 to 21
if(0 to 15)
if(prob(5))
fingerprints[full_print] = stars(full_print, rand(0,50)) // small chance you can smudge.
else
fingerprints[full_print] = full_print
else
fingerprints[full_print] = stars(full_print, rand(0, 20)) //Initial touch, not leaving much evidence the first time.
fingerprints[full_print] = full_print
return 1
else
//Smudge up dem prints some
if(fingerprintslast != M.key)
if(fingerprintslast != M.ckey)
fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), M.real_name, M.key)
fingerprintslast = M.key
fingerprintslast = M.ckey
//Cleaning up shit.
if(fingerprints && !fingerprints.len)
del(fingerprints)
return
/atom/proc/transfer_fingerprints_to(var/atom/A)
if(!istype(A.fingerprints,/list))
// Make sure everything are lists.
if(!islist(A.fingerprints))
A.fingerprints = list()
if(!istype(A.fingerprintshidden,/list))
if(!islist(A.fingerprintshidden))
A.fingerprintshidden = list()
if(!istype(fingerprintshidden, /list))
if(!islist(fingerprints))
fingerprints = list()
if(!islist(fingerprintshidden))
fingerprintshidden = list()
//skytodo
//A.fingerprints |= fingerprints //detective
//A.fingerprintshidden |= fingerprintshidden //admin
if(A.fingerprints && fingerprints)
// Transfer
if(fingerprints)
A.fingerprints |= fingerprints.Copy() //detective
if(A.fingerprintshidden && fingerprintshidden)
A.fingerprintshidden |= fingerprintshidden.Copy() //admin A.fingerprintslast = fingerprintslast
if(fingerprintshidden)
A.fingerprintshidden |= fingerprintshidden.Copy() //admin
A.fingerprintslast = fingerprintslast
//returns 1 if made bloody, returns 0 otherwise
+9 -6
View File
@@ -24,6 +24,7 @@
var/check_records = 1 //Does it check security records?
var/arrest_type = 0 //If true, don't handcuff
var/harmbaton = 0
var/base_icon = "secbot"
radio_frequency = SEC_FREQ //Security channel
radio_name = "Security"
bot_type = SEC_BOT
@@ -54,6 +55,8 @@
/obj/machinery/bot/secbot/buzzsky
name = "Officer Buzzsky"
desc = "It's Officer Buzzsky! Rusted and falling apart, he seems less than thrilled with the crew for leaving him in his current state."
base_icon = "rustbot"
icon_state = "rustbot0"
declare_arrests = 0
arrest_type = 1
harmbaton = 1
@@ -72,7 +75,7 @@
/obj/machinery/bot/secbot/New()
..()
icon_state = "secbot[on]"
icon_state = "[base_icon][on]"
spawn(3)
var/datum/job/detective/J = new/datum/job/detective
@@ -83,12 +86,12 @@
/obj/machinery/bot/secbot/turn_on()
..()
icon_state = "secbot[on]"
icon_state = "[base_icon][on]"
updateUsrDialog()
/obj/machinery/bot/secbot/turn_off()
..()
icon_state = "secbot[on]"
icon_state = "[base_icon][on]"
updateUsrDialog()
/obj/machinery/bot/secbot/bot_reset()
@@ -199,7 +202,7 @@ Auto Patrol: []"},
oldtarget_name = user.name
visible_message("<span class='danger'>[src] buzzes oddly!</span>")
declare_arrests = 0
icon_state = "secbot[on]"
icon_state = "[base_icon][on]"
/obj/machinery/bot/secbot/bot_process()
if (!..())
@@ -227,9 +230,9 @@ Auto Patrol: []"},
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
if(harmbaton)
playsound(loc, 'sound/weapons/genhit1.ogg', 50, 1, -1)
icon_state = "secbot-c"
icon_state = "[base_icon]-c"
spawn(2)
icon_state = "secbot[on]"
icon_state = "[base_icon][on]"
var/mob/living/carbon/M = target
if(istype(M, /mob/living/carbon/human))
if( M.stuttering < 5 && !(M_HULK in M.mutations) )
+187 -168
View File
@@ -1,22 +1,20 @@
/* Alien Effects!
/* Alien shit!
* Contains:
* effect/alien
* structure/alien
* Resin
* Weeds
* Acid
* Egg
* effect/acid
*/
/*
* effect/alien
*/
/obj/effect/alien
/obj/structure/alien
icon = 'icons/mob/alien.dmi'
/*
* Resin
*/
/obj/effect/alien/resin
/obj/structure/alien/resin
name = "resin"
desc = "Looks like some kind of thick resin."
icon_state = "resin"
@@ -25,54 +23,54 @@
anchored = 1
var/health = 200
var/resintype = null
/obj/effect/alien/resin/New(location)
/obj/structure/alien/resin/New(location)
relativewall_neighbours()
..()
return
/obj/effect/alien/resin/Destroy()
/obj/structure/alien/resin/Destroy()
var/turf/T = loc
loc = null
T.relativewall_neighbours()
..()
/obj/effect/alien/resin/Move()
/obj/structure/alien/resin/Move()
..()
/obj/effect/alien/resin/wall
/obj/structure/alien/resin/wall
name = "resin wall"
desc = "Thick resin solidified into a wall."
icon_state = "resinwall" //same as resin, but consistency ho!
/obj/effect/alien/resin/wall/New()
icon_state = "wall0" //same as resin, but consistency ho!
resintype = "wall"
/obj/structure/alien/resin/wall/New()
relativewall_neighbours()
..()
/obj/effect/alien/resin/membrane
/obj/structure/alien/resin/membrane
name = "resin membrane"
desc = "Resin just thin enough to let light pass through."
icon_state = "resinmembrane"
icon_state = "membrane0"
opacity = 0
health = 120
resintype = "membrane"
/obj/effect/alien/resin/membrane/New()
/obj/structure/alien/resin/membrane/New()
relativewall_neighbours()
..()
/obj/effect/alien/resin/proc/healthcheck()
/obj/structure/alien/resin/proc/healthcheck()
if(health <=0)
qdel(src)
del(src)
/obj/effect/alien/resin/bullet_act(obj/item/projectile/Proj)
/obj/structure/alien/resin/bullet_act(obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
/obj/effect/alien/resin/ex_act(severity, target)
/obj/structure/alien/resin/ex_act(severity, target)
switch(severity)
if(1.0)
health -= 150
@@ -83,12 +81,12 @@
healthcheck()
/obj/effect/alien/resin/blob_act()
/obj/structure/alien/resin/blob_act()
health -= 50
healthcheck()
/obj/effect/alien/resin/hitby(atom/movable/AM)
/obj/structure/alien/resin/hitby(atom/movable/AM)
..()
visible_message("<span class='danger'>[src] was hit by [AM].</span>")
var/tforce = 0
@@ -102,19 +100,18 @@
healthcheck()
/obj/effect/alien/resin/attack_hand(mob/living/user)
/obj/structure/alien/resin/attack_hand(mob/living/user)
if(M_HULK in user.mutations)
user.visible_message("<span class='danger'>[user] destroys [src]!</span>")
health = 0
healthcheck()
/obj/effect/alien/resin/attack_paw(mob/user)
/obj/structure/alien/resin/attack_paw(mob/user)
return attack_hand(user)
/obj/effect/alien/resin/attack_alien(mob/living/user)
/obj/structure/alien/resin/attack_alien(mob/living/user)
if(islarva(user))
return
user.visible_message("<span class='danger'>[user] claws at the resin!</span>")
@@ -125,121 +122,87 @@
healthcheck()
/obj/effect/alien/resin/attackby(obj/item/I, mob/living/user)
/obj/structure/alien/resin/attackby(obj/item/I, mob/living/user)
health -= I.force
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
healthcheck()
..()
/obj/effect/alien/resin/CanPass(atom/movable/mover, turf/target, height=0)
/obj/structure/alien/resin/CanPass(atom/movable/mover, turf/target, height=0)
if(istype(mover) && mover.checkpass(PASSGLASS))
return !opacity
return !density
/*
* Weeds
*/
#define NODERANGE 3
/obj/effect/alien/weeds
name = "weeds"
desc = "Strange, alien-looking purple weeds."
/obj/structure/alien/weeds
gender = PLURAL
name = "resin floor"
desc = "A thick resin surface covers the floor."
icon_state = "weeds"
anchored = 1
density = 0
layer = 2
var/health = 15
var/obj/effect/alien/weeds/node/linked_node = null
/obj/effect/alien/weeds/node
name = "purple sac"
desc = "A purple sac covering alien weeds."
icon_state = "weednode"
layer = 3
luminosity = NODERANGE
var/node_range = NODERANGE
var/list/obj/effect/alien/weeds/connected_weeds
/obj/effect/alien/weeds/node/New()
connected_weeds = new()
..(src.loc, src)
/obj/effect/alien/weeds/node/Destroy()
for(var/obj/effect/alien/weeds/W in connected_weeds)
processing_objects.Add(W) // Start processing the weeds so they lose health when there's no connected node
..()
/obj/effect/alien/weeds/process()
if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range))
if(prob(50))
health -= 1
else if(prob(50))
health -= 2
else if(prob(25))
health -= 3
healthcheck()
/obj/effect/alien/weeds/New(pos, var/obj/effect/alien/weeds/node/N)
..()
var/obj/structure/alien/weeds/node/linked_node = null
/obj/structure/alien/weeds/New(pos, node)
..()
linked_node = node
if(istype(loc, /turf/space))
qdel(src)
del(src)
return
linked_node = N
if(linked_node)
linked_node.connected_weeds.Add(src)
if(icon_state == "weeds")icon_state = pick("weeds", "weeds1", "weeds2")
if(icon_state == "weeds")
icon_state = pick("weeds", "weeds1", "weeds2")
fullUpdateWeedOverlays()
spawn(rand(150, 200))
if(src)
Life()
return
/obj/effect/alien/weeds/Destroy()
if(linked_node)
linked_node.connected_weeds.Remove(src)
linked_node = null
processing_objects.Remove(src)
/obj/structure/alien/weeds/Destroy()
var/turf/T = loc
loc = null
for (var/obj/structure/alien/weeds/W in range(1,T))
W.updateWeedOverlays()
..()
/obj/effect/alien/weeds/proc/Life()
/obj/structure/alien/weeds/proc/Life()
set background = BACKGROUND_ENABLED
var/turf/U = get_turf(src)
if (istype(U, /turf/space))
if(istype(U, /turf/space))
del(src)
return
if(!linked_node || (get_dist(linked_node, src) > linked_node.node_range) )
healthcheck()
return
direction_loop:
for(var/dirn in cardinal)
var/turf/T = get_step(src, dirn)
if (!istype(T) || T.density || locate(/obj/effect/alien/weeds) in T || istype(T.loc, /area/arrival) || istype(T, /turf/space))
if (!istype(T) || T.density || locate(/obj/structure/alien/weeds) in T || istype(T, /turf/space))
continue
if(!linked_node || get_dist(linked_node, src) > linked_node.node_range)
return
for(var/obj/O in T)
if(O.density)
continue direction_loop
new /obj/effect/alien/weeds(T, linked_node)
/obj/effect/alien/weeds/ex_act(severity,target)
qdel(src)
/obj/effect/alien/weeds/fire_act(null, temperature, volume)
if(temperature > T0C+200)
health -= 1 * temperature
healthcheck()
new /obj/structure/alien/weeds(T, linked_node)
/obj/effect/alien/weeds/attackby(obj/item/I, mob/user)
/obj/structure/alien/weeds/ex_act(severity, target)
del(src)
/obj/structure/alien/weeds/attackby(obj/item/I, mob/user)
if(I.attack_verb.len)
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
else
@@ -253,72 +216,58 @@
playsound(loc, 'sound/items/Welder.ogg', 100, 1)
health -= damage
healthcheck()
/obj/effect/alien/weeds/proc/healthcheck()
healthcheck()
/obj/structure/alien/weeds/proc/healthcheck()
if(health <= 0)
qdel(src)
/obj/effect/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
del(src)
/obj/structure/alien/weeds/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 300)
health -= 5
healthcheck()
/*
* Acid
*/
/obj/effect/alien/acid
name = "acid"
desc = "Burbling corrossive stuff. I wouldn't want to touch it."
icon_state = "acid"
density = 0
opacity = 0
anchored = 1
/obj/structure/alien/weeds/proc/updateWeedOverlays()
var/atom/target
var/ticks = 0
var/target_strength = 0
overlays.Cut()
var/turf/N = get_step(src, NORTH)
var/turf/S = get_step(src, SOUTH)
var/turf/E = get_step(src, EAST)
var/turf/W = get_step(src, WEST)
if(!locate(/obj/structure/alien) in N.contents)
if(istype(N, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_s", layer=2, pixel_y = 32)
if(!locate(/obj/structure/alien) in S.contents)
if(istype(S, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_n", layer=2, pixel_y = -32)
if(!locate(/obj/structure/alien) in E.contents)
if(istype(E, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_w", layer=2, pixel_x = 32)
if(!locate(/obj/structure/alien) in W.contents)
if(istype(W, /turf/simulated/floor))
src.overlays += image('icons/mob/alien.dmi', "weeds_side_e", layer=2, pixel_x = -32)
/obj/effect/alien/acid/New(loc, target)
..(loc)
src.target = target
if(isturf(target)) // Turf take twice as long to take down.
target_strength = 8
else
target_strength = 4
tick()
/obj/structure/alien/weeds/proc/fullUpdateWeedOverlays()
for (var/obj/structure/alien/weeds/W in range(1,src))
W.updateWeedOverlays()
/obj/effect/alien/acid/proc/tick()
if(!target)
del(src)
//Weed nodes
/obj/structure/alien/weeds/node
name = "glowing resin"
desc = "Blue bioluminescence shines from beneath the surface."
icon_state = "weednode"
luminosity = 1
var/node_range = NODERANGE
ticks += 1
if(ticks >= target_strength)
/obj/structure/alien/weeds/node/New()
..(loc, src)
for(var/mob/O in hearers(src, null))
O.show_message("\green <B>[src.target] collapses under its own weight into a puddle of goop and undigested debris!</B>", 1)
#undef NODERANGE
if(istype(target, /turf/simulated/wall)) // I hate turf code.
var/turf/simulated/wall/W = target
W.dismantle_wall(1)
else
del(target)
del(src)
return
switch(target_strength - ticks)
if(6)
visible_message("\green <B>[src.target] is holding up against the acid!</B>")
if(4)
visible_message("\green <B>[src.target]\s structure is being melted by the acid!</B>")
if(2)
visible_message("\green <B>[src.target] is struggling to withstand the acid!</B>")
if(0 to 1)
visible_message("\green <B>[src.target] begins to crumble under the acid!</B>")
spawn(rand(150, 200)) tick()
/*
* Egg
@@ -332,7 +281,7 @@
#define MIN_GROWTH_TIME 1800 //time it takes to grow a hugger
#define MAX_GROWTH_TIME 3000
/obj/effect/alien/egg
/obj/structure/alien/egg
name = "egg"
desc = "A large mottled egg."
icon_state = "egg_growing"
@@ -342,20 +291,20 @@
var/status = GROWING //can be GROWING, GROWN or BURST; all mutually exclusive
/obj/effect/alien/egg/New()
/obj/structure/alien/egg/New()
new /obj/item/clothing/mask/facehugger(src)
..()
spawn(rand(MIN_GROWTH_TIME, MAX_GROWTH_TIME))
Grow()
/obj/effect/alien/egg/attack_paw(mob/user)
/obj/structure/alien/egg/attack_paw(mob/user)
if(isalien(user))
switch(status)
if(BURST)
user << "<span class='notice'>You clear the hatched egg.</span>"
playsound(loc, 'sound/effects/attackblob.ogg', 100, 1)
qdel(src)
del(src)
return
if(GROWING)
user << "<span class='notice'>The child is not developed yet.</span>"
@@ -368,19 +317,20 @@
return attack_hand(user)
/obj/effect/alien/egg/attack_hand(mob/user)
/obj/structure/alien/egg/attack_hand(mob/user)
user << "<span class='notice'>It feels slimy.</span>"
/obj/effect/alien/egg/proc/GetFacehugger()
/obj/structure/alien/egg/proc/GetFacehugger()
return locate(/obj/item/clothing/mask/facehugger) in contents
/obj/effect/alien/egg/proc/Grow()
/obj/structure/alien/egg/proc/Grow()
icon_state = "egg"
status = GROWN
/obj/effect/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
/obj/structure/alien/egg/proc/Burst(var/kill = 1) //drops and kills the hugger if any is remaining
if(status == GROWN || status == GROWING)
icon_state = "egg_hatched"
flick("egg_opening", src)
@@ -399,13 +349,13 @@
break
/obj/effect/alien/egg/bullet_act(obj/item/projectile/Proj)
/obj/structure/alien/egg/bullet_act(obj/item/projectile/Proj)
health -= Proj.damage
..()
healthcheck()
/obj/effect/alien/egg/attackby(obj/item/I, mob/user)
/obj/structure/alien/egg/attackby(obj/item/I, mob/user)
if(I.attack_verb.len)
visible_message("<span class='danger'>[user] has [pick(I.attack_verb)] [src] with [I]!</span>")
else
@@ -423,21 +373,21 @@
healthcheck()
/obj/effect/alien/egg/proc/healthcheck()
/obj/structure/alien/egg/proc/healthcheck()
if(health <= 0)
if(status != BURST && status != BURSTING)
Burst()
else if(status == BURST && prob(50))
qdel(src) //Remove the egg after it has been hit after bursting.
del(src) //Remove the egg after it has been hit after bursting.
/obj/effect/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
/obj/structure/alien/egg/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 500)
health -= 5
healthcheck()
/obj/effect/alien/egg/HasProximity(atom/movable/AM)
/obj/structure/alien/egg/HasProximity(atom/movable/AM)
if(status == GROWN)
if(!CanHug(AM))
return
@@ -455,3 +405,72 @@
#undef MIN_GROWTH_TIME
#undef MAX_GROWTH_TIME
/*
* Acid
*/
/obj/effect/acid
gender = PLURAL
name = "acid"
desc = "Burbling corrossive stuff."
icon = 'icons/effects/effects.dmi'
icon_state = "acid"
density = 0
opacity = 0
anchored = 1
unacidable = 1
var/atom/target
var/ticks = 0
var/target_strength = 0
/obj/effect/acid/New(loc, targ)
..(loc)
target = targ
//handle APCs and newscasters and stuff nicely
pixel_x = target.pixel_x
pixel_y = target.pixel_y
if(isturf(target)) //Turfs take twice as long to take down.
target_strength = 640
else
target_strength = 320
tick()
/obj/effect/acid/proc/tick()
if(!target)
del(src)
ticks++
if(ticks >= target_strength)
target.visible_message("<span class='warning'>[target] collapses under its own weight into a puddle of goop and undigested debris!</span>")
if(istype(target, /turf/simulated/wall))
var/turf/simulated/wall/W = target
W.dismantle_wall(1)
else
del(target)
del(src)
return
x = target.x
y = target.y
z = target.z
switch(target_strength - ticks)
if(480)
visible_message("<span class='warning'>[target] is holding up against the acid!</span>")
if(320)
visible_message("<span class='warning'>[target] is being melted by the acid!</span>")
if(160)
visible_message("<span class='warning'>[target] is struggling to withstand the acid!</span>")
if(80)
visible_message("<span class='warning'>[target] begins to crumble under the acid!</span>")
spawn(1)
if(src)
tick()
+9 -6
View File
@@ -141,9 +141,12 @@ var/last_chew = 0
..()
if(istype(I, /obj/item/stack/rods))
var/obj/item/stack/rods/R = I
var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod
R.use(1)
user.put_in_hands(W)
user << "<span class='notice'>You wrap the cable restraint around the top of the rod.</span>"
del(src)
if (R.use(1))
var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod
user.u_equip(src)
user.put_in_hands(W)
user << "<span class='notice'>You wrap the cable restraint around the top of the rod.</span>"
del(src)
else
user << "<span class='warning'>You need one rod to make a wired rod.</span>"
return
+9 -1
View File
@@ -196,4 +196,12 @@
throwforce = 5
stunforce = 5
hitcost = 3750
slot_flags = null
slot_flags = null
/obj/item/weapon/melee/baton/cattleprod/update_icon()
if(status)
icon_state = "stunprod_active"
else if(!bcell)
icon_state = "stunprod_nocell"
else
icon_state = "stunprod"
@@ -167,6 +167,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob)
..()
if(istype(I, /obj/item/weapon/shard))
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
user.u_equip(I)
user.u_equip(src)
user.put_in_hands(S)
user << "<span class='notice'>You fasten the glass shard to the top of the rod with the cable.</span>"
del(I)
@@ -174,6 +178,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob)
else if(istype(I, /obj/item/weapon/wirecutters))
var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod
user.u_equip(I)
user.u_equip(src)
user.put_in_hands(P)
user << "<span class='notice'>You fasten the wirecutters to the top of the rod with the cable, prongs outward.</span>"
del(I)
@@ -147,7 +147,7 @@
new /obj/item/clothing/gloves/latex(src)
new /obj/item/device/radio/headset/heads/cmo(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/weapon/defibrillator(src)
new /obj/item/weapon/defibrillator/loaded(src)
new /obj/item/weapon/storage/belt/medical(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/reagent_containers/hypospray(src)
@@ -22,7 +22,7 @@
"<span class='warning'>[buckled_mob.name] struggles to break free of the gelatinous resin...</span>",\
"<span class='warning'>You struggle to break free from the gelatinous resin...</span>",\
"<span class='notice'>You hear squelching...</span>")
spawn(1200)
spawn(600)
if(user && buckled_mob && user.buckled == src)
buckled_mob.pixel_y = 0
unbuckle()
@@ -51,11 +51,21 @@
M.loc = src.loc
M.dir = src.dir
M.update_canmove()
M.pixel_y = 6
M.pixel_y += 1
M.pixel_x += 2
M.anchored = anchored
src.buckled_mob = M
src.add_fingerprint(user)
src.overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6)
return
/obj/structure/stool/bed/nest/unbuckle()
if(buckled_mob)
buckled_mob.pixel_y -= 1
buckled_mob.pixel_x -= 2
overlays.Cut()
..()
/obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob)
var/aforce = W.force
health = max(0, health - aforce)
+14
View File
@@ -95,4 +95,18 @@
// DE-HACK
/turf/simulated/wall/vault/relativewall()
return
//Xeno wall smoothing
/obj/structure/alien/resin/relativewall()
var/junction = 0 //will be used to determine from which side the wall is connected to other walls
for(var/obj/structure/alien/resin/W in orange(src,1))
if(abs(src.x-W.x)-abs(src.y-W.y)) //doesn't count diagonal walls
junction |= get_dir(src,W)
var/obj/structure/alien/resin/resin = src
resin.icon_state = "[resin.resintype][junction]"
return
+5 -584
View File
@@ -5,10 +5,10 @@ atom/var/list/suit_fibers
atom/proc/add_fibers(mob/living/carbon/human/M)
if(M.gloves && istype(M.gloves,/obj/item/clothing/))
var/obj/item/clothing/gloves/G = M.gloves
if(G.transfer_blood) //bloodied gloves transfer blood to touched objects
if(G.transfer_blood > 1) //bloodied gloves transfer blood to touched objects
if(add_blood(G.bloody_hands_mob)) //only reduces the bloodiness of our gloves if the item wasn't already bloody
G.transfer_blood--
else if(M.bloody_hands)
else if(M.bloody_hands > 1)
if(add_blood(M.bloody_hands_mob))
M.bloody_hands--
if(!suit_fibers) suit_fibers = list()
@@ -19,13 +19,13 @@ atom/proc/add_fibers(mob/living/carbon/human/M)
if(prob(10*item_multiplier) && !(fibertext in suit_fibers))
//world.log << "Added fibertext: [fibertext]"
suit_fibers += fibertext
if(!(M.wear_suit.body_parts_covered & 32))
if(!(M.wear_suit.body_parts_covered & UPPER_TORSO))
if(M.w_uniform)
fibertext = "Fibers from \a [M.w_uniform]."
if(prob(12*item_multiplier) && !(fibertext in suit_fibers)) //Wearing a suit means less of the uniform exposed.
//world.log << "Added fibertext: [fibertext]"
suit_fibers += fibertext
if(!(M.wear_suit.body_parts_covered & 64))
if(!(M.wear_suit.body_parts_covered & HANDS))
if(M.gloves)
fibertext = "Material from a pair of [M.gloves.name]."
if(prob(20*item_multiplier) && !(fibertext in suit_fibers))
@@ -45,583 +45,4 @@ atom/proc/add_fibers(mob/living/carbon/human/M)
fibertext = "Material from a pair of [M.gloves.name]."
if(prob(20*item_multiplier) && !(fibertext in suit_fibers))
//world.log << "Added fibertext: [fibertext]"
suit_fibers += "Material from a pair of [M.gloves.name]."
if(!suit_fibers.len) del suit_fibers
var/const/FINGERPRINT_COMPLETE = 6 //This is the output of the stringpercent(print) proc, and means about 80% of
//the print must be there for it to be complete. (Prints are 32 digits)
obj/machinery/computer/forensic_scanning
name = "\improper High-Res Forensic Scanning Computer"
icon_state = "forensic"
var/obj/item/scanning
var/temp = ""
var/canclear = 1
var/authenticated = 0
//Here's the structure for files: each entry is a list, and entry one in that list is the string of their
//full and scrambled fingerprint. This acts as the method to arrange evidence. Each subsequent entry is list
//in the form (from entries):
// 1: Object
// 2: All prints on the object
// 3: All fibers on the object
// 4: All blood on the object
//This is then used to show what objects were used to "find" the full print, as well as the fibers on it.
var/list/files
//This holds objects (1) without prints, and their fibers(2) and blood(3).
var/list/misc
var/obj/item/weapon/f_card/card
var/scan_data = ""
var/scan_name = ""
var/scan_process = 0
req_access = list(access_forensics_lockers)
New()
..()
new /obj/item/weapon/book/manual/detective(get_turf(src))
return
attack_ai(mob/user)
return attack_hand(user)
attack_hand(mob/user)
if(..())
return
user.set_machine(src)
var/dat = ""
var/isai = 0
if(istype(usr,/mob/living/silicon))
isai = 1
if(temp)
dat += "<tt>[temp]</tt><br><br>"
if(canclear) dat += "<a href='?src=\ref[src];operation=clear'>{Clear Screen}</a>"
else
if(!authenticated)
dat += "<a href='?src=\ref[src];operation=login'>{Log In}</a>"
else
dat += "<a href='?src=\ref[src];operation=logout'>{Log Out}</a><br><hr><br>"
if(scanning)
if(scan_process)
dat += "Scan Object: {[scanning.name]}<br>"
dat += "<a href='?src=\ref[src];operation=cancel'>{Cancel Scan}</a> {Print}<br>"
else
if(isai) dat += "Scan Object: {[scanning.name]}<br>"
else dat += "Scan Object: <a href='?src=\ref[src];operation=eject'>{[scanning.name]}</a><br>"
dat += "<a href='?src=\ref[src];operation=scan'>{Scan}</a> <a href='?src=\ref[src];operation=print'>{Print}</a><br>"
else
if(isai) dat += "{No Object Inserted}<br>"
else dat += "<a href='?src=\ref[src];operation=insert'>{No Object Inserted}</a><br>"
dat += "{Scan} <a href='?src=\ref[src];operation=print'>{Print}</a><br>"
dat += "<a href='?src=\ref[src];operation=database'>{Access Database}</a><br><br>"
dat += "<tt>[scan_data]</tt>"
if(scan_data && !scan_process)
dat += "<br><a href='?src=\ref[src];operation=erase'>{Erase Data}</a>"
user << browse(dat,"window=scanner")
onclose(user,"scanner")
Topic(href,href_list)
switch(href_list["operation"])
if("login")
var/mob/M = usr
if(istype(M,/mob/living/silicon))
authenticated = 1
updateDialog()
return
if (allowed(M))
authenticated = 1
if("logout")
authenticated = 0
if("clear")
if(canclear)
temp = null
if("eject")
if(scanning)
scanning.loc = loc
scanning = null
else
temp = "Eject Failed: No Object"
if("insert")
var/mob/M = usr
var/obj/item/I = M.get_active_hand()
if(I && istype(I))
if(istype(I, /obj/item/weapon/evidencebag))
scanning = I.contents[1]
scanning.loc = src
I.overlays -= scanning
I.icon_state = "evidenceobj"
else
scanning = I
M.drop_item()
I.loc = src
else
usr << "Invalid Object Rejected."
if("card") //Processing a fingerprint card.
var/mob/M = usr
var/obj/item/I = M.get_active_hand()
if(!(I && istype(I,/obj/item/weapon/f_card)))
I = card
if(I && istype(I,/obj/item/weapon/f_card))
card = I
if(!card.fingerprints)
card.fingerprints = list()
if(card.amount > 1 || !card.fingerprints.len)
usr << "\red ERROR: No prints/too many cards."
if(card.loc == src)
card.loc = src.loc
card = null
return
M.drop_item()
I.loc = src
process_card()
else
usr << "\red Invalid Object Rejected."
if("database") //Viewing all records in each database
canclear = 1
if(href_list["delete_record"])
delete_dossier(href_list["delete_record"])
if(href_list["delete_aux"])
delete_record(href_list["delete_aux"])
if((!misc || !misc.len) && (!files || !files.len))
temp = "Database is empty."
else
if(files && files.len)
temp = "<b>Criminal Evidence Database</b><br><br>"
temp += "Consolidated data points:<br>"
for(var/print in files)
var/list/file = files[print]
temp += "<a href='?src=\ref[src];operation=record;identifier=[print]'>{[file[2]]}</a><br>"
temp += "<br><a href='?src=\ref[src];operation=card'>{Insert Finger Print Card (To complete a Dossier)}</a><br><br><br>"
else
temp = ""
if(misc && misc.len)
temp += "<b>Auxiliary Evidence Database</b><br><br>"
temp += "This is where anything without fingerprints goes.<br><br>"
for(var/atom in misc)
var/list/data_entry = misc[atom]
temp += "<a href='?src=\ref[src];operation=auxiliary;identifier=[atom]'>{[data_entry[3]]}</a><br>"
if("record") //Viewing a record from the "files" database.
canclear = 0
if(files)
var/list/dossier = files[href_list["identifier"]]
if(href_list["ren"])
var/new_title = copytext(sanitize(input("Rename to what?", "Dossier Editing", "Dossier [files.Find(href_list["identifier"])]") as null|text),1,MAX_MESSAGE_LEN)
if(new_title)
dossier[2] = new_title
else
usr << "Illegal or blank name."
temp = "<b>Criminal Evidence Database</b><br><br>"
temp += "Consolidated data points: [dossier[2]]<br>"
var/print_string = "Fingerprints: Print not complete!<br>"
if(stringpercent(dossier[1]) <= FINGERPRINT_COMPLETE)
print_string = "Fingerprints: (80% or higher completion reached)<br>[dossier[1]]<br>"
temp += print_string
for(var/object in dossier)
if(object == dossier[1] || object == dossier[2])
continue
temp += "<hr>"
var/list/outputs = dossier[object]
var/list/prints = outputs[1]
temp += "<big><b>Object:</b> [outputs[4]]</big><br>"
temp += "&nbsp<b>Fingerprints:</b><br>"
temp += "&nbsp;&nbsp;&nbsp;&nbsp;[prints.len] Unique fingerprints found.<br>"
var/complete_prints = 0
for(var/print in prints)
if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE)
complete_prints++
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[prints[print]]<br>"
if(complete_prints)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;And [prints.len - complete_prints] unknown unique prints.<br>"
else
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No prints of sufficient completeness.<br>"
var/list/fibers = outputs[2]
if(fibers && fibers.len)
temp += "&nbsp<b>Fibers:</b><br>"
for(var/j = 1, j <= fibers.len, j++)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fibers[j]]<br>"
var/list/blood = outputs[3]
if(blood && blood.len)
temp += "&nbsp<b>Blood:</b><br>"
for(var/named in blood)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type: [blood[named]], DNA: [named]<br>"
temp += "<br><a href='?src=\ref[src];operation=record;identifier=[href_list["identifier"]];ren=true'>{Rename this Dossier}</a>"
temp += "<br><a href='?src=\ref[src];operation=database;delete_record=[href_list["identifier"]]'>{Delete this Dossier}</a>"
temp += "<br><a href='?src=\ref[src];operation=databaseprint;identifier=[href_list["identifier"]]'>{Print}</a>"
else
temp = "ERROR. Database not found!<br>"
temp += "<br><a href='?src=\ref[src];operation=database'>{Return}</a>"
if("databaseprint") //Printing from the "files" database.
if(files)
var/obj/item/weapon/paper/P = new(loc)
var/list/dossier = files[href_list["identifier"]]
P.name = "\improper Database File ([dossier[2]])"
P.overlays += "paper_words"
P.info = "<b>Criminal Evidence Database</b><br><br>"
P.info += "Consolidated data points: [dossier[2]]<br>"
var/print_string = "Fingerprints: Print not complete!<br>"
if(stringpercent(dossier[1]) <= FINGERPRINT_COMPLETE)
print_string = "Fingerprints: (80% or higher completion reached)<br>[dossier[1]]<br>"
P.info += print_string
for(var/object in dossier)
if(object == dossier[1] || object == dossier[2])
continue
P.info += "<hr>"
var/list/outputs = dossier[object]
var/list/prints = outputs[1]
P.info += "<big><b>Object:</b> [outputs[4]]</big><br>"
P.info += "&nbsp<b>Fingerprints:</b><br>"
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;[prints.len] Unique fingerprints found.<br>"
var/complete_prints = 0
for(var/print in prints)
if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE)
complete_prints++
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[prints[print]]<br>"
if(complete_prints)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;And [prints.len - complete_prints] unknown unique prints.<br>"
else
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No prints of sufficient completeness.<br>"
var/list/fibers = outputs[2]
if(fibers && fibers.len)
P.info += "&nbsp<b>Fibers:</b><br>"
for(var/j = 1, j <= fibers.len, j++)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fibers[j]]<br>"
var/list/blood = outputs[3]
if(blood && blood.len)
P.info += "&nbsp<b>Blood:</b><br>"
for(var/named in blood)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type: [blood[named]], DNA: [named]<br>"
else
usr << "ERROR. Database not found!<br>"
if("auxiliary") //Viewing a record from the "misc" database.
canclear = 0
if(misc)
temp = "<b>Auxiliary Evidence Database</b><br><br>"
var/list/outputs = misc[href_list["identifier"]]
temp += "<big><b>Consolidated data points:</b> [outputs[3]]</big><br>"
var/list/prints = outputs[4]
if(prints)
temp += "&nbsp<b>Fingerprints:</b><br>"
temp += "&nbsp;&nbsp;&nbsp;&nbsp;[prints.len] Unique fingerprints found.<br>"
var/complete_prints = 0
for(var/print in prints)
if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE)
complete_prints++
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[prints[print]]<br>"
if(complete_prints)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;And [prints.len - complete_prints] unknown unique prints.<br>"
else
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No prints of sufficient completeness.<br>"
var/list/fibers = outputs[1]
if(fibers && fibers.len)
temp += "&nbsp<b>Fibers:</b><br>"
for(var/fiber in fibers)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fiber]<br>"
var/list/blood = outputs[2]
if(blood && blood.len)
temp += "&nbsp<b>Blood:</b><br>"
for(var/named in blood)
temp += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type: [blood[named]], DNA: [named]<br>"
temp += "<br><a href='?src=\ref[src];operation=database;delete_aux=[href_list["identifier"]]'>{Delete This Record}</a>"
temp += "<br><a href='?src=\ref[src];operation=auxiliaryprint;identifier=[href_list["identifier"]]'>{Print}</a>"
else
temp = "ERROR. Database not found!<br>"
temp += "<br><a href='?src=\ref[src];operation=database'>{Return}</a>"
if("auxiliaryprint") //Printing from the "misc" database.
if(misc)
var/obj/item/weapon/paper/P = new(loc)
var/list/outputs = misc[href_list["identifier"]]
P.name = "\improper Auxiliary Database File ([outputs[3]])"
P.overlays += "paper_words"
P.info = "<b>Auxiliary Evidence Database</b><br><br>"
P.info += "<big><b>Consolidated data points:</b> [outputs[3]]</big><br>"
var/list/prints = outputs[4]
if(prints)
P.info += "&nbsp<b>Fingerprints:</b><br>"
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;[prints.len] Unique fingerprints found.<br>"
var/complete_prints = 0
for(var/print in prints)
if(stringpercent(prints[print]) <= FINGERPRINT_COMPLETE)
complete_prints++
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[prints[print]]<br>"
if(complete_prints)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;And [prints.len - complete_prints] unknown unique prints.<br>"
else
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No prints of sufficient completeness.<br>"
var/list/fibers = outputs[1]
if(fibers && fibers.len)
P.info += "&nbsp<b>Fibers:</b><br>"
for(var/fiber in fibers)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[fiber]<br>"
var/list/blood = outputs[2]
if(blood && blood.len)
P.info += "&nbsp<b>Blood:</b><br>"
for(var/named in blood)
P.info += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type: [blood[named]], DNA: [named]<br>"
else
usr << "ERROR. Database not found!<br>"
if("scan")
if(istype(scanning,/obj/item/weapon/f_card))
card = scanning
scanning = initial(scanning)
process_card()
else if(scanning)
scan_process = 3
scan_data = "Scanning [scanning]: 25% complete"
updateDialog()
sleep(50)
if(!scan_process)
scan_data = null
updateDialog()
return
scan_data = "Scanning [scanning]: 50% complete"
updateDialog()
scan_process = 2
sleep(50)
if(!scan_process)
scan_data = null
updateDialog()
return
scan_data = "Scanning [scanning]: 75% complete"
updateDialog()
scan_process = 1
sleep(50)
if(!scan_process)
scan_data = null
updateDialog()
return
if(scanning)
scan_process = 0
scan_name = scanning.name
scan_data = "<u>[scanning]</u><br><br>"
if (scanning.blood_DNA)
scan_data += "Blood Found:<br>"
for(var/blood in scanning.blood_DNA)
scan_data += "Blood type: [scanning.blood_DNA[blood]]\nDNA: [blood]<br><br>"
else
scan_data += "No Blood Found<br><br>"
if(!scanning.fingerprints)
scan_data += "No Fingerprints Found<br><br>"
else
scan_data += "Isolated [scanning.fingerprints.len] Fingerprints. Loaded into database.<br>"
add_data(scanning)
if(!scanning.suit_fibers)
scan_data += "No Fibers/Materials Located<br>"
else
scan_data += "Fibers/Materials Found:<br>"
for(var/data in scanning.suit_fibers)
scan_data += "- [data]<br>"
if(istype(scanning,/obj/item/device/detective_scanner) || (istype(scanning, /obj/item/device/pda) && scanning:cartridge && scanning:cartridge.access_security))
scan_data += "<br><b>Data transfered from \the [scanning] to Database.</b><br>"
add_data_scanner(scanning)
else if(!scanning.fingerprints)
scan_data += "<br><b><a href='?src=\ref[src];operation=add'>Add to Database?</a></b><br>"
else
temp = "Scan Failed: No Object"
if("print") //Printing scan data
if(scan_data)
temp = "Scan Data Printed."
var/obj/item/weapon/paper/P = new(loc)
P.name = "\improper Scan Data ([scan_name])"
P.info = "<tt>[scan_data]</tt>"
P.overlays += "paper_words"
else
temp = "Print Failed: No Data"
if("erase")
scan_data = ""
if("cancel")
scan_process = 0
if("add") //Adding an object (Manually) to the database.
if(scanning)
add_data(scanning)
else
temp = "Data Transfer Failed: No Object."
if("rename")
if(!files || !files[href_list["identifier"]])
temp = "ERROR: Record/Database not found!"
else
var/new_title = copytext(sanitize(input("Rename to what?", "Dossier Editing", "Dossier [files.Find(href_list["identifier"])]") as null|text),1,MAX_MESSAGE_LEN)
if(new_title)
var/list/file = files[href_list["identifier"]]
file[2] = new_title
updateUsrDialog()
ex_act()
return
proc/add_data_scanner(var/obj/item/device/W)
if(istype(W, /obj/item/device/detective_scanner))
var/obj/item/device/detective_scanner/D = W
if(D.stored)
for(var/atom in D.stored)
var/list/data = D.stored[atom]
add_data_master(atom,data[1],data[2],data[3],data[4])
D.stored = list()
else if(istype(W, /obj/item/device/pda) && W:cartridge && W:cartridge.access_security)
if(W:cartridge.stored_data)
for(var/atom in W:cartridge.stored_data)
var/list/data = W:cartridge.stored_data[atom]
add_data_master(atom,data[1],data[2],data[3],data[4])
W:cartridge.stored_data = list()
return
proc/add_data(var/atom/scanned_atom)
return add_data_master("\ref [scanned_atom]", scanned_atom.fingerprints,\
scanned_atom.suit_fibers, scanned_atom.blood_DNA, "[scanned_atom.name] (Direct Scan)")
/********************************
*****DO NOT DIRECTLY CALL ME*****
********************************/
proc/add_data_master(var/atom_reference, var/list/atom_fingerprints, var/list/atom_suit_fibers, var/list/atom_blood_DNA, var/atom_name)
//What follows is massive. It cross references all stored data in the scanner with the other stored data,
//and what is already in the computer. Not sure how bad the lag may/may not be.
if(!misc)
misc = list()
var/list/data_entry = misc[atom_reference]
if(data_entry)
var/list/fibers = data_entry[1]
if(!fibers)
fibers = list()
if(atom_suit_fibers)
for(var/fiber in atom_suit_fibers) //Fibers~~~
if(!fibers.Find(fiber)) //It isn't! Add!
fibers += fiber
var/list/blood = data_entry[2]
if(!blood)
blood = list()
if(atom_blood_DNA)
for(var/main_blood in atom_blood_DNA)
if(!blood[main_blood])
blood[main_blood] = atom_blood_DNA[blood]
var/list/prints = data_entry[4]
if(!prints && atom_fingerprints)
prints = list()
if(atom_fingerprints)
for(var/print in atom_fingerprints)
if(!prints[print])
prints[print] = atom_fingerprints[print]
else
var/list/templist[4]
templist[1] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
templist[2] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
templist[3] = atom_name
templist[4] = atom_fingerprints ? atom_fingerprints.Copy() : null
misc[atom_reference] = templist //Store it!
//Has prints.
if(atom_fingerprints)
if(!files)
files = list()
for(var/main_print in atom_fingerprints)
data_entry = files[main_print]
if(data_entry)//The print is already in here!
var/list/internal_atom = data_entry[atom_reference] //Lets see if we can find the current object
if(internal_atom)
//We must be on a roll! Just update what needs to be updated.
var/list/internal_prints = internal_atom[1]
for(var/print in atom_fingerprints) //Sorry for the double loop! D:
var/associated_print = internal_prints[print]
var/reference_print = atom_fingerprints[print]
if(associated_print && associated_print != reference_print) //It does not match
internal_prints[print] = stringmerge(associated_print, reference_print)
else if(!associated_print)
internal_prints[print] = reference_print
//If the main print was updated, lets update the master as well.
if(print == main_print && (!associated_print || (associated_print && associated_print != reference_print)))
update_fingerprints(main_print, internal_prints[print])
//Fibers.
var/list/fibers = internal_atom[2]
if(!fibers)
fibers = list()
if(atom_suit_fibers)
for(var/fiber in atom_suit_fibers) //Fibers~~~
if(!fibers.Find(fiber)) //It isn't! Add!
fibers += fiber
//Blood.
var/list/blood = internal_atom[3]
if(!blood)
blood = list()
if(atom_blood_DNA)
for(var/main_blood in atom_blood_DNA)
if(!blood[main_blood])
blood[main_blood] = atom_blood_DNA[blood]
continue
//It's not in there! We gotta add it.
update_fingerprints(main_print, atom_fingerprints[main_print])
var/list/data_point[4]
data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null
data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
data_point[4] = atom_name
data_entry[atom_reference] = data_point
continue
//No print at all! New data entry, go!
var/list/data_point[4]
data_point[1] = atom_fingerprints ? atom_fingerprints.Copy() : null
data_point[2] = atom_suit_fibers ? atom_suit_fibers.Copy() : null
data_point[3] = atom_blood_DNA ? atom_blood_DNA.Copy() : null
data_point[4] = atom_name
var/list/new_file[2]
new_file[1] = atom_fingerprints[main_print]
new_file[2] = "Dossier [files.len + 1]"
new_file[atom_reference] = data_point
files[main_print] = new_file
return 1
/********************************
***END DO NOT DIRECTLY CALL ME***
********************************/
proc/update_fingerprints(var/ref_print, var/new_print)
var/list/master = files[ref_print]
if(master)
master[1] = stringmerge(master[1],new_print)
else
CRASH("Fucking hell. Something went wrong, and it tried to update a null print or something. Tell SkyMarshal (and give him this call stack)")
return
proc/process_card() //Same as above, but for fingerprint cards
if(card.fingerprints && !(card.amount > 1) && islist(card.fingerprints) && files && files.len)
usr << "You insert the card, and it is destroyed by the machinery in the process of comparing prints."
var/found = 0
for(var/master_print in card.fingerprints)
var/list/data_entry = files[master_print]
if(data_entry)
found = 1
data_entry[1] = master_print
if(found)
usr << "The machinery finds it can complete a match."
else
usr << "No match found."
del(card)
else
usr << "\red ERROR: No prints/too many cards."
if(card.loc == src)
card.loc = src.loc
card = null
return
return
proc/delete_record(var/atom_ref) //Deletes an entry in the misc database at the given location
if(misc && misc.len)
misc.Remove(atom_ref)
return
proc/delete_dossier(var/print) //Deletes a Dossier at a given location.
if(files && files.len)
files.Remove(print)
return
detective
icon_state = "old"
name = "PowerScan Mk.I"
suit_fibers += "Material from a pair of [M.gloves.name]."
+18 -34
View File
@@ -1,4 +1,4 @@
//CONTAINS: Evidence bags and fingerprint cards
//CONTAINS: Evidence bags
/obj/item/weapon/evidencebag
name = "evidence bag"
@@ -8,17 +8,22 @@
item_state = ""
w_class = 1
/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user as mob, proximity)
if(!proximity) return
if(!in_range(I, user))
/obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity)
if(!proximity || loc == I)
return
evidencebagEquip(I, user)
/obj/item/weapon/evidencebag/attackby(obj/item/I, mob/user)
if(evidencebagEquip(I, user))
return 1
/obj/item/weapon/evidencebag/proc/evidencebagEquip(obj/item/I, mob/user)
if(!istype(I) || I.anchored == 1)
return ..()
return
if(istype(I, /obj/item/weapon/evidencebag))
user << "<span class='notice'>You find putting an evidence bag in another evidence bag to be slightly absurd.</span>"
return
return 1 //now this is podracing
if(I.w_class > 3)
user << "<span class='notice'>[I] won't fit in [src].</span>"
@@ -26,7 +31,7 @@
if(contents.len)
user << "<span class='notice'>[src] already has something inside it.</span>"
return ..()
return
if(!isturf(I.loc)) //If it isn't on the floor. Do some checks to see if it's in our hands or a box. Otherwise give up.
if(istype(I.loc,/obj/item/weapon/storage)) //in a container.
@@ -40,8 +45,8 @@
else
return
user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\
"You hear a rustle as someone puts something into a plastic bag.")
user.visible_message("<span class='notice'>[user] puts [I] into [src].</span>", "<span class='notice'>You put [I] inside [src].</span>",\
"<span class='notice'>You hear a rustle as someone puts something into a plastic bag.</span>")
icon_state = "evidence"
@@ -58,14 +63,13 @@
desc = "An evidence bag containing [I]. [I.desc]"
I.loc = src
w_class = I.w_class
return
return 1
/obj/item/weapon/evidencebag/attack_self(mob/user as mob)
if(contents.len)
var/obj/item/I = contents[1]
user.visible_message("[user] takes [I] out of [src]", "You take [I] out of [src].",\
"You hear someone rustle around in a plastic bag, and remove something.")
user.visible_message("<span class='notice'>[user] takes [I] out of [src].</span>", "<span class='notice'>You take [I] out of [src].</span>",\
"<span class='notice'>You hear someone rustle around in a plastic bag, and remove something.</span>")
overlays.Cut() //remove the overlays
user.put_in_hands(I)
w_class = 1
@@ -88,24 +92,4 @@
new /obj/item/weapon/evidencebag(src)
new /obj/item/weapon/evidencebag(src)
..()
return
/obj/item/weapon/f_card
name = "finger print card"
desc = "Used to take fingerprints."
icon = 'icons/obj/card.dmi'
icon_state = "fingerprint0"
var/amount = 10.0
item_state = "paper"
throwforce = 1
w_class = 1.0
throw_speed = 3
throw_range = 5
/obj/item/weapon/fcardholder
name = "fingerprint card case"
desc = "Apply finger print card."
icon = 'icons/obj/items.dmi'
icon_state = "fcardholder0"
item_state = "clipboard"
return
@@ -1,3 +1,4 @@
/mob
var/bloody_hands = 0
var/mob/living/carbon/human/bloody_hands_mob
@@ -26,19 +27,16 @@
can_be_placed_into = null
flags = FPRINT | TABLEPASS | OPENCONTAINER | NOBLUDGEON
/obj/item/weapon/reagent_containers/glass/rag/attack_self(mob/user as mob)
return
/obj/item/weapon/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag)
if(ismob(target) && target.reagents && reagents.total_volume)
user.visible_message("\red \The [target] has been smothered with \the [src] by \the [user]!", "\red You smother \the [target] with \the [src]!", "You hear some struggling and muffled cries of surprise")
user.visible_message("<span class='danger'>[user] has smothered \the [target] with \the [src]!</span>", "<span class='danger'>You smother \the [target] with \the [src]!</span>", "You hear some struggling and muffled cries of surprise")
src.reagents.reaction(target, TOUCH)
spawn(5) src.reagents.clear_reagents()
src.reagents.clear_reagents()
return
else
..()
/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user as mob, proximity)
/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user as mob,proximity)
if(!proximity) return
if(istype(A) && src in user)
user.visible_message("[user] starts to wipe down [A] with [src]!")
@@ -46,10 +44,3 @@
user.visible_message("[user] finishes wiping off the [A]!")
A.clean_blood()
return
/obj/item/weapon/reagent_containers/glass/rag/examine()
if (!usr)
return
usr << "That's \a [src]."
usr << desc
return
+143 -371
View File
@@ -1,401 +1,173 @@
//CONTAINS: Detective's Scanner
// TODO: Split everything into easy to manage procs.
/obj/item/device/detective_scanner
name = "Scanner"
desc = "Used to scan objects for DNA and fingerprints."
name = "forensic scanner"
desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
icon_state = "forensic1"
var/amount = 20.0
var/list/stored = list()
w_class = 3.0
item_state = "electronic"
flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON
slot_flags = SLOT_BELT
var/scanning = 0
var/list/log = list()
attackby(obj/item/weapon/f_card/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/f_card))
if (W.fingerprints)
return
if (src.amount == 20)
return
if (W.amount + src.amount > 20)
src.amount = 20
W.amount = W.amount + src.amount - 20
else
src.amount += W.amount
//W = null
del(W)
add_fingerprint(user)
if (W)
W.add_fingerprint(user)
return
/obj/item/device/detective_scanner/attack_self(var/mob/user)
if(log.len && !scanning)
scanning = 1
user << "<span class='notice'>Printing report, please wait...</span>"
attack(mob/living/carbon/human/M as mob, mob/user as mob)
if (!ishuman(M))
user << "\red [M] is not human and cannot have the fingerprints."
flick("forensic0",src)
return 0
if (( !( istype(M.dna, /datum/dna) ) || M.gloves) )
user << "\blue No fingerprints found on [M]"
flick("forensic0",src)
return 0
else
if (src.amount < 1)
user << text("\blue Fingerprints scanned on [M]. Need more cards to print.")
else
src.amount--
var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user.loc )
F.amount = 1
F.add_fingerprint(M)
F.icon_state = "fingerprint1"
F.name = text("FPrintC- '[M.name]'")
spawn(100)
user << "\blue Done printing."
user << "\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]"
if ( !M.blood_DNA || !M.blood_DNA.len )
user << "\blue No blood found on [M]"
if(M.blood_DNA)
del(M.blood_DNA)
else
user << "\blue Blood found on [M]. Analysing..."
spawn(15)
for(var/blood in M.blood_DNA)
user << "\blue Blood type: [M.blood_DNA[blood]]\nDNA: [blood]"
return
// Create our paper
var/obj/item/weapon/paper/P = new(get_turf(src))
P.name = "paper- 'Scanner Report'"
P.info = "<center><font size='6'><B>Scanner Report</B></font></center><HR><BR>"
P.info += list2text(log, "<BR>")
P.info += "<HR><B>Notes:</B><BR>"
P.info_links = P.info
afterattack(atom/A as obj|turf|area, mob/user as mob, proximity)
if(!proximity) return
if(loc != user)
return
if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit.
return
if(istype(A,/obj/item/weapon/f_card))
user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\""
flick("forensic0",src)
return
if(ismob(loc))
var/mob/M = loc
M.put_in_hands(P)
M << "<span class='notice'>Report printed. Log cleared.<span>"
add_fingerprint(user)
// Clear the logs
log = list()
scanning = 0
else
user << "<span class='notice'>The scanner has no logs or is in use.</span>"
/obj/item/device/detective_scanner/attack(mob/living/M as mob, mob/user as mob)
return
//Special case for blood splaters.
if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable/blood/gibs))
if(!isnull(A.blood_DNA))
for(var/blood in A.blood_DNA)
user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]"
flick("forensic2",src)
return
/obj/item/device/detective_scanner/afterattack(atom/A, mob/user as mob, proximity)
scan(A, user)
//General
if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
flick("forensic0",src)
return 0
/obj/item/device/detective_scanner/proc/scan(var/atom/A, var/mob/user)
if(add_data(A))
user << "\blue Object already in internal memory. Consolidating data..."
flick("forensic2",src)
return
//PRINTS
if(!A.fingerprints || !A.fingerprints.len)
if(A.fingerprints)
del(A.fingerprints)
else
user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
var/list/complete_prints = list()
for(var/i in A.fingerprints)
var/print = A.fingerprints[i]
if(stringpercent(print) <= FINGERPRINT_COMPLETE)
complete_prints += print
if(complete_prints.len < 1)
user << "\blue &nbsp;&nbsp;No intact prints found"
else
user << "\blue &nbsp;&nbsp;Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
//FIBERS
if(A.suit_fibers)
user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
flick("forensic2",src)
//Blood
if (A.blood_DNA)
user << "\blue Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in A.blood_DNA)
user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]"
if(prob(80) || !A.fingerprints)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"You finish scanning \the [A].",\
"You hear a faint hum of electrical equipment.")
flick("forensic2",src)
return 0
else
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\
"The results of the scan pique your interest.",\
"You hear a faint hum of electrical equipment, and someone making a thoughtful noise.")
flick("forensic2",src)
return 0
return
proc/add_data(atom/A as mob|obj|turf|area)
//I love associative lists.
var/list/data_entry = stored["\ref [A]"]
if(islist(data_entry)) //Yay, it was already stored!
//Merge the fingerprints.
var/list/data_prints = data_entry[1]
for(var/print in A.fingerprints)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = A.fingerprints[print]
else
data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print])
//Now the fibers
var/list/fibers = data_entry[2]
if(!fibers)
fibers = list()
if(A.suit_fibers && A.suit_fibers.len)
for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~
if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add!
fibers += A.suit_fibers[j]
var/list/blood = data_entry[3]
if(!blood)
blood = list()
if(A.blood_DNA && A.blood_DNA.len)
for(var/main_blood in A.blood_DNA)
if(!blood[main_blood])
blood[main_blood] = A.blood_DNA[blood]
return 1
var/list/sum_list[4] //Pack it back up!
sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null
sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null
sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null
sum_list[4] = "\The [A] in \the [get_area(A)]"
stored["\ref [A]"] = sum_list
return 0
/obj/item/device/detective_scanner/forger
var/list/custom_forgery[3]
var/forging = 0
New()
..()
custom_forgery[1] = list()
custom_forgery[2] = list()
custom_forgery[3] = list()
attack_self(var/mob/user as mob)
var/list/customprints = list()
var/list/customfiber = list()
var/list/customblood = list()
if(forging)
user << "\red You are already forging evidence"
return 0
clear_forgery()
//fingerprint loop
while(1)
var/print = html_encode(input(usr,"Please enter a custom fingerprint or hit cancel to finish fingerprints") as text|null)
if(!usr.client)
forging = 0
break
if(!print )
break
customprints[print] = print
while(1)
var/fiber = html_encode(input(usr,"Please enter a custom fiber/material trace or hit cancel to finish fibers/materials") as text|null)
if(!usr.client)
forging = 0
break
if(!fiber)
break
customfiber[fiber] = null
while(1)
var/blood = html_encode(input(usr,"Please enter a custom Blood DNA or hit cancel to finish forging") as text|null)
var/bloodtype = html_encode(input(usr,"Please enter a custom Blood Type") as text|null)
if(!usr.client)
forging = 0
break
if(!blood)
break
customblood[blood] = bloodtype
forging = 0
if(!customprints.len && !customfiber.len)
user << "\blue No forgery saved."
return
user << "\blue Forgery saved and will be tied to the next applicable scanned item."
custom_forgery[1] = customprints ? customprints.Copy() : null
custom_forgery[2] = customfiber ? customfiber.Copy() : null
custom_forgery[3] = customblood ? customblood.Copy() : null
//shameless copy pasting
afterattack(atom/A as obj|turf|area, mob/user as mob)
var/list/custom_finger = list()
var/list/custom_fiber = list()
var/list/custom_blood = list()
if(custom_forgery)
custom_finger = custom_forgery[1]
custom_fiber = custom_forgery[2]
custom_blood = custom_forgery[3]
if(!in_range(A,user))
if(!scanning)
// Can remotely scan objects and mobs.
if(!in_range(A, user) && !(A in view(world.view, user)))
return
if(loc != user)
return
if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit.
return
if(istype(A,/obj/item/weapon/f_card))
user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\""
return
add_fingerprint(user)
scanning = 1
user.visible_message("\The [user] points the [src.name] at \the [A] and performs a forensic scan.")
user << "<span class='notice'>You scan \the [A]. The scanner is now analysing the results...</span>"
//Special case for blood splaters.
if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune))
if(!isnull(A.blood_DNA))
for(var/blood in A.blood_DNA)
user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]"
return
// GATHER INFORMATION
//General
if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA)
if(!custom_finger.len && !custom_fiber.len && !custom_blood.len)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
return 0
//Make our lists
var/list/fingerprints = list()
var/list/blood = list()
var/list/fibers = list()
var/list/reagents = list()
var/target_name = A.name
// Start gathering
if(A.blood_DNA && A.blood_DNA.len)
blood = A.blood_DNA.Copy()
if(A.suit_fibers && A.suit_fibers.len)
fibers = A.suit_fibers.Copy()
if(ishuman(A))
var/mob/living/carbon/human/H = A
if (istype(H.dna, /datum/dna) && !H.gloves)
fingerprints += md5(H.dna.uni_identity)
else if(!ismob(A))
if(A.fingerprints && A.fingerprints.len)
fingerprints = A.fingerprints.Copy()
// Only get reagents from non-mobs.
if(A.reagents && A.reagents.reagent_list.len)
for(var/datum/reagent/R in A.reagents.reagent_list)
reagents[R.name] = R.volume
// Get blood data from the blood reagent.
if(istype(R, /datum/reagent/blood))
if(R.data["blood_DNA"] && R.data["blood_type"])
var/blood_DNA = R.data["blood_DNA"]
var/blood_type = R.data["blood_type"]
blood[blood_DNA] = blood_type
// We gathered everything. Create a fork and slowly display the results to the holder of the scanner.
spawn(0)
var/found_something = 0
add_log("<B>[worldtime2text()][get_timestamp()] - [target_name]</B>", 0)
// Fingerprints
if(fingerprints && fingerprints.len)
sleep(30)
add_log("<span class='info'><B>Prints:</B></span>")
for(var/finger in fingerprints)
add_log("[finger]")
found_something = 1
// Blood
if (blood && blood.len)
sleep(30)
add_log("<span class='info'><B>Blood:</B></span>")
found_something = 1
for(var/B in blood)
add_log("Type: <font color='red'>[blood[B]]</font> DNA: <font color='red'>[B]</font>")
//Fibers
if(fibers && fibers.len)
sleep(30)
add_log("<span class='info'><B>Fibers:</B></span>")
for(var/fiber in fibers)
add_log("[fiber]")
found_something = 1
//Reagents
if(reagents && reagents.len)
sleep(30)
add_log("<span class='info'><B>Reagents:</B></span>")
for(var/R in reagents)
add_log("Reagent: <font color='red'>[R]</font> Volume: <font color='red'>[reagents[R]]</font>")
found_something = 1
// Get a new user
var/mob/holder = null
if(ismob(src.loc))
holder = src.loc
if(!found_something)
add_log("<I># No forensic traces found #</I>", 0) // Don't display this to the holder user
if(holder)
holder << "<span class='notice'>Unable to locate any fingerprints, materials, fibers, or blood on \the [target_name]!</span>"
else
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\
"You hear a faint hum of electrical equipment.")
if(holder)
holder << "<span class='notice'>You finish scanning \the [target_name].</span>"
if(add_data(A))
user << "\blue Object already in internal memory. Consolidating data..."
add_log("---------------------------------------------------------", 0)
scanning = 0
return
/obj/item/device/detective_scanner/proc/add_log(var/msg, var/broadcast = 1)
if(scanning)
if(broadcast && ismob(loc))
var/mob/M = loc
M << msg
log += "&nbsp;&nbsp;[msg]"
else
CRASH("[src] \ref[src] is adding a log when it was never put in scanning mode!")
//PRINTS
if(!A.fingerprints || !A.fingerprints.len)
if(A.fingerprints)
del(A.fingerprints)
if(custom_finger.len)
user << "\blue Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
user << "\blue &nbsp;&nbsp;Found [custom_finger.len] intact prints"
for(var/i in custom_finger)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
else if(A.fingerprints && A.fingerprints.len)
user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
var/list/complete_prints = list()
for(var/i in A.fingerprints)
var/print = A.fingerprints[i]
if(stringpercent(print) <= FINGERPRINT_COMPLETE)
complete_prints += print
if(complete_prints.len < 1)
user << "\blue &nbsp;&nbsp;No intact prints found"
else
user << "\blue &nbsp;&nbsp;Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
//FIBERS
if(custom_fiber.len)
user << "\blue Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve."
else if(A.suit_fibers)
user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
//Blood
if(custom_blood.len)
user << "\blue Forged Blood found. Analysing..."
spawn(15)
for(var/blood in custom_blood)
user << "Blood type: \red [custom_blood[blood]] \t \black DNA: \red [blood]"
else if (A.blood_DNA)
user << "\blue Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in A.blood_DNA)
user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]"
return
add_data(atom/A as mob|obj|turf|area)
//I love associative lists.
var/list/data_entry = stored["\ref [A]"]
var/list/custom_finger = list()
var/list/custom_fiber = list()
var/list/custom_blood = list()
if(custom_forgery)
custom_finger = custom_forgery[1]
custom_fiber = custom_forgery[2]
custom_blood = custom_forgery[3]
if(islist(data_entry)) //Yay, it was already stored!
//Merge the fingerprints.
var/list/data_prints = data_entry[1]
if(custom_finger.len)
for(var/print in custom_finger)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = custom_finger
else
data_prints[print] = stringmerge(data_prints[print],custom_finger[print])
else
for(var/print in A.fingerprints)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = A.fingerprints[print]
else
data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print])
//Now the fibers
var/list/fibers = data_entry[2]
if(!fibers)
fibers = list()
if(custom_fiber.len)
for(var/j = 1, j <= custom_fiber.len, j++) //Fibers~~~
if(!fibers.Find(custom_fiber[j])) //It isn't! Add!
fibers += custom_fiber[j]
else if(A.suit_fibers && A.suit_fibers.len)
for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~
if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add!
fibers += A.suit_fibers[j]
var/list/blood = data_entry[3]
if(!blood)
blood = list()
if(custom_blood.len)
for(var/main_blood in custom_blood)
if(!blood[main_blood])
blood[main_blood] = custom_blood[blood]
else if(A.blood_DNA && A.blood_DNA.len)
for(var/main_blood in A.blood_DNA)
if(!blood[main_blood])
blood[main_blood] = A.blood_DNA[blood]
return 1
var/list/sum_list[4] //Pack it back up!
if(custom_finger.len || custom_fiber.len || custom_blood.len)
sum_list[1] = custom_finger ? custom_finger.Copy() : null
sum_list[2] = custom_fiber ? custom_fiber.Copy() : null
sum_list[3] = custom_blood ? custom_blood.Copy() : null
else
sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null
sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null
sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null
sum_list[4] = "\The [A] in \the [get_area(A)]"
stored["\ref [A]"] = sum_list
clear_forgery()
return 0
proc/clear_forgery()
if(custom_forgery.len)
custom_forgery[1] = list()
custom_forgery[2] = list()
custom_forgery[3] = list()
/proc/get_timestamp()
return time2text(world.time + 432000, ":ss")
+5 -4
View File
@@ -9,7 +9,7 @@
while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. vox wearing jumpsuits).
*/
var/list/sprite_sheets_refit = null
//BS12: Species-restricted clothing check.
/obj/item/clothing/mob_can_equip(M as mob, slot)
@@ -53,12 +53,12 @@
icon_override = sprite_sheets[target_species]
else
icon_override = initial(icon_override)
if (sprite_sheets_obj && (target_species in sprite_sheets_obj))
icon = sprite_sheets_obj[target_species]
else
icon = initial(icon)
//Ears: currently only used for headsets and earmuffs
/obj/item/clothing/ears
name = "ears"
@@ -153,6 +153,7 @@ BLIND // can't see anything
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
attack_verb = list("challenged")
var/transfer_prints = FALSE
var/pickpocket = 0 //Master pickpocket?
var/clipped = 0
species_restricted = list("exclude","Unathi","Tajaran")
@@ -181,7 +182,7 @@ BLIND // can't see anything
set src in usr
..()
return
/obj/item/clothing/under/proc/set_sensors(mob/usr as mob)
var/mob/M = usr
if (istype(M, /mob/dead/)) return
@@ -63,6 +63,7 @@
siemens_coefficient = 0.30
permeability_coefficient = 0.01
_color="white"
transfer_prints = TRUE
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/mask.dmi'
-401
View File
@@ -1,401 +0,0 @@
//CONTAINS: Detective's Scanner
/obj/item/device/detective_scanner
name = "Scanner"
desc = "Used to scan objects for DNA and fingerprints."
icon_state = "forensic1"
var/amount = 20.0
var/list/stored = list()
w_class = 3.0
item_state = "electronic"
flags = FPRINT | TABLEPASS | CONDUCT | NOBLUDGEON
slot_flags = SLOT_BELT
attackby(obj/item/weapon/f_card/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/f_card))
if (W.fingerprints)
return
if (src.amount == 20)
return
if (W.amount + src.amount > 20)
src.amount = 20
W.amount = W.amount + src.amount - 20
else
src.amount += W.amount
//W = null
del(W)
add_fingerprint(user)
if (W)
W.add_fingerprint(user)
return
attack(mob/living/carbon/human/M as mob, mob/user as mob)
if (!ishuman(M))
user << "\red [M] is not human and cannot have the fingerprints."
flick("forensic0",src)
return 0
if (( !( istype(M.dna, /datum/dna) ) || M.gloves) )
user << "\blue No fingerprints found on [M]"
flick("forensic0",src)
return 0
else
if (src.amount < 1)
user << text("\blue Fingerprints scanned on [M]. Need more cards to print.")
else
src.amount--
var/obj/item/weapon/f_card/F = new /obj/item/weapon/f_card( user.loc )
F.amount = 1
F.add_fingerprint(M)
F.icon_state = "fingerprint1"
F.name = text("FPrintC- '[M.name]'")
user << "\blue Done printing."
user << "\blue [M]'s Fingerprints: [md5(M.dna.uni_identity)]"
if ( !M.blood_DNA || !M.blood_DNA.len )
user << "\blue No blood found on [M]"
if(M.blood_DNA)
del(M.blood_DNA)
else
user << "\blue Blood found on [M]. Analysing..."
spawn(15)
for(var/blood in M.blood_DNA)
user << "\blue Blood type: [M.blood_DNA[blood]]\nDNA: [blood]"
return
afterattack(atom/A as obj|turf|area, mob/user as mob, proximity)
if(!proximity) return
if(loc != user)
return
if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit.
return
if(istype(A,/obj/item/weapon/f_card))
user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\""
flick("forensic0",src)
return
add_fingerprint(user)
//Special case for blood splaters.
if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable/blood/gibs))
if(!isnull(A.blood_DNA))
for(var/blood in A.blood_DNA)
user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]"
flick("forensic2",src)
return
//General
if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
flick("forensic0",src)
return 0
if(add_data(A))
user << "\blue Object already in internal memory. Consolidating data..."
flick("forensic2",src)
return
//PRINTS
if(!A.fingerprints || !A.fingerprints.len)
if(A.fingerprints)
del(A.fingerprints)
else
user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
var/list/complete_prints = list()
for(var/i in A.fingerprints)
var/print = A.fingerprints[i]
if(stringpercent(print) <= FINGERPRINT_COMPLETE)
complete_prints += print
if(complete_prints.len < 1)
user << "\blue &nbsp;&nbsp;No intact prints found"
else
user << "\blue &nbsp;&nbsp;Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
//FIBERS
if(A.suit_fibers)
user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
flick("forensic2",src)
//Blood
if (A.blood_DNA)
user << "\blue Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in A.blood_DNA)
user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]"
if(prob(80) || !A.fingerprints)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"You finish scanning \the [A].",\
"You hear a faint hum of electrical equipment.")
flick("forensic2",src)
return 0
else
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\
"The results of the scan pique your interest.",\
"You hear a faint hum of electrical equipment, and someone making a thoughtful noise.")
flick("forensic2",src)
return 0
return
proc/add_data(atom/A as mob|obj|turf|area)
//I love associative lists.
var/list/data_entry = stored["\ref [A]"]
if(islist(data_entry)) //Yay, it was already stored!
//Merge the fingerprints.
var/list/data_prints = data_entry[1]
for(var/print in A.fingerprints)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = A.fingerprints[print]
else
data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print])
//Now the fibers
var/list/fibers = data_entry[2]
if(!fibers)
fibers = list()
if(A.suit_fibers && A.suit_fibers.len)
for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~
if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add!
fibers += A.suit_fibers[j]
var/list/blood = data_entry[3]
if(!blood)
blood = list()
if(A.blood_DNA && A.blood_DNA.len)
for(var/main_blood in A.blood_DNA)
if(!blood[main_blood])
blood[main_blood] = A.blood_DNA[blood]
return 1
var/list/sum_list[4] //Pack it back up!
sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null
sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null
sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null
sum_list[4] = "\The [A] in \the [get_area(A)]"
stored["\ref [A]"] = sum_list
return 0
/obj/item/device/detective_scanner/forger
var/list/custom_forgery[3]
var/forging = 0
New()
..()
custom_forgery[1] = list()
custom_forgery[2] = list()
custom_forgery[3] = list()
attack_self(var/mob/user as mob)
var/list/customprints = list()
var/list/customfiber = list()
var/list/customblood = list()
if(forging)
user << "\red You are already forging evidence"
return 0
clear_forgery()
//fingerprint loop
while(1)
var/print = html_encode(input(usr,"Please enter a custom fingerprint or hit cancel to finish fingerprints") as text|null)
if(!usr.client)
forging = 0
break
if(!print )
break
customprints[print] = print
while(1)
var/fiber = html_encode(input(usr,"Please enter a custom fiber/material trace or hit cancel to finish fibers/materials") as text|null)
if(!usr.client)
forging = 0
break
if(!fiber)
break
customfiber[fiber] = null
while(1)
var/blood = html_encode(input(usr,"Please enter a custom Blood DNA or hit cancel to finish forging") as text|null)
var/bloodtype = html_encode(input(usr,"Please enter a custom Blood Type") as text|null)
if(!usr.client)
forging = 0
break
if(!blood)
break
customblood[blood] = bloodtype
forging = 0
if(!customprints.len && !customfiber.len)
user << "\blue No forgery saved."
return
user << "\blue Forgery saved and will be tied to the next applicable scanned item."
custom_forgery[1] = customprints ? customprints.Copy() : null
custom_forgery[2] = customfiber ? customfiber.Copy() : null
custom_forgery[3] = customblood ? customblood.Copy() : null
//shameless copy pasting
afterattack(atom/A as obj|turf|area, mob/user as mob)
var/list/custom_finger = list()
var/list/custom_fiber = list()
var/list/custom_blood = list()
if(custom_forgery)
custom_finger = custom_forgery[1]
custom_fiber = custom_forgery[2]
custom_blood = custom_forgery[3]
if(!in_range(A,user))
return
if(loc != user)
return
if(istype(A,/obj/machinery/computer/forensic_scanning)) //breaks shit.
return
if(istype(A,/obj/item/weapon/f_card))
user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\""
return
add_fingerprint(user)
//Special case for blood splaters.
if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/rune))
if(!isnull(A.blood_DNA))
for(var/blood in A.blood_DNA)
user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]"
return
//General
if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA)
if(!custom_finger.len && !custom_fiber.len && !custom_blood.len)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\
"You hear a faint hum of electrical equipment.")
return 0
else
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"\blue Unable to locate any fingerprints, materials, fibers, or blood on [A], loading custom forgery instead.",\
"You hear a faint hum of electrical equipment.")
if(add_data(A))
user << "\blue Object already in internal memory. Consolidating data..."
return
//PRINTS
if(!A.fingerprints || !A.fingerprints.len)
if(A.fingerprints)
del(A.fingerprints)
if(custom_finger.len)
user << "\blue Isolated [custom_finger.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
user << "\blue &nbsp;&nbsp;Found [custom_finger.len] intact prints"
for(var/i in custom_finger)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
else if(A.fingerprints && A.fingerprints.len)
user << "\blue Isolated [A.fingerprints.len] fingerprints: Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
var/list/complete_prints = list()
for(var/i in A.fingerprints)
var/print = A.fingerprints[i]
if(stringpercent(print) <= FINGERPRINT_COMPLETE)
complete_prints += print
if(complete_prints.len < 1)
user << "\blue &nbsp;&nbsp;No intact prints found"
else
user << "\blue &nbsp;&nbsp;Found [complete_prints.len] intact prints"
for(var/i in complete_prints)
user << "\blue &nbsp;&nbsp;&nbsp;&nbsp;[i]"
//FIBERS
if(custom_fiber.len)
user << "\blue Forged Fibers/Materials Data Found: Scan with Hi-Res Forensic Scanner to retrieve."
else if(A.suit_fibers)
user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve."
//Blood
if(custom_blood.len)
user << "\blue Forged Blood found. Analysing..."
spawn(15)
for(var/blood in custom_blood)
user << "Blood type: \red [custom_blood[blood]] \t \black DNA: \red [blood]"
else if (A.blood_DNA)
user << "\blue Blood found on [A]. Analysing..."
spawn(15)
for(var/blood in A.blood_DNA)
user << "Blood type: \red [A.blood_DNA[blood]] \t \black DNA: \red [blood]"
return
add_data(atom/A as mob|obj|turf|area)
//I love associative lists.
var/list/data_entry = stored["\ref [A]"]
var/list/custom_finger = list()
var/list/custom_fiber = list()
var/list/custom_blood = list()
if(custom_forgery)
custom_finger = custom_forgery[1]
custom_fiber = custom_forgery[2]
custom_blood = custom_forgery[3]
if(islist(data_entry)) //Yay, it was already stored!
//Merge the fingerprints.
var/list/data_prints = data_entry[1]
if(custom_finger.len)
for(var/print in custom_finger)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = custom_finger
else
data_prints[print] = stringmerge(data_prints[print],custom_finger[print])
else
for(var/print in A.fingerprints)
var/merged_print = data_prints[print]
if(!merged_print)
data_prints[print] = A.fingerprints[print]
else
data_prints[print] = stringmerge(data_prints[print],A.fingerprints[print])
//Now the fibers
var/list/fibers = data_entry[2]
if(!fibers)
fibers = list()
if(custom_fiber.len)
for(var/j = 1, j <= custom_fiber.len, j++) //Fibers~~~
if(!fibers.Find(custom_fiber[j])) //It isn't! Add!
fibers += custom_fiber[j]
else if(A.suit_fibers && A.suit_fibers.len)
for(var/j = 1, j <= A.suit_fibers.len, j++) //Fibers~~~
if(!fibers.Find(A.suit_fibers[j])) //It isn't! Add!
fibers += A.suit_fibers[j]
var/list/blood = data_entry[3]
if(!blood)
blood = list()
if(custom_blood.len)
for(var/main_blood in custom_blood)
if(!blood[main_blood])
blood[main_blood] = custom_blood[blood]
else if(A.blood_DNA && A.blood_DNA.len)
for(var/main_blood in A.blood_DNA)
if(!blood[main_blood])
blood[main_blood] = A.blood_DNA[blood]
return 1
var/list/sum_list[4] //Pack it back up!
if(custom_finger.len || custom_fiber.len || custom_blood.len)
sum_list[1] = custom_finger ? custom_finger.Copy() : null
sum_list[2] = custom_fiber ? custom_fiber.Copy() : null
sum_list[3] = custom_blood ? custom_blood.Copy() : null
else
sum_list[1] = A.fingerprints ? A.fingerprints.Copy() : null
sum_list[2] = A.suit_fibers ? A.suit_fibers.Copy() : null
sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null
sum_list[4] = "\The [A] in \the [get_area(A)]"
stored["\ref [A]"] = sum_list
clear_forgery()
return 0
proc/clear_forgery()
if(custom_forgery.len)
custom_forgery[1] = list()
custom_forgery[2] = list()
custom_forgery[3] = list()
+4 -4
View File
@@ -120,14 +120,14 @@
w_cand -= weed_turf
if(weed_turf.density)
continue
if(locate(/obj/effect/alien) in weed_turf)
if(locate(/obj/structure/alien) in weed_turf)
continue
if(weed_turf && !egged)
new /obj/effect/alien/weeds/node(weed_turf)
new /obj/structure/alien/weeds/node(weed_turf)
weeds += weed_turf
break
for(var/e=0;e<eggs_left;e++)
var/turf/egg_turf = pick(all_floors)
if(egg_turf && !(locate(/obj/effect/alien) in egg_turf))
new /obj/effect/alien/egg(egg_turf)
if(egg_turf && !(locate(/obj/structure/alien) in egg_turf))
new /obj/structure/alien/egg(egg_turf)
@@ -1,5 +1,5 @@
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
#define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point
#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point
#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 1000K point
/mob/living/carbon/alien
@@ -16,7 +16,7 @@
alien_talk_understand = 1
nightvision = 1
var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie
var/has_fine_manipulation = 0
@@ -29,7 +29,7 @@
var/oxygen_alert = 0
var/toxins_alert = 0
var/fire_alert = 0
var/large = 0
var/heat_protection = 0.5
var/leaping = 0
@@ -39,8 +39,8 @@
verbs += /mob/living/verb/lay_down
internal_organs += new /obj/item/brain/alien
..()
..()
/mob/living/carbon/alien/adjustToxLoss(amount)
storedPlasma = min(max(storedPlasma + amount,0),max_plasma) //upper limit of max_plasma, lower limit of 0
updatePlasmaDisplay()
@@ -69,7 +69,7 @@
/mob/living/carbon/alien/proc/handle_environment(var/datum/gas_mixture/environment)
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
if(locate(/obj/structure/alien/weeds) in loc)
if(health >= maxHealth - getCloneLoss())
adjustToxLoss(plasma_rate)
else
@@ -79,7 +79,7 @@
if(!environment)
return
var/loc_temp = T0C
if(istype(loc, /obj/mecha))
var/obj/mecha/M = loc
@@ -193,7 +193,7 @@
/mob/living/carbon/alien/setDNA()
return
/mob/living/carbon/alien/verb/nightvisiontoggle()
set name = "Toggle Night Vision"
set category = "Alien"
@@ -243,7 +243,7 @@ Des: Removes all infected images from the alien.
/mob/living/carbon/alien/larva/updatePlasmaDisplay()
return
#undef HEAT_DAMAGE_LEVEL_1
#undef HEAT_DAMAGE_LEVEL_2
#undef HEAT_DAMAGE_LEVEL_3
@@ -23,25 +23,15 @@ Doesn't work on other aliens/AI.*/
set desc = "Plants some alien weeds"
set category = "Alien"
if(locate(/obj/effect/alien/weeds/node) in get_turf(src))
if(locate(/obj/structure/alien/weeds/node) in get_turf(src))
src << "<span class='noticealien'>There's already a weed node here.</span>"
return
if(constructing)
src << "<span class='noticealien'>You are already constructing something.</span>"
return
if(powerc(50,1))
constructing = 1
stunned = 5
src << "<span class='noticealien'>You start planting a weed node.</span>"
spawn(30)
adjustToxLoss(-50)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] has planted some alien weeds!</span>"), 1)
new /obj/effect/alien/weeds/node(loc)
constructing = 0
stunned = 0
adjustToxLoss(-50)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] has planted some alien weeds!</span>"), 1)
new /obj/structure/alien/weeds/node(loc)
return
/mob/living/carbon/alien/humanoid/verb/whisp(mob/M as mob in oview())
@@ -106,7 +96,7 @@ Doesn't work on other aliens/AI.*/
return
adjustToxLoss(-200)
new /obj/effect/alien/acid(get_turf(O), O)
new /obj/effect/acid(get_turf(O), O)
visible_message("<span class='alertalien'>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</span>")
else
src << "<span class='noticealien'>Target is too far away.</span>"
@@ -136,37 +126,24 @@ Doesn't work on other aliens/AI.*/
return
/mob/living/carbon/alien/humanoid/proc/resin() // -- TLE
set name = "Secrete Resin (75)"
set name = "Secrete Resin (55)"
set desc = "Secrete tough malleable resin."
set category = "Alien"
if(powerc(75))
if(constructing)
src << "<span class='noticealien'>You are already constructing something.</span>"
return
var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin door","resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
if(!choice || !powerc(75))
return
constructing = 1
stunned = 5
src << "<span class='noticealien'>You start shaping a [choice].</span>"
spawn(60)
adjustToxLoss(-75)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] vomits up a thick purple substance and shapes it!</span>"), 1)
switch(choice)
if("resin door")
new /obj/structure/mineral_door/resin(loc)
if("resin wall")
new /obj/effect/alien/resin/wall(loc)
if("resin membrane")
new /obj/effect/alien/resin/membrane(loc)
if("resin nest")
new /obj/structure/stool/bed/nest(loc)
constructing = 0
stunned = 0
if(powerc(55))
var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
if(!choice || !powerc(55)) return
adjustToxLoss(-55)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] vomits up a thick purple substance and shapes it!</span>"), 1)
switch(choice)
if("resin wall")
new /obj/structure/alien/resin/wall(loc)
if("resin membrane")
new /obj/structure/alien/resin/membrane(loc)
if("resin nest")
new /obj/structure/stool/bed/nest(loc)
return
/mob/living/carbon/alien/humanoid/verb/regurgitate()
@@ -7,7 +7,7 @@
max_plasma = 250
icon_state = "aliens_s"
plasma_rate = 10
/mob/living/carbon/alien/humanoid/sentinel/large
name = "alien praetorian"
icon = 'icons/mob/alienlarge.dmi'
@@ -23,8 +23,8 @@
maxHealth = 200
health = 200
move_delay_add = 1
large = 1
large = 1
/mob/living/carbon/alien/humanoid/sentinel/large/update_icons()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
update_hud() //TODO: remove the need for this to be here
@@ -38,7 +38,7 @@
icon_state = "prat_s"
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/sentinel/New()
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
@@ -70,7 +70,7 @@
else
healths.icon_state = "health6"
/*
/mob/living/carbon/alien/humanoid/sentinel/verb/evolve() // -- TLE
set name = "Evolve (250)"
set desc = "Become a Praetorian, Royal Guard to the Queen."
@@ -89,4 +89,4 @@
new_xeno.mind.name = new_xeno.name
del(src)
return
*/
@@ -77,26 +77,15 @@
/mob/living/carbon/alien/humanoid/empress/verb/lay_egg()
set name = "Lay Egg (250)"
set desc = "Lay an egg to produce huggers to impregnate prey with."
set category = "Alien"
if(locate(/obj/effect/alien/egg) in get_turf(src))
set category = "Alien"
if(locate(/obj/structure/alien/egg) in get_turf(src))
src << "<span class='noticealien'>There's already an egg here.</span>"
return
if(constructing)
src << "<span class='noticealien'>You are already constructing something.</span>"
return
if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly.
constructing = 1
stunned = 5
src << "<span class='noticealien'>You start laying an egg.</span>"
spawn(30)
adjustToxLoss(-250)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
new /obj/effect/alien/egg(loc)
constructing = 0
stunned = 0
if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-75)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
new /obj/structure/alien/egg(loc)
return
@@ -10,11 +10,10 @@
var/next_attack = 0
update_icon = 1
var/leap_on_click = 0
var/constructing = 0
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/humanoid/New()
var/datum/reagents/R = new/datum/reagents(100)
var/datum/reagents/R = new/datum/reagents(1000)
reagents = R
R.my_atom = src
if(name == "alien")
@@ -52,15 +51,15 @@
/mob/living/carbon/alien/humanoid/movement_delay()
var/tally = 0
if (istype(src, /mob/living/carbon/alien/humanoid/queen))
tally += 5
tally += 4
if (istype(src, /mob/living/carbon/alien/humanoid/drone))
tally += 2
tally += 0
if (istype(src, /mob/living/carbon/alien/humanoid/sentinel))
tally += 1
tally += 0
if (istype(src, /mob/living/carbon/alien/humanoid/hunter))
tally = -1 // hunters go supersuperfast
tally = -2 // hunters go supersuperfast
return (tally + move_delay_add + config.alien_delay)
/mob/living/carbon/alien/humanoid/Process_Spacemove(var/check_drift = 0)
return 1
@@ -250,7 +249,7 @@
if (M_HULK in M.mutations)//M_HULK SMASH
damage += 14
spawn(0)
Weaken(damage) // Why can a hulk knock an alien out but not knock out a human? Damage is robust enough.
Paralyse(1)
step_away(src,M,15)
sleep(3)
step_away(src,M,15)
@@ -259,7 +258,7 @@
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has punched []!</B>", M, src), 1)
if (damage > 9||prob(5))//Regular humans have a very small chance of weakening an alien.
Weaken(1,5)
Paralyse(2)
for(var/mob/O in viewers(M, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has weakened []!</B>", M, src), 1, "\red You hear someone fall.", 2)
@@ -274,7 +273,7 @@
if ("disarm")
if (!lying)
if (prob(5))//Very small chance to push an alien down.
Weaken(2)
Paralyse(2)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
@@ -321,4 +320,4 @@
/mob/living/carbon/alien/humanoid/canBeHandcuffed()
return 1
return 1
@@ -7,8 +7,6 @@
status_flags = CANPARALYSE
heal_rate = 5
plasma_rate = 20
move_delay_add = 2
max_plasma = 1000
large = 1
/mob/living/carbon/alien/humanoid/queen/New()
@@ -58,29 +56,19 @@
//Queen verbs
/mob/living/carbon/alien/humanoid/queen/verb/lay_egg()
set name = "Lay Egg (250)"
set name = "Lay Egg (75)"
set desc = "Lay an egg to produce huggers to impregnate prey with."
set category = "Alien"
if(locate(/obj/effect/alien/egg) in get_turf(src))
if(locate(/obj/structure/alien/egg) in get_turf(src))
src << "<span class='noticealien'>There's already an egg here.</span>"
return
if(constructing)
src << "<span class='noticealien'>You are already constructing something.</span>"
return
if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly.
constructing = 1
stunned = 5
src << "<span class='noticealien'>You start laying an egg.</span>"
spawn(60)
adjustToxLoss(-250)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] has laid an egg!</span>"), 1)
new /obj/effect/alien/egg(loc)
constructing = 0
stunned = 0
return
if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-75)
for(var/mob/O in viewers(src, null))
O.show_message(text("<span class='alertalien'>[src] has laid an egg!</span>"), 1)
new /obj/structure/alien/egg(loc)
return
/mob/living/carbon/alien/humanoid/queen/large
@@ -104,7 +92,7 @@
overlays += I
/*
/mob/living/carbon/alien/humanoid/queen/verb/evolve() // -- TLE
set name = "Evolve (1000)"
set desc = "The ultimate transformation. Become an alien Empress. Only one empress can exist at a time."
@@ -134,3 +122,4 @@
src << "<span class='notice'>We already have an alive empress.</span>"
return
*/
@@ -2,7 +2,7 @@
name = "alien larva"
real_name = "alien larva"
icon_state = "larva0"
pass_flags = PASSTABLE
pass_flags = PASSTABLE | PASSMOB
maxHealth = 30
health = 30
@@ -514,11 +514,11 @@
<BR><B>Suit Storage:</B> <A href='?src=\ref[src];item=s_store'>[(s_store ? s_store : "Nothing")]</A>
<BR><BR><A href='?src=\ref[src];pockets=left'>Left Pocket ([l_store ? (pickpocket ? l_store.name : "Full") : "Empty"])</A>
<BR><A href='?src=\ref[src];pockets=right'>Right Pocket ([r_store ? (pickpocket ? r_store.name : "Full") : "Empty"])</A>
<BR><A href='?src=\ref[src];item=pockets'>Empty Both Pockets</A>
<BR><A href='?src=\ref[src];item=pockets'>Empty Both Pockets</A>
<BR><BR>[(handcuffed ? text("<A href='?src=\ref[src];item=handcuff'>Handcuffed</A>") : text("<A href='?src=\ref[src];item=handcuff'>Not Handcuffed</A>"))]
<BR>[(legcuffed ? text("<A href='?src=\ref[src];item=legcuff'>Legcuffed</A>") : text(""))]
[(suit) ? ((suit.hastie) ? text("<BR><A href='?src=\ref[];item=tie'>Remove Accessory</A>", src) : "") :]
[(internal ? text("<BR><A href='?src=\ref[src];item=internal'>Remove Internal</A>") : "")]
[(internal ? text("<BR><A href='?src=\ref[src];item=internal'>Remove Internal</A>") : "")]
<BR><A href='?src=\ref[src];item=splints'>Remove Splints</A>
<BR><A href='?src=\ref[user];refresh=1'>Refresh</A>
<BR><A href='?src=\ref[user];mach_close=mob\ref[src]'>Close</A>
@@ -1602,6 +1602,10 @@
if(istype(idcard, /obj/item/weapon/card/id/syndicate))
threatcount -= 5
// Pingsky now actually harbors anti-human sentiment! -Dave
if(istype(judgebot, /obj/machinery/bot/secbot/pingsky) && istype(src, /mob/living/carbon/human/human/))
threatcount += 1
return threatcount
/mob/living/carbon/human/canBeHandcuffed()
@@ -39,20 +39,19 @@
apply_damage(damage, BRUTE, affecting, armor_block)
if (damage >= 25)
visible_message("\red <B>[M] has wounded [src]!</B>")
apply_effect(rand(0.5,3), WEAKEN, armor_block)
apply_effect(4, WEAKEN, armor_block)
updatehealth()
if("disarm")
if (prob(80))
var/randn = rand(1, 100)
if (randn <= 80)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
Weaken(rand(0.5,3))
Weaken(5)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has tackled down []!</B>", M, src), 1)
if (prob(25))
M.Weaken(rand(2,4))
else
if (prob(80))
if (randn <= 99)
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
drop_item()
visible_message(text("\red <B>[] disarmed []!</B>", M, src))
+2
View File
@@ -1,6 +1,8 @@
/mob/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
if(istype(mover) && mover.checkpass(PASSMOB))
return 1
if(ismob(mover))
var/mob/moving_mob = mover
if ((other_mobs && moving_mob.other_mobs))
+8 -8
View File
@@ -73,7 +73,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
// Damaged heart virtually reduces the blood volume, as the blood isn't
// being pumped properly anymore.
var/datum/organ/internal/heart/heart = internal_organs_by_name["heart"]
if(heart)
if(heart.damage > 1 && heart.damage < heart.min_bruised_damage)
blood_volume *= 0.8
@@ -314,13 +314,13 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
return D
return res
proc/blood_incompatible(donor,receiver)
if(!donor || !receiver) return 0
var
donor_antigen = copytext(donor,1,lentext(donor))
receiver_antigen = copytext(receiver,1,lentext(receiver))
donor_rh = (findtext(donor,"+")>0)
receiver_rh = (findtext(receiver,"+")>0)
/proc/blood_incompatible(donor,receiver)
var/donor_antigen = copytext(donor,1,lentext(donor))
var/receiver_antigen = copytext(receiver,1,lentext(receiver))
var/donor_rh = findtext("+",donor)
var/receiver_rh = findtext("+",receiver)
if(donor_rh && !receiver_rh) return 1
switch(receiver_antigen)
if("A")
+2 -2
View File
@@ -1505,8 +1505,8 @@ datum
O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/effect/alien/weeds/))
var/obj/effect/alien/weeds/alien_weeds = O
if(istype(O,/obj/structure/alien/weeds/))
var/obj/structure/alien/weeds/alien_weeds = O
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
alien_weeds.healthcheck()
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
+1
View File
@@ -222,6 +222,7 @@ var/MAX_EXPLOSION_RANGE = 14
#define PASSGLASS 2
#define PASSGRILLE 4
#define PASSBLOB 8
#define PASSMOB 16
//turf-only flags
#define NOJAUNT 1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 49 KiB

+234 -209
View File
@@ -203,7 +203,7 @@
"adU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos)
"adV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/carpet,/area/security/hos)
"adW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"adX" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/device/radio,/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"adX" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/fore)
"adY" = (/obj/machinery/space_heater,/obj/machinery/light_switch{pixel_x = -25},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/security/podbay)
"adZ" = (/obj/spacepod/sec{req_access_txt = "71"},/turf/simulated/floor/engine,/area/security/podbay)
"aea" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/evidence)
@@ -1078,11 +1078,11 @@
"auL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/closet{name = "Evidence Closet"},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"auM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"auN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"auO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/fcardholder,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"auO" = (/obj/machinery/light,/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"auP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"auQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"auR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"auS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker)
"auS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker)
"auT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker)
"auU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker)
"auV" = (/obj/structure/closet/secure_closet/personal,/obj/structure/window/basic{dir = 8},/obj/structure/window/basic,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker)
@@ -1104,7 +1104,7 @@
"avl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"avm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"avn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"avo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"avo" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"avp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area)
"avq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"avr" = (/obj/machinery/vending/chinese,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
@@ -1155,7 +1155,7 @@
"awk" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"awl" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"awm" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"awn" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"awn" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/security/detectives_office)
"awo" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area)
"awp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"awq" = (/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
@@ -1199,7 +1199,6 @@
"axc" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"axd" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"axe" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"axf" = (/obj/machinery/computer/forensic_scanning,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office)
"axg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"axh" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
"axi" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
@@ -1542,10 +1541,10 @@
"aDH" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep)
"aDI" = (/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness)
"aDJ" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor,/area/crew_quarters/fitness)
"aDK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aDL" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aDM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aDN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aDK" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/device/radio,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "dark"},/area/security/hos)
"aDL" = (/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aDM" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aDN" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/head/bearpelt,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aDO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness)
"aDP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/crew_quarters/fitness)
"aDQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness)
@@ -1579,10 +1578,10 @@
"aEs" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters/fitness)
"aEt" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/silver,/turf/simulated/floor,/area/crew_quarters/fitness)
"aEu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/fitness)
"aEv" = (/obj/machinery/door/window/westright{name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aEw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aEx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aEy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aEv" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aEw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aEx" = (/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aEy" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/machinery/newscaster{pixel_y = 32},/obj/item/toy/prize/ripley,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aEz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/table,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/item/stack/medical/advanced/bruise_pack,/obj/item/clothing/gloves/boxing,/turf/simulated/floor,/area/crew_quarters/fitness)
"aEA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/crew_quarters/fitness)
"aEB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness)
@@ -1631,9 +1630,9 @@
"aFs" = (/obj/structure/table/woodentable,/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/crew_quarters/fitness)
"aFt" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor,/area/crew_quarters/fitness)
"aFu" = (/obj/structure/table,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/clothing/gloves/boxing,/turf/simulated/floor,/area/crew_quarters/fitness)
"aFv" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aFw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aFx" = (/obj/machinery/door/window/eastleft{name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aFv" = (/obj/structure/noticeboard{pixel_y = 32},/obj/item/weapon/gift,/obj/item/clothing/head/kitty/mouse,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aFw" = (/obj/machinery/hologram/holopad,/obj/structure/table/woodentable,/obj/item/candle,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aFx" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aFy" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness)
"aFz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitories"; req_access_txt = "0"},/turf/simulated/floor,/area/crew_quarters/fitness)
"aFA" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness)
@@ -1678,10 +1677,10 @@
"aGn" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep)
"aGo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{id_tag = "Cryogenics"; name = "Cryodorms"},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep)
"aGp" = (/obj/structure/table/woodentable,/obj/item/device/paicard,/turf/simulated/floor,/area/crew_quarters/fitness)
"aGq" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aGr" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aGs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aGt" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aGq" = (/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main)
"aGr" = (/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/chapel/main)
"aGs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/clothing/mask/cigarette/pipe,/turf/simulated/floor/carpet,/area/chapel/main)
"aGt" = (/turf/simulated/floor/plating/snow,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/area/crew_quarters/bar)
"aGu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/grille,/obj/structure/window/basic{dir = 8},/obj/structure/window/basic{dir = 4},/obj/structure/window/basic{dir = 1},/turf/simulated/floor,/area/crew_quarters/fitness)
"aGv" = (/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/crew_quarters/fitness)
"aGw" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness)
@@ -1900,7 +1899,7 @@
"aKB" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet)
"aKC" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aKD" = (/obj/machinery/camera{c_tag = "Bar Storage"; network = list("SS13")},/obj/structure/table/woodentable,/obj/machinery/reagentgrinder,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aKE" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aKE" = (/turf/simulated/floor/plating/snow,/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/area/crew_quarters/bar)
"aKF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aKG" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/storage/art)
"aKH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/storage/art)
@@ -2127,10 +2126,10 @@
"aOU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aOV" = (/obj/structure/closet/coffin,/obj/structure/window/basic{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office)
"aOW" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aOX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aOY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aOZ" = (/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aPa" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aOX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table/reinforced,/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aOY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aOZ" = (/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aPa" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aPb" = (/obj/machinery/door/window{dir = 8; name = "Mass Driver"; req_access_txt = "22"},/obj/machinery/mass_driver{dir = 1; id = "chapelgun"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/chapel/main)
"aPc" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/escapepodbay)
"aPd" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/crowbar/red,/turf/simulated/floor,/area/escapepodbay)
@@ -2225,10 +2224,10 @@
"aQO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office)
"aQP" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aQQ" = (/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aQR" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aQR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aQS" = (/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aQT" = (/obj/structure/closet/coffin,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aQU" = (/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 25},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aQU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aQV" = (/turf/simulated/wall,/area/chapel/main)
"aQW" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Escape Podbay APC"; pixel_x = -25},/turf/simulated/floor,/area/escapepodbay)
"aQX" = (/turf/simulated/floor,/area/escapepodbay)
@@ -2283,7 +2282,7 @@
"aRU" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/bar)
"aRV" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aRW" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aRX" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/clothing/under/sundress,/obj/item/device/eftpos{eftpos_name = "Kitchen EFTPOS scanner"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aRX" = (/obj/item/toy/crossbow/tommygun,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aRY" = (/obj/machinery/camera{c_tag = "Kitchen Freezer"; network = list("SS13")},/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aRZ" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aSa" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/hydroponics)
@@ -2304,8 +2303,8 @@
"aSp" = (/obj/structure/table/woodentable,/obj/item/weapon/nullrod,/obj/item/device/eftpos{eftpos_name = "Chapel EFTPOS scanner"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aSq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aSr" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office)
"aSs" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"aSt" = (/obj/structure/table,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aSs" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aSt" = (/obj/machinery/power/apc{dir = 8; name = "Chapel APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aSu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor,/area/escapepodbay)
"aSv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/arrival/station)
"aSw" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/arrival/station)
@@ -2346,9 +2345,9 @@
"aTf" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/beer,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aTg" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/camera{c_tag = "Bar North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/soda,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aTh" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aTi" = (/obj/machinery/power/apc{dir = 1; name = "Bar APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair_brown (EAST)"; icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aTj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aTk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aTi" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aTj" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aTk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry)
"aTl" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/closet/secure_closet/freezer/meat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aTm" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aTn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
@@ -2379,8 +2378,8 @@
"aTM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Crematorium"; req_access_txt = "27"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office)
"aTN" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aTO" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aTP" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"aTQ" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"aTP" = (/turf/simulated/floor/plating/snow,/area)
"aTQ" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area)
"aTR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/escapepodbay)
"aTS" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor,/area/escapepodbay)
"aTT" = (/obj/structure/closet/emcloset,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/machinery/atmospherics/unary/vent_pump,/obj/effect/decal/warning_stripes/yellow/hollow,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/escapepodbay)
@@ -2445,9 +2444,9 @@
"aVa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aVb" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aVc" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/weapon/lighter/zippo,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aVd" = (/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair_brown (EAST)"; icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVf" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVd" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/plating/snow,/area)
"aVe" = (/obj/item/clothing/head/bearpelt,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVf" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVg" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aVh" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aVi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
@@ -2476,9 +2475,9 @@
"aVF" = (/obj/machinery/power/apc{dir = 8; name = "Chapel Office APC"; pixel_x = -25},/obj/structure/cable,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aVG" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aVH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"aVI" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aVJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aVK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aVI" = (/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aVJ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table/woodentable,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/head/helmet/space/santahat,/obj/item/clothing/suit/holidaypriest,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aVK" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aVL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Escape Pod Bay"},/turf/simulated/floor,/area/escapepodbay)
"aVM" = (/turf/simulated/wall/r_wall,/area/escapepodbay)
"aVN" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/arrival/station)
@@ -2519,8 +2518,8 @@
"aWw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aWx" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aWy" = (/obj/machinery/door/window{dir = 4; name = "Bar Door"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aWz" = (/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aWA" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/structure/table/woodentable,/obj/item/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aWz" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/head/bearpelt,/obj/item/clothing/head/bearpelt,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor,/area/hallway/secondary/entry)
"aWA" = (/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area)
"aWB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/kitchenspike,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aWC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aWD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/gibber,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
@@ -2589,9 +2588,9 @@
"aXO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/slot_machine,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aXP" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/rag,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aXQ" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aXR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aXR" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area)
"aXS" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue{pixel_x = 2; pixel_y = 6},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aXT" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aXT" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aXU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/freezer{req_access_txt = "28"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aXV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics)
"aXW" = (/turf/simulated/floor/grass,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-siding8 (NORTH)"; icon_state = "siding8"; dir = 1},/area/hydroponics)
@@ -2614,11 +2613,11 @@
"aYn" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aYo" = (/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/eftpos{eftpos_name = "Library EFTPOS scanner"},/obj/item/device/camera{desc = "A one use - polaroid camera. 30 photos left."; name = "Camera"; pictures_left = 30; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aYp" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/obj/machinery/camera{c_tag = "Library Study"; dir = 8; network = list("SS13")},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aYq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aYr" = (/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"aYs" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aYt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"aYu" = (/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aYq" = (/obj/structure/table,/obj/machinery/light/small,/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aYr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aYs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aYt" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aYu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aYv" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aYw" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"aYx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2663,8 +2662,8 @@
"aZk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZm" = (/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZn" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZo" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/structure/flora/kirbyplants,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZn" = (/obj/machinery/power/apc{dir = 1; name = "Bar APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aZo" = (/obj/structure/table,/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"aZp" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen)
"aZq" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"aZr" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
@@ -2683,13 +2682,13 @@
"aZE" = (/obj/machinery/light/small,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aZF" = (/obj/effect/landmark{name = "blobstart"},/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aZG" = (/obj/structure/cult/tome,/obj/item/device/videocam,/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"aZH" = (/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"aZI" = (/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"aZJ" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aZK" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"aZL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"aZH" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/clothing/under/sundress,/obj/item/device/eftpos{eftpos_name = "Kitchen EFTPOS scanner"},/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aZI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit)
"aZJ" = (/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit)
"aZK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit)
"aZL" = (/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aZM" = (/obj/machinery/door/morgue{dir = 2; name = "Confession Booth"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aZN" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"aZN" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aZO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"aZP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/secondary/exit)
"aZQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2699,7 +2698,7 @@
"aZU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area)
"aZV" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"aZW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry)
"aZX" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/turf/simulated/floor,/area/hallway/secondary/entry)
"aZX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"aZY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Security Checkpoint"; req_access_txt = "68"},/turf/simulated/floor,/area/security/checkpoint)
"aZZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/checkpoint)
"baa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "delivery"},/area/security/checkpoint)
@@ -2759,9 +2758,9 @@
"bbc" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library)
"bbd" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library)
"bbe" = (/obj/machinery/door/morgue{dir = 2; name = "Private Study"; req_access_txt = "37"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"bbf" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bbf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main)
"bbg" = (/turf/simulated/floor/carpet,/area/chapel/main)
"bbh" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"bbh" = (/obj/item/toy/nuke,/turf/simulated/floor/carpet,/area/chapel/main)
"bbi" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"bbj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/hallway/secondary/exit)
"bbk" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2772,7 +2771,7 @@
"bbp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"bbq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry)
"bbr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/entry)
"bbs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry)
"bbs" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/carpet,/area/chapel/main)
"bbt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint)
"bbu" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint)
"bbv" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/machinery/door/window/brigdoor{dir = 1; name = "Customs Desk"; pixel_y = 6; req_access_txt = "68"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint)
@@ -2802,13 +2801,13 @@
"bbT" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge)
"bbU" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge)
"bbV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/bar)
"bbW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bbX" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bbW" = (/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/crew_quarters/bar)
"bbX" = (/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/central/ne)
"bbY" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bbZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bca" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bcb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bcc" = (/obj/structure/table/woodentable,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bca" = (/obj/machinery/camera{c_tag = "Chapel North"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/weapon/gift,/turf/simulated/floor/carpet,/area/chapel/main)
"bcb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/carpet,/area/chapel/main)
"bcc" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/item/toy/carpplushie,/turf/simulated/floor/carpet,/area/chapel/main)
"bcd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bce" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bcf" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
@@ -2825,11 +2824,11 @@
"bcq" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 8; icon_state = "right"; name = "Library Desk Door"; req_access_txt = "37"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/library)
"bcr" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/library)
"bcs" = (/obj/structure/table/woodentable,/obj/machinery/librarycomp{pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/library)
"bct" = (/obj/machinery/power/apc{dir = 8; name = "Chapel APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bcu" = (/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"bcv" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"bcw" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"bcx" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bct" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bcu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/flora/grass/green,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bcv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bcw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/ausbushes/pointybush,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bcx" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bcy" = (/obj/machinery/vending/snack,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"bcz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"bcA" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2841,7 +2840,7 @@
"bcG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area)
"bcH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"bcI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry)
"bcJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"bcJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bcK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint)
"bcL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door_control{id = "customs-entrance2"; name = "Customs Entrance Open"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = 26; req_access_txt = "68"; specialfunctions = 1},/obj/machinery/door_control{id = "customs-entrance2"; name = "Customs Entrance Bolts"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = 26; req_access_txt = "68"; specialfunctions = 4},/turf/simulated/floor,/area/security/checkpoint)
"bcM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Customs Officer"},/turf/simulated/floor,/area/security/checkpoint)
@@ -2880,15 +2879,15 @@
"bdt" = (/obj/machinery/computer/med_data,/obj/machinery/camera{c_tag = "Bridge East"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/bridge)
"bdu" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/bridge)
"bdv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area)
"bdw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdx" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdy" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdA" = (/obj/structure/table/woodentable,/obj/item/clothing/head/cakehat,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdw" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdx" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar)
"bdy" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar)
"bdz" = (/obj/item/device/radio/intercom{pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdA" = (/obj/machinery/light,/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bdB" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/table,/obj/item/weapon/kitchen/utensil/knife{desc = "For making cutlets"; name = "Cutlet Knife"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"bdE" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"bdE" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdF" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdG" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdH" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
@@ -2904,11 +2903,11 @@
"bdR" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/wood,/area/library)
"bdS" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/library)
"bdT" = (/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/libraryscanner,/turf/simulated/floor/wood,/area/library)
"bdU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bdV" = (/obj/structure/stool,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"bdW" = (/obj/structure/stool,/turf/simulated/floor{dir = 4; icon_state = "chapel"},/area/chapel/main)
"bdX" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/stool,/turf/simulated/floor{dir = 1; icon_state = "chapel"},/area/chapel/main)
"bdY" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bdU" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/toy/xmas_cracker,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bdV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/obj/item/candle,/turf/simulated/floor,/area/hallway/secondary/exit)
"bdW" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit)
"bdX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bdY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bdZ" = (/obj/machinery/vending/coffee,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"bea" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/effect/decal/warning_stripes/southeastcorner,/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor,/area/hallway/secondary/exit)
"beb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"},/obj/effect/decal/warning_stripes/north,/obj/effect/decal/warning_stripes/south,/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2923,7 +2922,7 @@
"bek" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry)
"bel" = (/obj/machinery/vending/cola,/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry)
"bem" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry)
"ben" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"ben" = (/obj/structure/table/woodentable,/obj/item/clothing/suit/space/santa,/obj/item/weapon/storage/backpack/santabag,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"beo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint)
"bep" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/checkpoint)
"beq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/security/checkpoint)
@@ -2956,9 +2955,9 @@
"beR" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne)
"beS" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/ne)
"beT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"beU" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/weapon/dice,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"beV" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"beW" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"beU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/tree/dead,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"beV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/grass/both,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"beW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"beX" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"beY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"beZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/packageWrap,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
@@ -2975,13 +2974,13 @@
"bfk" = (/obj/structure/table/woodentable,/obj/item/device/camera_film,/obj/item/device/camera_film,/turf/simulated/floor/wood,/area/library)
"bfl" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/wood,/area/library)
"bfm" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/wood,/area/library)
"bfn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bfo" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"bfp" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"bfn" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bfo" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bfp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bfq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/carpet,/area/chapel/main)
"bfr" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main)
"bfs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main)
"bft" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Chapel South"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"bfr" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bfs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bft" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bfu" = (/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge West"; dir = 4; network = list("SS13")},/obj/machinery/vending/cola,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"bfv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"bfw" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/secondary/exit)
@@ -2989,7 +2988,7 @@
"bfy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area)
"bfz" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area)
"bfA" = (/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"bfB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"bfB" = (/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bfC" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint)
"bfD" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/obj/machinery/recharger,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint)
"bfE" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/structure/filingcabinet,/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint)
@@ -3028,12 +3027,12 @@
"bgl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne)
"bgm" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central/ne)
"bgn" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor,/area/hallway/primary/central/ne)
"bgo" = (/obj/structure/table/woodentable,/obj/item/candle,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgo" = (/obj/structure/table/woodentable,/obj/item/clothing/head/festive,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgp" = (/obj/structure/disposalpipe/segment,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgq" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgr" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgs" = (/obj/structure/table/woodentable,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgt" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen)
"bgr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgs" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/candle_box,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgt" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgu" = (/obj/effect/landmark/start{name = "Chef"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"bgv" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/requests_console{department = "Kitchen"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"bgw" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
@@ -3052,8 +3051,8 @@
"bgJ" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/carpet,/area/chapel/main)
"bgK" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/chapel/main)
"bgL" = (/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"bgM" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit)
"bgN" = (/obj/structure/bush,/turf/simulated/floor/grass,/area/hallway/secondary/exit)
"bgM" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"bgO" = (/obj/structure/spacepoddoor{luminosity = 3},/turf/simulated/floor/engine,/area/hallway/secondary/entry)
"bgP" = (/turf/simulated/floor/engine,/area/hallway/secondary/entry)
"bgQ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/hallway/secondary/entry)
@@ -3063,7 +3062,7 @@
"bgU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area)
"bgV" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry/south)
"bgW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/secondary/entry)
"bgX" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"bgX" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bgY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Embassies South"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/hallway/primary/port/east)
"bgZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/hallway/primary/port/east)
"bha" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/central/nw)
@@ -3104,10 +3103,10 @@
"bhJ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Library"; req_access_txt = "0"},/turf/simulated/floor/carpet,/area/library)
"bhK" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/library)
"bhL" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/carpet,/area/library)
"bhM" = (/obj/machinery/camera{c_tag = "Departure Lounge East"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; id_tag = "escape_dock"; pixel_x = 30},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit)
"bhN" = (/turf/simulated/floor/grass,/area/hallway/secondary/exit)
"bhO" = (/turf/simulated/floor{desc = "\"This is a plaque in honour of those who died in the great space lube airlock incident.\" Scratched in beneath that is a crude image of a clown and a spaceman. The spaceman is slipping. The clown is laughing."; dir = 4; icon_state = "plaque"; name = "Memorial Plaque"; nitrogen = 30; oxygen = 70; temperature = 80},/area/hallway/secondary/exit)
"bhP" = (/obj/structure/bush,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hallway/secondary/exit)
"bhM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"bhN" = (/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bhO" = (/obj/structure/disposalpipe/segment,/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bhP" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/monkeysdelight,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bhQ" = (/turf/space,/area/xenos_station/east)
"bhR" = (/obj/machinery/door/airlock/glass{name = "Public Pod Bay"},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
"bhS" = (/obj/structure/table,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/crew_quarters/recruit)
@@ -3136,12 +3135,12 @@
"bip" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{id_tag = "captainofficedoor"; name = "Captain's Office"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"biq" = (/obj/machinery/computer/arcade,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bir" = (/obj/machinery/media/jukebox/bar,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bis" = (/obj/machinery/light,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bis" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bit" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"biu" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"biu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/woodentable,/obj/item/weapon/toy/xmas_cracker,/obj/item/clothing/head/hardhat/reindeer,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"biv" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"biw" = (/obj/item/device/radio/intercom{pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bix" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/flora/kirbyplants,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar)
"biw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bix" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/bottle/cream,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"biy" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/vending/dinnerware,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen)
"biz" = (/obj/machinery/icemachine,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
"biA" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
@@ -3160,9 +3159,9 @@
"biN" = (/obj/structure/table/woodentable,/obj/machinery/light/small/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/wood,/area/library)
"biO" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/light/small,/turf/simulated/floor/wood,/area/library)
"biP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/library)
"biQ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"biQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"biR" = (/turf/simulated/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main)
"biS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"biS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/flora/grass/brown,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"biT" = (/obj/machinery/power/apc{dir = 8; name = "Escape Hallway APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/hallway/secondary/exit)
"biU" = (/obj/structure/spacepoddoor{luminosity = 3},/obj/machinery/door/poddoor/three_tile_ver{id = "arrivalspodbay"; layer = 3.1; req_access_txt = "13"},/turf/simulated/floor/engine,/area/hallway/secondary/entry)
"biV" = (/obj/machinery/door_control{desc = "A remote control-switch for the pod doors."; id = "arrivalspodbay"; name = "Pod Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "13"},/turf/simulated/floor/engine,/area/hallway/secondary/entry)
@@ -3320,8 +3319,8 @@
"blR" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry/south)
"blS" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/secondary/entry)
"blT" = (/obj/machinery/camera{c_tag = "Arrivals South"; dir = 1; network = list("SS13"); pixel_x = 22},/turf/simulated/floor,/area/hallway/secondary/entry)
"blU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/secondary/entry)
"blV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"blU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/snow,/area/hallway/secondary/exit)
"blV" = (/obj/machinery/camera{c_tag = "Departure Lounge East"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock"; id_tag = "escape_dock"; pixel_x = 30},/obj/effect/decal/warning_stripes/east,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/gloves/furgloves,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/obj/item/clothing/head/ushanka,/turf/simulated/floor,/area/hallway/secondary/exit)
"blW" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/crew_quarters/recruit)
"blX" = (/turf/simulated/floor,/area/crew_quarters/recruit)
"blY" = (/obj/machinery/camera{c_tag = "Recruitment Lobby"; dir = 8; network = list("SS13")},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/crew_quarters/recruit)
@@ -3346,7 +3345,7 @@
"bmr" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
"bms" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bmt" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bmu" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bmu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bmv" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bmw" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/east)
"bmx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/starboard/west)
@@ -3360,7 +3359,7 @@
"bmF" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/secondary/exit)
"bmG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/secondary/exit)
"bmH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor,/area/hallway/secondary/exit)
"bmI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/secondary/entry)
"bmI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/flora/grass/green,/turf/simulated/floor/plating/snow,/area/hallway/secondary/entry)
"bmJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator)
"bmK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "grimy"},/area/embassy/slime)
"bmL" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "grimy"},/area/embassy/slime)
@@ -3499,7 +3498,7 @@
"bpo" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Captain's Desk"; departmentType = 5; name = "Captain RC"; pixel_x = -30; pixel_y = 0},/obj/structure/filingcabinet,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpp" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/effect/landmark/start{name = "Captain"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpq" = (/obj/machinery/computer/communications,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpr" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bps" = (/obj/structure/table/woodentable,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpt" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/sw)
"bpu" = (/turf/simulated/floor,/area/hallway/primary/central/sw)
@@ -3517,7 +3516,7 @@
"bpG" = (/turf/simulated/floor{icon_state = "white"},/area/medical/reception)
"bpH" = (/obj/machinery/camera{c_tag = "Medbay Lobby East"; network = list("SS13")},/obj/structure/stool,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception)
"bpI" = (/obj/structure/stool,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception)
"bpJ" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/flora/kirbyplants,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception)
"bpJ" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bpK" = (/obj/structure/filingcabinet,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/medical)
"bpL" = (/obj/machinery/disposal,/obj/structure/closet/walllocker/emerglocker/north,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/medical)
"bpM" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/medical)
@@ -4248,7 +4247,7 @@
"bDJ" = (/obj/machinery/camera{c_tag = "Cargo Bay Entrance"; dir = 4; network = list("SS13")},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/sw)
"bDK" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads)
"bDL" = (/turf/simulated/floor,/area/crew_quarters/heads)
"bDM" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor,/area/crew_quarters/heads)
"bDM" = (/obj/item/candle,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bDN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/heads)
"bDO" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads)
"bDP" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/server)
@@ -4773,7 +4772,7 @@
"bNO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bNP" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/flora/kirbyplants,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bNQ" = (/obj/machinery/hologram/holopad,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Research Director's Office"},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bNR" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bNR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bNS" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bNT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bNU" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
@@ -5119,7 +5118,7 @@
"bUw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall,/area)
"bUx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
"bUy" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo)
"bUz" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/device/megaphone,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo)
"bUz" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/wrapping_paper,/obj/item/weapon/wrapping_paper,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/kitchen)
"bUA" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo)
"bUB" = (/obj/machinery/computer/crew,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo)
"bUC" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area)
@@ -6104,7 +6103,7 @@
"cnt" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 6},/turf/simulated/floor,/area/hallway/primary/aft)
"cnu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
"cnv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft)
"cnw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"cnw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"cnx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area)
"cny" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room)
"cnz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engine/break_room)
@@ -8176,6 +8175,7 @@
"dbl" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbm" = (/obj/item/alien_embryo,/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbn" = (/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)
"dbo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"dbp" = (/obj/structure/flora/grass/green,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbq" = (/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbr" = (/obj/structure/flora/ausbushes/genericbush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
@@ -8194,6 +8194,7 @@
"dbE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
"dbF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "syndieshutters"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start)
"dbG" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/syndicate_station/start)
"dbH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"dbI" = (/obj/structure/flora/bush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbJ" = (/obj/structure/flora/ausbushes/stalkybush,/turf/simulated/floor/grass{name = "Vox Grass"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
"dbK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/wood{name = "Vox flooring"; nitrogen = 100; oxygen = 0},/area/alien{icon_state = "red2"; name = "\improper Vox base"})
@@ -10212,7 +10213,7 @@
"dOv" = (/turf/simulated/shuttle/wall{tag = "icon-pwall (NORTH)"; icon_state = "pwall"; dir = 1},/area)
"dOw" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-pwall (SOUTHWEST)"; icon_state = "pwall"; dir = 10},/area)
"dOx" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dOy" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dOy" = (/obj/structure/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
"dOz" = (/turf/space,/area/mine/unexplored)
"dOA" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/research_outpost/spectro)
"dOB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 6; icon_state = "whitegreen"},/area/research_outpost/spectro)
@@ -10237,10 +10238,10 @@
"dOU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos)
"dOV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area)
"dOW" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/turf/simulated/floor/plating/airless,/area)
"dOX" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area)
"dOY" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area)
"dOX" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dOY" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor,/area/mine/abandoned)
"dOZ" = (/obj/machinery/door/airlock/hatch,/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area)
"dPa" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dPa" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dPb" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dPc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned)
"dPd" = (/turf/simulated/mineral/random,/area/mine/explored)
@@ -10300,7 +10301,7 @@
"dQf" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/mineral,/area/research_outpost/atmos)
"dQg" = (/obj/machinery/atmospherics/pipe/vent{dir = 8},/turf/simulated/floor/plating,/area/research_outpost/atmos)
"dQh" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/mine/abandoned)
"dQi" = (/obj/item/stack/rods,/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dQi" = (/obj/structure/alien/weeds,/turf/simulated/floor,/area/mine/abandoned)
"dQj" = (/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dQk" = (/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{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway)
"dQl" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway)
@@ -10332,8 +10333,8 @@
"dQL" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/atmos)
"dQM" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area)
"dQN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned)
"dQO" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dQP" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dQO" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dQP" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dQQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway)
"dQR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway)
"dQS" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/wood,/area/research_outpost/hallway)
@@ -10365,7 +10366,7 @@
"dRs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dRt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dRu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dRv" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dRv" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor,/area/mine/abandoned)
"dRw" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dRx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/hallway)
"dRy" = (/obj/structure/table,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/research_outpost/hallway)
@@ -10392,9 +10393,9 @@
"dRT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dRU" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dRV" = (/obj/structure/table,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dRW" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor,/area/mine/abandoned)
"dRX" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/mine/abandoned)
"dRY" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating,/area/mine/abandoned)
"dRW" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dRX" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dRY" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dRZ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/wood,/area/research_outpost/hallway)
"dSa" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/research_outpost/hallway)
"dSb" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/wood,/area/research_outpost/hallway)
@@ -10422,9 +10423,9 @@
"dSx" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dSy" = (/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dSz" = (/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dSA" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dSA" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dSB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned)
"dSC" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dSC" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dSD" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/wall,/area/research_outpost/entry)
"dSE" = (/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{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
"dSF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
@@ -10460,7 +10461,7 @@
"dTj" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dTk" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dTl" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dTm" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned)
"dTm" = (/obj/structure/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dTn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
"dTo" = (/obj/machinery/computer/shuttle_control/research{req_access_txt = "65"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry)
"dTp" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/research_outpost/entry)
@@ -10503,10 +10504,10 @@
"dUa" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dUb" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "small"},/turf/space,/area/mine/abandoned)
"dUc" = (/obj/structure/lattice,/turf/space,/area/mine/abandoned)
"dUd" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dUd" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dUe" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/mine/abandoned)
"dUf" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dUg" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dUf" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dUg" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dUh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/transit_tube{icon_state = "N-SE"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
"dUi" = (/obj/structure/transit_tube{icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry)
"dUj" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/research_outpost/entry)
@@ -10549,10 +10550,10 @@
"dUU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dUV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dUW" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/mine/abandoned)
"dUX" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dUX" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dUY" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dUZ" = (/turf/simulated/floor/airless,/area/mine/abandoned)
"dVa" = (/obj/effect/alien/weeds,/turf/simulated/floor,/area/mine/abandoned)
"dVa" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dVb" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dVc" = (/obj/structure/table,/turf/simulated/floor,/area/mine/abandoned)
"dVd" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/abandoned)
@@ -10596,12 +10597,12 @@
"dVP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting)
"dVQ" = (/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting)
"dVR" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting)
"dVS" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dVS" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating,/area/mine/abandoned)
"dVT" = (/obj/effect/decal/remains/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dVU" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dVV" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dVU" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dVV" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating,/area/mine/abandoned)
"dVW" = (/obj/structure/table,/turf/simulated/floor/airless,/area/mine/abandoned)
"dVX" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dVX" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dVY" = (/turf/simulated/mineral,/area/mine/explored)
"dVZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
"dWa" = (/obj/structure/transit_tube/station{icon_state = "closed"; dir = 4},/obj/structure/transit_tube_pod,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/entry)
@@ -10640,7 +10641,7 @@
"dWH" = (/obj/structure/table,/obj/item/weapon/anobattery{pixel_x = -6; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = -2; pixel_y = -2},/obj/item/weapon/anobattery{pixel_x = 2; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = 6; pixel_y = 6},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/research_outpost/harvesting)
"dWI" = (/obj/item/weapon/shard,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
"dWJ" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/airless,/area/mine/abandoned)
"dWK" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dWK" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned)
"dWL" = (/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dWM" = (/turf/simulated/wall,/area/mine/unexplored)
"dWN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area)
@@ -10681,8 +10682,8 @@
"dXw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned)
"dXx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned)
"dXy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/abandoned)
"dXz" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor,/area/mine/abandoned)
"dXA" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
"dXz" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dXA" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"dXB" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dXC" = (/obj/structure/transit_tube{tag = "icon-E-SW"; icon_state = "E-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dXD" = (/turf/simulated/wall,/area/research_outpost/gearstore)
@@ -10722,7 +10723,7 @@
"dYl" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet,/turf/simulated/floor,/area/research_outpost/longtermstorage)
"dYm" = (/obj/structure/transit_tube{icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/harvesting)
"dYn" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor,/area/mine/abandoned)
"dYo" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"dYo" = (/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area)
"dYp" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dYq" = (/obj/structure/transit_tube{tag = "icon-NE-SW"; icon_state = "NE-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dYr" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/unexplored)
@@ -10759,7 +10760,7 @@
"dYW" = (/obj/structure/transit_tube{icon_state = "D-NW"},/turf/space,/area)
"dYX" = (/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned)
"dYY" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/mine/abandoned)
"dYZ" = (/obj/effect/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dYZ" = (/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area)
"dZa" = (/turf/simulated/wall,/area/mine/explored)
"dZb" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"dZc" = (/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
@@ -10794,7 +10795,7 @@
"dZF" = (/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored)
"dZG" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored)
"dZH" = (/obj/effect/decal/remains/human,/turf/simulated/floor{icon_state = "green"; dir = 8},/area/mine/abandoned)
"dZI" = (/obj/effect/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
"dZI" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/alien/weeds{icon_state = "weeds"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"dZJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/abandoned)
"dZK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/abandoned)
"dZL" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
@@ -10822,7 +10823,7 @@
"eah" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2)
"eai" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage)
"eaj" = (/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored)
"eak" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/mine/abandoned)
"eak" = (/obj/item/stack/rods,/obj/structure/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
"eal" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/abandoned)
"eam" = (/obj/machinery/door/airlock/glass{name = "Glass Airlock"; req_access_txt = "0"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/abandoned)
"ean" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/mine/abandoned)
@@ -12517,6 +12518,30 @@
"eGM" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area)
"eGN" = (/obj/machinery/atmospherics/trinary/filter{density = 0; req_access = null},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"eGO" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing)
"eGP" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGQ" = (/obj/machinery/door/window/westright{name = "Boxing Ring"},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGV" = (/obj/machinery/door/window/eastleft{name = "Boxing Ring"},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGW" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGX" = (/obj/structure/disposalpipe/segment,/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eGZ" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eHa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eHb" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/snow,/area/crew_quarters/fitness)
"eHc" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"eHd" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/storage/fancy/crayons,/obj/item/clothing/suit/space/santa,/obj/item/weapon/storage/backpack/santabag,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office)
"eHe" = (/obj/machinery/driver_button{id = "chapelgun"; name = "Chapel Mass Driver"; pixel_x = 25},/turf/simulated/floor{icon_state = "wood"},/area/chapel/main)
"eHf" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/clothing/head/cakehat,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"eHg" = (/obj/structure/table,/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"eHh" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/item/device/megaphone,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo)
"eHi" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/obj/item/clothing/head/helmet/space/santahat,/turf/simulated/floor,/area/crew_quarters/heads)
"eHj" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"eHk" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/snowman,/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception)
"eHl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/snowman,/turf/simulated/floor/plating/snow,/area/hallway/primary/aft)
"eHm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/clothing/head/hardhat/reindeer,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -12583,7 +12608,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaczacAacBacCacDacEacqaaiaaiaaiacFacGacHaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiacIacJacKacJacJacLaaiaaiaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiacNacOaaiaaiacPacQacRacSacTaaiaaiaaiacUacVacWacXaaiaaiacYacZadaadbadcaddaaiadeadfadgadhadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadladmadnadoaaiadpadqaaiadracRadsacRadtacRaduaaiaaiadvadwadxadyaaiaaiadzadAadBadCacJadDaaiadEadiadiadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaDaaDaaDaaDaaDaaDaaDaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiadFadGadHadIaaiabVabSaaiadJacRadKadLadMacRadNaaiaaiadOadPadQadRaaiaaiadSadTadUadVadWadXaaiadYadiadZadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiadFadGadHadIaaiabVabSaaiadJacRadKadLadMacRadNaaiaaiadOadPadQadRaaiaaiadSadTadUadVadWaDKaaiadYadiadZadiadiadjadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeaaebaecaaiaedaeeaefaefacDaegacqaaiaehacRadsacRadtacRaeiaaiaaiaejaekadQaelaaiaaiaemadAaenadCacJaeoaaiaepadiadiadiadiaeqadkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaiaeraesaetaeuaevaewaevaexacDacEacqaaiaaiaeyaezaeAadtaeBaaiaaiaaiaeCaeDaeEaeFaaiaaiaeGaeHaeIacJaeJaeKaaiaeLaeMaeNaeNaeOaaiabAabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaePaeQaeRaaiaeSaeQaeTaaiaaaaaiaeUaeVaeWaaiaaiaeXaaiaaiaaiaeYaeZaaiaaiafaadsafbadtafcaaiaaiafdafeaffaaiaaiaaiaaiafgafhafiafjafkaaiaaiaflafmafnafoafpaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -12608,47 +12633,47 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdaqTaqTaqTamdaaaaaaaaiaaiabnaaiaaiaflaaiarLaaiaaqaaqaaqarMarNaaqaaqaaqaaqarOarPaaqaaqaaqaaiarQarRarSarTarUarVaqBarWaaqarXarYarZasaabIasbascasdaseaqJasfamzasgashasiasjaskaslanDaaiasmasnaaiasoaspasqasrasrasrasrasrassaaiaaaaaaaaaafraabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafqamdaqTaqTaqTamdaaiaaiaaiastasuasvaswasxasyaszaaiasAapiapjapkaplapmasBapoasCasDasEasFasGasHapmasIasJasKasLasMasMasNasOaaqasPasQasRasSaaqasTasUasVaqKaqJasWamzasgaqMashashashasXasYasZataatbaaiatcatdateatfatgathatiatiatjaaiaaaaaaaaaafraabapTapTapTapTapTaabapUaabapTapTapTapTapTaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkatlatmatnatoaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdaqTaqTaqTatpamLatqamNatratsattatuatvattatwaaiaqhatxatyatzatAatBatCatDatEatFatGatHatIatJatKatLatMatMatNatMatMatOatPatQatRatSatTatUaaqatVatWatXatYatZauaamzasgaubaucaucaucaudaueaufaugauhaaiauiaujaukatfatfatfatfatfatfaaiaaaaaaaaaamIaaaaaaaaaaabaaaaaaaaaapUaaaaaaaaaaabaaaaaaaaaafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkaulaumaunatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdauoauoauoamdaaiaaiaaiaupauqaurausautauuauvaaiaqZauwauxauyauzarearfauAauBauCauDauBauEarmareauFauGauHauGauGauHauGauIaaqarXauJatTauKaaqauLauMauNauOauPauPauQauRaovaaqaaqaaqaaKaaqabnaaiaaiaaiauSauTauUatfauVauWauWauWauWaaiaaaaaaaaaafraabaosaosaosaosaosaabapUaabaosaosaosaosaosaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaiatkauXauYauZatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdavaavaavaamdaaqaaqaaqaaqaaqaaqaaiavbavcaaiaaiaaiaaiavdacDaveacDacDaveacDaveacDacDabuaaiaaiavfavgavhaviavgavhaviavjaaiaaiaaiaaiaaiaaqavkavlavmavmavnavoavpavqaaqavravsavtaaKavuavvavwavxaaqaaqavyaaKaaqaaqaaqaaqaaqaaqaaiaaaaaaaaaafqaabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaavzavAavBaaaavCavDavEaaiavFavGavHavGavIaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafravJavKavKavKavLaaqavMavNavOavPavQavRavSavTavUavVavUavUavUavUavUavUavUavUavWavXavYavUavUavUavUavZavUavUavUavUawaawbawcawdaweawfawgawhaaqawiawjawkawlawmawnawoawpaaqawqawrawsaaKawtawuawtawvaaqawwawxawyawzawAawBawCawDawEaaiaaaaaaaaaafqaaaapTapTapTapTapTaabapUaabapTapTapTapTapTaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcaaaamcamcamcamcamcamcamcamcamcaaaamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFawGawFaaiawHawIawHaaiawJawKawLawMawNaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqawOawPawQawRawRawSawTawUawaawaawaawaawaawaawaawaawaawaawVawaawaawaawaawaawaawWawaawaawaawaawXawaawYawaawZawaawaaxaaaqaxbaxcaxdaxeawkaxfawoaxgaaqaxhaxiaxjaxkawtaxlaxmavxaaqaxnaxoaxpaxqaxraxsaxraxtaxraaiaaaaaaaaaafqaaaaabaaaaaaaaaaaaaabapUaaaaaaaaaaaaaaaaabaaaafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatkaulaumaunatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaabaframdauoauoauoamdaaiaaiaaiaupauqaurausautauuauvaaiaqZauwauxauyauzarearfauAauBauCauDauBauEarmareauFauGauHauGauGauHauGauIaaqarXauJatTauKaaqauLauMauNawnauPauPauQauRaovaaqaaqaaqaaKaaqabnaaiaaiaaiauSauTauUatfauVauWauWauWauWaaiaaaaaaaaaafraabaosaosaosaosaosaabapUaabaosaosaosaosaosaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaaaaaaaaaaaaaaaaaaaaaaiatkauXauYauZatkaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaframdavaavaavaamdaaqaaqaaqaaqaaqaaqaaiavbavcaaiaaiaaiaaiavdacDaveacDacDaveacDaveacDacDabuaaiaaiavfavgavhaviavgavhaviavjaaiaaiaaiaaiaaiaaqavkavlavmavmavnavmavpavqaaqavravsavtaaKavuavvavwavxaaqaaqavyaaKaaqaaqaaqaaqaaqaaqaaiaaaaaaaaaafqaabaoRaoSaoSaoSaoSaoTaoUaoVaoWaoWaoWaoWaoXaabafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaavzavAavBaaaavCavDavEaaiavFavGavHavGavIaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaafravJavKavKavKavLaaqavMavNavOavPavQavRavSavTavUavVavUavUavUavUavUavUavUavUavWavXavYavUavUavUavUavZavUavUavUavUawaadXawcawdaweawfawgawhaaqawiawjawkawlawmavoawoawpaaqawqawrawsaaKawtawuawtawvaaqawwawxawyawzawAawBawCawDawEaaiaaaaaaaaaafqaaaapTapTapTapTapTaabapUaabapTapTapTapTapTaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcaaaamcamcamcamcamcamcamcamcamcaaaamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFawGawFaaiawHawIawHaaiawJawKawLawMawNaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqawOawPawQawRawRawSawTawUawaawaawaawaawaawaawaawaawaawaawVawaawaawaawaawaawaawWawaawaawaawaawXawaawYawaawZawaawaaxaaaqaxbaxcaxdaxeawkauOawoaxgaaqaxhaxiaxjaxkawtaxlaxmavxaaqaxnaxoaxpaxqaxraxsaxraxtaxraaiaaaaaaaaaafqaaaaabaaaaaaaaaaaaaabapUaaaaaaaaaaaaaaaaabaaaafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaiawFaxuawFaaqawHaxvawHaaiaxwaxxaxyaxzaxAaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaxBaxCaxDaxEaxFaaqaxGaxHaxIaxIaxJaxKaxLaxIaxMaxIaxIaxIaxNaxIaxIaxIaxIaxIaxIaxOaxPaxQaxQaxQaxRaxSaxTaxSaxUaxVaxSaxWaaqaaiaaiaaiaaiaaiaaiawoawpaaqaxXawraxYaaKawtaxZawtawvaaqayaaybaycaxraydaxraxraxtayeaaiaaaaaaaaaafqafqafraaaaaaaaaaabaabapUaabaaaaaaaaaaaaafrafrafraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIanIanIanIaaaaaiayfaygayhaaqayiayjaykaaiaylaymaynayoaypaaiaaaaaaaaaaaaaaaaqQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaaqaaqaaqaaqaaqaaiaoyayqaaqayraysaytaaqayuaaqayvaywaaqayxaaqaaqaaqaaqaaqaaqaaqayyaaqaaqayzayAayBamzaaqaoyaaqayCaaqaaqapPanDanDanDanDanDayDawpaaqayEawrayFaaKayGaxlaxmavxaaqayHayIayJayKayKayLayKayMayNaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIanIanIanIanIanIanIanIanIanIanIanIaaiaaiaaiaaiayPayQayRaaqayPayQayRaaiaySayTayUayVayWaaiaaaaaaaaaaaaaaaapVapWapWapWapWapWapWayXaaaaaaaaaaaaaaaaaaaaaaaaaaiayYayZaaqazaazbazcaaqazdaaqazeazfazgazhaziazjazkazlazmaznazoazpazqazrazsawaawbaztazuazvazwazwazwazwazwazxazwazwazwazwazyazzazAazBazCazDazEazFazGawtawvaaqayHazHazIazJaxrazKazLazMazNaaiazOazPazPazPazPazPazQaaaaaaaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamcamcamcamcamcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazSazTazUazUazTaaiaaiaaiaaiaaiazVazWaaiaaqazXaaqaaiaaqazYaaqaaiazZaAaaAbazZaAcaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAdaAeaAdaaaaaaaaaaaaaaaaaaaaaaaiaAfaAgabXaAhaAiaAjaaqazdaaqaAkaAlaAmazhaAnaAoaApaApaApaApaApazpaApaAqavUawaawbaaqaAraAsabIabIabIabIaAtaAsabIabIabIabIabIabIaAuabIaAvaAwaAxabIaAyaAzaaqaaqaaqaAAaABaaqaaqamzaaqaaqaaqaaiaACaADaADaADaADaADaACaaiaaaaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAEaAFaAGaAHaAIaAJaAKaAJaAJaALaAMaANaANaAOaANaAPaAQaARaASaATaAUaAVaAWaAVaAXaAYaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAZaBaaBbaaaaaaaaaaaaaaaaaaaaaaaiazdayZaaqaBcaBdaAjaaqazdaaqaBeaBfaBgazhaBhaApaApaBiaApaBjaBjazpaApaAqavUawaaBkaaqaBlaAsaBmaBnaBoaaqaBpaBqaBraBsaBtaBuaBvaBwaBxaByaBzaBAaBBaBCaBDaBEaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOaBPaBQaACaADaADaADaADaADaACaaiaabaaaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBRaBSaBTaBUaBVaBWaBXaBWaBYaBWaBZaCaaCbaBZaCcaCdaCeaCfaCgaChaCiaCiaCiaCiaCjaCkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaClaCmaCnaCoaoOaoOaoOaoOaoOaoPaaiaaiazdayZaaqaCpaCqaCrabIaCsabIaCtaCuaCvaCwaziaCxaApaCyaCzaCAaCBaCCaCDaAqavUawaawbaaqasgaCEaCFaBnaBoaaqaCGaCHaCHaCHaCHaCHaCHaCHaCHaCHaCHaCIaCJaCKaCLaCMaCNaCOaCPaCQaCRaCPaCSaCTaCUaCPaCPaCVaCWaADaADaADaADaADaCWaaiaaiaaiaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiazTaaiaaiaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCZaDaaDaaDaaDaaDbaDcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaDdaDeaDfaaiaDgaDhaDhaDhaDhaDhaDiaDjaDkaaqaDlaDmaDnaaqaDoaaqaDpaDqaDraDsaDtaCAaDuaDvaDwaDxaDyaDzaDAaDBaDCaDDaDEabXaDFaDGaDHaBnaBoaaqaDIaCHaCHaDJaDJaDJaCHaCHaCHaCHaDKaDLaDMaDNaDOaDPaDQaDRaDSaDSaDTaDSaDUaDSaDSaDSaDSaDVaDWaADaADaADaADaADaDXaDYaDZaEaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaaaaEcaEdaEeaDaaDaaDaaDbaEfaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaEgaEhaEiaaiaEjaaiaaiaaiaaiaaiaaiaaiaEkaaqaElabXabXabXaEmabXaEnabXabXabXaEoabXabXaaFabXabXabXabXabtaovaEpawaaEqaaqasgaoyaEraBnaBoaaqaCGaCHaDJaEsaEsaEtaDJaCHaEuaCHaEvaEwaExaEyaEzaEAaEBaECaEAaEAaEDaEAaEEaEFaEGaEHaEuaEIaEaaADaADaADaADaADaEaaEJaEKaELaaaazRaaaaaaaaaaaaaaaaaaaaaaaqaaqaEMaENaENaENaENaEOaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaEPaEQaERaESaDaaDaaDaaDbaETaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEUaEVaEWaaiaEjaaiaEXaEYaEZaFaaFbaaiaEkazdazdazdazdaFcaFdaFeaFfaFfaFfaFfaFgaFfaFhaFiaFjaFfaFfaFkaFkaFlaFmaFnaFoabIaFpaoyaFqaEraEraaqaCGaCHaDJaFraFsaFtaDJaCHaCHaFuaFvaEwaFwaFxaCHaCHaFyaFzaCHaCHaCHaCHaFAaFBaFCaFDaCHaFEaFFaADaADaADaADaADaFFaFGaEKaELaaaaFHaaaaaaaaaaaaaaaaaaaaqaaqaFIaFJaFKaFLaFMaFNaFOaFKaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaFPaFQaFRaFSaDaaDaaDaaDbaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEjaaiaFbaGaaGbaFbaFbaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafdabnaaiaGgaaiaflafdaaiaaiaaiaaiaGhaGiaGjaGkaGlaDGaGmaGnaEraGoaCGaCHaDJaGpaEsaEsaDJaCHaCHaCHaGqaGraGsaGtaCHaCHaFyaGuaGvaGwaGwaGwaGxaCHaCHaDOaCHaGyaGzaADaADaADaADaADaGAaGBaGCaFFaGDaGEaGDaaaaaaaaaaaqaaqaaqaGFaFLaGGaFLaGHaGIaFLaFLaFLaGJaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiazTaaiaaiaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCXaCYaaiaCZaDaaDaaDaaDaaDbaDcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaDdaDeaDfaaiaDgaDhaDhaDhaDhaDhaDiaDjaDkaaqaDlaDmaDnaaqaDoaaqaDpaDqaDraDsaDtaCAaDuaDvaDwaDxaDyaDzaDAaDBaDCaDDaDEabXaDFaDGaDHaBnaBoaaqaDIaCHaCHaDJaDJaDJaCHaCHaCHaCHdbHeGPcnwdboaDOaDPaDQaDRaDSaDSaDTaDSaDUaDSaDSaDSaDSaDVaDWaADaADaADaADaADaDXaDYaDZaEaaaaazRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaaaaEcaEdaEeaDaaDaaDaaDbaEfaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaEgaEhaEiaaiaEjaaiaaiaaiaaiaaiaaiaaiaEkaaqaElabXabXabXaEmabXaEnabXabXabXaEoabXabXaaFabXabXabXabXabtaovaEpawaaEqaaqasgaoyaEraBnaBoaaqaCGaCHaDJaEsaEsaEtaDJaCHaEuaCHeGQeGReGSeGTaEzaEAaEBaECaEAaEAaEDaEAaEEaEFaEGaEHaEuaEIaEaaADaADaADaADaADaEaaEJaEKaELaaaazRaaaaaaaaaaaaaaaaaaaaaaaqaaqaEMaENaENaENaENaEOaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaEPaEQaERaESaDaaDaaDaaDbaETaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEUaEVaEWaaiaEjaaiaEXaEYaEZaFaaFbaaiaEkazdazdazdazdaFcaFdaFeaFfaFfaFfaFfaFgaFfaFhaFiaFjaFfaFfaFkaFkaFlaFmaFnaFoabIaFpaoyaFqaEraEraaqaCGaCHaDJaFraFsaFtaDJaCHaCHaFueGWeGXeGUeGVaCHaCHaFyaFzaCHaCHaCHaCHaFAaFBaFCaFDaCHaFEaFFaADaADaADaADaADaFFaFGaEKaELaaaaFHaaaaaaaaaaaaaaaaaaaaqaaqaFIaFJaFKaFLaFMaFNaFOaFKaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaFPaFQaFRaFSaDaaDaaDaaDbaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEjaaiaFbaGaaGbaFbaFbaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafdabnaaiaGgaaiaflafdaaiaaiaaiaaiaGhaGiaGjaGkaGlaDGaGmaGnaEraGoaCGaCHaDJaGpaEsaEsaDJaCHaCHaCHeGYeGZeHaeHbaCHaCHaFyaGuaGvaGwaGwaGwaGxaCHaCHaDOaCHaGyaGzaADaADaADaADaADaGAaGBaGCaFFaGDaGEaGDaaaaaaaaaaaqaaqaaqaGFaFLaGGaFLaGHaGIaFLaFLaFLaGJaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaGKaGLaERaESaDaaDaaDaaDbaETaaiaGMaGNaGOaGPaGQaaiaGRaGSaGTaGTaGTaGUaGTaGTaEjaaiaGVaGWaGXaGYaGZaaiaHaaHbaHaaHaazdazdaDoaaiaHcaHdaHeaHfaHgaHhaHiaHjaHkaHlaHmaHdaHnaaiaHoawaaHpaaqaHqaoyaHraHsaHsaHtaHuaHvaHwaHxaHxaHyaHzaEAaHAaHzaHzaHBaHCaHDaCHaCHaHEaHFaHGaHHaHHaHHaHIaHJaFCaDOaCHaHKaHLaADaADaADaADaADaHMaaiaaiaaiaAZaHNaAZaaaaaaaaqaaqaHOaaqaHPaHQaHRaHSaFLaFLaHTaHUaFLaHVaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEbaEbaEbaEbaEbaEbaEbaEbaEbaHWaHXaHYaHZaDaaDaaDaaDbaETaaiaIaaIbaIcaIdaIeaaqaIfaIgaIhaIiaIiaIjaDhaDhaIkaaiaFbaGaaIlaFbaFbaaiaImazdaInaHaazdazdaDoaaiaIoaIoaIpaIqaIraIsaItaIsaIuaIvaIwaIxaIxaaiaHoawaaIyaaqaHqaoyaEraBnaBoaaqaCGaIzaIAaIBaICaIDaIDaIEaIFaIDaIFaIGaIHaIIaIJaIKaILaIMaINaIOaIPaIQaIRaaqaISaITaISaaqaIUaADaADaADaADaADaIVaaiaabaoNaCmaIWaIXaAaaaaaaqaIYaIZaJaaJbaJcaJdaFLaFLaFLaJeaJfaFLaJgaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaaiaaiaaiaaiaCXaJhaJiaaiaCXaJhaJiaaiaaiaaiaaiaJjaDaaDaaDaaDaaDbaJkaaiaJlaJmaJnaJoaJpaaqaJqaGTaEjaJraGTaJsaGTaJtaJuaaiaJvaJwaJxaJyaFbaaiazdazdaJzaHaazdazdaDoaaiaaiaaiaaiaJAaJBaHdaJCaHdaJBaJDaaiaaiaaiaaiaHoawaaJEaaqaHqaoyaDHaBnaBoaaqaJFaJGaaqaaqaaqaaqaaqaaqaaqaJHaaqaaqaaqaaqaaqaaqaJIaaqaJJaJKaJKaJKaJLaaqaJMaJNaJOaaqaIUaADaADaADaADaADaIVaaiaaaaaiaJPaJQaJRaaiaaaaaqaJSaJTaaqaJUaJVaJWaJXaJYaJZaKaaKbaGHaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKcaKdaKeaANaANaKfaKgaANaANaKhaKiaKjaaiaEcaKkaEeaDaaDaaDaaDbaETaaiaaqaaqaoyaKlaaqaaqaJqaGTaEjaaiaaiaaiaaiaaiaaiaaiaaiabnaKmaaiaaiaaiaaiaaiaaiaaiaaiaaiaDoaaiaKnaKnaIpaKoaKpaIsaItaIsaKpaKqaKraKsaKtaaiaHoawaaHpaaqaKuaAsaKvaBnaBoaaqaKwaJGaaqaKxaKyaKzaKzaaqaKAaKyaKBaaqaKCaKDaKEaaqaKFaaqaJJaJKaJKaJKaJLaaqaKGaKHaKIaaqaKJaKKaKKaKKaKKaKKaKLaaaaaaaaiaKMaKNaKOaaiaaaaaqaKPaKQaaqaaqaaqaaqaaqaKRaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKcaKdaKeaANaANaKfaKgaANaANaKhaKiaKjaaiaEcaKkaEeaDaaDaaDaaDbaETaaiaaqaaqaoyaKlaaqaaqaJqaGTaEjaaiaaiaaiaaiaaiaaiaaiaaiabnaKmaaiaaiaaiaaiaaiaaiaaiaaiaaiaDoaaiaKnaKnaIpaKoaKpaIsaItaIsaKpaKqaKraKsaKtaaiaHoawaaHpaaqaKuaAsaKvaBnaBoaaqaKwaJGaaqaKxaKyaKzaKzaaqaKAaKyaKBaaqaKCaKDeHfaaqaKFaaqaJJaJKaJKaJKaJLaaqaKGaKHaKIaaqaKJaKKaKKaKKaKKaKKaKLaaaaaaaaiaKMaKNaKOaaiaaaaaqaKPaKQaaqaaqaaqaaqaaqaKRaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSaKTaDaaDaaDaaDaaKUaDaaDaaDaaKUaDaaKVaKWaKXaKYaKZaLaaLaaLaaLbaETaaiaLcaLdaLeaLfaaqaaqaLgaGTaEjaaiaLhaLiaLjaLiaLkaaiaLlaLmaLnaLoaLpaaiaLqaLqaLraLqaLsaaiaDoaaiaHcaHdaLtaLuaJBaHdaLvaHdaJBaLwaLxaHdaHnaaiaHoawaaLyaaqaHqaCEaCFaBnaBoaaqaLzaLAaaqaLBaKyaKyaKyaLCaLDaLEaLFaaqaLGaLHaLIaLJaLKaaqaLLaLMaLNaLMaLOaaqaLPaLQaLRaaiaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaLSaLTaLUaaiaLVaaqaaqaaqaaqaLWaLXaLYaLYaLZaLYaMaaLYaMbaMcaMcaMdaMcaMcaMcaMcaMeaMfaMgaaiaMhaaiaaaaoqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaMiaBZaBZaBZaBZaMjaBZaBZaBZaMjaMkaMlaMmaMnaMmaMoaMpaMpaMpaMqaMraaiaMsaMtaMuaMvaMwaaqaJqaGTaEjaaiaMxaLkaLkaLkaLkaaiaMyaMzaMAaMBaMCacDaMDaMDaMEaMDaMFaaiaDoaaiaKnaKnaIpaMGaKpaIsaMHaIsaKpaMIaIwaMJaMKaaiaMLayAaMMaaqaHqaCEabXabXabXabXaMNaMOaMPaMQaMRabXabXabXaaFabXabtaMSaMTaMUaMVabXaMWaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaoNaoPaaiaaiaaiaaiaaiaaiaMXaamaaiaMYaMZaNaaNbaNcaNdaNeabXabXabXabXaaFaNfaNgabXabXaNhabXaNiabXabXaaFaNjaaqaaqaNkaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaNraESaNsaNtaNuaNvaNwaNxaNxaNxaNyaNzaaiaNAaNBaNCaNDaNEaNFaNGaNHaIkaaiaNIaNJaNKaNLaNMaNNaNOaNPaNQaNRaNSaNTaNUaNVaNWaNXaNYacfaNZaaiaaiaaiaaiaOaaJBaHdaJCaHdaJBaObaaiaaiaaiaaiaOcaOdaOeaaqaKuaOfasYasYasYaOgaOhaOiabIaOjaOkabIaOlabIaOmabIaOnaAzaOoaOpaOqaaqaOraOsaOtaOuaOuaOsaOvaOwaOwaOwaOwaOwaOxaOyaOwaOzaOAaOBaOCaODaOEaOEaOFaOGaOHaOHaOHaOIaMfaOJaOKaOLaOMaaqaONaOOaOPaaKaaqaOQaaqaORaOSaOTaOUaOVaOWaOXaOYaOZaPaaPbaaiaPcaPdaPeaPfaPgaPhaPiaPjaPkaPlaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaPnaPoaPoaPoaPpaPqaPraPsaPtaPpaPoaPuaPvaPwaaiaPxaKcaPyaDaaDaaDaaPzaPAaaiaPBaPCaPDaPEaPFaaqaPGaPHaGTaaiaPIaPJaPKaPLaPMacDaPNaPOaPPaPQaPRaaiaPSaPTaPUaLqaPVaaiazdaaiaHcaHdaPWaLuaJBaHdaJCaHdaJBaLwaPXaaiaaiaaiaPYaPZaQaaQbaQcabnaaiaaiaaiaaqaQdaQeaaqaQfaKyaaqaQgaaqaQhaaqaQiaQjaQkaQlaQmaQnaQoaQpaQqaQraQsaAuaQtaQsaQsaQuaQsaQpaQvaQpaQwaQpaQpaQxaQyaQzaQAaQAaQBaQCaQDaQEaQAaQFaMcabIaQGaQHaQIaQJaQKaQLaQMaaKaQNaQOaaqaQPaQQaQRaQSaOVaQTaOXaOYaOZaQUaQVaaiaQWaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQZaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaNraaiaaiaReaDaaDaaDaaDaaRfaRgaaiaRhaRiaRjaRkaRlabXaRmaRnaaqaaiaRoaRpaRqaLkaLkaaiaRraPOaPPaPQaRsaaiaRtaPTaRuaRvaLqaaiazdaaiaRwaRxaIpaRyaRzaIsaRAaIsaRBaRCaRDaaiaREaRFaRGaRHaRIaRJaRKaRLaaaaaaaaiaRMaRNaROaaqaRPaKyaKyaKyaRQaKyaKyaKyaaKaRRaRSaaqaRTaoyaaqaRUaaqaaqaRVaRWaRXaRYaRZaaqaSaaSbaaqaRTaaqaaqaaqaaqaScaaqaaqaoyaaqaaqaaqaaqaSdaMfaaqaSeaQIaSfaSgaShaSiaSjaSkaSlaSmaaqaSnaSoaSpaSqaSraQTaOXaOYaOZaSsaStaaiaSuaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaSxaPuaPoaSyaNraaiaSzaDaaDaaDaaDaaSAaSBaSCaSDaSEaSFaSEaSGaSHaSIaSJaSKaaiaaiaflaaiaaiaaiaaiaGKaSLaSMaGKaSNaaiaaiaflaaiaaiaaiaaiaSOaaiaaiaaiaaiaSPaSQaSRaSSaSRaSTaSUaaiaaiaSVaRHaRHaRHaRHaSWaSXaSYaSZaTaaaiaTbaRNaTcaaqaaqaaqaaqaaqaaqaaqaaqaaqaaKaTdaTeaTfaTgaThaTiaTjaTkaaqaTlaTmaTnaToaTpaaqaTqaTraTsaTtaTsaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaaqaTEaOEaTFaTGaTHaSfaTIaShaSiaTJaaqaTKaTLaTMaTNaTOaQSaQSaaqaQVaOXaOYaOZaTPaTQaaiaTRaQXaTSaTTaTUaTVaPjaPjaTWaPlaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaTXaRbaRcaRaaRcaTYaRcaRaaRcaRbaNoaPoaTZaUaaaiaUbaDaaDaaUcaDaaDbaUdaDaaUeaUfaUgaUhaUiaSKaUjaUkaSKaUlaUmaUnaSKaUoaSKaUpaSKaUjaUqaSKaUraUsaSKaUtaSKaUuaUmaUvaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaUGaUHaUIaUJaUKaULaUMaRHaRHaUNaUOaUPaUOaUQaURaUSaUTaUUaUVaUWaaqaUXaUYaUZaVaaVbaVbaVcaVdaVeaVfaaqaVgaVhaViaViaVjaaqaVkaVlaVmaVnaVoaVoaVpaVqaVraVqaVsaVtaVuaVvaVwaaqaSdaVxaaqaVyaVzaVzaVAaVBaVzaVCaaqaVDaVEaaqaVFaVGaQSaVHaaqaVIaVJaVKaOZaQVaQVaaiaVLaVMabnaflaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaPuaPoaVNaVOaaiaVPaDaaDaaDaaDaaDbaVQaMpaVRaVSaVTaVSaVUaVVaUjaVWaVXaVYaVZaWaaVXaVXaVXaSIaVXaSIaWbaVXaWcaVXaVXaWdaSKaUuaUmaUvaUwaUwaUwaUwaWeaUwaUwaUwaUwaUwaUwaWfaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWpaWpaWqaWraWraWraWsaUWaUWaUWaWtaWuaUWaaqaWvaWwaVbaVbaWxaVbaWyaWzaVeaWAaaqaWBaWCaWDaWEaWFaaqaWGaWHaWIaWJaWKaWLaaqaWMaWNaWMaaqaaqaaqaoyaaqaaqaSdaMfaaqaWOaQIaQIaQIaWPaQIaWQaaqaaqaaqaaqaaqaaqaaqaWRaaqaOZaOZaOYaOZaWSaWTaaqaWUaWVaWWaWXaWYaWZaXaaXbaAdaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXcaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaVOaaiaaiaXdaDaaDaaDaaDaaDbaXeaDaaUeaXfaXgaXhaUiaSKaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXoaXuaXoaXoaXvaXwaXxaXmaXyaXzaXAaXBaXCaXDaXCaXCaXCaXCaXCaXCaXEaXFaXGaXGaXGaXGaXHaXGaXIaXJaXGaXGaXGaXKaXLaXLaXLaXLaXLaXLaXLaXMaUWaUWaaqaXNaXOaXPaXQaXQaXRaXSaWzaVeaXTaaqaaqaaqaaqaaqaXUaaqaXVaXWaXXaXYaTsaXZaaqaYaaYbaYcaYdaYeaYfaYgaYhaaqaSdaMfaaqaYiaYjaQIaYkaYlaQIaYmaYmaaqaYnaYoaYpaaqaYqaYraYsaOZaOZaYtaYuaQVaYvaaqaYwaWVaWWaYxaYyaWVaWVaYzaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaPnaPoaPoaPoaPoaYBaPoaPoaYCaPoaPoaPuaYDaYEaaiaEcaKkaYFaDaaDaaDaaYGaYHaYIaYJaYKaYLaYKaYMaYNaUjaYOaYPaaiaaiaaiaaiaaiaaiaaiaGKaYQaYRaGKaYSaaiaaiaflaaiaaiaaiaaiaYTaYUaYTaYVaSZaSZaSZaSZaSZaSZaSZaTaaaiaYWaYXaYYaYZaYZaZaaZbaZcaZdaYXaZeaaiaGKaSZaSZaSZaSZaSZaZfaZgaZgaZgaaqaZhaZiaZjaZjaZjaZjaZkaMTaZlaZmaZnaZoaZpaZqaZraZsaaqaaqaZtaGKaZuaSZaZvaaqaZwaZxaZyaZyaZyaZyaZzaZAaaqaZBaMfaaqaZCaQIaYkaYkaYlaYkaQIaZDaaqaZEaZFaZGaaqaOZaZHaZIaZJaZJaZKaZLaZMaZNabXaZOaZPaZQaZRaWXaWVaWVaZSaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaVOaESaNsaZTaZUaNvaZVaNxaNxaNxaZWaZXaaiaZYaZZbaababbacaaibadbaebafaaibagbahbaibajbajaaiaRraMBbakbalbamaaibanbaobapbaqbaraaibasbataUBbauaaaaaaaaaaaaaaaaaaaaaaaibavbawbaxbaybazbaAbazbaBbaCbaDbaEbaFaaiaaaaaaaaaaaaaaaaaaaAZbaGaUWbaHaaqbaIaZiaZmaZmaZmaZmaZmbaJbaKaZmaZmaZmaZpbaLbaLbaMbaNbaObaPbaQbaRbaSbaTaaqbaUbaVbaWbaXbaXbaWbaYbaZaaqaSdbbaaaqbbbbbcaQIaYkaYlaQIbbdbbdaaqaaqbbeaaqaaqbbfaYraYubbgbbgbbhaYuaQVaaqaaqbbiaWVbbjbbjbbkbbjaWVaZSaAZaaaaaaaaabblaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibbmbbnbbnbbnbbnbbnbbnbbnbbnbbnbboaMlaMmaMnaMmbbpaMpaMpbbqbbrbbsaaibbtbbubbvbbwbbxaaiaUjaYOaSKaaibbybahbbzbahbbAaaibbBaPQbbCaPQbbDaaibbEbbFbbGbbHbbIaaibasbataUBbauaaaaaaaaaaaaaaiaaiaaiaaibbJbbKbbLbbMbbNbbObbPbbQbbRbbSbbTbbUaaiaaiaaiaaaaaaaaaaaaaAZbaGaUWaUWbbVaZmbbWbbXbbYaZmbbZbcaaLIbcbbccbbYaZmaZpbaLbaLbcdbcebaLbcfbcgbchbcibaLbcjbckbclbaWbaXbaXbaWbcmbcnaaqbcobcpaaqaZCaQIaYkaYkaYlaYkaQIaQIbcqbcraQIbcsaaqbctbcubcvbbgbbgbcwbcvbcxaaqbcybczaWVbcAbcAbcBbcAaWVaZSaIXbcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSbcEaDaaDaaDaaDaaDaaDaaDaaDaaDaaDaaKVbcFbcGaKYbcHaLaaLabcIaLbbcJaaibcKbcLbcMbcNbcObcPbcQbcRaSKaaibcSbcTbcUbcVbcWbcXaXobcYbcZbcYaXvbdabdbbdcbddbdebdfaaibdgbdhaUBbdiaoPaaiaaiaaiaaibdjbdkbdlbdmbdnbdnbdobdpbdnbdobdpbdqbdrbdnbdsbdtbduaaiaaiaaiaaiaGKbdvbaGaUWaUWaaqbdwbbWbccbbYaZmbdxbdyaZmbdzbdAbbYaZmaZpbaLbaLbdBbdCbdDbdEbdFbdGbdHbaLbdIbckbdJbaWbaXbaXbdKbdLbcnaaqaSdbdMaaqbdNbdObdPaYkaYlbdQaQIaQIbdRaQIbdSbdTaaqbdUbdVbdWbbgbbgbdXbdWbdYaaqbdZbczaWVaWVaWVaWXaWVaWVbeabebbecbedbeebefaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKkbegbehbeibeibeibeibejbeibekbelbemaaiaPxaKcaHZaDaaDaaKUaDbbmIaaibeobepbeqberbesacDbetbeubevaaibewbexbeybexbexacfbezaPQbbCaPQbeAaaibeBbaobeCbanbeDaaibasbataUBaUCaUCbeEbeFbeGaaibeHbbObdnbeIbdnbdnbdnbdnbeJbdnbeKbdqbeLbeMbeMbeNbeOaaibePbeFbeQbeRbeSbaGaUWaUWbbVaZmbeTaZmaZmaZmbeUbeVaZmbdzbeWbbYaZmaZpbaLbaLbeXbeYbeZbfabfbbfcbdHbfdaaqbfebdJbaWbaXbaXbaWbdLbffaaqbfgaaqaaqaaKaaqaaqbfhaYlbfibfjaQIbfkbflaTIbfmabXbfnbfobfpbfqbfqbfrbfsbftabXbfubfvaWVbfwaWVaWXaWVaWVbfxbfybcCaoOaoObfzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibfAaDaaDaaDaaKUaDbbfBaaibfCbfDbfEbfFaaqaaiaUjbeuaSKaaibfGbfHbfIbahbahaaiaUtaPQbbCaPQaUtaaibfJbaobfKbfLbfMaaibasbataUwaUwaUwbfNbfObfPbfQbfRbfSbdnbfTbfUbfVbfWbfXbfYbfZbgabgbbgcbgdbfRbgebgfbggbghbgibgjbgkbglbgmaUWbgnaaqaZmbbWbgobbYaZmbgpbgqaZmbgrbgsbbYaZmbgtbaLbaLbaLbaMbaLbgubaLbfcbdHbgvaaqbgwbdJbaWbaXbaXbaWbdLbgxaaqbgybgzbgzbgAbgBbgCbgDbgEbgFbgFbgFbgFbgFbgFbgGbgHbgIbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVaWVaWVaWXaWVaWVbgMaAZbgNbgNbgNaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgQbgPbgRbgPbgPbgQbgSbgTbgUbgVaNxaNxaNxbgWaNybgXaaiaaiaaiaaiaaiaaiaaiaUjbeuaSKaaiaaiaaiaaiaaiaaiaaibgYaPQbbCaPQbgZaaiaaiaflaaiaaiaaiaaibasbhabhbbhcbhdbhebhfbhgacDbhhbhibhjbhkaaiaaiaaiaaiaaiaaibhlbhmarDbhnbfUbhobhpaaibhqbhrbhsbhtbhubhvaUWaUWbbVaZmbhwaZmaZmaZmaOpaZmaZmbhxbhxbhybhybhzbaLbaLbhAbhBbaLbaLbaLbhCbhDbhEaaqbcnbdJbaWbaWbaWbaWbdLbhFaaqbhGbhHbhHbhIbhHbhJaYkaYkaYkaYkbhKaYkaYkaYkbhLbgKbbgbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVbbjbbjbbkbbjaWVbhMaAZbhNbhObhPaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgPbgPbgPbgPbgPbgPbgPbgPbhRaESaDaaDaaDaaKUaDbbenaaibhSbhTbhUbhVbhWaaqbhXbeubhYaaibhZbiabibbicbicacfbidbiebifbieaWcacfbigbihbiibijbikaaibilbimbinaaiaaiaaiaaiaaiaaiaaqbioaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaflaaiaaibipaaiaaiaaiaaiaaiaaiaaibhvaUWaUWaaqbiqbiraZmbisaZmbitaZmbiubivbiwbhybixaaqbiybizaaqaaqbiAbiBbiBbiBaaqaaqaaqbiCbiDbiEbiEbiEbiEbiDbiFaaqbiGbhHbhHbhIbiHaaqbiIbiJbiKbfjbiLbiMbiNbiObiPaaqbiQaOZbiRbbgbbgbiRaOZbiSaaqbiTbczaWVbcAbcAbcBbcAaWVbgMaAZbgNbgNbgNaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiUbgPbgPbgPbgPbiVbgPbgPbgPbiWbiXbiYbiZaLaaLaaLabjaaLbbenaaibjbbjcbjdbjdbjdbjebetbeuaSKaaibjfbjgbjhbjibjjaaibjkaPQbbCaPQbjlaaibjmbjnbjobigbjpaaibjqbjrbjsaaibjtbjubjvbjwbjxbjybjzbjAaaiaaibjBbjCbjDbjEbjFbjGbjBaflaaibjHbjIbjJbjKbjLbjMbjNbjOaaibjPbjQbjQbjRaaqaaqaaqaaqbjSbbVbjSbjTaaqaoyaaqaaqaaqaaqaaqaaqbjUbjVbjVbjVbjVbjWbjXaaqbjYbjZbjYbkabkabjYbjZbjYaaqbiGbhHbhHbkbbiHaaqaaqaaqaaqaaqaaKaaqaaqaaqaaqaaqaaKbkcbkdbkdbkdbkdbkeaaqaaqbkfbkgaWVaWVaWVaWXaWVaWVbfxaIXbkhaoOaoObkiaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaESaDaaDaaDabkjaDbbenaaibkkbklbkmbknbknbkoaSIbkpbevaaibkqbkrbksbktbkubkvaXobkwbkxbcYaXobkybkzbkAbkBbkCbkDaaibkEbkFbjsbkGbkHbkIbkJbkKbkKbkJbkLbkMaaiaaibkNbkObjBbkPbkQbkRbkSbkTbkUbkVbkWbkXbkYbkZblabkXblbaaiblcbldbleblfblgblhblibljbljbljbljbljbljblkbllbljblmbljblnbljbljbljbljbljbljbljbljbloblpblqblqblqblqblqblqblrblhblsbltbltblublvblwblvblxblvblyblzblAblvblBblCblDblEblFblFblFblFblFblFblFblGblHblIblIblIblIblJblIblKblLblMblNblObeeblPaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaaaaaaEcblRaEeblSblTbkjblUblVaaiblWblXblXblXblYaaqblZbeuaSKaaibmabjibjhbjibjiaaibjkbmbbmcaaibjlaaibijbmdbmebijbmfaaibmgbkFbjsbmhbmibmjbmkbmlbmmbmnbkLbmoaaiaaibmpbmqaaqaaqaaqbmrbmsaaiaflbmtbkXbkXbkYbmublabkXbmvaaibmwblebleblfblgblhbljbljbljbljbljbljbljbmxbljbljbljbljbljbljbmybmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmAbmBbmCblFblFbmDbhHbhHbhHbhHbhHbhIbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbmEbhHbmFbmGaWVaWVaWVaWVaWVaWVaWVbmHbfybcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaNraESaNsaNtaNuaNvaNwaNxaNxaNxaNyaNzaaiaNAaNBaNCaNDaNEaNFaNGaNHaIkaaiaNIaNJaNKaNLaNMaNNaNOaNPaNQaNRaNSaNTaNUaNVaNWaNXaNYacfaNZaaiaaiaaiaaiaOaaJBaHdaJCaHdaJBaObaaiaaiaaiaaiaOcaOdaOeaaqaKuaOfasYasYasYaOgaOhaOiabIaOjaOkabIaOlabIaOmabIaOnaAzaOoaOpaOqaaqaOraOsaOtaOuaOuaOsaOvaOwaOwaOwaOwaOwaOxaOyaOwaOzaOAaOBaOCaODaOEaOEaOFaOGaOHaOHaOHaOIaMfaOJaOKaOLaOMaaqaONaOOaOPaaKaaqaOQaaqaORaOSaOTaOUaOVaOWaYsaYraDLeHcaPbaaiaPcaPdaPeaPfaPgaPhaPiaPjaPkaPlaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNmaPnaPoaPoaPoaPpaPqaPraPsaPtaPpaPoaPuaPvaPwaaiaPxaKcaPyaDaaDaaDaaPzaPAaaiaPBaPCaPDaPEaPFaaqaPGaPHaGTaaiaPIaPJaPKaPLaPMacDaPNaPOaPPaPQaPRaaiaPSaPTaPUaLqaPVaaiazdaaiaHcaHdaPWaLuaJBaHdaJCaHdaJBaLwaPXaaiaaiaaiaPYaPZaQaaQbaQcabnaaiaaiaaiaaqaQdaQeaaqaQfaKyaaqaQgaaqaQhaaqaQiaQjaQkaQlaQmaQnaQoaQpaQqaQraQsaAuaQtaQsaQsaQuaQsaQpaQvaQpaQwaQpaQpaQxaQyaQzaQAaQAaQBaQCaQDaQEaQAaQFaMcabIaQGaQHaQIaQJaQKaQLaQMaaKaQNaQOaaqaQPaQQeHdaQSaOVaQTaYsaYraDLeHeaQVaaiaQWaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQZaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaNraaiaaiaReaDaaDaaDaaDaaRfaRgaaiaRhaRiaRjaRkaRlabXaRmaRnaaqaaiaRoaRpaRqaLkaLkaaiaRraPOaPPaPQaRsaaiaRtaPTaRuaRvaLqaaiazdaaiaRwaRxaIpaRyaRzaIsaRAaIsaRBaRCaRDaaiaREaRFaRGaRHaRIaRJaRKaRLaaaaaaaaiaRMaRNaROaaqaRPaKyaKyaKyaRQaKyaKyaKyaaKaRRaRSaaqaRTaoyaaqaRUaaqaaqaRVaRWaZHaRYaRZaaqaSaaSbaaqaRTaaqaaqaaqaaqaScaaqaaqaoyaaqaaqaaqaaqaSdaMfaaqaSeaQIaSfaSgaShaSiaSjaSkaSlaSmaaqaSnaSoaSpaSqaSraQTaYsaYraDLaXTaZoaaiaSuaQXaQXaQYaPjaPjaPjaPjaPkaPlaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaSxaPuaPoaSyaNraaiaSzaDaaDaaDaaDaaSAaSBaSCaSDaSEaSFaSEaSGaSHaSIaSJaSKaaiaaiaflaaiaaiaaiaaiaGKaSLaSMaGKaSNaaiaaiaflaaiaaiaaiaaiaSOaaiaaiaaiaaiaSPaSQaSRaSSaSRaSTaSUaaiaaiaSVaRHaRHaRHaRHaSWaSXaSYaSZaTaaaiaTbaRNaTcaaqaaqaaqaaqaaqaaqaaqaaqaaqaaKaTdaTeaTfaTgaThaZnaYuaYtaaqaTlaTmaTnaToaTpaaqaTqaTraTsaTtaTsaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaaqaTEaOEaTFaTGaTHaSfaTIaShaSiaTJaaqaTKaTLaTMaTNaTOaQSaQSaaqaQVaYsaYraDLaXTaYqaaiaTRaQXaTSaTTaTUaTVaPjaPjaTWaPlaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaTXaRbaRcaRaaRcaTYaRcaRaaRcaRbaNoaPoaTZaUaaaiaUbaDaaDaaUcaDaaDbaUdaDaaUeaUfaUgaUhaUiaSKaUjaUkaSKaUlaUmaUnaSKaUoaSKaUpaSKaUjaUqaSKaUraUsaSKaUtaSKaUuaUmaUvaUwaUxaUyaUzaUAaUBaUCaUCaUCaUCaUCaUCaUDaUEaUFaUGaUHaUIaUJaUKaULaUMaRHaRHaUNaUOaUPaUOaUQaURaUSaUTaUUaUVbbXaaqaUXaUYaUZaVaaVbaVbaVcbbWaZXaZLaaqaVgaVhaViaViaVjaaqaVkaVlaVmaVnaVoaVoaVpaVqaVraVqaVsaVtaVuaVvaVwaaqaSdaVxaaqaVyaVzaVzaVAaVBaVzaVCaaqaVDaVEaaqaVFaVGaQSaVHaaqbcabcbbccaDLaQVaQVaaiaVLaVMabnaflaaiaaiaaiaaiaaiabAacMaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSvaSwaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaPuaPoaVNaVOaaiaVPaDaaDaaDaaDaaDbaVQaMpaVRaVSaVTaVSaVUaVVaUjaVWaVXaVYaVZaWaaVXaVXaVXaSIaVXaSIaWbaVXaWcaVXaVXaWdaSKaUuaUmaUvaUwaUwaUwaUwaWeaUwaUwaUwaUwaUwaUwaWfaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWpaWpaWqaWraWraWraWsaUWaUWaUWaWtaWuaUWaaqaWvaWwaVbaVbaWxaVbaWyaZLaZXaZNaaqaWBaWCaWDaWEaWFaaqaWGaWHaWIaWJaWKaWLaaqaWMaWNaWMaaqaaqaaqaoyaaqaaqaSdaMfaaqaWOaQIaQIaQIaWPaQIaWQaaqaaqaaqaaqaaqaaqaaqaWRaaqbbhbbsbbfaDLaWSaWTaaqaWUaZJaZIaZKaWYaWZaXaaXbaAdaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXcaPuaRaaRbaRcaRaaRcaPoaRcaRaaRcaRbaRdaNnaVOaaiaaiaXdaDaaDaaDaaDaaDbaXeaDaaUeaXfaXgaXhaUiaSKaXiaXjaXkaXlaXmaXnaXoaXoaXpaXqaXraXsaXtaXoaXuaXoaXoaXvaXwaXxaXmaXyaXzaXAaXBaXCaXDaXCaXCaXCaXCaXCaXCaXEaXFaXGaXGaXGaXGaXHaXGaXIaXJaXGaXGaXGaXKaXLaXLaXLaXLaXLaXLaXLaXMaUWaUWaaqaXNaXOaXPaXQaXQaOXaXSaGtaKEaGtaaqaaqaaqaaqaaqaXUaaqaXVaXWaXXaXYaTsaXZaaqaYaaYbaYcaYdaYeaYfaYgaYhaaqaSdaMfaaqaYiaYjaQIaYkaYlaQIaYmaYmaaqaYnaYoaYpaaqaFwaDLaFxaGqaGraGsaDLaQVaYvaaqaYwaWVaWWaYxaYyaWVaWVaYzaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaPnaPoaPoaPoaPoaYBaPoaPoaYCaPoaPoaPuaYDaYEaaiaEcaKkaYFaDaaDaaDaaYGaYHaYIaYJaYKaYLaYKaYMaYNaUjaYOaYPaaiaaiaaiaaiaaiaaiaaiaGKaYQaYRaGKaYSaaiaaiaflaaiaaiaaiaaiaYTaYUaYTaYVaSZaSZaSZaSZaSZaSZaSZaTaaaiaYWaYXaYYaYZaYZaZaaZbaZcaZdaYXaZeaaiaGKaSZaSZaSZaSZaSZaZfaZgaZgaZgaaqaZhaZiaZjaZjaZjaZjaZkaMTaZlaExaFvaEyaZpaZqaZraZsaaqaaqaZtaGKaZuaSZaZvaaqaZwaZxaZyaZyaZyaZyaZzaZAaaqaZBaMfaaqaZCaQIaYkaYkaYlaYkaQIaZDaaqaZEaZFaZGaaqaDMaDLaDLaDLaDLaEvaEwaZMaDNabXaZOaZPaZQaZRaWXaWVaWVaZSaAZaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYAaNnaNnaNoaNnaNnaNpaNqaNnaNnaNoaVOaESaNsaZTaZUaNvaZVaNxaNxaNxaZWaWzaaiaZYaZZbaababbacaaibadbaebafaaibagbahbaibajbajaaiaRraMBbakbalbamaaibanbaobapbaqbaraaibasbataUBbauaWAaTPaTPaTPaTPaTPaTPaaibavbawbaxbaybazbaAbazbaBbaCbaDbaEbaFaaiaWAaTQaXRaTPaTPaTPaAZbaGaUWbaHaaqaZmbeTaZmaZmaZmaZmaZmbaJbaKaVIaVfaVeaZpbaLbaLbaMbaNbaObaPbaQbaRbaSbaTaaqbaUbaVbaWbaXbaXbaWbaYbaZaaqaSdbbaaaqbbbbbcaQIaYkaYlaQIbbdbbdaaqaaqbbeaaqaaqaVJaDLaDLbbgbbgaVKaDLaQVaaqaaqbbiaWVbbjbbjbbkbbjaWVaZSaAZaaaaaaaaabblaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaibbmbbnbbnbbnbbnbbnbbnbbnbbnbbnbboaMlaMmaMnaMmbbpaMpaMpbbqbbraTkaaibbtbbubbvbbwbbxaaiaUjaYOaSKaaibbybahbbzbahbbAaaibbBaPQbbCaPQbbDaaibbEbbFbbGbbHbbIaaibasbataUBbauaTPaTPaTPaTQaaiaaiaaiaaibbJbbKbbLbbMbbNbbObbPbbQbbRbbSbbTbbUaaiaaiaaiaTPaTQaVdaTPaAZbaGaUWaUWbbVaOZaOYaPaaOZaOZbbZaQRaLIaQUaExaRXaExaZpbaLbaLbcdbcebaLbcfbcgbchbcibaLbcjbckbclbaWbaXbaXbaWbcmbcnaaqbcobcpaaqaZCaQIaYkaYkaYlaYkaQIaQIbcqbcraQIbcsaaqaStaSsaSsbbgbbgaTiaSsaTjaaqbcybczaWVbcAbcAbcBbcAaWVaZSaIXbcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCXaKSbcEaDaaDaaDaaDaaDaaDaaDaaDaaDaaDaaKVbcFbcGaKYbcHaLaaLabcIaLbbgNaaibcKbcLbcMbcNbcObcPbcQbcRaSKaaibcSbcTbcUbcVbcWbcXaXobcYbcZbcYaXvbdabdbbdcbddbdebdfaaibdgbdhaUBbdiaoPaaiaaiaaiaaibdjbdkbdlbdmbdnbdnbdobdpbdnbdobdpbdqbdrbdnbdsbdtbduaaiaaiaaiaaiaGKbdvbaGaUWaUWaaqbiwbiubisbgobhPbhObhNbbYbhxaZmaZmaZmaZpbaLbaLbdBbdCbdDbixbdFbdGbdHbaLbdIbckbdJbaWbaXbaXbdKbdLbcnaaqaSdbdMaaqbdNbdObdPaYkaYlbdQaQIaQIbdRaQIbdSbdTaaqbhMaSsaSsbbgbbgaTiaSsbgXaaqbdZbczaWVaWVaWVaWXaWVaWVbeabebbecbedbeebefaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaKkbegbehbeibeibeibeibejbeibekbelbemaaiaPxaKcaHZaDaaDaaKUbeVbeWaaibeobepbeqberbesacDbetbeubevaaibewbexbeybexbexacfbezaPQbbCaPQbeAaaibeBbaobeCbanbeDaaibasbataUBaUCaUCbeEbeFbeGaaibeHbbObdnbeIbdnbdnbdnbdnbeJbdnbeKbdqbeLbeMbeMbeNbeOaaibePbeFbeQbeRbeSbaGaUWaUWbbVbgsbgrbgMbgtbfBbftbgobbYbhxaZmaZmaZmaZpbaLbaLbeXbeYbeZbfabfbbfcbdHbfdaaqbfebdJbaWbaXbaXbaWbdLbffaaqbfgaaqaaqaaKaaqaaqbfhaYlbfibfjaQIbfkbflaTIbfmabXbfsbfrbfrbfqbfqbfobfpbfnabXbfubfvaWVbfwaWVaWXaWVaWVbfxbfybcCaoOaoObfzaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibfAaDaaDaaDaaKUbmIbmuaaibfCbfDbfEbfFaaqaaiaUjbeuaSKaaibfGbfHbfIbahbahaaiaUtaPQbbCaPQaUtaaibfJbaobfKbfLbfMaaibasbataUwaUwaUwbfNbfObfPbfQbfRbfSbdnbfTbfUbfVbfWbfXbfYbfZbgabgbbgcbgdbfRbgebgfbggbghbgibgjbgkbglbgmaUWbgnaaqbgqbNRbDMbbYbgqbgpbgqaZmbpJbpraZmaZmbUzbaLbaLbaLbaMbaLbgubaLbfcbdHbgvaaqbgwbdJbaWbaXbaXbaWbdLbgxaaqbgybgzbgzbgAbgBbgCbgDbgEbgFbgFbgFbgFbgFbgFbgGbgHbgIbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVaWVaWVaWXaWVaWVbdVaAZaZJaZJaZJaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgQbgPbgRbgPbgPbgQbgSbgTbgUbgVaNxaNxaNxbgWbiQbiSaaiaaiaaiaaiaaiaaiaaiaUjbeuaSKaaiaaiaaiaaiaaiaaiaaibgYaPQbbCaPQbgZaaiaaiaflaaiaaiaaiaaibasbhabhbbhcbhdbhebhfbhgacDbhhbhibhjbhkaaiaaiaaiaaiaaiaaibhlbhmarDbhnbfUbhobhpaaibhqbhrbhsbhtbhubhvaUWaUWbbVaZmbhwaZmaZmaZmaOpaZmaZmbhxbhxbhybhybhzbaLbaLbhAbhBbaLbaLbaLbhCbhDbhEaaqbcnbdJbaWbaWbaWbaWbdLbhFaaqbhGbhHbhHbhIbhHbhJaYkaYkaYkaYkbhKaYkaYkaYkbhLbgKbbgbbgbbgbbgbbgbbgbbgbgJbgKbgLbczaWVbbjbbjbbkbbjaWVblVaAZaZJaZJblUaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabgObgPbgPbgPbgPbgPbgPbgPbgPbgPbgPbhRaESaDaaDaaDaaKUbcwbcvaaibhSbhTbhUbhVbhWaaqbhXbeubhYaaibhZbiabibbicbicacfbidbiebifbieaWcacfbigbihbiibijbikaaibilbimbinaaiaaiaaiaaiaaiaaiaaqbioaaqaaiaaiaaiaaiaaiaaiaaiaaiaaiaflaaiaaibipaaiaaiaaiaaiaaiaaiaaibhvaUWaUWaaqbiqbirbaIbdwaZmbitaZmbdAbivbdzbdybdxaaqbiybizaaqaaqbiAbdEbiBbdUaaqaaqaaqbiCbiDbiEbiEbiEbiEbiDbiFaaqbiGbhHbhHbhIbiHaaqbiIbiJbiKbfjbiLbiMbiNbiObiPaaqbcxaDLbiRbbgbbgbiRaDLbcJaaqbiTbczaWVbcAbcAbcBbcAaWVbdVaAZaZJbdWaZJaAZaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiUbgPbgPbgPbgPbiVbgPbgPbgPbiWbiXbiYbiZaLaaLaaLabjabctbcuaaibjbbjcbjdbjdbjdbjebetbeuaSKaaibjfbjgbjhbjibjjaaibjkaPQbbCaPQbjlaaibjmbjnbjobigbjpaaibjqbjrbjsaaibjtbjubjvbjwbjxbjybjzbjAaaiaaibjBbjCbjDbjEbjFbjGbjBaflaaibjHbjIbjJbjKbjLbjMbjNbjOaaibjPbjQbjQbjRaaqaaqaaqaaqbjSbbVbjSbjTaaqaoyaaqaaqaaqaaqaaqaaqbjUbjVbjVbjVbjVbjWbjXaaqbjYbjZbjYbkabkabjYbjZbjYaaqbiGbhHbhHbkbbiHaaqaaqaaqaaqaaqaaKaaqaaqaaqaaqaaqaaKbkcbkdbkdbkdbkdbkeaaqaaqbkfbkgaWVaWVaWVaWXaWVaWVbfxaIXbkhaoOaoObkiaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaESaDaaDaaDabkjbeUbcvaaibkkbklbkmbknbknbkoaSIbkpbevaaibkqbkrbksbktbkubkvaXobkwbkxbcYaXobkybkzbkAbkBbkCbkDaaibkEbkFbjsbkGbkHbkIbkJbkKbkKbkJbkLbkMaaiaaibkNbkObjBbkPbkQbkRbkSbkTbkUbkVbkWbkXbkYbkZblabkXblbaaiblcbldbleblfblgblhblibljbljbljbljbljbljblkbllbljblmbljblnbljbljbljbljbljbljbljbljbloblpblqblqblqblqblqblqblrblhblsbltbltblublvblwblvblxblvblyblzblAblvblBblCblDblEblFblFblFblFblFblFblFblGblHblIblIblIblIblJblIblKblLblMblNblObeeblPaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaaaaaaEcblRaEeblSblTbkjbdXbdYaaiblWblXblXblXblYaaqblZbeuaSKaaibmabjibjhbjibjiaaibjkbmbbmcaaibjlaaibijbmdbmebijbmfaaibmgbkFbjsbmhbmibmjbmkbmlbmmbmnbkLbmoaaiaaibmpbmqaaqaaqaaqbmrbmsaaiaflbmtbkXbkXbkYbenblabkXbmvaaibmwblebleblfblgblhbljbljbljbljbljbljbljbmxbljbljbljbljbljbljbmybmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmzbmAbmBbmCblFblFbmDbhHbhHbhHbhHbhHbhIbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbmEbhHbmFbmGaWVaWVaWVaWVaWVaWVaWVbmHbfybcCaoOaoObcDaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaEPaEQaERaaiaaiaaibxXaaiaaiaaibjbblXblXblXblXaaqaUjbeuaSKaaibmKbmLbmMbjibjiaaibmNbmbbmOaaibmNaaibmPbmdbmQbmRbijaaibmSbkFbjsbmTbmUbmjbmkbmVbmWbmnbkLbmXaaibmYbmZbnaaaqbnbaaqbncbndbneaflbnfbngbnhbnibnibnjbkXbnkaaibnlbnmbleblfblgblhbljbnnbljbljbljbljbnobnpbnpbnpbnpbnqbljbljbljbljbnrbljbnnbnsbljbntbnubnvbljbnwbnxbnxbnybnzbnAbnBbhHbhHbhHbhHbhHbhHbhHbnCbnDbnEbhHbhHbhHbhHbhHbhHbhHbhHbhHbhHbnFbnGbnGbnHbnIbnJbnKbnLbnLbnLbnLbnMbnNaPxaabaaaaaaaabaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQbuMbuNbuVbwsbnQbwtbwFbwvbwuaaibhSbnXbnXbnYbnZaaqaUjbeuaSKaaiaaiaaiaaiaaiaaiaaiaaibmbboaaaiaaiaaiaaiaflaaiaaiaaiaaibobbkFbocaaibodboebkJbkJbkJbkJbkLbofaaiaaibogbohboibojbokbohbolaaiaflaaibombonboobopboqborbosaaibotboubouaaiaaiaaiaaiaaiaaiaaiaaqaaqbovbowboxboxbowbovaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqboyaaqaaqaaqaaqaaqaaibozaoyboAbhHbhHboBboBaaiaaiaaiaaiaaiboCbnGbnGbnFbnGbhHbnGbnGbnGbnGboDaaiaaiaaiaaiboEaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaGKaGLaERbnPbnQbnQbuKbtqbnQaaiboIboIboIboJboKaaqaUjbeuaSKaaqboLboMboNboOboPaaiboQbmbboRaaiboSaaiboTboUboVboWboXaaqboYbkFboZaaibpabpbbpcbpdbpebpfbpgaaiaaiaaibphbpibpjbpkbplbpmbpnaaiaflaaibpobppbpqbprboqbkXbpsaaibptbpubpvaaibpwbpxbpybpzbpAbpBbpCbpDbpEbpFbpGbpGbpFbpHbpIbpJaaqbpKbpLbpMbpNaaqbpObpPbpQbpRbpSbpTbpTbpUaaibpVabnaaibpWaaibpXbpXaaibpYbpZbqaaaibqbbqcbqbaaibqdbnGboDaaibqebqfbqeaaibqgbqhaaibqibqjbqkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQblQaGKaGLaERbnPbnQbnQbuKbtqbnQaaiboIboIboIboJboKaaqaUjbeuaSKaaqboLboMboNboOboPaaiboQbmbboRaaiboSaaiboTboUboVboWboXaaqboYbkFboZaaibpabpbbpcbpdbpebpfbpgaaiaaiaaibphbpibpjbpkbplbpmbpnaaiaflaaibpobppbpqeHjboqbkXbpsaaibptbpubpvaaibpwbpxbpybpzbpAbpBbpCbpDbpEbpFbpGbpGbpFbpHbpIeHkaaqbpKbpLbpMbpNaaqbpObpPbpQbpRbpSbpTbpTbpUaaibpVabnaaibpWaaibpXbpXaaibpYbpZbqaaaibqbbqcbqbaaibqdbnGboDaaibqebqfbqeaaibqgbqhaaibqibqjbqkaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQblQblQblQblQblQblQblQblQblQaaabqlaHXbnTbnUbnQbnQbuKbtqbrKaaibqpbqpbqpbqpbqqaaqaUjbeuaSKaaqbqrbqsbqtbqsbquaaibqvbqwbqxbuLbqyaaibqzbqAbqBbqBbqCbqDbqEbkFbqFaaibqGaaKaaqaaqaaqaaibqHaaibqIacDbqJbqKbjBbqLbjBbqMbqNacfbqOaaibqPbkXbqQbqRboqbqSbkXaaibqTbqUbqVaaibqWbqXbqYbqZbrabrbbrcbpGbpGbpGbpGbpGbpGbpGbrdbrebrfbrgbrhbribrjaaqbrkbrlbrmbrnbrobrpbrlbpUaaibpVabnbrqbrrbrsbrtbruaaqbrvbrwbrvbrxbrybrzbrAaaiaaqbrBamsaaibrCbrDbrEbrFbrFbrFaaibrGbrHbrIaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrJazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaibEObnQbnQbnQbuKbtqbnQaaibrLbrMboIboIboJaaqblZbeubrNaaqbrObrPbrQbrRbrSaaibrTbrUbrVbqybqyaaibrWbrXbrYbrZbsabsbbscbsdbseacfbsfbsgbshbsiabIbsjbskacfbslacfacfacfacfbsmacfacfacfacfbsnacfbsobspbsqbsrbssbstbsuacfbsvbpubpuaaibswbsxbsybszbsAaaibrcbpGbpGbpGbpGbpGbpGbpGbsBbsCbsDbsEbsFbsGbsHaaqbsIbsJbsKbrnbpUbrpbsLbsMaaibsNbsObsPbsQbsQbsRbsSbsTbsUbsUbsUbsVbsWbsXbsYbsZbtabtbbtcbsZbtdbtebtfbtfbtfbtgaaibthbrHbtiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNlaNlaNlaNlaNlaaaaNlaNlaNlaNlaNlaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaaaEcbnPbnQbnQbnQbuKbtqbnQaaibqpbqpbtkblXblXbtlaUjbeuaSKaaqbtmbtnbtobtpbDqaaibtrbtsbttbtubtvaaibtwbtxbtybtzbtAbtBbtCbtDbtEbtFbtGbtGbtHbtIabXbtJbtKacDbtLaGDbtMbtNbtObtPbtQbtNbtRaGDbtSaaiabnbtTaaiaaiaaiaaibtUaaibtVbpubtWacDbtXbtYbtZbuabubaaibucbudbuebufbugbuhbuibujbrdbukaaqbulbsFbumbunaaqbuobupbrmbrnbpUbrpbrlbpUaaibpVabnbuqburbusbutbuuaGDbuvbuwbuxbuybuzbrvbuAaaibuBbuCbuDaaibuEbuFbuGbrFbuHbuIaaibthbrHbuJaaiaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -12657,18 +12682,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbnWboFboGboHbnQbnQbqnbqmbqoacDbydbjdbyebyfbygaaqaUjbeuaSKbyhbyibyjbykbylbymaaiaaiaaiaaibynaaiaaibyobypbyqbyrbysaaqbytbyubyvbywbyxbyybyzbyAbyBbyCbyDaaibvhbyEbyFbtNbwYbyGbwYbtNbyHaaibtSaaibyIbyJbyKaaqbyLaaqbyMaaqbyNbpubyOaaibyPbyQbyRbySbyTabIbyUbyVabIabIbyWbyXabIabIbyYbyZaAuaAxbzabzbbzcbzdbzebzfbzgbzhbziaaibzjbzkbzlbzmabnbznbzobzpbzqbzraaqbzsbxFbxFbztbzubxHbzvaaibzwbzwbzxaaibzybzzbzAbzBbrFbzCaaibthbzDaaiaaaaaaaaaaaaaaaaabbzEbzFbxTbxUbxTbzGbwqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaGKaGLaERbnPbnQbnQbnVbnQbnQaaibzIbklbzJbzKbzLabIaSIbkpbevaaqbzMbqAbzNbzObzPbzQbzRbzSbzTbzTbzUbzVbzWbzXbzObzYbzZaaqbwMbpubAabAbbAcbAdbAebAfbAgbAhbAiaaibvhaaiaaibAjbAkbAlbtNbAmbAnacfbAoaaiabnaaiaaiaaiaaiaaibApaaibAqbpubyOaaibArbAsbAsbAtbAuaaqbAvbAwbAxbFLbAzbAAbABbAxbACbADbAEbAFbAGbAHbAIbAJbAKbALbAMbANbAObAPbAQbARbASbATbAUbAVbAVbAWbAXbAYaaqbAZbrvbrvbBabBbbxHbBcaaqbBdbBebBfaaqbBgbBhaTabBibjYaaiaaibBjaaiaaibBkbBlbBlbBlbBmaaibxRbxUbxTbxUbxUbBnbxRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbBobBpbnTbnUbnQbnQbnVbnQbnQaaibBqbjcbBrbBsbBtbBubBvbBwaSKaaqbBxbqAbzNbzObByaaqbBzbBAbqBbqBbBBbBCbBDbzXbzObBEbBFbBGbwMbpubBHbaubAcbBIbBJbBKbBLbBMbBNbBOabubAnacfarDbBPbyGbBPbAnbBQaaiaaiaaibBRbBSbBTbBUbBVbBWbBXacfbBYbpubyObvybBZbCabCbbCcbCdaaqbCebCfbCgbChbCibCjbCkbClbCmbCnbCobCpbCqbCrbCsbCtbCubCvbCwbCxbCyaaibCzbCAbCBbCCaaibCDbCEbCFbCGbCGaaqbCHbCIbCJaaqbCKbxHbCLaEcbCMbCNbCObCPbCQbCRbCSbCTbCUbCVbCWbCXbCYbCZbDabDabDbbDcbDdbDebDfbwpbwqbDgbwqbwpbDhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaabDibnPbnQbnQbnQbnSbnQbnQaaibDmbDnbDobDpbnRaolbDrbDsaSKaaqbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDybDEbDFbDGbDHbDIaaqbDJbpubBHbaubAcaaibDKbDLbDMbDNbDOabnbDPbDQbDRbhmacfbDSbDTbhmbDUbDVbDWaaibDXbDYbDZbEabEbbEbbEcbEdbEebpubEfaaiaaqbEgbjYbEhbEiaaqbCebEjaaqbEkbElbCjbEmaaqbCebEnbEoaaqaaqaaqaoyaaqaaqaaqbEpamzaaqaaiaaibEqaaqaaqaaiaaiaaqaaKaaqaaqaaqaaqaaqaaqaaqbErbEsaClaCmbEtbEubEvbEwbEwbExbEybEzbEAbEBbECbEDbEEbEFbEGbEGbEHbCQbEIaaibEJbEKbELbEMaaibENaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjbtjaaabDibnPbnQbnQbnQbnSbnQbnQaaibDmbDnbDobDpbnRaolbDrbDsaSKaaqbDtbDubDvbDwbDxbDybDzbDAbDBbDCbDDbDybDEbDFbDGbDHbDIaaqbDJbpubBHbaubAcaaibDKbDLeHibDNbDOabnbDPbDQbDRbhmacfbDSbDTbhmbDUbDVbDWaaibDXbDYbDZbEabEbbEbbEcbEdbEebpubEfaaiaaqbEgbjYbEhbEiaaqbCebEjaaqbEkbElbCjbEmaaqbCebEnbEoaaqaaqaaqaoyaaqaaqaaqbEpamzaaqaaiaaibEqaaqaaqaaiaaiaaqaaKaaqaaqaaqaaqaaqaaqaaqbErbEsaClaCmbEtbEubEvbEwbEwbExbEybEzbEAbEBbECbEDbEEbEFbEGbEGbEHbCQbEIaaibEJbEKbELbEMaaibENaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhQbhQbhQbhQbhQbhQbhQbhQbhQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaoNaoPazTaoNaoPaaiaoNaoPaaiaaiaaiaaiaaibynaaqaaqaaqaaqaztaolaolaolbEPaolbEQbERbESbETbEUbEVbEWbqBbEXbqBbEYbzVbEZbqBbzObqBbFabjYbwMbpubFbbFcbFdaaibFebFfbFgbFhbFiabnbFjbFkbFlbFmbFnbFobFpbFqbFrbFsbFtaaibFubFvbFwbFwbFxbFybFzaaibFAbFBbyObFCbFDbFEbFFbFGbFHbFIbFJbCfbjYbFKbFUbFMbFNbjYbCebEnbEobFObFPbFQbFRbFSbFTbWPbFVbFWaaqbFXbFYbFZbGabGbbGcbGdbCVbGebEwbEwbGfbGgbEwbGhbGibGjbGkbGlbEwbGmbGnbGobGpbGqbGraaiabnaaiaaiaaibBjaaiaaibBkbBmaaibGsbGtbGubGvbGwbGxbGybGzaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaabAbbGBbGCbGCbGCbGCbGDbGEbGFbGGbGEbGHbGCbGCbGIbGCbGJbGCamzbGKbqBbGLbqBbEYbGMbGNbGObzObGPbGQbGRbwMbpubGSbGTbAcaaibGUbGVbGWbDLbGXabnbGYbGZbHaaaibHbbHcbHdacDbHebHfbHgaaibHhbHibHjbHkbFxbFybFzaaibHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwaaqaaqbHxbHyaaqaaqbCebEnbEobjYbHzbHAbHAbHAbHBbHAbHCbHDbHEbHFbHGbHHbHHbHIbHJbHKbHLbHMbCQbCQbHNbCQbHObCQbHPbCQbHQbHRbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabIbaaibIcbIdaaaaaaaaaaaibIebIfbIgbIhbIibIjbIkaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaabaubIlbGCbGCbGCbGCbGCbGEbImbInbGEbGCbGCbGCbGIbGCbGJbGCamzbIobIpbIqbIrbIsbItbIubIvbIwbIxbIybjYbwMbpubIzaaqaaqaaiaaiaaiaaiaaibIAabnaaibIBabnacDabnbICaaiaaiaaiaaiaaiaaiabnaaiaaiaaiaaiaaiaaiaaibIDbpubIEbowaaqbIFbIGaaqaaqbCebIHbIIbFHbIJbIKbILbIMbINbFJbIObIPbIQbIRbISbISbISbITbISbIUbIVbIWbIXbIYbIZbFZbJaaaiaaiaaiaaiaaiaaibJbaaiaaiaaiaaKbJcaaqaaqbJdbJebJfbJgbHVbJhbJibJjbJkbJlbJmaaibIcbJnaaaaaaaaaaaibJobJpaaibDeaaiaaibDeaaiaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoOaCmbJrbJsbGCbGCbGCbGCbGCbGCbGCbGCbGCbGCbGCbGIbGCbGJbJtaztaolaolaolaolaolaolbJubEVaaqaaqaaqaaqbwMbpubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbJJbJKbJLbJMbJNbJObJPbJObJQbJRbJSboubJTbpubJUbJVbJWbpubJXaaqbJYbJZbKabKbbKcbCebKdbKebKfbKgbKhbKibKjbKkbKlbKmbKnaaqbKobKpbKqbKrbKsbHAbKtbKuaaqbKvbFZbFZbFZbKwaaibKxbKybKzbKAbKBbKCbKDbKEaaibKFbKGbKHaaqaaqbKIbJfbKJbKKbKLbKMbKNbKObKPbKQaaibKRaaiaaaaaaaaaaaiaaiaaiaaiaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbKSbKTbKSbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKUbKVbKUbKWbKUbKXbKYbKZbLabLbbLcbLdbLebLfbLgbLhbLhaaqbwMbLibLjbpubpubyObLkboubJSbJRbLlbLmbLlbLnbLobLobLpbLqbLrbLobLobLsbLobLtbLobJRbJSboubLubLvbLwbLxbLybLzbpuaaqbLAbJZbLBbLCbLDbCebLEbLFbLGbLHbLIbLJbLKbLLbCebLMbLNaaqaaqbLObLPbLQbLRbLSbLTbLUaaqbLVbLWbFZbLXbLYaaibKxbLZbMabMbbMcbMdbMebMfaaibMgbKGbMhbMhaaqbMibMjbMkbMlbMmbMnbMobMpbMqbMraaibIcaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbGBbMubMvbMwbMwbMwbMwbMwbMwbMxbMwbMwbMwbMybMwbMzbMAabIbMBbMCbMDbMEbMDbMFbMGbMHbMIbMJbMKaaqbwMbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbMYbMYbMZbNabNabNabNabNabNabNbbNcbNdbNebNfbNgbMObNhbNibNjbNkbNlaaqbNmbJZbKabNnbLDbCebLEbLFbNobNpbNqbNrbNsbNtbCmbNubNvaaqbNwbNxbNyaaqbNzaaqaSkaxkaaqbNAbNBbNCbNDbNEaaibKxbNFbNGbKAbNHbNIbNJbNKaaibNLbKGbMhbMhaaqbNMbNNbNOacDbNPbNQbNRbNSbNTbNUaaibIcaaiaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbGBbMubMvbMwbMwbMwbMwbMwbMwbMxbMwbMwbMwbMybMwbMzbMAabIbMBbMCbMDbMEbMDbMFbMGbMHbMIbMJbMKaaqbwMbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbMWbMXbMYbMYbMZbNabNabNabNabNabNabNbbNcbNdbNebNfbNgbMObNhbNibNjbNkbNlaaqbNmbJZbKabNnbLDbCebLEbLFbNobNpbNqbNrbNsbNtbCmbNubNvaaqbNwbNxbNyaaqbNzaaqaSkaxkaaqbNAbNBbNCbNDbNEaaibKxbNFbNGbKAbNHbNIbNJbNKaaibNLbKGbMhbMhaaqbNMbNNbNOacDbNPbNQeHgbNSbNTbNUaaibIcaaiaabaabaabaabaabaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoObcDbNVbGCbNWbGCbGCbNXbNYbNYbNYbNZbNYbNYbOabObbNYbOcbOdbOebOfbOgbOhbOibOhbOjbOkbOlbOmbOnbOoaaqbOpaaqbOqaaqaaqbOrbOsbOtaaqaaqaaqbOubOvbOwaaqaaqbOxbJRbJRbOyaaqaaqaaqaoybOzaaqaaqaaqbOAaaqaaqbOBaaqbOCaoyaaqbODbOEbOFaaqbOGbCebLEbOHaaibOIbOJbOKbOLaaibOMbLMbONaaqbOObOPbOQbORbOSbOTabIbOUbOVbOWbOXbOYbOZbPaaaiaaiaaiaaiaaiaaiaaiaaiaaiaaibPbbPcbPdbPdaaqbPebPfbPgaaiaaiaaiaaiaaiaaiaaiaaibIcaaiaaabPhbPhbPhaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbPibBlbBlbBmaaqaaqaaiaaiaaiaaibPjaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbMsbMtbMsbPkbJsbNWbGCbGCbPlbPmbPmbPmbPnbPmbPmbPmbPobPmbPpbPqabXbPrbPsbPtbPubPtbPvbPwbPxbPybPzbMKaaqaaqaaqbPAaaqbPBbPCbPDbPEbPFaaqbPGbPHbPIbPJbPKaaqbPLbPMbPNaaqbPObPPbPQbPRbPSbPTbPUbPVbPWabXbPXbPYbPZbQabQbabXbQcbQdbQebQfbQgbQhbQibLFbQjbQkbQlbQmbQnbQobCmbQpbQqbQrbQsbQtbQtbQubQvbQwaaqbQxbQybQzbQAbQBbQCbQDaaibQEbQFbQGbQHbQGbQGbQIacDacDbQJbQKbQLbQLaaqbQMbQNbJgaaibrHbQObQPbQQbQQbQPbQQbQRaaiaaabPhbQSbPhaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbQTbQUbQVbQUaaqaaiaaibQWbQXbQWbQYaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbQZbRabQZbRbbRbbRcbRbbRbbRdbRbbRbbRbbRebRbbRbbRbbRfbRbbRbbRgbRhbRibRjbOmbOmbOmbOmbOmbRkbRlbRmbRnbEVbAyaaqbRoabXbRpbRqbRqbRqbRraaqbRsbRtbRtbRtbRuaTFbRvbRwbRxabXbRybRzbRAbRBbRCbRDaaqaaqbREaaqbRFbRGbRHbRIbRJaaqbLAbKabLBbLCbRKbRLbRMbRNacDbRObRPbRQbRRaaibRSbRTbRUbRVbRWbRXbRYbRZbSabSbaaqaaqaaqaaqaaqaaKaCEaovaaibScbQGbQGbSdbQGbSebSfaaiaaibSgbKGbShbShaaqbJebSibJgaaiaaibSjaaiaaiaaiaaiaaiaaiaaiaaiaaibSkaaiaaiaaiaaiaaiaaiaaiaaiaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbSlbQUbQUbSmaaiaaibQWbQWbSnbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAbJqaoOaERbSobMubNWbGCbSpbSqbSrbGCbGCbSsbGCbGCbGCbStbGCbSubSvaaqbSwbSxbSybSzbSAbSBbSCbSDbSEbSFbSGbSHbEVaaqbPAaaqbRrbRqbSIbRqbSJaaqbSKbRtbSLbRtbSMaaqbSNbSObSPaaqbSQbSRbSSbSTbSUbSVabIbSWbSXabIbSYbSZbTabTbbTcaaqbTdbKabKabTebRKbRLbTfbTgbThbQkbTibTjbTkbTlbTmbTnbToaaqbTpbTqbTrbTsbTsbTtaaqbTubTvbTwbTxbTybTzbTAaaibScbTBbQGbQGbQGbTCbTDaaiaaibTEbKGbTFbTFaaqbTGbTHbJgaaibUXbTRbURaaibUSbUTbUUbUVbUWbTQeGOdlxbTTbTUbTVbTWbTXbTYbTZaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabUaaaibSlaaiaaibQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaiaaiaaqazZbUbaAaaaqbUcaaqaaqazZaoOaAaaaqaaqbUdaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbUeaaqaaqaaqbUfbUgbUhbUiaaqbRrbRqbRqbRqbUjaaqbSKbRtbRtbUkbUlabIbUmbUnbUoaaqaaqaaqaaqaaqbUpaaqaaqbUqbUraaqaaqaaKaaqaoyaaqaaqbUsbUtbUtaaqaaqbUubUvbUwbUxbUybUzbUAbUBbUCaaqbUDbUEaaqbUFbTqbTrbTsbTsbTsaaqbUGbUHbUIbUJbUKbULbUMaaibUNaaibUObUPbUQaaiaflaaiaaibTMbTLbTFbTFaaqbTKbSibJgbTIbTJbUYbUZbVabVbbVcbVcbVdbVebVcbXabYDbVgbVhbVibVjbVjbVkbVlacfbVmbVnbVobVpaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVqbVrbVrbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaiaaiaaqazZbUbaAaaaqbUcaaqaaqazZaoOaAaaaqaaqbUdaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqaaqbUeaaqaaqaaqbUfbUgbUhbUiaaqbRrbRqbRqbRqbUjaaqbSKbRtbRtbUkbUlabIbUmbUnbUoaaqaaqaaqaaqaaqbUpaaqaaqbUqbUraaqaaqaaKaaqaoyaaqaaqbUsbUtbUtaaqaaqbUubUvbUwbUxbUyeHhbUAbUBbUCaaqbUDbUEaaqbUFbTqbTrbTsbTsbTsaaqbUGbUHbUIbUJbUKbULbUMaaibUNaaibUObUPbUQaaiaflaaiaaibTMbTLbTFbTFaaqbTKbSibJgbTIbTJbUYbUZbVabVbbVcbVcbVdbVebVcbXabYDbVgbVhbVibVjbVjbVkbVlacfbVmbVnbVobVpaabaabaabaabaabaabaabaabaabaabaabaabaabaaqaaibVqbVrbVrbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxWbxWbxWbxWbxWbxWbxWbxWbxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAbGAbGAaaaaaibVsbVtbVubVvbVwbVxbVybnOaaibVAbVBbVCbVDbVEbVFbVGbVHbVHbVHbVHbVHbVHbVHbVHbVHbVHbVIbVHbVHbVHbVJbVKbVLbVMaaqbVNbVObVPbRqbRraOKbVQbVRbVSbVTbVUaaqbVVbVWbVXbVYbVZbVZbVZbVZbWabWbbWcbWdbWdbWebWebWfbWgbWhaaqaaqbWibWjbWkbWlbWmbRLbWnbUwbWobWpaHtbWqbLKbWraHtbWsbWtaolbWubWvbWwbWxbWybWzaaqbWAbWBbWCbWDbWEbWFbWGaaibWHbWIbWJbWKbWLbWIbWMbWNaaqbTObTNbKHaaqaaqbWQbSibWRaaibWSbWTbWUaaibWVbWWbWWbWXbWYbWZeGNdlxbXbbXcbWWbWWbXdbXebXfbXgbXhbXibXjbXkaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiaaibXlbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGAbGAbGAbGAbGAaaaaaaaaibXmbXnbXnbXobXnbXnbXpbXqaaibXrbXsbXtbXsbXsbXuaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaqbXvaaqaaqbXwaaqbXxbXybXzbXAbXBaaKbXCbXDbXEbXFbXGaOKbXHbXIbXJabIacfacfacfacfbXKavbbBOabXbXLabXabXbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbXWbXXbXYbXZbYabYbbYcbYdbYebYfbYgbYhaaqaaqaElabXabXabXbYiaaqaaqbYjaaqamzbYkbYlbYmaaibYnbYobYpbYqbYpbYrbYsbYtaaqaaqbYuaaqaaqbYvbYwbSibuCaaiaaibYxaaiaaibYybYzbYAbYBbYCbWWbTPbVfbYEbXfbXfbXfbYFbTSbYGaaibYHbYIbYJbYKaabaabaabaabaabaabaabaabaabaabaabaabaabaaibQWbQWbQWbQWbQWbQWbYLbQWbYMbQWbQWbQWbQWbQWaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYNbYObYPbYObYQaaaaaaaaaaaibYRbXnbXnbXobXnbXnbXpbYSaaibXrbYTbYUbYVbYWbXuaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaibYXbYYbYZaaqbZaaaqbZbbZcbZdbRrbZeaOLbZfbSKbZgbZhbZiaOLbZjbZkbZlaaiaaibZmbZnbZobZpbZqabnbZrbCAbZsaaqbZtbCAbCAbZuabXbZvbZwbZxbXUbZybZzbZAbZBbZCbZDbZEbZFbZGbZDbZDbZHbZIbZIbZIbZJbZIbZIbZIbZKbZLbZMbZNbZObZPbZQbZRbZSaaibZTbZUbZVbZWbZVbZXbZYbYpbZZcaacabbuCcacbuCbYwbSibuCaaibrHcadcaeaaiaaiaaqaaqaaqcafbWWbWWcagbWWcaicajcakcalcamcanaaicaocapcaqaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaicarcarcarcarcarcarcasbQWcatcarbYMbQWbQWbQWbQWaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -12681,9 +12706,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacioaPxaaaaaaaaaaaaaaaaaaaaaaagaaachpcipciqcirciscgbcitcgbciucgbcivciwcixciyaPxaaacizcdnciAcdpciBcdrcdrciCciDciEabIciFciGciHciIaaiciJciKciLciMciNabncjVciPciQciRciSaaibCAbCAaaqaaqaaKciTciUciVciWaaqciXciYciZcjabUwaaKaaicgLcbacgMaaicjbcfrcgOaaiaaaaaaaaicjccjdcjeaaibCAbCAbCAaaiaabaaaaaaaabaaaaabaaaaaaaaaaabaaaaaaaaacjfcjgcjhcjiaaiaaicjjcjkcjlaaibWZcjmcfPcjncjocjpcjqbWWaaibPhbPhaaacjrcjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjscjtcjucjvcjvcjwaaiaaibQWbQWcjxbQWbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaaaaaaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjzcjzaaaaaaaaaaaaaaaaaaaaaaaaaaachpcjAcjBcjCcjDcjEcjFcjGcjHcjIcjJaaqbYZcjKaaiaaaaaaaaaaaaaaicjLcjMcjNcjNcjOcjPaaqcjQbZkbUncjRcjScjTcjUcjTcjTcjTciOcjWcjXcjXcjYcjZaaibCAbCAaaqckackbckcckdckeckfaaqckeckfckdckgckhckiaaichYckjchZaaickkcfrcgOaaiaaiaaiaaiaaiaaiaaiaaicklbCAbCAaaiaabaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaackmcknckockpaaiaaickqckrcksaaiaaiaaicktckuckvckuckwaaiaaiaaaaaaaaackxaaaaaaaaaaabaaaaaaaaaaaqaaqaaqaabaaaaaaaabaaaaaaaabaabaabckyckzckAbSmaaqaaiaaibQWbQXbQWaaiaaiaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackBckCckCckCckCckCckCckCckCckCckCckCckCckDaaiaaqaaqaaqaaqaaqaaqckEckFaaiaaiaaiaaiaaiaaiaaqaaqaaqaaqaaqaaqaaqckGbZkbUnckHckIckJckKckLckMckNckOckPckQckRckSckTaaibCAbCAaaqckUckVckcckdckdckWaaqckXckdckdckgckcckYaaiaaiaaiaaiaaickkcfrckZaaibCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaclaclbclccldaaiaaicleclfclgaaiaaaaaaclhclhcliclhclhaaaaaaaaaaaaaaackxaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcljbBlbBlbBmaaqaaqaaiaaiaaiaaibPjaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaacjyaaaaaacjycjycjycjycjycjycjyaaaaaacjyaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcllclmclnclncloclnclpclqclrclscltcluclvclwclwclxclyclzclAclAclBclCclDclEclFclEclEclEclDclEclEclGclHclIclJbZkbUnclKclLclMaflaaichLacDaveclNclOacDaufccpaaibCAbCAaaqclPclQclRclSclTclUaaqclVclTclWclXclRclYaaibCAbCAbCAclZckkcfrckkclZbCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaccDaaicmaaflccDazZcmbcmcbfyaAaaaacmdcmecmfcmgcmfcmecmdaaacjrcjscjscmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjyaaacjyaaaaaacjycjycjycjycjycjycjyaaaaaacjyaaacjyaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcllclmclnclncloclnclpclqclrclscltcluclvclwclwclxclyclzclAclAclBclCclDclEclFclEclEclEclDclEclEclGclHeHlclJbZkbUnclKclLclMaflaaichLacDaveclNclOacDaufccpaaibCAbCAaaqclPclQclRclSclTclUaaqclVclTclWclXclRclYaaibCAbCAbCAclZckkcfrckkclZbCAbCAbCAbCAbCAbCAbCAbCAbCAbCAaaiaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaccDaaicmaaflccDazZcmbcmcbfyaAaaaacmdcmecmfcmgcmfcmecmdaaacjrcjscjscmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkcmicmjcmkcmjcmlcmjcmicmmcmncmkcmjcmocmpbUocmpcmpcmqbUobUobUobUocmrcmpcmpcmpcmpcmpcmpcmpcmpcmpcmpcmscmtcmucmvcmwcmxcmycmzcmAaaicmBcmCcmDcmEcmFcmGcmHcmIacfcgTcmJabIcmKcmLcmMcmNckdcmOaaqcmOckdcmNcmPckccmQaaicmRacfacfbDTcmScfrcmTaaiazZaoOaoObcDaaiaaiaaiaoNaoOaoPaaiaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaicmUcmVcmWaaiaabaAZcmXaAZaabaaacmdcmYcmZcnacmZcmYcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnbcmjcnccndcnecnfcnecngcnhcnicnjcnkcnlcmtcnmcnncnncnoabIcnpabIcnqcnrcnqcnqcnqcnqcnqcnqcnqcnqcnqcnqcnscmpcntcnucnvcnwcnxcnycnzcnAcnBcnCcnDcnEcnFcnGcnHcnIacDbXNcnJaRmcnKckdckcckdckdcnLabXcnMckdckdckgckccnNaaicnOaaiaaaaflaaicnPaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnQcnRcnSaaiaabaPxcnTaPxaabaaacmdcnUcnVcnWcnXcnUcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacnbcmjcnccndcnecnfcnecngcnhcnicnjcnkcnlcmtcnmcnncnncnoabIcnpabIcnqcnrcnqcnqcnqcnqcnqcnqcnqcnqcnqcnqcnscmpcntcnucnveHmcnxcnycnzcnAcnBcnCcnDcnEcnFcnGcnHcnIacDbXNcnJaRmcnKckdckcckdckdcnLabXcnMckdckdckgckccnNaaicnOaaiaaaaflaaicnPaaiaaiaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaiaaicnQcnRcnSaaiaabaPxcnTaPxaabaaacmdcnUcnVcnWcnXcnUcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjyaaacjycjycjycjycjycjycjycjycjyaaacjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaicnYaaqaaqcnZaaqcoaaaqaaqcobaoPaaqaaqaoNaoOaoPaaqaaqaaqaaqcoccodcoecofcogcohcoicojcokcojcojcolcojcomconcoocopcoqcorbCAcnOaoycoscotcoucovcowcoxaaqcoycowcozckgcoAcoBaaicnOaaiaaacoCcoDcoEcoFaaiaaaaaaaaaaaacoGaaaaaaaaaaaaaaaaaaaaaaaacoGaaaaaaaaicoHcoIcoJcoKcoLcoMcoNaaqcoOcoPcoQacDcoRaaacoSaaaaaaaaacmdcoTcoUcoUcoUcoVcmdaaackxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafqafqafqafrafrafqafrafrafrafZafrafrafrafqafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEccoWcoXcoYcoZcpacpbcpccpdcpecpfcpgcphcpfcpicpjcpkcpkcplaaqcpmcpncpocppbUncpqcprcpscptcpucpvcpucpwcpxcpycpzcpAcpBaaiaaicnOaoyaaiaaicpCaaiaaiabnbAnacfacfacfcpDacfbhmacfcpEaaiaaacpFcpGcoEcpHaaicpIcpJcpJcpKaaiaaibBOacDacDcpLacDacDcpLaufaaaaaaaaicpMcpNcpMcpOcpPckncnRaaqaaKcpQaaKaaiaaiaaacpRaaaaabaaacmdcmdcmdcpScmdcmdcmdaaackxaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjycjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacpTcpTcpTcpTcpTaaaaaaaaaaaaaaaaaaaaaaaaafqaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAZcoWcpUcpVcpWcpXcpYcpYcpYcpYcpZcqacqbcpkcqccpkcpkcqdcpkcqebUocqfcqgcppbUncqhaaqcqicptcqjcqkcqlcptcqmcqncqocqpcqqcqrcqscqtcqucqvcqvcqwbSWcgTcqxcqybCAcqzbXNcqAbCAbCAbWgbCAaaiaaacqBcpGcoEcqCaaqcqDcqEcqFcqGcqHcqIcqJcqHcqIcqKcqHcqLcqMabnaaaaaaaaicpMcpMcpMcqNcqOcoMcqPcqQcqRcqScqTcqUaaiaaacpRaabaabaaaaaaaaaafqaaaafqaaaaaaaaackxaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -13602,28 +13627,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNcdNddNcaaaaaaaaaaaaaaadLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndLndMxdLndLndLndMxdMxdLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndMxaaaaaadNedMOaabaabaabaabaabdLndLndLndLndMedNfdNgdNhdNidNjdNkdNldNmdNndNodNpdNqdNrdModNsdNtdModNudNvdNwdNxdNydNzdNAdNBdNCdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNEdNFdNEaabaaaaaaaaadLndLndLndLndLndLndLndLndLndLndLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndMxdMxdMxdMxdMxdLndLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaadMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdNHdNIdMedNJdNjdNKdNLdNMdNNdNOdNPdNQdNRdNSdNTdNUdNVdNWdMYdNXdNYdNZdOadObdOcdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOddOedOfdOgaabaaaaaadLndLndLndLndLndLndLndMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaadMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdNHdOhdMedOidNKdOjdOkdOldOmdOndOmdOodOmdOmdOmdOmdOpdOqdMYdOrdNYdOsdOtdOudNCdNDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOvdOvdOwdOxdOydNEaabaaaaaadLndLndLndLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdOzaabdMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdOAdOBdMedOCdODdOEdOFdOGdOHdOIdOJdOKdOLdOMdONdOmdOOdOPdMYdOQdORdOSdOTdMYdOUdOVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOWdOXdOYdOZdPadPbdPcaabaabdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPeaabdMdaaaaabaabaabaabaabdLndLYdLYdLYdLYdLYdPfdPgdLYdMRdMRdPhdPidPjdOmdPkdPldPmdPndPodPpdOmdPqdPrdPsdPtdPudPvdPwdMYdPxdPyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPzdOvdPAdPBdPCdOydPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModPFdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdOmdPRdPSdPTdPUdPVdPWdPXdPYdPZdQadQadQadQbdQcdQddQedQfdQfdQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQhdQidQjdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQkdQldQmdQndQodQpdQqdQrdQsdQtdQudQvdQwdQxdQydQzdQAdQBdQCdQDdQEdQFdQGdQadQHdQIdQJdQKdQadQLdPydPydPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQMdQNdQOdQPdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQQdQRdPGdQSdQTdQUdQVdQWdQXdQYdLYdQZdRadRbdRcdRddRedRfdRgdRhdOmdRidRjdRkdRldRldRmdRndRodRpdRqdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRsdRtdRudPDdRvdRwdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdRxdQRdPGdQSdQTdRydRzdQWdRAdRBdLYdRCdRDdOmdREdOmdOmdOmdOmdRFdOmdRGdRHdQadRIdRJdRKdRLdRMdRNdROdRPdRPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRQdRRdRSdRTdRUdRVdNcdPbdRWdPDdRXdRYdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModQRdPGdRZdQTdSadSbdQWdScdSddLYdSedSfdSgdShdSidSjdSkdOmdSldSmdSndSodSpdSqdSrdSsdStdSudRNdRrdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdSvdSwdRRdSxdSydSzdSAdSBdRWdSCdRYdRYdRXdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadSDdSEdSFdSGdSHdSIdSFdSJdSKdSLdSMdModSNdSOdLYdLYdLYdLYdLYdSPdSQdSRdShdSSdSjdSTdOmdSUdSVdSWdSXdSYdSZdTadTbdTcdTddTedTfdLYdTgdMMdLNdLNdLNdLNdLNdLNdLOdThaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTidSvdTjdSvdRSdRSdRvdTkdSydPDdQPdTldPDdRYdTmdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadTndTodTpdTqdTrdTrdTsdTtdTudTvdTwdTxdTydTzdTAdTBdTCdTDdTEdTFdTGdTHdTIdTJdTKdTLdOmdTMdTNdTOdTPdQadQadTQdQadQadQadTRdTSdTTdTUdTVdTWdTWdTXdTWdTWdTWdTYdMvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTZdUadRSdUbdUcdRSdQjdUddSzdUedUfdUgdPDdPDdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadUhdUidTrdTrdTrdTrdUjdUkdUldUmdUndUodUpdUqdTAdUrdUsdUtdUudUvdUwdUxdUydUzdUAdUBdUCdUDdUAdUEdUFdUGdUHdUIdUJdUGdUKdUGdUAdULdUMdUNdUOdUPdUQdURdUSdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUUdUVdUWdRSdUcdUXdSxdUYdSydUZdPDdVadVbdPDdVcdRWdVddVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadVfdVgdTrdTrdVhdTrdVidVjdVkdVldVmdVndVodVpdTAdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVBdVFdVAdVBdVGdVHdVIdVJdVKdVLdVMdVNdVOdVPdVQdVQdVRdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdMxdMxdPDdRVdVSdVTdVUdUWdVVdSydSzdVWdNcdPbdVXdPDdVcdQPdRWdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndVYdVYdVYdVYdVYdVYdLndLndLndLndLndLndLnaaaaaaaaaaaadVZdWadTrdWbdWcdWddWedWfdWgdWhdWidWjdWkdWldTAdWmdWndWodWpdWpdWpdWpdWqdWrdWsdWtdWrdWudWvdWwdWudWxdWydWzdWxdWxdWAdWBdWCdWDdTWdWEdWFdTWdWGdVQdVQdWHdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdPDdPDdPDdPDdPDdRUdSydWIdVSdSydUddWJdVWdVWdSBdRWdVadPDdVcdQjdWKdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdVYdWLdWLdWLdWLdVYdVYdVYdLndLndLndLndWMdWNaaaaaaaaadWOdWPdSFdWQdWRdWRdWRdWRdWSdWTdWUdModModModTAdWVdWpdWWdWpdWXdWYdWZdXadWrdXbdXcdXddWudXedXfdXgdWxdXhdXidXjdWxdXkdXldWCdXmdXndTWdTWdTWdXodXpdXqdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdXrdPbdSzdXsdPDdXtdXudXvdPDdUedPDdXwdXxdXydPDdPbdXzdNFdXAdQjdQOdNFdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdLndLndXBdXCdLNdLNdLsdLNdMNdMOaabaabdXDdXEdXFdXGdXHdXIdXJdXKdXLdXMdXNdXOdXPdXQdXRdXSdXTdXUdXVdWrdXWdXXdXYdWudXZdYadYbdWxdYcdYddYedWxdYfdYgdYhdYidYjdYkdYldTWdTWdTWdTWdTWdYmdMyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdPDdXrdQjdPbdSxdUedXzdVSdPbdVSdQOdPbdPbdYndRWdPbdQjdQjdPDdNFdYodQjdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdYpdYqdYrdLnaaaaaaaaaaaaaaaaaaaabdXDdYsdYtdYudYvdYwdYxdYydYzdYAdYBdTAdWpdWWdWpdYCdWpdYDdYEdWrdYFdYGdYHdWudYIdYJdYKdWxdYLdYMdYNdWxdYOdYPdYQdYRdYSdYSdYTdXndYUdLrdLNdLNdYVdYWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdPDdXrdYXdQjdQjdUedQjdWKdRvdQjdYYdQOdWKdVXdNFdQjdYZdQPdPDdVSdNFdXzdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZadWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZbdVYdZcdZddVYdVYaaaaaaaaaaaaaaaaaaaabdXDdZedZfdZgdZhdZgdZidZjdXDdYzdZkdTAdZldZmdZndZodWpdZpdZqdWrdZrdZsdZtdWudZudZvdZwdWxdZxdZydZzdWxdZAdZBdXndZCdZDdZEdZDdXndZFdZGdMxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdPDdXrdZHdSxdRUdPDdZIdPDdZJdZKdPDdSzdPDdZJdZKdPDdSydXzdPDdYndUgdNFdVadPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZMdZadZNdZadVYaaaaaaaaaaaaaaaaaaaaaaabdXDdZOdZjdZjdZPdZQdZRdZjdZSdYzdZTdTAdZUdZUdZUdZUdWpdZVdXUdWrdZWdZXdZYdWudZZeaaeabdWxeaceadeaedWxeafeageahdXndXndXndXneaieajdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdZIdPDeakdRWdSzdVadQPdSydVVdSydUgdSxdPDdZJealeameandPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZbdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaoeapeaqaaaaaaaaaaaaaaaaaaaaaaabaabdXDeareareaseateaudZjeaveawdYzeaxdTAdWLdWLdWLdWLdWpeayeazdWreaAeaBeaCdWueaDeaEeaFdWxeaGeaHeaIdWxeaJeaKeahdLndMxdLneaLeaMeaNdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdRWdVaeaOdUddOydSxdRWdPDdSydQPdPDeaPeaQeaQeaRdPDeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaTeaUeaVaaaaaaaaaaaaaaaaaaaabaabaabdXDdXDeaWeaXdXDeaYeaZebaeaZdXDebbdWLdWLdWLdWLdWLdWpdWpdWpdWrdWrdWrdWrdWudWudWudWudWxdWxdWxdWxdWxeaheahebcebddLIdLIebedZGdLndLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdVadPbdUgdRWdSydQPdUgdPDdZIdPDdPDdVcdNFeaQebfebgeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebhebiebjaaaaaaaaaaaaaaaaabebkeblebmebneboebpebqebrebsebtebuebvdXDebbdWLdWLdWLdWLdWLebwebxebydLndLndLndLndLndLndLndLndLndLndLndLndLndLnebzebAdZGebBdLndLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdPDdPDdPDdPDdPDdPDdPDdPDdPDdZIdPDdVcdNFdVddNFeaRebCeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebEebFebGebGebGebGebGebGebHebIebJebKebKebLebMebNdXDebOebPebQdXDebbdWLdWLdWLdWLdWLeaTebiebRdLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLnebzebAdZGebSeaSebSdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzaaaaaaaaaaaaaaadOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdZIdZIdZIdZIdZIdZIdZIdZIdZIdZIdZIdPDdVcdVddVddVddVedPDeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebTebUebUebUebUebUebUebUebUebTdWLdWLdWLdWLdWLdWLdXDeaZebVeaZdXDebWdWLdWLdWLdWLdWLebXebYebZdLIdLIdLIdLIecadLIdLIdLIdLIdLIecbeccecdecedZGeaSeaSeaSebSdWMdLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOvdOvdOwdOxdOXdNEaabaaaaaadLndLndLndLndMxdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdOzaabdMdaaaaaaaaaaaaaaaaaadLndLndLndLndMedNGdOAdOBdMedOCdODdOEdOFdOGdOHdOIdOJdOKdOLdOMdONdOmdOOdOPdMYdOQdORdOSdOTdMYdOUdOVaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOWdYodYZdOZdZIdPbdPcaabaabdMxdMxdLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPeaabdMdaaaaabaabaabaabaabdLndLYdLYdLYdLYdLYdPfdPgdLYdMRdMRdPhdPidPjdOmdPkdPldPmdPndPodPpdOmdPqdPrdPsdPtdPudPvdPwdMYdPxdPyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadPzdOvdPAdPBdPCdOXdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPddPddPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModPFdPGdPHdPIdPJdPKdPLdPMdPNdPOdPPdPQdOmdPRdPSdPTdPUdPVdPWdPXdPYdPZdQadQadQadQbdQcdQddQedQfdQfdQgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaadLodLodLodLodLoaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQheakdQjdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPdaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQkdQldQmdQndQodQpdQqdQrdQsdQtdQudQvdQwdQxdQydQzdQAdQBdQCdQDdQEdQFdQGdQadQHdQIdQJdQKdQadQLdPydPydPyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaadLodLodLodLodLoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdQMdQNdSCdPadPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdQQdQRdPGdQSdQTdQUdQVdQWdQXdQYdLYdQZdRadRbdRcdRddRedRfdRgdRhdOmdRidRjdRkdRldRldRmdRndRodRpdRqdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdRsdRtdRudPDdUddRwdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdRxdQRdPGdQSdQTdRydRzdQWdRAdRBdLYdRCdRDdOmdREdOmdOmdOmdOmdRFdOmdRGdRHdQadRIdRJdRKdRLdRMdRNdROdRPdRPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdRQdRRdRSdRTdRUdRVdNcdPbdOYdPDdVVdVSdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadMddPEdPEdPEdPEdPEdPEdPEdModQRdPGdRZdQTdSadSbdQWdScdSddLYdSedSfdSgdShdSidSjdSkdOmdSldSmdSndSodSpdSqdSrdSsdStdSudRNdRrdRrdRraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdSvdSwdRRdSxdSydSzdVUdSBdOYdVadVSdVSdVVdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadSDdSEdSFdSGdSHdSIdSFdSJdSKdSLdSMdModSNdSOdLYdLYdLYdLYdLYdSPdSQdSRdShdSSdSjdSTdOmdSUdSVdSWdSXdSYdSZdTadTbdTcdTddTedTfdLYdTgdMMdLNdLNdLNdLNdLNdLNdLOdThaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTidSvdTjdSvdRSdRSdUddTkdSydPDdPadTldPDdVSdWKdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaadTndTodTpdTqdTrdTrdTsdTtdTudTvdTwdTxdTydTzdTAdTBdTCdTDdTEdTFdTGdTHdTIdTJdTKdTLdOmdTMdTNdTOdTPdQadQadTQdQadQadQadTRdTSdTTdTUdTVdTWdTWdTXdTWdTWdTWdTYdMvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdTZdUadRSdUbdUcdRSdQjdQOdSzdUedVXdQPdPDdPDdPDdPDdPDdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadUhdUidTrdTrdTrdTrdUjdUkdUldUmdUndUodUpdUqdTAdUrdUsdUtdUudUvdUwdUxdUydUzdUAdUBdUCdUDdUAdUEdUFdUGdUHdUIdUJdUGdUKdUGdUAdULdUMdUNdUOdUPdUQdURdUSdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdUUdUVdUWdRSdUcdXAdSxdUYdSydUZdPDdQidVbdPDdVcdOYdVddVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndLndLndLndLndLndLndLndLndLndLnaaaaaaaaaaaaaaadVfdVgdTrdTrdVhdTrdVidVjdVkdVldVmdVndVodVpdTAdVqdVrdVsdVtdVudVvdVwdVxdVydVzdVAdVBdVCdVDdVAdVEdVBdVFdVAdVBdVGdVHdVIdVJdVKdVLdVMdVNdVOdVPdVQdVQdVRdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdMxdMxdPDdRVdSAdVTdXzdUWdRXdSydSzdVWdNcdPbdUfdPDdVcdPadOYdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndLndVYdVYdVYdVYdVYdVYdLndLndLndLndLndLndLnaaaaaaaaaaaadVZdWadTrdWbdWcdWddWedWfdWgdWhdWidWjdWkdWldTAdWmdWndWodWpdWpdWpdWpdWqdWrdWsdWtdWrdWudWvdWwdWudWxdWydWzdWxdWxdWAdWBdWCdWDdTWdWEdWFdTWdWGdVQdVQdWHdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdPDdPDdPDdPDdPDdRUdSydWIdSAdSydQOdWJdVWdVWdSBdOYdQidPDdVcdQjdTmdVedPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdVYdWLdWLdWLdWLdVYdVYdVYdLndLndLndLndWMdWNaaaaaaaaadWOdWPdSFdWQdWRdWRdWRdWRdWSdWTdWUdModModModTAdWVdWpdWWdWpdWXdWYdWZdXadWrdXbdXcdXddWudXedXfdXgdWxdXhdXidXjdWxdXkdXldWCdXmdXndTWdTWdTWdXodXpdXqdUTdTWdMKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPDdXrdPbdSzdXsdPDdXtdXudXvdPDdUedPDdXwdXxdXydPDdPbdRvdNFdUXdQjdSCdNFdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdLndLndXBdXCdLNdLNdLsdLNdMNdMOaabaabdXDdXEdXFdXGdXHdXIdXJdXKdXLdXMdXNdXOdXPdXQdXRdXSdXTdXUdXVdWrdXWdXXdXYdWudXZdYadYbdWxdYcdYddYedWxdYfdYgdYhdYidYjdYkdYldTWdTWdTWdTWdTWdYmdMyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdPDdXrdQjdPbdSxdUedRvdSAdPbdSAdSCdPbdPbdYndOYdPbdQjdQjdPDdNFdRYdQjdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdVYdVYdYpdYqdYrdLnaaaaaaaaaaaaaaaaaaaabdXDdYsdYtdYudYvdYwdYxdYydYzdYAdYBdTAdWpdWWdWpdYCdWpdYDdYEdWrdYFdYGdYHdWudYIdYJdYKdWxdYLdYMdYNdWxdYOdYPdYQdYRdYSdYSdYTdXndYUdLrdLNdLNdYVdYWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdPDdXrdYXdQjdQjdUedQjdTmdUddQjdYYdSCdTmdUfdNFdQjdUgdPadPDdSAdNFdRvdPbdPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZadWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZbdVYdZcdZddVYdVYaaaaaaaaaaaaaaaaaaaabdXDdZedZfdZgdZhdZgdZidZjdXDdYzdZkdTAdZldZmdZndZodWpdZpdZqdWrdZrdZsdZtdWudZudZvdZwdWxdZxdZydZzdWxdZAdZBdXndZCdZDdZEdZDdXndZFdZGdMxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdPDdXrdZHdSxdRUdPDdOydPDdZJdZKdPDdSzdPDdZJdZKdPDdSydRvdPDdYndQPdNFdQidPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdZMdZadZNdZadVYaaaaaaaaaaaaaaaaaaaaaaabdXDdZOdZjdZjdZPdZQdZRdZjdZSdYzdZTdTAdZUdZUdZUdZUdWpdZVdXUdWrdZWdZXdZYdWudZZeaaeabdWxeaceadeaedWxeafeageahdXndXndXndXneaieajdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdOydPDdRWdOYdSzdQidPadSydRXdSydQPdSxdPDdZJealeameandPDdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdZbdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaoeapeaqaaaaaaaaaaaaaaaaaaaaaaabaabdXDeareareaseateaudZjeaveawdYzeaxdTAdWLdWLdWLdWLdWpeayeazdWreaAeaBeaCdWueaDeaEeaFdWxeaGeaHeaIdWxeaJeaKeahdLndMxdLneaLeaMeaNdLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdOYdQieaOdQOdOXdSxdOYdPDdSydPadPDeaPeaQeaQeaRdPDeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLeaTeaUeaVaaaaaaaaaaaaaaaaaaaabaabaabdXDdXDeaWeaXdXDeaYeaZebaeaZdXDebbdWLdWLdWLdWLdWLdWpdWpdWpdWrdWrdWrdWrdWudWudWudWudWxdWxdWxdWxdWxeaheahebcebddLIdLIebedZGdLndLndMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdQidPbdQPdOYdSydPadQPdPDdOydPDdPDdVcdNFeaQebfebgeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebhebiebjaaaaaaaaaaaaaaaaabebkeblebmebneboebpebqebrebsebtebuebvdXDebbdWLdWLdWLdWLdWLebwebxebydLndLndLndLndLndLndLndLndLndLndLndLndLndLnebzebAdZGebBdLndLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydPDdPDdPDdPDdPDdPDdPDdPDdPDdOydPDdVcdNFdVddNFeaRebCeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebEebFebGebGebGebGebGebGebHebIebJebKebKebLebMebNdXDebOebPebQdXDebbdWLdWLdWLdWLdWLeaTebiebRdLndLndMxdMxdMxdMxdMxdMxdLndLndLndLndLnebzebAdZGebSeaSebSdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzaaaaaaaaaaaaaaadOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdOydOydOydOydOydOydOydOydOydOydOydPDdVcdVddVddVddVedPDeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebTebUebUebUebUebUebUebUebUebTdWLdWLdWLdWLdWLdWLdXDeaZebVeaZdXDebWdWLdWLdWLdWLdWLebXebYebZdLIdLIdLIdLIecadLIdLIdLIdLIdLIecbeccecdecedZGeaSeaSeaSebSdWMdLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDdPDeanecfecgdPDdPDeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLebDebJechechechechechechechechebDebJdWLdWLdWLdWLdWLdWLeciecjeckeclecmecndWLdWLdWLdWLebyebyebydLndLndMxdMxdMxdMxdMxdMxdMxdMxecoecpecqecreaSebSeaSeaSebSdLndLndLndMxdMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxeaSeaSeaSdPDeaQeaQdVddPDeaSeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLaaaaaaaaaaaaaaaaaaaaaaaadVYdVYdVYdVYdVYdVYdVYdVYdWLdWLdWLdWLdWLdWLeciecseckdWLdWLdWLdVYdVYdLndLndLndLndMxdMxdMxdMxdMxdMxdMxdWMebSeaSecteaSebSeaSeaSeaSdLndLndLndLndLndMxdMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdOzdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxeaSeaSeaSdPDecuecvecudPDeaSeaSeaSeaSeaSdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdLndVYdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLdWLaaaaaaaaaaaaaaaaaaaaaaaadVYdVYdVYdLndLndLndLndVYdVYdVYdWLdWLdWLdWLdWLecwdWLdWLdWLdWLdVYdLndLndLndMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdMxdWMdMxeaSebBdMxdLndMxdMxdLndLndLndLndMxdMxdMxdMxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa