From ebe62cefd80581a615a47f56eff209eea2d8abbc Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Wed, 3 Jun 2015 04:36:19 +0930 Subject: [PATCH] Refactored random map generator system and added several terrain generators. Created a global list to track base turfs for explosions/shuttle moves. Remaps the asteroid to be a moonlet. Tidies up some references to 'asteroid', removes moonbase from the accessible z level list. --- baystation12.dme | 14 +- code/TriDimension/Turfs.dm | 2 +- code/TriDimension/controller.dm | 64 -- code/ZAS/Diagnostic.dm | 147 ---- code/__HELPERS/maths.dm | 14 +- code/__HELPERS/unsorted.dm | 4 +- code/controllers/master_controller.dm | 6 - code/controllers/shuttle_controller.dm | 8 +- code/controllers/verbs.dm | 30 - code/game/area/Space Station 13 areas.dm | 10 +- code/game/asteroid.dm | 78 --- code/game/atoms_movable.dm | 14 +- code/game/base_turf.dm | 27 + code/game/gamemodes/cult/narsie.dm | 8 +- code/game/gamemodes/events/black_hole.dm | 10 +- code/game/mecha/equipment/tools/tools.dm | 12 +- .../objects/items/stacks/tiles/plasteel.dm | 19 - code/game/objects/items/weapons/RCD.dm | 4 +- code/game/turfs/simulated.dm | 4 + code/game/turfs/simulated/floor.dm | 4 +- code/game/turfs/simulated/floor_types.dm | 20 +- code/game/turfs/simulated/walls.dm | 2 +- code/game/turfs/space/space.dm | 4 +- code/game/turfs/turf.dm | 59 +- code/modules/admin/admin_verbs.dm | 3 + code/modules/mining/drilling/drill.dm | 4 +- code/modules/mining/drilling/scanner.dm | 2 +- code/modules/mining/mine_turfs.dm | 42 +- code/modules/power/engine.dm | 6 +- code/modules/power/singularity/act.dm | 2 +- code/modules/random_map/_random_map_setup.dm | 22 + code/modules/random_map/automata/automata.dm | 65 ++ code/modules/random_map/automata/caves.dm | 52 ++ code/modules/random_map/building/building.dm | 55 ++ code/modules/random_map/mazes/maze.dm | 65 ++ code/modules/random_map/mazes/maze_cell.dm | 18 + .../modules/random_map/mining_distribution.dm | 242 ------- code/modules/random_map/noise/desert.dm | 40 ++ code/modules/random_map/noise/magma.dm | 44 ++ code/modules/random_map/noise/noise.dm | 168 +++++ code/modules/random_map/noise/ore.dm | 90 +++ code/modules/random_map/noise/tundra.dm | 72 ++ code/modules/random_map/random_map.dm | 287 ++++---- code/modules/random_map/random_map_verbs.dm | 107 +++ code/world.dm | 15 +- icons/turf/walls.dmi | Bin 23520 -> 25185 bytes maps/exodus-5.dmm | 663 +++++++++--------- 47 files changed, 1453 insertions(+), 1175 deletions(-) create mode 100644 code/game/base_turf.dm create mode 100644 code/modules/random_map/_random_map_setup.dm create mode 100644 code/modules/random_map/automata/automata.dm create mode 100644 code/modules/random_map/automata/caves.dm create mode 100644 code/modules/random_map/building/building.dm create mode 100644 code/modules/random_map/mazes/maze.dm create mode 100644 code/modules/random_map/mazes/maze_cell.dm delete mode 100644 code/modules/random_map/mining_distribution.dm create mode 100644 code/modules/random_map/noise/desert.dm create mode 100644 code/modules/random_map/noise/magma.dm create mode 100644 code/modules/random_map/noise/noise.dm create mode 100644 code/modules/random_map/noise/ore.dm create mode 100644 code/modules/random_map/noise/tundra.dm create mode 100644 code/modules/random_map/random_map_verbs.dm diff --git a/baystation12.dme b/baystation12.dme index fca5b332b0..53c52f62fc 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -210,6 +210,7 @@ #include "code\game\asteroid.dm" #include "code\game\atoms.dm" #include "code\game\atoms_movable.dm" +#include "code\game\base_turf.dm" #include "code\game\periodic_news.dm" #include "code\game\response_team.dm" #include "code\game\shuttle_engines.dm" @@ -1476,8 +1477,19 @@ #include "code\modules\projectiles\projectile\energy.dm" #include "code\modules\projectiles\projectile\force.dm" #include "code\modules\projectiles\projectile\special.dm" -#include "code\modules\random_map\mining_distribution.dm" +#include "code\modules\random_map\_random_map_setup.dm" #include "code\modules\random_map\random_map.dm" +#include "code\modules\random_map\random_map_verbs.dm" +#include "code\modules\random_map\automata\automata.dm" +#include "code\modules\random_map\automata\caves.dm" +#include "code\modules\random_map\building\building.dm" +#include "code\modules\random_map\mazes\maze.dm" +#include "code\modules\random_map\mazes\maze_cell.dm" +#include "code\modules\random_map\noise\desert.dm" +#include "code\modules\random_map\noise\magma.dm" +#include "code\modules\random_map\noise\noise.dm" +#include "code\modules\random_map\noise\ore.dm" +#include "code\modules\random_map\noise\tundra.dm" #include "code\modules\reagents\Chemistry-Colours.dm" #include "code\modules\reagents\Chemistry-Holder.dm" #include "code\modules\reagents\Chemistry-Machinery.dm" diff --git a/code/TriDimension/Turfs.dm b/code/TriDimension/Turfs.dm index 43e33ed3c2..7d9684fb57 100644 --- a/code/TriDimension/Turfs.dm +++ b/code/TriDimension/Turfs.dm @@ -71,7 +71,7 @@ for(var/obj/effect/landmark/zcontroller/controller in controllerlocation) // check if there is something to draw below if(!controller.down) - src.ChangeTurf(/turf/space) + src.ChangeTurf(get_base_turf(src.z)) return 0 else floorbelow = locate(src.x, src.y, controller.down_target) diff --git a/code/TriDimension/controller.dm b/code/TriDimension/controller.dm index 7feed3ed09..c8b81d0d49 100644 --- a/code/TriDimension/controller.dm +++ b/code/TriDimension/controller.dm @@ -166,70 +166,6 @@ atom/movable/Move() //Hackish T.overlays -= below.z_overlays T.z_overlays -= below.z_overlays - // this is sadly impossible to use right now - // the overlay is always opaque to mouseclicks and thus prevents interactions with everything except the turf - /*if(up) - var/turf/above = locate(T.x, T.y, up_target) - if(above) - var/eligeable = 0 - for(var/d in cardinal) - var/turf/mT = get_step(above,d) - if(istype(mT, /turf/space) || istype(mT, /turf/simulated/floor/open)) - eligeable = 1 - /*if(mT.opacity == 0) - for(var/f in cardinal) - var/turf/nT = get_step(mT,f) - if(istype(nT, /turf/space) || istype(nT, /turf/simulated/floor/open)) - eligeable = 1*/ - if(istype(above, /turf/space) || istype(above, /turf/simulated/floor/open)) eligeable = 1 - if(eligeable == 1) - if(!(istype(above, /turf/space) || istype(above, /turf/simulated/floor/open))) - var/image/t_img = list() - if(new_list < 1) new_list = 1 - - above.overlays -= above.z_overlays - var/image/temp = image(above, dir=above.dir, layer = 5 + 0.04) - above.overlays += above.z_overlays - - temp.alpha = 100 - temp.overlays += above.overlays - temp.overlays -= above.z_overlays - t_img += temp - T.overlays += t_img - T.z_overlays += t_img - - // get objects - var/image/o_img = list() - for(var/obj/o in above) - // ingore objects that have any form of invisibility - if(o.invisibility) continue - if(new_list < 2) new_list = 2 - var/image/temp2 = image(o, dir=o.dir, layer = 5+0.05*o.layer) - temp2.alpha = 100 - temp2.overlays += o.overlays - o_img += temp2 - // you need to add a list to .overlays or it will not display any because space - T.overlays += o_img - T.z_overlays += o_img - - // get mobs - var/image/m_img = list() - for(var/mob/m in above) - // ingore mobs that have any form of invisibility - if(m.invisibility) continue - // only add this tile to fastprocessing if there is a living mob, not a dead one - if(istype(m, /mob/living) && new_list < 3) new_list = 3 - var/image/temp2 = image(m, dir=m.dir, layer = 5+0.05*m.layer) - temp2.alpha = 100 - temp2.overlays += m.overlays - m_img += temp2 - // you need to add a list to .overlays or it will not display any because space - T.overlays += m_img - T.z_overlays += m_img - - T.overlays -= above.z_overlays - T.z_overlays -= above.z_overlays*/ - L -= T if(new_list == 1) diff --git a/code/ZAS/Diagnostic.dm b/code/ZAS/Diagnostic.dm index 1d4cc1a388..957b5860d0 100644 --- a/code/ZAS/Diagnostic.dm +++ b/code/ZAS/Diagnostic.dm @@ -84,153 +84,6 @@ client/proc/Test_ZAS_Connection(var/turf/simulated/T as turf) else mob << "both turfs can merge." - -/*zone/proc/DebugDisplay(client/client) - if(!istype(client)) - return - - if(!dbg_output) - dbg_output = 1 //Don't want to be spammed when someone investigates a zone... - - if(!client.zone_debug_images) - client.zone_debug_images = list() - - var/list/current_zone_images = list() - - for(var/turf/T in contents) - current_zone_images += image('icons/misc/debug_group.dmi', T, null, TURF_LAYER) - - for(var/turf/space/S in unsimulated_tiles) - current_zone_images += image('icons/misc/debug_space.dmi', S, null, TURF_LAYER) - - client << "Zone Air Contents" - client << "Oxygen: [air.oxygen]" - client << "Nitrogen: [air.nitrogen]" - client << "Phoron: [air.phoron]" - client << "Carbon Dioxide: [air.carbon_dioxide]" - client << "Temperature: [air.temperature] K" - client << "Heat Energy: [air.temperature * air.heat_capacity()] J" - client << "Pressure: [air.return_pressure()] KPa" - client << "" - client << "Space Tiles: [length(unsimulated_tiles)]" - client << "Movable Objects: [length(movables())]" - client << "Connections: [length(connections)]" - - for(var/connection/C in connections) - client << "\ref[C] [C.A] --> [C.B] [(C.indirect?"Open":"Closed")]" - current_zone_images += image('icons/misc/debug_connect.dmi', C.A, null, TURF_LAYER) - current_zone_images += image('icons/misc/debug_connect.dmi', C.B, null, TURF_LAYER) - - client << "Connected Zones:" - for(var/zone/zone in connected_zones) - client << "\ref[zone] [zone] - [connected_zones[zone]] (Connected)" - - for(var/zone/zone in closed_connection_zones) - client << "\ref[zone] [zone] - [closed_connection_zones[zone]] (Unconnected)" - - for(var/C in connections) - if(!istype(C,/connection)) - client << "[C] (Not Connection!)" - - if(!client.zone_debug_images) - client.zone_debug_images = list() - client.zone_debug_images[src] = current_zone_images - - client.images += client.zone_debug_images[src] - - else - dbg_output = 0 - - client.images -= client.zone_debug_images[src] - client.zone_debug_images.Remove(src) - - if(air_master) - for(var/zone/Z in air_master.zones) - if(Z.air == air && Z != src) - var/turf/zloc = pick(Z.contents) - client << "\red Illegal air datum shared by: [zloc.loc.name]"*/ - - -/*client/proc/TestZASRebuild() - set category = "Debug" -// var/turf/turf = get_turf(mob) - var/zone/current_zone = mob.loc:zone - if(!current_zone) - src << "There is no zone there!" - return - - var/list/current_adjacents = list() - var/list/overlays = list() - var/adjacent_id - var/lowest_id - - var/list/identical_ids = list() - var/list/turfs = current_zone.contents.Copy() - var/current_identifier = 1 - - for(var/turf/simulated/current in turfs) - lowest_id = null - current_adjacents = list() - - for(var/direction in cardinal) - var/turf/simulated/adjacent = get_step(current, direction) - if(!current.ZCanPass(adjacent)) - continue - if(turfs.Find(adjacent)) - current_adjacents += adjacent - adjacent_id = turfs[adjacent] - - if(adjacent_id && (!lowest_id || adjacent_id < lowest_id)) - lowest_id = adjacent_id - - if(!lowest_id) - lowest_id = current_identifier++ - identical_ids += lowest_id - overlays += image('icons/misc/debug_rebuild.dmi',, "[lowest_id]") - - for(var/turf/simulated/adjacent in current_adjacents) - adjacent_id = turfs[adjacent] - if(adjacent_id != lowest_id) - if(adjacent_id) - adjacent.overlays -= overlays[adjacent_id] - identical_ids[adjacent_id] = lowest_id - - turfs[adjacent] = lowest_id - adjacent.overlays += overlays[lowest_id] - - sleep(5) - - if(turfs[current]) - current.overlays -= overlays[turfs[current]] - turfs[current] = lowest_id - current.overlays += overlays[lowest_id] - sleep(5) - - var/list/final_arrangement = list() - - for(var/turf/simulated/current in turfs) - current_identifier = identical_ids[turfs[current]] - current.overlays -= overlays[turfs[current]] - current.overlays += overlays[current_identifier] - sleep(5) - - if( current_identifier > final_arrangement.len ) - final_arrangement.len = current_identifier - final_arrangement[current_identifier] = list(current) - - else - final_arrangement[current_identifier] += current - - //lazy but fast - final_arrangement.Remove(null) - - src << "There are [final_arrangement.len] unique segments." - - for(var/turf/current in turfs) - current.overlays -= overlays - - return final_arrangement*/ - client/proc/ZASSettings() set category = "Debug" diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index f148b10ef8..2e20370f8f 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -101,18 +101,18 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, // if they are imaginary. /proc/SolveQuadratic(a, b, c) ASSERT(a) - + . = list() var/discriminant = b*b - 4*a*c var/bottom = 2*a - + // Return if the roots are imaginary. if(discriminant < 0) return - + var/root = sqrt(discriminant) . += (-b + root) / bottom - + // If discriminant == 0, there would be two roots at the same position. if(discriminant != 0) . += (-b - root) / bottom @@ -131,3 +131,9 @@ var/list/sqrtTable = list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, /proc/norm(x, y) return sqrt(squaredNorm(x, y)) + +/proc/IsPowerOfTwo(var/val) + return (val & (val-1)) == 0 + +/proc/RoundUpToPowerOfTwo(var/val) + return 2 ** -round(-log(2,val)) \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 3564c5e15f..c6b331f137 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -921,7 +921,7 @@ proc/anim(turf/location as turf,target as mob|obj,a_icon,a_icon_state as text,fl if(turftoleave) fromupdate += T.ChangeTurf(turftoleave) else - T.ChangeTurf(/turf/space) + T.ChangeTurf(get_base_turf(T.z)) refined_src -= T refined_trg -= B @@ -1004,7 +1004,7 @@ proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) var/old_icon1 = T.icon if(platingRequired) - if(istype(B, /turf/space)) + if(istype(B, get_base_turf(B.z))) continue moving var/turf/X = new T.type(B) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 0152af8b13..002c30b0eb 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -12,7 +12,6 @@ var/global/pipe_processing_killed = 0 datum/controller/game_controller var/list/shuttle_list // For debugging and VV - var/datum/random_map/ore/asteroid_ore_map // For debugging and VV. datum/controller/game_controller/New() //There can be only one master_controller. Out with the old and in with the new. @@ -65,11 +64,6 @@ datum/controller/game_controller/proc/setup_objects() var/obj/machinery/atmospherics/unary/vent_scrubber/T = U T.broadcast_status() - // Create the mining ore distribution map. - // These values determine the specific area that the map is applied to. - // If you do not use the official Baycode asteroid map, you will need to change them. - asteroid_ore_map = new /datum/random_map/ore(null,13,32,5,217,223) - // Set up antagonists. populate_antag_type_list() diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 489d648865..d53219fcf9 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -19,7 +19,7 @@ var/global/datum/shuttle_controller/shuttle_controller var/datum/shuttle/shuttle = shuttles[shuttle_tag] shuttle.init_docking_controllers() shuttle.dock() //makes all shuttles docked to something at round start go into the docked state - + for(var/obj/machinery/embedded_controller/C in machines) if(istype(C.program, /datum/computer/file/embedded_program/docking)) C.program.tag = null //clear the tags, 'cause we don't need 'em anymore @@ -210,7 +210,7 @@ var/global/datum/shuttle_controller/shuttle_controller "Fore Port Solars" = locate(/area/skipjack_station/northwest_solars), "Aft Starboard Solars" = locate(/area/skipjack_station/southeast_solars), "Aft Port Solars" = locate(/area/skipjack_station/southwest_solars), - "Mining asteroid" = locate(/area/skipjack_station/mining) + "Mining Station" = locate(/area/skipjack_station/mining) ) VS.announcer = "NSV Icarus" @@ -234,10 +234,10 @@ var/global/datum/shuttle_controller/shuttle_controller "South of the station" = locate(/area/syndicate_station/south), "Southeast of the station" = locate(/area/syndicate_station/southeast), "Telecomms Satellite" = locate(/area/syndicate_station/commssat), - "Mining Asteroid" = locate(/area/syndicate_station/mining), + "Mining Station" = locate(/area/syndicate_station/mining), "Arrivals dock" = locate(/area/syndicate_station/arrivals_dock), ) - + MS.docking_controller_tag = "merc_shuttle" MS.destination_dock_targets = list( "Mercenary Base" = "merc_base", diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index d849bc836b..c394318c28 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -1,35 +1,5 @@ //TODO: rewrite and standardise all controller datums to the datum/controller type //TODO: allow all controllers to be deleted for clean restarts (see WIP master controller stuff) - MC done - lighting done - -/client/proc/print_random_map() - set category = "Debug" - set name = "Display Random Map" - set desc = "Show the contents of a random map." - - if(!holder) return - - var/datum/random_map/choice = input("Choose a map to debug.") as null|anything in random_maps - if(!choice) - return - choice.display_map(usr) - - -/client/proc/create_random_map() - set category = "Debug" - set name = "Create Random Map" - set desc = "Create a random map." - - if(!holder) return - - var/map_datum = input("Choose a map to create.") as null|anything in typesof(/datum/random_map)-/datum/random_map - if(!map_datum) - return - var/seed = input("Seed? (default null)") as text|null - var/tx = input("X? (default 1)") as text|null - var/ty = input("Y? (default 1)") as text|null - var/tz = input("Z? (default 1)") as text|null - new map_datum(seed,tx,ty,tz) - /client/proc/restart_controller(controller in list("Supply")) set category = "Debug" set name = "Restart Controller" diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 4bc9bbe481..6388bc40d4 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -402,17 +402,17 @@ area/space/atmosalert() //EXTRA /area/asteroid // -- TLE - name = "\improper Asteroid" + name = "\improper Moon" icon_state = "asteroid" requires_power = 0 /area/asteroid/cave // -- TLE - name = "\improper Asteroid - Underground" + name = "\improper Moon - Underground" icon_state = "cave" requires_power = 0 /area/asteroid/artifactroom - name = "\improper Asteroid - Artifact" + name = "\improper Moon - Artifact" icon_state = "cave" @@ -498,7 +498,7 @@ area/space/atmosalert() icon_state = "south" /area/syndicate_station/mining - name = "\improper north east of the mining asteroid" + name = "\improper northeast of the mining station" icon_state = "north" /area/syndicate_station/arrivals_dock @@ -540,7 +540,7 @@ area/space/atmosalert() icon_state = "southeast" /area/skipjack_station/mining - name = "\improper nearby mining asteroid" + name = "\improper south of mining station" icon_state = "north" //PRISON diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index 8aa6b1cd64..979db2c147 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -82,81 +82,3 @@ proc/admin_spawn_room_at_pos() if(x && y && z && wall && floor && x_len && y_len) spawn_room(locate(x,y,z),x_len,y_len,wall,floor,clean) return - - - - - - -proc/make_mining_asteroid_secret(var/size = 5) - var/valid = 0 - var/turf/T = null - var/sanity = 0 - var/list/room = null - var/list/turfs = null - - - turfs = get_area_turfs(/area/mine/unexplored) - - if(!turfs.len) - return 0 - - while(!valid) - valid = 1 - sanity++ - if(sanity > 100) - return 0 - - T=pick(turfs) - if(!T) - return 0 - - var/list/surroundings = list() - - surroundings += range(7, locate(T.x,T.y,T.z)) - surroundings += range(7, locate(T.x+size,T.y,T.z)) - surroundings += range(7, locate(T.x,T.y+size,T.z)) - surroundings += range(7, locate(T.x+size,T.y+size,T.z)) - - if(locate(/area/mine/explored) in surroundings) // +5s are for view range - valid = 0 - continue - - if(locate(/turf/space) in surroundings) - valid = 0 - continue - - if(locate(/area/asteroid/artifactroom) in surroundings) - valid = 0 - continue - - if(locate(/turf/simulated/floor/plating/airless/asteroid) in surroundings) - valid = 0 - continue - - if(!T) - return 0 - - room = spawn_room(T,size,size,,,1) - - if(room) - T = pick(room["floors"]) - if(T) - var/surprise = null - valid = 0 - while(!valid) - surprise = pickweight(space_surprises) - if(surprise in spawned_surprises) - if(prob(20)) - valid++ - else - continue - else - valid++ - - spawned_surprises.Add(surprise) - new surprise(T) - - return 1 - - diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 84baf5d18e..9c70bb669f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -210,16 +210,16 @@ /atom/movable/overlay/attack_hand(a, b, c) if (src.master) return src.master.attack_hand(a, b, c) - return + return /atom/movable/proc/touch_map_edge() - if(z in config.sealed_levels) + if(z in config.sealed_levels) return - + if(config.use_overmap) overmap_spacetravel(get_turf(src), src) return - + var/move_to_z = src.get_transit_zlevel() if(move_to_z) z = move_to_z @@ -248,14 +248,14 @@ if(loc) loc.Entered(src) //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. -var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "5" = 10, "6" = 60) +var/list/accessible_z_levels = list("1" = 5, "3" = 10, "4" = 15, "6" = 60) //by default, transition randomly to another zlevel /atom/movable/proc/get_transit_zlevel() var/list/candidates = accessible_z_levels.Copy() candidates.Remove("[src.z]") - + if(!candidates.len) return null return text2num(pickweight(candidates)) - + diff --git a/code/game/base_turf.dm b/code/game/base_turf.dm new file mode 100644 index 0000000000..d6940e0275 --- /dev/null +++ b/code/game/base_turf.dm @@ -0,0 +1,27 @@ +// Returns the lowest turf available on a given Z-level, defaults to space. +var/global/list/base_turf_by_z = list( + "5" = /turf/simulated/floor/plating/airless/asteroid // Moonbase. + ) + +proc/get_base_turf(var/z) + if(!base_turf_by_z["[z]"]) + base_turf_by_z["[z]"] = /turf/space + return base_turf_by_z["[z]"] + +/client/proc/set_base_turf() + set category = "Debug" + set name = "Set Base Turf" + set desc = "Set the base turf for a z-level." + + if(!holder) return + + var/choice = input("Which Z-level do you wish to set the base turf for?") as num|null + if(!choice) + return + + var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf) + if(!new_base_path) + new_base_path = /turf/space + base_turf_by_z["[choice]"] = new_base_path + message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].") + log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].") \ No newline at end of file diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm index 0ef0d27663..4dbbb4ce2f 100644 --- a/code/game/gamemodes/cult/narsie.dm +++ b/code/game/gamemodes/cult/narsie.dm @@ -224,9 +224,9 @@ var/global/list/narsie_list = list() consume(AM2) continue - if (dist <= consume_range && !istype(A, /turf/space)) + if (dist <= consume_range && !istype(A, get_base_turf(A.z))) var/turf/T2 = A - T2.ChangeTurf(/turf/space) + T2.ChangeTurf(get_base_turf(A.z)) /obj/singularity/narsie/consume(const/atom/A) //This one is for the small ones. if(!(A.singuloCanEat())) @@ -266,9 +266,9 @@ var/global/list/narsie_list = list() spawn (0) AM2.singularity_pull(src, src.current_size) - if (dist <= consume_range && !istype(A, /turf/space)) + if (dist <= consume_range && !istype(A, get_base_turf(A.z))) var/turf/T2 = A - T2.ChangeTurf(/turf/space) + T2.ChangeTurf(get_base_turf(A.z)) /obj/singularity/narsie/ex_act(severity) //No throwing bombs at it either. --NEO return diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm index 60ab8a692f..9c212ae0c5 100644 --- a/code/game/gamemodes/events/black_hole.dm +++ b/code/game/gamemodes/events/black_hole.dm @@ -24,8 +24,11 @@ qdel(M) for(var/obj/O in orange(1,src)) qdel(O) + var/base_turf = get_base_turf(src.z) for(var/turf/simulated/ST in orange(1,src)) - ST.ChangeTurf(/turf/space) + if(ST.type == base_turf) + continue + ST.ChangeTurf(base_turf) sleep(6) grav(10, 4, 10, 0 ) @@ -84,5 +87,6 @@ //Destroying the turf if( T && istype(T,/turf/simulated) && prob(turf_removal_chance) ) var/turf/simulated/ST = T - ST.ChangeTurf(/turf/space) - return \ No newline at end of file + var/base_turf = get_base_turf(src.z) + if(ST.type != base_turf) + ST.ChangeTurf(base_turf) diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 04e711b3a9..aa60bfd466 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -128,7 +128,7 @@ desc = "This is an upgraded version of the drill that'll pierce the heavens! (Can be attached to: Combat and Engineering Exosuits)" icon_state = "mecha_diamond_drill" origin_tech = list(TECH_MATERIAL = 4, TECH_ENGINERING = 3) - construction_cost = list(DEFAULT_WALL_MATERIAL=10000,"diamond"=6500) + construction_cost = list(DEFAULT_WALL_MATERIAL=10000,"diamond"=6500) equip_cooldown = 20 force = 15 @@ -287,7 +287,7 @@ if(do_after_cooldown(target)) if(disabled) return chassis.spark_system.start() - target:ChangeTurf(/turf/space) + target:ChangeTurf(get_base_turf(target.z)) playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.use_power(energy_drain) else if (istype(target, /obj/machinery/door/airlock)) @@ -300,7 +300,7 @@ playsound(target, 'sound/items/Deconstruct.ogg', 50, 1) chassis.use_power(energy_drain) if(1) - if(istype(target, /turf/space)) + if(istype(target, /turf/space) || istype(target,get_base_turf(target.z))) occupant_message("Building Floor...") set_ready_state(0) if(do_after_cooldown(target)) @@ -974,7 +974,7 @@ desc = "Generates power using uranium. Pollutes the environment." icon_state = "tesla" origin_tech = list(TECH_POWER = 3, TECH_ENGINERING = 3) - construction_cost = list(DEFAULT_WALL_MATERIAL=10000,"silver"=500,"glass"=1000) + construction_cost = list(DEFAULT_WALL_MATERIAL=10000,"silver"=500,"glass"=1000) max_fuel = 50000 fuel_per_cycle_idle = 10 fuel_per_cycle_active = 30 @@ -1071,8 +1071,8 @@ icon_state = "mecha_abooster_ccw" origin_tech = list(TECH_ENGINERING = 1, TECH_BIO = 1) energy_drain = 10 - range = MELEE - construction_cost = list(DEFAULT_WALL_MATERIAL=5000,"glass"=5000) + range = MELEE + construction_cost = list(DEFAULT_WALL_MATERIAL=5000,"glass"=5000) equip_cooldown = 20 var/mob/living/carbon/occupant = null var/door_locked = 1 diff --git a/code/game/objects/items/stacks/tiles/plasteel.dm b/code/game/objects/items/stacks/tiles/plasteel.dm index 86af65a2fa..d96c14854f 100644 --- a/code/game/objects/items/stacks/tiles/plasteel.dm +++ b/code/game/objects/items/stacks/tiles/plasteel.dm @@ -26,28 +26,9 @@ stacktype = /obj/item/stack/tile/plasteel build_type = /obj/item/stack/tile/plasteel -/* -/obj/item/stack/tile/plasteel/attack_self(mob/user as mob) - if (usr.stat) - return - var/T = user.loc - if (!( istype(T, /turf) )) - user << "\red You must be on the ground!" - return - if (!( istype(T, /turf/space) )) - user << "\red You cannot build on or repair this turf!" - return - src.build(T) - src.add_fingerprint(user) - use(1) - return -*/ - /obj/item/stack/tile/plasteel/proc/build(turf/S as turf) if (istype(S,/turf/space)) S.ChangeTurf(/turf/simulated/floor/plating/airless) else S.ChangeTurf(/turf/simulated/floor/plating) -// var/turf/simulated/floor/W = S.ReplaceWithFloor() -// W.make_plating() return diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 9784709c51..245f9201a0 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -100,7 +100,7 @@ build_delay = 50 build_type = "airlock" build_other = /obj/machinery/door/airlock - else if(!deconstruct && istype(T,/turf/space)) + else if(!deconstruct && (istype(T,/turf/space) || istype(T,get_base_turf(T.z)))) build_cost = 1 build_type = "floor" build_turf = /turf/simulated/floor/plating/airless @@ -114,7 +114,7 @@ build_delay = deconstruct ? 50 : 20 build_cost = deconstruct ? 10 : 3 build_type = deconstruct ? "floor" : "wall" - build_turf = deconstruct ? /turf/space : /turf/simulated/wall + build_turf = deconstruct ? get_base_turf(T.z) : /turf/simulated/wall else return 0 diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index dcecf46ad6..6f0991feb3 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -3,6 +3,10 @@ var/wet = 0 var/image/wet_overlay = null + //Mining resources (for the large drills). + var/has_resources + var/list/resources + var/thermite = 0 oxygen = MOLES_O2STANDARD nitrogen = MOLES_N2STANDARD diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index b34144fc39..4a43a14d2d 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -80,14 +80,14 @@ var/list/wood_icons = list("wood","wood-broken") //set src in oview(1) switch(severity) if(1.0) - src.ChangeTurf(/turf/space) + src.ChangeTurf(get_base_turf(src.z)) if(2.0) switch(pick(40;1,40;2,3)) if (1) if(prob(33)) new /obj/item/stack/material/steel(src) src.ReplaceWithLattice() if(2) - src.ChangeTurf(/turf/space) + src.ChangeTurf(get_base_turf(src.z)) if(3) if(prob(33)) new /obj/item/stack/material/steel(src) if(prob(80)) diff --git a/code/game/turfs/simulated/floor_types.dm b/code/game/turfs/simulated/floor_types.dm index 450352f9b5..cccb3216ca 100644 --- a/code/game/turfs/simulated/floor_types.dm +++ b/code/game/turfs/simulated/floor_types.dm @@ -9,6 +9,13 @@ ..() name = "floor" +/turf/simulated/floor/airless/lava + name = "lava" + icon_state = "lava" + lava = 1 + light_range = 2 + light_color = "#CC0000" + /turf/simulated/floor/airless/ceiling icon_state = "rockvault" @@ -151,6 +158,11 @@ oxygen = 0 nitrogen = MOLES_N2STANDARD + MOLES_O2STANDARD +/turf/simulated/floor/snow + name = "Snow" + icon = 'icons/turf/snow.dmi' + icon_state = "snow" + /turf/simulated/floor/beach name = "Beach" icon = 'icons/misc/beach.dmi' @@ -159,6 +171,9 @@ name = "Sand" icon_state = "sand" +/turf/simulated/floor/beach/sand/desert + icon_state = "desert" + /turf/simulated/floor/beach/coastline name = "Coastline" icon = 'icons/misc/beach2.dmi' @@ -168,6 +183,9 @@ name = "Water" icon_state = "water" +/turf/simulated/floor/beach/water/ocean + icon_state = "seadeep" + /turf/simulated/floor/beach/water/New() ..() overlays += image("icon"='icons/misc/beach.dmi',"icon_state"="water5","layer"=MOB_LAYER+0.1) @@ -218,4 +236,4 @@ icon_state = "snow" /turf/simulated/floor/plating/snow/ex_act(severity) - return + return diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 5185c9b81c..65b40e1fdf 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -179,7 +179,7 @@ var/list/global/wall_cache = list() /turf/simulated/wall/ex_act(severity) switch(severity) if(1.0) - src.ChangeTurf(/turf/space) + src.ChangeTurf(get_base_turf(src.z)) return if(2.0) if(prob(75)) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 625768b69c..6f3cbb2e40 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -1,5 +1,3 @@ - - /turf/space icon = 'icons/turf/space.dmi' name = "\proper space" @@ -69,7 +67,7 @@ // Okay, so let's make it so that people can travel z levels but not nuke disks! // if(ticker.mode.name == "mercenary") return if (A.x <= TRANSITIONEDGE || A.x >= (world.maxx - TRANSITIONEDGE - 1) || A.y <= TRANSITIONEDGE || A.y >= (world.maxy - TRANSITIONEDGE - 1)) - A.touch_map_edge() + A.touch_map_edge() /turf/space/proc/Sandbox_Spacemove(atom/movable/A as mob|obj) var/cur_x diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 65d9050617..2fa1105f5c 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -22,10 +22,6 @@ var/icon_old = null var/pathweight = 1 - //Mining resource generation stuff. - var/has_resources - var/list/resources - // Flick animation var/atom/movable/overlay/c_animation = null @@ -289,61 +285,8 @@ else lighting_clear_overlays() - -//Commented out by SkyMarshal 5/10/13 - If you are patching up space, it should be vacuum. -// If you are replacing a wall, you have increased the volume of the room without increasing the amount of gas in it. -// As such, this will no longer be used. - -//////Assimilate Air////// -/* -/turf/simulated/proc/Assimilate_Air() - var/aoxy = 0//Holders to assimilate air from nearby turfs - var/anitro = 0 - var/aco = 0 - var/atox = 0 - var/atemp = 0 - var/turf_count = 0 - - for(var/direction in cardinal)//Only use cardinals to cut down on lag - var/turf/T = get_step(src,direction) - if(istype(T,/turf/space))//Counted as no air - turf_count++//Considered a valid turf for air calcs - continue - else if(istype(T,/turf/simulated/floor)) - var/turf/simulated/S = T - if(S.air)//Add the air's contents to the holders - aoxy += S.air.oxygen - anitro += S.air.nitrogen - aco += S.air.carbon_dioxide - atox += S.air.toxins - atemp += S.air.temperature - turf_count ++ - air.oxygen = (aoxy/max(turf_count,1))//Averages contents of the turfs, ignoring walls and the like - air.nitrogen = (anitro/max(turf_count,1)) - air.carbon_dioxide = (aco/max(turf_count,1)) - air.toxins = (atox/max(turf_count,1)) - air.temperature = (atemp/max(turf_count,1))//Trace gases can get bant - air.update_values() - - //cael - duplicate the averaged values across adjacent turfs to enforce a seamless atmos change - for(var/direction in cardinal)//Only use cardinals to cut down on lag - var/turf/T = get_step(src,direction) - if(istype(T,/turf/space))//Counted as no air - continue - else if(istype(T,/turf/simulated/floor)) - var/turf/simulated/S = T - if(S.air)//Add the air's contents to the holders - S.air.oxygen = air.oxygen - S.air.nitrogen = air.nitrogen - S.air.carbon_dioxide = air.carbon_dioxide - S.air.toxins = air.toxins - S.air.temperature = air.temperature - S.air.update_values() -*/ - - /turf/proc/ReplaceWithLattice() - src.ChangeTurf(/turf/space) + src.ChangeTurf(get_base_turf(src.z)) spawn() new /obj/structure/lattice( locate(src.x, src.y, src.z) ) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c22fc85466..ac7ca3d2fb 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -167,6 +167,9 @@ var/list/admin_verbs_debug = list( /client/proc/restart_controller, /client/proc/print_random_map, /client/proc/create_random_map, + /client/proc/apply_random_map, + /client/proc/overlay_random_map, + /client/proc/delete_random_map, /client/proc/show_plant_genes, /client/proc/enable_debug_verbs, /client/proc/callproc, diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 5d25adb78d..f6cfef3dcb 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -84,7 +84,7 @@ //Dig out the tasty ores. if(resource_field.len) - var/turf/harvesting = pick(resource_field) + var/turf/simulated/harvesting = pick(resource_field) while(resource_field.len && !harvesting.resources) harvesting.has_resources = 0 @@ -253,7 +253,7 @@ var/tx = T.x - 2 var/ty = T.y - 2 - var/turf/mine_turf + var/turf/simulated/mine_turf for(var/iy = 0,iy < 5, iy++) for(var/ix = 0, ix < 5, ix++) mine_turf = locate(tx + ix, ty + iy, T.z) diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index 878bf1b2c2..2e9807ba6e 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -20,7 +20,7 @@ "exotic matter" = 0 ) - for(var/turf/T in range(2, get_turf(user))) + for(var/turf/simulated/T in range(2, get_turf(user))) if(!T.has_resources) continue diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 0ca011ee63..c414f50cec 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -1,5 +1,8 @@ /**********************Mineral deposits**************************/ - +/turf/unsimulated/mineral + name = "impassable rock" + icon = 'icons/turf/walls.dmi' + icon_state = "rock-dark" /turf/simulated/mineral //wall piece name = "Rock" @@ -11,6 +14,7 @@ density = 1 blocks_air = 1 temperature = T0C + var/mined_turf = /turf/simulated/floor/plating/airless/asteroid var/ore/mineral var/mined_ore = 0 var/last_act = 0 @@ -28,21 +32,20 @@ has_resources = 1 /turf/simulated/mineral/New() - spawn(0) MineralSpread() - spawn(2) - var/list/step_overlays = list("s" = NORTH, "n" = SOUTH, "w" = EAST, "e" = WEST) - for(var/direction in step_overlays) - var/turf/turf_to_check = get_step(src,step_overlays[direction]) + updateMineralOverlays(1) - if(istype(turf_to_check,/turf/simulated/floor/plating/airless/asteroid)) - var/turf/simulated/floor/plating/airless/asteroid/T = turf_to_check - T.updateMineralOverlays() - - else if(istype(turf_to_check,/turf/space) || istype(turf_to_check,/turf/simulated/floor)) - turf_to_check.overlays += image('icons/turf/walls.dmi', "rock_side_[direction]") +/turf/simulated/mineral/proc/updateMineralOverlays(var/update_neighbors) + var/list/step_overlays = list("s" = NORTH, "n" = SOUTH, "w" = EAST, "e" = WEST) + for(var/direction in step_overlays) + var/turf/turf_to_check = get_step(src,step_overlays[direction]) + if(update_neighbors && istype(turf_to_check,/turf/simulated/floor/plating/airless/asteroid)) + var/turf/simulated/floor/plating/airless/asteroid/T = turf_to_check + T.updateMineralOverlays() + else if(istype(turf_to_check,/turf/space) || istype(turf_to_check,/turf/simulated/floor)) + turf_to_check.overlays += image('icons/turf/walls.dmi', "rock_side_[direction]") /turf/simulated/mineral/ex_act(severity) switch(severity) @@ -280,8 +283,7 @@ //Add some rubble, you did just clear out a big chunk of rock. - var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) - N.overlay_detail = "asteroid[rand(0,9)]" + var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(mined_turf) // Kill and update the space overlays around us. for(var/direction in step_overlays) @@ -292,13 +294,9 @@ if(istype(get_step(T, step_overlays[next_direction]),/turf/simulated/mineral)) T.overlays += image('icons/turf/walls.dmi', "rock_side_[next_direction]") - // Update the - N.updateMineralOverlays(1) - - if(rand(1,500) == 1) - visible_message("An old dusty crate was buried within!") - new /obj/structure/closet/crate/secure/loot(src) - + if(istype(N)) + N.overlay_detail = "asteroid[rand(0,9)]" + N.updateMineralOverlays(1) /turf/simulated/mineral/proc/excavate_find(var/prob_clean = 0, var/datum/find/F) //with skill and luck, players can cleanly extract finds @@ -391,7 +389,7 @@ /turf/simulated/floor/plating/airless/asteroid //floor piece - name = "asteroid" + name = "sand" icon = 'icons/turf/floors.dmi' icon_state = "asteroid" oxygen = 0 diff --git a/code/modules/power/engine.dm b/code/modules/power/engine.dm index a9095b3a78..6ffe660339 100644 --- a/code/modules/power/engine.dm +++ b/code/modules/power/engine.dm @@ -18,12 +18,12 @@ /turf/simulated/floor/engine/ex_act(severity) switch(severity) if(1.0) - ChangeTurf(/turf/space) + ChangeTurf(get_base_turf(src.z)) qdel(src) return if(2.0) if (prob(50)) - ChangeTurf(/turf/space) + ChangeTurf(get_base_turf(src.z)) qdel(src) return else @@ -31,7 +31,7 @@ /turf/simulated/floor/engine/blob_act() if (prob(25)) - ChangeTurf(/turf/space) + ChangeTurf(get_base_turf(src.z)) qdel(src) return return \ No newline at end of file diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 3804c1f158..0114269a76 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -107,7 +107,7 @@ continue if(O.invisibility == 101) O.singularity_act(src, current_size) - ChangeTurf(/turf/space) + ChangeTurf(get_base_turf(src.z)) return 2 /turf/simulated/wall/singularity_pull(S, current_size) diff --git a/code/modules/random_map/_random_map_setup.dm b/code/modules/random_map/_random_map_setup.dm new file mode 100644 index 0000000000..01c57f2f76 --- /dev/null +++ b/code/modules/random_map/_random_map_setup.dm @@ -0,0 +1,22 @@ +/* + This module is used to generate the debris fields/distribution maps/procedural stations. +*/ + +#define MIN_SURFACE_COUNT 500 +#define MIN_RARE_COUNT 200 +#define MIN_DEEP_COUNT 100 +#define RESOURCE_HIGH_MAX 4 +#define RESOURCE_HIGH_MIN 2 +#define RESOURCE_MID_MAX 3 +#define RESOURCE_MID_MIN 1 +#define RESOURCE_LOW_MAX 1 +#define RESOURCE_LOW_MIN 0 + +#define FLOOR_CHAR 0 +#define WALL_CHAR 1 +#define DOOR_CHAR 2 +#define EMPTY_CHAR 3 +#define ROOM_TEMP_CHAR 4 +#define MONSTER_CHAR 5 +#define ARTIFACT_TURF_CHAR 6 +#define ARTIFACT_CHAR 7 \ No newline at end of file diff --git a/code/modules/random_map/automata/automata.dm b/code/modules/random_map/automata/automata.dm new file mode 100644 index 0000000000..f3867d78bd --- /dev/null +++ b/code/modules/random_map/automata/automata.dm @@ -0,0 +1,65 @@ +/datum/random_map/automata + descriptor = "generic caves" + initial_wall_cell = 55 + var/iterations = 0 // Number of times to apply the automata rule. + var/cell_live_value = WALL_CHAR // Cell is alive if it has this value. + var/cell_dead_value = FLOOR_CHAR // As above for death. + var/cell_threshold = 5 // Cell becomes alive with this many live neighbors. + +// Automata-specific procs and processing. +/datum/random_map/automata/generate_map() + for(var/i=1;i<=iterations;i++) + iterate(i) + +/datum/random_map/automata/get_additional_spawns(var/value, var/turf/T) + return + +/datum/random_map/automata/proc/iterate(var/iteration) + var/list/next_map[limit_x*limit_y] + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + next_map[current_cell] = map[current_cell] + var/count = 0 + + // Every attempt to place this in a proc or a list has resulted in + // the generator being totally bricked and useless. Fuck it. We're + // hardcoding this shit. Feel free to rewrite and PR a fix. ~ Z + var/tmp_cell = get_map_cell(x,y) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x+1,y+1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x-1,y-1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x+1,y-1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x-1,y+1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x-1,y) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x,y-1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x+1,y) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + tmp_cell = get_map_cell(x,y+1) + if(tmp_cell && cell_is_alive(map[tmp_cell])) count++ + + if(count >= cell_threshold) + revive_cell(current_cell, next_map, (iteration == iterations)) + else + kill_cell(current_cell, next_map, (iteration == iterations)) + map = next_map + +// Check if a given tile counts as alive for the automata generations. +/datum/random_map/automata/proc/cell_is_alive(var/value) + return (value == cell_live_value) && (value != cell_dead_value) + +/datum/random_map/automata/proc/revive_cell(var/target_cell, var/list/use_next_map, var/final_iter) + if(!use_next_map) + use_next_map = map + use_next_map[target_cell] = cell_live_value + +/datum/random_map/automata/proc/kill_cell(var/target_cell, var/list/use_next_map, var/final_iter) + if(!use_next_map) + use_next_map = map + use_next_map[target_cell] = cell_dead_value \ No newline at end of file diff --git a/code/modules/random_map/automata/caves.dm b/code/modules/random_map/automata/caves.dm new file mode 100644 index 0000000000..9c8f2a556e --- /dev/null +++ b/code/modules/random_map/automata/caves.dm @@ -0,0 +1,52 @@ +/datum/random_map/automata/cave_system + iterations = 5 + descriptor = "moon caves" + wall_type = /turf/simulated/mineral + floor_type = /turf/simulated/floor/plating/airless/asteroid + target_turf_type = /turf/unsimulated/mask + var/mineral_sparse = /turf/simulated/mineral/random + var/mineral_rich = /turf/simulated/mineral/random/high_chance + var/list/ore_turfs = list() + +/datum/random_map/automata/cave_system/get_appropriate_path(var/value) + switch(value) + if(DOOR_CHAR) + return mineral_sparse + if(EMPTY_CHAR) + return mineral_rich + if(FLOOR_CHAR) + return floor_type + if(WALL_CHAR) + return wall_type + +/datum/random_map/automata/cave_system/get_map_char(var/value) + switch(value) + if(DOOR_CHAR) + return "x" + if(EMPTY_CHAR) + return "X" + return ..(value) + +/datum/random_map/automata/cave_system/revive_cell(var/target_cell, var/list/use_next_map, var/final_iter) + ..() + if(final_iter) + ore_turfs |= target_cell + +/datum/random_map/automata/cave_system/kill_cell(var/target_cell, var/list/use_next_map, var/final_iter) + ..() + if(final_iter) + ore_turfs -= target_cell + +// Create ore turfs. +/datum/random_map/automata/cave_system/cleanup() + var/ore_count = round(map.len/20) + while((ore_count>0) && (ore_turfs.len>0)) + if(!priority_process) sleep(-1) + var/check_cell = pick(ore_turfs) + ore_turfs -= check_cell + if(prob(75)) + map[check_cell] = DOOR_CHAR // Mineral block + else + map[check_cell] = EMPTY_CHAR // Rare mineral block. + ore_count-- + return 1 diff --git a/code/modules/random_map/building/building.dm b/code/modules/random_map/building/building.dm new file mode 100644 index 0000000000..e5d3953af0 --- /dev/null +++ b/code/modules/random_map/building/building.dm @@ -0,0 +1,55 @@ +/datum/random_map/building + descriptor = "generic room" + limit_x = 7 + limit_y = 7 + +/datum/random_map/building/generate_map() + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + if(!within_bounds(current_cell)) + continue + if(x == 1 || y == 1 || x == limit_x || y == limit_y) + map[current_cell] = WALL_CHAR + else + map[current_cell] = FLOOR_CHAR + +/datum/random_map/building/handle_post_overlay_on(var/datum/random_map/target_map, var/tx, var/ty) + var/list/possible_doors + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + if(!within_bounds(current_cell)) + continue + if(!(x == 1 || y == 1 || x == limit_x || y == limit_y)) + continue + if(tx+x > target_map.limit_x) + continue + if(ty+y > target_map.limit_y) + continue + + var/place_door + // #.# ... .## ##. + // #X# #X# .X. .X. == place a door + // ... # # .## ##. + + // (tx+x)-1,(ty+y-1) (tx+x),(ty+y)-1 (tx+x)+1,(ty+y)-1 + // (tx+x)-1,(ty+y) (tx+x),(ty+y) (tx+x)+1,(ty+y) + // (tx+x)-1,(ty+y+1) (tx+x),(ty+y)+1 (tx+x)+1,(ty+y)+1 + + + if(place_door) + possible_doors |= target_map.get_map_cell(tx+x,ty+y) + + if(possible_doors.len) + // Place at least one door. + var/placing_door = pick(possible_doors) + possible_doors -= placing_door + target_map.map[placing_door] = DOOR_CHAR + // Keep placing doors until we get bored or lose interest. + while(possible_doors && !prob(30)) + placing_door = pick(possible_doors) + possible_doors -= placing_door + target_map.map[placing_door] = DOOR_CHAR + + return \ No newline at end of file diff --git a/code/modules/random_map/mazes/maze.dm b/code/modules/random_map/mazes/maze.dm new file mode 100644 index 0000000000..557adbd6e8 --- /dev/null +++ b/code/modules/random_map/mazes/maze.dm @@ -0,0 +1,65 @@ +/datum/random_map/maze + descriptor = "maze" + initial_wall_cell = 100 + var/list/checked_coord_cache = list() + var/list/openlist = list() + var/list/closedlist = list() + +/datum/random_map/maze/set_map_size() + // Map has to be odd so that there are walls on all sides. + if(limit_x%2==0) limit_x++ + if(limit_y%2==0) limit_y++ + ..() + +/datum/random_map/maze/generate_map() + + // Grab a random point on the map to begin the maze cutting at. + var/start_x = rand(1,limit_x-2) + var/start_y = rand(1,limit_y-2) + if(start_x%2!=0) start_x++ + if(start_y%2!=0) start_y++ + + // Create the origin cell to start us off. + openlist += new /datum/maze_cell(start_x,start_y) + + while(openlist.len) + // Grab a maze point to use and remove it from the open list. + var/datum/maze_cell/next = pick(openlist) + openlist -= next + if(!isnull(closedlist[next.name])) + continue + + // Preliminary marking-off... + closedlist[next.name] = next + map[get_map_cell(next.x,next.y)] = FLOOR_CHAR + + // Apply the values required and fill gap between this cell and origin point. + if(next.ox && next.oy) + if(next.ox < next.x) + map[get_map_cell(next.x-1,next.y)] = FLOOR_CHAR + else if(next.ox == next.x) + if(next.oy < next.y) + map[get_map_cell(next.x,next.y-1)] = FLOOR_CHAR + else + map[get_map_cell(next.x,next.y+1)] = FLOOR_CHAR + else + map[get_map_cell(next.x+1,next.y)] = FLOOR_CHAR + + // Grab valid neighbors for use in the open list! + add_to_openlist(next.x,next.y+2,next.x,next.y) + add_to_openlist(next.x-2,next.y,next.x,next.y) + add_to_openlist(next.x+2,next.y,next.x,next.y) + add_to_openlist(next.x,next.y-2,next.x,next.y) + + // Cleanup. Map stays in memory for display proc. + checked_coord_cache.Cut() + openlist.Cut() + closedlist.Cut() + +/datum/random_map/maze/proc/add_to_openlist(var/tx, var/ty, var/nx, var/ny) + if(tx < 1 || ty < 1 || tx > limit_x || ty > limit_y || !isnull(checked_coord_cache["[tx]-[ty]"])) + return 0 + checked_coord_cache["[tx]-[ty]"] = 1 + map[get_map_cell(tx,ty)] = DOOR_CHAR + var/datum/maze_cell/new_cell = new(tx,ty,nx,ny) + openlist |= new_cell diff --git a/code/modules/random_map/mazes/maze_cell.dm b/code/modules/random_map/mazes/maze_cell.dm new file mode 100644 index 0000000000..0b4fa1ac86 --- /dev/null +++ b/code/modules/random_map/mazes/maze_cell.dm @@ -0,0 +1,18 @@ +var/maze_cell_count = 0 + +/datum/maze_cell + var/name + var/uid + var/x + var/y + var/ox + var/oy + +/datum/maze_cell/New(var/nx,var/ny,var/nox,var/noy) + maze_cell_count++ + uid = maze_cell_count + name = "cell #[uid]" + x = nx + y = ny + ox = nox + oy = noy \ No newline at end of file diff --git a/code/modules/random_map/mining_distribution.dm b/code/modules/random_map/mining_distribution.dm deleted file mode 100644 index 7973ff14ab..0000000000 --- a/code/modules/random_map/mining_distribution.dm +++ /dev/null @@ -1,242 +0,0 @@ -#define MIN_SURFACE_COUNT 500 -#define MIN_RARE_COUNT 200 -#define MIN_DEEP_COUNT 100 -#define RESOURCE_HIGH_MAX 4 -#define RESOURCE_HIGH_MIN 2 -#define RESOURCE_MID_MAX 3 -#define RESOURCE_MID_MIN 1 -#define RESOURCE_LOW_MAX 1 -#define RESOURCE_LOW_MIN 0 - -/* -Surface minerals: - silicates - iron - gold - silver -Rare minerals: - uranium - diamond -Deep minerals: - phoron - osmium (platinum) - tritium (hydrogen) -*/ - -/datum/random_map/ore - - descriptor = "resource distribution map" - real_size = 65 // Must be (power of 2)+1 for diamond-square. - cell_range = 255 // These values are used to seed ore values rather than to determine a turf type. - iterations = 0 // We'll handle iterating on our end (recursive, with args). - - var/chunk_size = 4 // Size each cell represents on map - var/random_variance_chance = 25 // % chance of applying random_element. - var/random_element = 0.5 // Determines the variance when smoothing out cell values. - var/deep_val = 0.8 // Threshold for deep metals, set in new as percentage of cell_range. - var/rare_val = 0.7 // Threshold for rare metal, set in new as percentage of cell_range. - var/cell_base // Set in New() - var/initial_cell_range // Set in New() - -/datum/random_map/ore/New() - rare_val = cell_range * rare_val - deep_val = cell_range * deep_val - - initial_cell_range = cell_range/5 - cell_base = cell_range/2 - ..() - -/datum/random_map/ore/check_map_sanity() - - var/rare_count = 0 - var/surface_count = 0 - var/deep_count = 0 - - // Increment map sanity counters. - for(var/value in map) - if(value < rare_val) - surface_count++ - else if(value < deep_val) - rare_count++ - else - deep_count++ - // Sanity check. - if(surface_count < MIN_SURFACE_COUNT) - admin_notice("Insufficient surface minerals. Rerolling...", R_DEBUG) - return 0 - else if(rare_count < MIN_RARE_COUNT) - admin_notice("Insufficient rare minerals. Rerolling...", R_DEBUG) - return 0 - else if(deep_count < MIN_DEEP_COUNT) - admin_notice("Insufficient deep minerals. Rerolling...", R_DEBUG) - return 0 - else - return 1 - -//Halfassed diamond-square algorithm with some fuckery since it's a single dimension array. -/datum/random_map/ore/seed_map() - - // Instantiate the grid. - for(var/x = 1, x <= real_size, x++) - for(var/y = 1, y <= real_size, y++) - map[get_map_cell(x,y)] = 0 - - // Now dump in the actual random data. - map[get_map_cell(1,1)] = cell_base+rand(initial_cell_range) - map[get_map_cell(1,real_size)] = cell_base+rand(initial_cell_range) - map[get_map_cell(real_size,real_size)] = cell_base+rand(initial_cell_range) - map[get_map_cell(real_size,1)] = cell_base+rand(initial_cell_range) - iterate(1,1,1,(real_size-1)) // Start the recursion here. - -/datum/random_map/ore/display_map(atom/user) - - if(!user) - user = world - - for(var/x = 1, x <= real_size, x++) - var/line = "" - for(var/y = 1, y <= real_size, y++) - var/current_cell = get_map_cell(x,y) - if(within_bounds(current_cell) && map[current_cell]) - if(map[current_cell] < rare_val) - line += "S" - else if(map[current_cell] < deep_val) - line += "R" - else - line += "D" - else - line += "X" - user << line - -/datum/random_map/ore/iterate(var/iteration,var/x,var/y,var/input_size) - - // Infinite loop check! - if(iteration>=iterate_before_fail) - admin_notice("Iteration count exceeded, aborting.", R_DEBUG) - return - - var/isize = input_size - var/hsize = round(input_size/2) - - /* - (x,y+isize)----(x+hsize,y+isize)----(x+size,y+isize) - | | | - | | | - | | | - (x,y+hsize)----(x+hsize,y+hsize)----(x+isize,y) - | | | - | | | - | | | - (x,y)----------(x+hsize,y)----------(x+isize,y) - */ - // Central edge values become average of corners. - map[get_map_cell(x+hsize,y+isize)] = round((\ - map[get_map_cell(x,y+isize)] + \ - map[get_map_cell(x+isize,y+isize)] \ - )/2) - - map[get_map_cell(x+hsize,y)] = round(( \ - map[get_map_cell(x,y)] + \ - map[get_map_cell(x+isize,y)] \ - )/2) - - map[get_map_cell(x,y+hsize)] = round(( \ - map[get_map_cell(x,y+isize)] + \ - map[get_map_cell(x,y)] \ - )/2) - - map[get_map_cell(x+isize,y+hsize)] = round(( \ - map[get_map_cell(x+isize,y+isize)] + \ - map[get_map_cell(x+isize,y)] \ - )/2) - - // Centre value becomes the average of all other values + possible random variance. - var/current_cell = get_map_cell(x+hsize,y+hsize) - map[current_cell] = round((map[get_map_cell(x+hsize,y+isize)]+map[get_map_cell(x+hsize,y)]+map[get_map_cell(x,y+hsize)]+map[get_map_cell(x+isize,y)])/4) - - if(prob(random_variance_chance)) - map[current_cell] *= (rand(1,2)==1 ? (1.0-random_element) : (1.0+random_element)) - map[current_cell] = max(0,min(cell_range,map[current_cell])) - - // Recurse until size is too small to subdivide. - if(isize>3) - sleep(-1) - iteration++ - iterate(iteration, x, y, hsize) - iterate(iteration, x+hsize, y, hsize) - iterate(iteration, x, y+hsize, hsize) - iterate(iteration, x+hsize, y+hsize, hsize) - -/datum/random_map/ore/apply_to_map() - for(var/x = 0, x < real_size, x++) - if((origin_x + x) > limit_x) continue - for(var/y = 0, y < real_size, y++) - if((origin_y + y) > limit_y) continue - sleep(-1) - apply_to_turf(x,y) - -/datum/random_map/ore/apply_to_turf(var/x,var/y) - - var/tx = origin_x+((x-1)*chunk_size) - var/ty = origin_y+((y-1)*chunk_size) - - for(var/i=0,ilimit_y) - continue - for(var/j=0,jlimit_x) - continue - - var/turf/T = locate(tx+j, ty+i, origin_z) - if(!T || !T.has_resources) - continue - - sleep(-1) - - T.resources = list() - T.resources["silicates"] = rand(3,5) - T.resources["carbonaceous rock"] = rand(3,5) - - var/current_cell = map[get_map_cell(x,y)] - if(current_cell < rare_val) // Surface metals. - T.resources["iron"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) - T.resources["gold"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) - T.resources["silver"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) - T.resources["uranium"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) - T.resources["diamond"] = 0 - T.resources["phoron"] = 0 - T.resources["osmium"] = 0 - T.resources["hydrogen"] = 0 - else if(current_cell < deep_val) // Rare metals. - T.resources["gold"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["silver"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["uranium"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["phoron"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["osmium"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["hydrogen"] = 0 - T.resources["diamond"] = 0 - T.resources["iron"] = 0 - else // Deep metals. - T.resources["uranium"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) - T.resources["diamond"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX) - T.resources["phoron"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) - T.resources["osmium"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX) - T.resources["hydrogen"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) - T.resources["iron"] = 0 - T.resources["gold"] = 0 - T.resources["silver"] = 0 - - return - -/datum/random_map/ore/cleanup() - return 1 - -#undef MIN_SURFACE_COUNT -#undef MIN_RARE_COUNT -#undef MIN_DEEP_COUNT -#undef RESOURCE_HIGH_MAX -#undef RESOURCE_HIGH_MIN -#undef RESOURCE_MID_MAX -#undef RESOURCE_MID_MIN -#undef RESOURCE_LOW_MAX -#undef RESOURCE_LOW_MIN \ No newline at end of file diff --git a/code/modules/random_map/noise/desert.dm b/code/modules/random_map/noise/desert.dm new file mode 100644 index 0000000000..1c7ca229a4 --- /dev/null +++ b/code/modules/random_map/noise/desert.dm @@ -0,0 +1,40 @@ +/datum/random_map/noise/desert + descriptor = "desert" + smoothing_iterations = 3 + +/datum/random_map/noise/desert/replace_space + descriptor = "desert (replacement)" + target_turf_type = /turf/space + +/datum/random_map/noise/desert/get_map_char(var/value) + return "[pick(list(",",".","'","`"))]" + +/datum/random_map/noise/desert/get_appropriate_path(var/value) + var/val = min(9,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + switch(val) + if(0 to 1) + return /turf/simulated/floor/beach/water + else + return /turf/simulated/floor/beach/sand/desert + +/datum/random_map/noise/desert/get_additional_spawns(var/value, var/turf/T) + var/val = min(9,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + switch(val) + if(2 to 3) + if(prob(60)) + var/grass_path = pick(typesof(/obj/structure/flora/grass)-/obj/structure/flora/grass) + new grass_path(T) + if(prob(5)) + var/mob_type = pick(list(/mob/living/simple_animal/lizard, /mob/living/simple_animal/mouse)) + new mob_type(T) + if(5 to 6) + if(prob(20)) + var/grass_path = pick(typesof(/obj/structure/flora/grass)-/obj/structure/flora/grass) + new grass_path(T) + if(7 to 9) + if(prob(60)) + new /obj/structure/flora/bush(T) + else if(prob(20)) + new /obj/structure/flora/tree/dead(T) diff --git a/code/modules/random_map/noise/magma.dm b/code/modules/random_map/noise/magma.dm new file mode 100644 index 0000000000..64d649fd4e --- /dev/null +++ b/code/modules/random_map/noise/magma.dm @@ -0,0 +1,44 @@ +// This is basically filler at this point. Subsidence and all kinds of fun +// hazards will be included when it is done. +/datum/random_map/noise/volcanism + descriptor = "volcanism" + smoothing_iterations = 6 + target_turf_type = /turf/simulated + +// Get rid of those dumb little single-tile volcanic areas. +/datum/random_map/noise/volcanism/cleanup() + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + if(map[current_cell] < 178) + continue + var/count + var/tmp_cell = get_map_cell(x+1,y+1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x-1,y-1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x+1,y-1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x-1,y+1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x-1,y) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x,y-1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x+1,y) + if(tmp_cell && map[tmp_cell] >= 178) count++ + tmp_cell = get_map_cell(x,y+1) + if(tmp_cell && map[tmp_cell] >= 178) count++ + if(!count) + map[current_cell] = 177 + +/datum/random_map/noise/volcanism/get_appropriate_path(var/value) + return + +/datum/random_map/noise/volcanism/get_additional_spawns(var/value, var/turf/T) + if(value>=178) + if(istype(T,/turf/simulated/floor/plating/airless/asteroid)) + T.ChangeTurf(/turf/simulated/floor/airless/lava) + else if(istype(T,/turf/simulated/mineral)) + var/turf/simulated/mineral/M = T + M.mined_turf = /turf/simulated/floor/airless/lava \ No newline at end of file diff --git a/code/modules/random_map/noise/noise.dm b/code/modules/random_map/noise/noise.dm new file mode 100644 index 0000000000..7e4323158e --- /dev/null +++ b/code/modules/random_map/noise/noise.dm @@ -0,0 +1,168 @@ +// NOTE: Maps generated with this datum as the base are not DIRECTLY compatible with maps generated from +// the automata, building or maze datums, as the noise generator uses 0-255 instead of WALL_CHAR/FLOOR_CHAR. +// TODO: Consider writing a conversion proc for noise-to-regular maps. +/datum/random_map/noise + descriptor = "distribution map" + var/cell_range = 255 // These values are used to seed ore values rather than to determine a turf type. + var/cell_smooth_amt = 5 + var/random_variance_chance = 25 // % chance of applying random_element. + var/random_element = 0.5 // Determines the variance when smoothing out cell values. + var/cell_base // Set in New() + var/initial_cell_range // Set in New() + var/smoothing_iterations = 0 + +/datum/random_map/noise/New() + initial_cell_range = cell_range/5 + cell_base = cell_range/2 + ..() + +/datum/random_map/noise/set_map_size() + // Make sure the grid is a square with limits that are + // (n^2)+1, otherwise diamond-square won't work. + if(!IsPowerOfTwo((limit_x-1))) + limit_x = RoundUpToPowerOfTwo(limit_x) + 1 + if(!IsPowerOfTwo((limit_y-1))) + limit_y = RoundUpToPowerOfTwo(limit_y) + 1 + // Sides must be identical lengths. + if(limit_x > limit_y) + limit_y = limit_x + else if(limit_y > limit_x) + limit_x = limit_y + ..() + +// Diamond-square algorithm. +/datum/random_map/noise/seed_map() + // Instantiate the grid. + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + map[get_map_cell(x,y)] = 0 + + // Now dump in the actual random data. + map[get_map_cell(1,1)] = cell_base+rand(initial_cell_range) + map[get_map_cell(1,limit_y)] = cell_base+rand(initial_cell_range) + map[get_map_cell(limit_x,limit_y)] = cell_base+rand(initial_cell_range) + map[get_map_cell(limit_x,1)] = cell_base+rand(initial_cell_range) + +/datum/random_map/noise/generate_map() + // Begin recursion. + subdivide(1,1,1,(limit_y-1)) + +/datum/random_map/noise/get_map_char(var/value) + var/val = min(9,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + return "[val]" + +/datum/random_map/noise/proc/subdivide(var/iteration,var/x,var/y,var/input_size) + + var/isize = input_size + var/hsize = round(input_size/2) + + /* + (x,y+isize)----(x+hsize,y+isize)----(x+size,y+isize) + | | | + | | | + | | | + (x,y+hsize)----(x+hsize,y+hsize)----(x+isize,y) + | | | + | | | + | | | + (x,y)----------(x+hsize,y)----------(x+isize,y) + */ + // Central edge values become average of corners. + map[get_map_cell(x+hsize,y+isize)] = round((\ + map[get_map_cell(x,y+isize)] + \ + map[get_map_cell(x+isize,y+isize)] \ + )/2) + + map[get_map_cell(x+hsize,y)] = round(( \ + map[get_map_cell(x,y)] + \ + map[get_map_cell(x+isize,y)] \ + )/2) + + map[get_map_cell(x,y+hsize)] = round(( \ + map[get_map_cell(x,y+isize)] + \ + map[get_map_cell(x,y)] \ + )/2) + + map[get_map_cell(x+isize,y+hsize)] = round(( \ + map[get_map_cell(x+isize,y+isize)] + \ + map[get_map_cell(x+isize,y)] \ + )/2) + + // Centre value becomes the average of all other values + possible random variance. + var/current_cell = get_map_cell(x+hsize,y+hsize) + map[current_cell] = round(( \ + map[get_map_cell(x+hsize,y+isize)] + \ + map[get_map_cell(x+hsize,y)] + \ + map[get_map_cell(x,y+hsize)] + \ + map[get_map_cell(x+isize,y)] \ + )/4) + + if(prob(random_variance_chance)) + map[current_cell] *= (rand(1,2)==1 ? (1.0-random_element) : (1.0+random_element)) + map[current_cell] = max(0,min(cell_range,map[current_cell])) + + // Recurse until size is too small to subdivide. + if(isize>3) + if(!priority_process) sleep(-1) + iteration++ + subdivide(iteration, x, y, hsize) + subdivide(iteration, x+hsize, y, hsize) + subdivide(iteration, x, y+hsize, hsize) + subdivide(iteration, x+hsize, y+hsize, hsize) + +/datum/random_map/noise/cleanup() + + for(var/i = 1;i<=smoothing_iterations;i++) + var/list/next_map[limit_x*limit_y] + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + + var/current_cell = get_map_cell(x,y) + next_map[current_cell] = map[current_cell] + var/val_count = 0 + var/total = 0 + + // Get the average neighboring value. + var/tmp_cell = get_map_cell(x+1,y+1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x-1,y-1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x+1,y-1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x-1,y+1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x-1,y) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x,y-1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x+1,y) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + tmp_cell = get_map_cell(x,y+1) + if(tmp_cell) + total += map[tmp_cell] + val_count++ + total = round(total/val_count) + + if(abs(map[current_cell]-total) <= cell_smooth_amt) + map[current_cell] = total + else if(map[current_cell] < total) + map[current_cell]+=cell_smooth_amt + else if(map[current_cell] < total) + map[current_cell]-=cell_smooth_amt + map[current_cell] = max(0,min(cell_range,map[current_cell])) + map = next_map \ No newline at end of file diff --git a/code/modules/random_map/noise/ore.dm b/code/modules/random_map/noise/ore.dm new file mode 100644 index 0000000000..5e565df18b --- /dev/null +++ b/code/modules/random_map/noise/ore.dm @@ -0,0 +1,90 @@ +/datum/random_map/noise/ore + descriptor = "ore distribution map" + var/deep_val = 0.8 // Threshold for deep metals, set in new as percentage of cell_range. + var/rare_val = 0.7 // Threshold for rare metal, set in new as percentage of cell_range. + var/chunk_size = 4 // Size each cell represents on map + +/datum/random_map/noise/ore/New() + rare_val = cell_range * rare_val + deep_val = cell_range * deep_val + ..() + +/datum/random_map/noise/ore/check_map_sanity() + + var/rare_count = 0 + var/surface_count = 0 + var/deep_count = 0 + + // Increment map sanity counters. + for(var/value in map) + if(value < rare_val) + surface_count++ + else if(value < deep_val) + rare_count++ + else + deep_count++ + // Sanity check. + if(surface_count < MIN_SURFACE_COUNT) + admin_notice("Insufficient surface minerals. Rerolling...", R_DEBUG) + return 0 + else if(rare_count < MIN_RARE_COUNT) + admin_notice("Insufficient rare minerals. Rerolling...", R_DEBUG) + return 0 + else if(deep_count < MIN_DEEP_COUNT) + admin_notice("Insufficient deep minerals. Rerolling...", R_DEBUG) + return 0 + else + return 1 + +/datum/random_map/noise/ore/apply_to_turf(var/x,var/y) + + var/tx = (origin_x+(x-1))*chunk_size + var/ty = (origin_y+(y-1))*chunk_size + + for(var/i=0,i~" + if(1) + return "~" + if(2) + return "~" + if(3) + return "[pick(list(".",","))]" + if(4) + return "[pick(list(".",","))]" + if(5) + return "[pick(list(".",","))]" + if(6) + return "[pick(list(".",","))]" + if(7) + return "[pick(list("T","t"))]" + if(8) + return "[pick(list("T","t"))]" + if(9) + return "[pick(list("T","t"))]" + +/datum/random_map/noise/tundra/get_appropriate_path(var/value) + var/val = min(9,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + switch(val) + if(0 to 4) + return /turf/simulated/floor/beach/water/ocean + else + return /turf/simulated/floor/snow + +/datum/random_map/noise/tundra/get_additional_spawns(var/value, var/turf/T) + var/val = min(9,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + switch(val) + if(2) + if(prob(5)) + new /mob/living/simple_animal/crab(T) + if(6) + if(prob(60)) + var/grass_path = pick(typesof(/obj/structure/flora/grass)-/obj/structure/flora/grass) + new grass_path(T) + if(prob(5)) + var/mob_type = pick(list(/mob/living/simple_animal/lizard, /mob/living/simple_animal/mouse)) + new mob_type(T) + if(7) + if(prob(60)) + new /obj/structure/flora/bush(T) + else if(prob(30)) + new /obj/structure/flora/tree/pine(T) + else if(prob(20)) + new /obj/structure/flora/tree/dead(T) + if(8) + if(prob(70)) + new /obj/structure/flora/tree/pine(T) + else if(prob(30)) + new /obj/structure/flora/tree/dead(T) + else + new /obj/structure/flora/bush(T) + if(9) + new /obj/structure/flora/tree/pine(T) diff --git a/code/modules/random_map/random_map.dm b/code/modules/random_map/random_map.dm index 81def6be14..ced9f009b9 100644 --- a/code/modules/random_map/random_map.dm +++ b/code/modules/random_map/random_map.dm @@ -1,173 +1,206 @@ -#define ORE_COUNT 1000 -/* - This module is used to generate the debris fields/distribution maps/procedural stations. -*/ - +// Generates cave systems for the asteroid, and places ore tiles. var/global/list/random_maps = list() +var/global/list/map_count = list() /datum/random_map - var/descriptor = "asteroid" // Display name. - var/real_size = 246 // Size of each edge (must be square :(). - var/cell_range = 2 // Random range for initial cells. - var/iterations = 5 // Number of times to apply the automata rule. + + // Strings. + var/name // Set in New() + var/descriptor = "random map" // Display name. + + // Locator/value vars. + var/initial_wall_cell = 100 // % Chance that a cell will be seeded as a wall. var/max_attempts = 5 // Fail if a sane map isn't generated by this point. - var/raw_map_size // Used for creating new maps each iteration. Value must be real_size^2 - var/list/map = list() // Actual map. var/origin_x = 1 // Origin point, left. var/origin_y = 1 // Origin point, bottom. var/origin_z = 1 // Target Z-level. - var/limit_x = 256 // Maximum x bound. - var/limit_y = 256 // Maximum y bound. - var/iterate_before_fail = 120 // Infinite loop safeguard. + var/limit_x = 128 // Default x size. + var/limit_y = 128 // Default y size. + var/auto_apply = 1 + + // Turf paths. + var/wall_type = /turf/simulated/wall + var/floor_type = /turf/simulated/floor + var/target_turf_type + + // Storage for the final iteration of the map. + var/list/map = list() // Actual map. + + // If set, all sleep(-1) calls will be skipped. + // Test to see if rand_seed() can be used reliably. + var/priority_process + +/datum/random_map/New(var/seed, var/tx, var/ty, var/tz, var/tlx, var/tly, var/do_not_apply, var/do_not_announce) + + // Store this for debugging. + if(!map_count[descriptor]) + map_count[descriptor] = 1 + else + map_count[descriptor]++ + name = "[descriptor] #[map_count[descriptor]]" + random_maps[name] = src + + // Get origins for applying the map later. + origin_x = (!isnull(tx) ? tx : 1) + origin_y = (!isnull(ty) ? ty : 1) + origin_z = (!isnull(tz) ? tz : 1) + if(tlx) limit_x = tlx + if(tly) limit_y = tly + + if(do_not_apply) + auto_apply = null + + // Initialize map. + set_map_size() + + var/start_time = world.timeofday + if(!do_not_announce) admin_notice("Generating [name].", R_DEBUG) + sleep(-1) + + // Testing needed to see how reliable this is (asynchronous calls, called during worldgen), DM ref is not optimistic + if(seed) + rand_seed(seed) + priority_process = 1 + + for(var/i = 0;i[capitalize(name)] generation completed in [round(0.1*(world.timeofday-start_time),0.1)] seconds.", R_DEBUG) + return + if(!do_not_announce) admin_notice("[capitalize(name)] failed to generate ([round(0.1*(world.timeofday-start_time),0.1)] seconds): could not produce sane map.", R_DEBUG) /datum/random_map/proc/get_map_cell(var/x,var/y) - return ((y-1)*real_size)+x + var/cell = ((y-1)*limit_x)+x + if((cell < 1) || (cell > map.len)) + return null + else + return cell + +/datum/random_map/proc/get_map_char(var/value) + switch(value) + if(WALL_CHAR) + return "#" + if(FLOOR_CHAR) + return "." + if(DOOR_CHAR) + return "D" + if(ROOM_TEMP_CHAR) + return "+" + if(MONSTER_CHAR) + return "M" + if(ARTIFACT_TURF_CHAR) + return "_" + if(ARTIFACT_CHAR) + return "A" + else + return " " /datum/random_map/proc/display_map(atom/user) if(!user) user = world - for(var/x = 1, x <= real_size, x++) - var/line = "" - for(var/y = 1, y <= real_size, y++) + var/dat = "+------+
" + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) var/current_cell = get_map_cell(x,y) if(within_bounds(current_cell)) - if(map[current_cell] == 2) - line += "#" - else - line += "." - user << line - -/datum/random_map/New(var/seed, var/tx, var/ty, var/tz, var/tlx, var/tly) - - // Store this for debugging. - random_maps |= src - - // Initialize map. - set_map_size() - - // Get origins for applying the map later. - if(tx) origin_x = tx - if(ty) origin_y = ty - if(tz) origin_z = tz - if(tlx) limit_x = tlx - if(tly) limit_y = tly - - // testing needed to see how reliable this is (asynchronous calls, called during worldgen), DM ref is not optimistic - if(seed) rand_seed(seed) - - var/start_time = world.timeofday - admin_notice("Generating [descriptor].", R_DEBUG) - for(var/i = 0;i[capitalize(descriptor)] generation completed in [round(0.1*(world.timeofday-start_time),0.1)] seconds.", R_DEBUG) - return - admin_notice("[capitalize(descriptor)] generation failed in [round(0.1*(world.timeofday-start_time),0.1)] seconds: could not produce sane map.", R_DEBUG) + dat += get_map_char(map[current_cell]) + dat += "
" + user << "[dat]+------+
" /datum/random_map/proc/within_bounds(var/val) - return (val>0) && (val<=raw_map_size) + if(!islist(map)) + set_map_size() + return (val>0) && (val<=map.len) -/datum/random_map/proc/set_map_size(var/raw_size) - if(!raw_size) - raw_size = real_size * real_size - raw_map_size = raw_size - map.len = raw_map_size +/datum/random_map/proc/set_map_size() + map = list() + map.len = limit_x * limit_y /datum/random_map/proc/seed_map() - for(var/x = 1, x <= real_size, x++) - for(var/y = 1, y <= real_size, y++) + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) var/current_cell = get_map_cell(x,y) - if(prob(55)) - map[current_cell] = 2 + if(prob(initial_wall_cell)) + map[current_cell] = WALL_CHAR else - map[current_cell] = 1 + map[current_cell] = FLOOR_CHAR /datum/random_map/proc/clear_map() - for(var/x = 1, x <= real_size, x++) - for(var/y = 1, y <= real_size, y++) + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) map[get_map_cell(x,y)] = 0 /datum/random_map/proc/generate() seed_map() - for(var/i=1;i<=iterations;i++) - iterate(i) + generate_map() if(check_map_sanity()) cleanup() - apply_to_map() + if(auto_apply) + apply_to_map() return 1 return 0 -/datum/random_map/proc/iterate(var/iteration) - var/list/next_map[raw_map_size] - for(var/x = 1, x <= real_size, x++) - for(var/y = 1, y <= real_size, y++) - var/current_cell = get_map_cell(x,y) - // Sanity check. - if(!within_bounds(current_cell)) - continue - // Copy over original value. - next_map[current_cell] = map[current_cell] - // Check all neighbors. - var/count = 0 - for(var/cell in list(current_cell,get_map_cell(x+1,y+1),get_map_cell(x-1,y-1),get_map_cell(x+1,y-1),get_map_cell(x-1,y+1),get_map_cell(x-1,y),get_map_cell(x,y-1),get_map_cell(x+1,y),get_map_cell(x,y+1))) - if(within_bounds(cell) && map[cell] == 2) - count++ - if(count>=5) - next_map[current_cell] = 2 // becomes a wall - else - next_map[current_cell] = 1 // becomes a floor - map = next_map +// Unused for basic map. +/datum/random_map/proc/generate_map() + return 1 /datum/random_map/proc/check_map_sanity() return 1 -/datum/random_map/proc/apply_to_map() - for(var/x = 0, x < real_size, x++) - if((origin_x + x) > limit_x) continue - for(var/y = 0, y < real_size, y++) - if((origin_y + y) > limit_y) continue - sleep(-1) - apply_to_turf(origin_x+x,origin_y+y) +/datum/random_map/proc/apply_to_map(var/tx, var/ty, var/tz) + if(!tx) tx = isnull(origin_x) ? 1 : origin_x + if(!ty) ty = isnull(origin_y) ? 1 : origin_y + if(!tz) tz = isnull(origin_z) ? 1 : origin_z -/datum/random_map/proc/apply_to_turf(var/x,var/y) + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + if(!priority_process) sleep(-1) + apply_to_turf((tx-1)+x,(ty-1)+y,tz) + +/datum/random_map/proc/apply_to_turf(var/x,var/y,var/z) var/current_cell = get_map_cell(x,y) if(!within_bounds(current_cell)) - return - var/turf/T = locate(x,y,origin_z) - if(!T || !istype(T,/turf/unsimulated/mask)) - return - switch(map[current_cell]) - if(1) - T.ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) - if(2) - T.ChangeTurf(/turf/simulated/mineral) - if(3) - T.ChangeTurf(/turf/simulated/mineral/random) - if(4) - T.ChangeTurf(/turf/simulated/mineral/random/high_chance) + return 0 + var/turf/T = locate(x,y,z) + if(!T || (target_turf_type && !istype(T,target_turf_type))) + return 0 + var/newpath = get_appropriate_path(map[current_cell]) + if(newpath) + T.ChangeTurf(newpath) + get_additional_spawns(map[current_cell],T) + return T + +/datum/random_map/proc/get_appropriate_path(var/value) + switch(value) + if(FLOOR_CHAR) + return floor_type + if(WALL_CHAR) + return wall_type + +/datum/random_map/proc/get_additional_spawns(var/value, var/turf/T) + if(value == DOOR_CHAR) + new /obj/machinery/door/airlock(T) /datum/random_map/proc/cleanup() + return - sleep(-1) - // Create ore. - var/ore_count = ORE_COUNT - while(ore_count) - var/check_cell = get_map_cell(rand(1,real_size),rand(1,real_size)) - if(!(within_bounds(check_cell)) || map[check_cell] != 2) - continue - if(prob(25)) - map[check_cell] = 4 - else - map[check_cell] = 3 - ore_count-- +/datum/random_map/proc/overlay_with(var/datum/random_map/target_map, var/tx, var/ty) + if(!map.len || !istype(target_map)) + return + tx-- // Update origin so that x/y index + ty-- // doesn't push it off-kilter by one. + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + if(!within_bounds(current_cell)) + continue + if(tx+x > target_map.limit_x) + continue + if(ty+y > target_map.limit_y) + continue + target_map.map[target_map.get_map_cell(tx+x,ty+y)] = map[current_cell] + handle_post_overlay_on(target_map,tx,ty) - sleep(-1) - - // Place random asteroid rooms. - var/rooms_placed = 0 - for(var/i = 0, i < max_secret_rooms, i++) - if(make_mining_asteroid_secret()) - rooms_placed++ - admin_notice("Placed [rooms_placed] secrets.", R_DEBUG) - return 1 \ No newline at end of file +/datum/random_map/proc/handle_post_overlay_on(var/datum/random_map/target_map, var/tx, var/ty) + return \ No newline at end of file diff --git a/code/modules/random_map/random_map_verbs.dm b/code/modules/random_map/random_map_verbs.dm new file mode 100644 index 0000000000..6ab98e20b7 --- /dev/null +++ b/code/modules/random_map/random_map_verbs.dm @@ -0,0 +1,107 @@ +/client/proc/print_random_map() + set category = "Debug" + set name = "Display Random Map" + set desc = "Show the contents of a random map." + + if(!holder) return + + var/choice = input("Choose a map to display.") as null|anything in random_maps + if(!choice) + return + var/datum/random_map/M = random_maps[choice] + if(istype(M)) + M.display_map(usr) + +/client/proc/delete_random_map() + set category = "Debug" + set name = "Delete Random Map" + set desc = "Delete a random map." + + if(!holder) return + + var/choice = input("Choose a map to delete.") as null|anything in random_maps + if(!choice) + return + var/datum/random_map/M = random_maps[choice] + random_maps[choice] = null + if(istype(M)) + message_admins("[key_name_admin(usr)] has deleted [M.name].") + log_admin("[key_name(usr)] has deleted [M.name].") + qdel(M) + +/client/proc/create_random_map() + set category = "Debug" + set name = "Create Random Map" + set desc = "Create a random map." + + if(!holder) return + + var/map_datum = input("Choose a map to create.") as null|anything in typesof(/datum/random_map)-/datum/random_map + if(!map_datum) + return + + var/datum/random_map/M + if(alert("Do you wish to customise the map?",,"Yes","No") == "Yes") + var/seed = input("Seed? (blank for none)") as text|null + var/lx = input("X-size? (blank for default)") as num|null + var/ly = input("Y-size? (blank for default)") as num|null + M = new map_datum(seed,null,null,null,lx,ly,1) + else + M = new map_datum(null,null,null,null,null,null,1) + + if(M) + message_admins("[key_name_admin(usr)] has created [M.name].") + log_admin("[key_name(usr)] has created [M.name].") + +/client/proc/apply_random_map() + set category = "Debug" + set name = "Apply Random Map" + set desc = "Apply a map to the game world." + + if(!holder) return + + var/choice = input("Choose a map to apply.") as null|anything in random_maps + if(!choice) + return + var/datum/random_map/M = random_maps[choice] + if(istype(M)) + var/tx = input("X? (default to current turf)") as num|null + var/ty = input("Y? (default to current turf)") as num|null + var/tz = input("Z? (default to current turf)") as num|null + if(isnull(tx) || isnull(ty) || isnull(tz)) + var/turf/T = get_turf(usr) + tx = !isnull(tx) ? tx : T.x + ty = !isnull(ty) ? ty : T.y + tz = !isnull(tz) ? tz : T.z + message_admins("[key_name_admin(usr)] has applied [M.name] at x[tx],y[ty],z[tz].") + log_admin("[key_name(usr)] has applied [M.name] at x[tx],y[ty],z[tz].") + M.apply_to_map(tx,ty,tz) + +/client/proc/overlay_random_map() + set category = "Debug" + set name = "Overlay Random Map" + set desc = "Apply a map to another map." + + if(!holder) return + + var/choice = input("Choose a map as base.") as null|anything in random_maps + if(!choice) + return + var/datum/random_map/base_map = random_maps[choice] + + choice = null + choice = input("Choose a map to overlay.") as null|anything in random_maps + if(!choice) + return + + var/datum/random_map/overlay_map = random_maps[choice] + + if(istype(base_map) && istype(overlay_map)) + var/tx = input("X? (default to 1)") as num|null + var/ty = input("Y? (default to 1)") as num|null + if(!tx) tx = 1 + if(!ty) ty = 1 + message_admins("[key_name_admin(usr)] has applied [overlay_map.name] to [base_map.name] at x[tx],y[ty].") + log_admin("[key_name(usr)] has applied [overlay_map.name] to [base_map.name] at x[tx],y[ty].") + overlay_map.overlay_with(base_map,tx,ty) + base_map.display_map(usr) diff --git a/code/world.dm b/code/world.dm index e74268f9ff..9c78a38cec 100644 --- a/code/world.dm +++ b/code/world.dm @@ -72,9 +72,20 @@ var/global/datum/global_init/init = new () // This is kinda important. Set up details of what the hell things are made of. populate_material_list() - //Create the asteroid Z-level. if(config.generate_asteroid) - new /datum/random_map(null,13,32,5,217,223) + // These values determine the specific area that the map is applied to. + // If you do not use the official Baycode moonbase map, you will need to change them. + //Create the mining Z-level. + new /datum/random_map/automata/cave_system(null,1,1,5,255,255) + //new /datum/random_map/noise/volcanism(null,1,1,5,255,255) // Not done yet! Pretty, though. + // Create the mining ore distribution map. + new /datum/random_map/noise/ore(null, 1, 1, 5, 64, 64) + // Update all turfs to ensure everything looks good post-generation. Yes, + // it's brute-forcey, but frankly the alternative is a mine turf rewrite. + for(var/turf/simulated/mineral/M in world) // Ugh. + M.updateMineralOverlays() + for(var/turf/simulated/floor/plating/airless/asteroid/M in world) // Uuuuuugh. + M.updateMineralOverlays() // Create autolathe recipes, as above. populate_lathe_recipes() diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 259333e27be8299d1e4e33a3235f6cd2d683b338..8ba78e7ad5a525cdf0c33a2dc84248fabd298196 100644 GIT binary patch literal 25185 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 SPdsq$MpBSbk*<<73;rKD10XQ~ diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index 7f0a04754a..945e953347 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -1,8 +1,8 @@ -"aa" = (/turf/space,/area/space) +"aa" = (/turf/unsimulated/mineral,/area/mine/unexplored) "ab" = (/turf/unsimulated/mask,/area/mine/unexplored) -"ac" = (/turf/space,/area/syndicate_station/mining) +"ac" = (/turf/simulated/floor/plating/airless/asteroid,/area/syndicate_station/mining) "ad" = (/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) -"ae" = (/obj/structure/lattice,/turf/space,/area/space) +"ae" = (/turf/simulated/floor/airless/lava,/area/mine/unexplored) "af" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/abandoned) "ag" = (/obj/machinery/door/airlock/external,/turf/simulated/floor,/area/outpost/abandoned) "ah" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) @@ -95,7 +95,7 @@ "bQ" = (/obj/structure/table/standard,/obj/item/weapon/flame/lighter/random,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "bR" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/wood,/area/outpost/research/kitchen) "bS" = (/obj/structure/table/standard,/turf/simulated/floor/wood,/area/outpost/research/kitchen) -"bT" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/lattice,/turf/space,/area/space) +"bT" = (/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) "bU" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "bV" = (/obj/effect/alien/weeds{icon_state = "weeds2"},/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/outpost/abandoned) "bW" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/outpost/abandoned) @@ -164,7 +164,7 @@ "dh" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/lab) "di" = (/turf/simulated/floor{icon_state = "white"},/area/outpost/research/lab) "dj" = (/obj/machinery/conveyor{dir = 1; id = "anolaser"},/obj/machinery/door/window/westleft{dir = 2; layer = 3.1; name = "laser testing"; req_access = list(65)},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/outpost/research/lab) -"dk" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 9},/area/shuttle/alien/mine) +"dk" = (/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) "dl" = (/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 1},/area/shuttle/alien/mine) "dm" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/outpost/research/disposal) "dn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/research/disposal) @@ -225,11 +225,11 @@ "eq" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/research/dock) "er" = (/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/outpost/research/dock) "es" = (/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/outpost/research/dock) -"et" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 5},/area/shuttle/alien/mine) +"et" = (/turf/unsimulated/mask,/area/shuttle/alien/mine) "eu" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 10},/area/shuttle/alien/mine) "ev" = (/obj/structure/grille,/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/outpost/research/dock) "ew" = (/obj/structure/sign/science,/turf/simulated/wall,/area/outpost/research/dock) -"ex" = (/turf/space,/area/shuttle/research/outpost) +"ex" = (/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "ey" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/research/dock) "ez" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "research_outpost_hatch"; locked = 1; name = "Research Outpost Docking Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/outpost/research/dock) "eA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/outpost/research/dock) @@ -261,7 +261,7 @@ "fa" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/turf/simulated/floor/plating,/area/outpost/abandoned) "fb" = (/obj/effect/alien/weeds,/turf/simulated/floor/plating,/area/outpost/abandoned) "fc" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) -"fd" = (/obj/structure/lattice,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/space,/area/space) +"fd" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "fe" = (/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/clothing/suit/space/syndicate,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "ff" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/outpost/abandoned) "fg" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/wood,/area/outpost/research/hallway) @@ -281,7 +281,7 @@ "fu" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/outpost/research/hallway) "fv" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/outpost/research/hallway) "fw" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) -"fx" = (/obj/structure/lattice,/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/space,/area/outpost/abandoned) +"fx" = (/turf/simulated/floor/plating/airless/asteroid,/area/shuttle/research/outpost) "fy" = (/turf/simulated/floor/plating/airless,/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 6},/area/shuttle/alien/mine) "fz" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/outpost/research/hallway) "fA" = (/turf/simulated/floor/plating,/area/outpost/research/disposal) @@ -329,13 +329,13 @@ "gq" = (/obj/effect/alien/weeds,/turf/simulated/floor/airless{icon_state = "floorscorched2"},/area/outpost/abandoned) "gr" = (/obj/machinery/door/airlock,/turf/simulated/floor,/area/outpost/abandoned) "gs" = (/obj/item/weapon/material/shard,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) -"gt" = (/obj/structure/lattice,/turf/space,/area/outpost/abandoned) +"gt" = (/obj/structure/lattice,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/unsimulated/mask,/area/mine/unexplored) "gu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "gv" = (/obj/item/weapon/material/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/outpost/abandoned) "gw" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/outpost/research/eva) "gx" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access = list(65)},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/chemistry) "gy" = (/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"gz" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area/space) +"gz" = (/turf/simulated/floor/airless/lava,/area/mine/explored) "gA" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced,/turf/simulated/floor,/area/outpost/research/hallway) "gB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/structure/window/reinforced,/turf/simulated/floor,/area/outpost/research/hallway) "gC" = (/obj/machinery/door/window/westleft{dir = 2; name = "Locker room"; opacity = 0; req_access = list(65)},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/outpost/research/hallway) @@ -363,7 +363,7 @@ "gY" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/outpost/research/eva) "gZ" = (/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/outpost/research/eva) "ha" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/floor{icon_state = "white"},/area/outpost/research/medical) -"hb" = (/obj/item/weapon/material/shard,/obj/structure/lattice,/turf/space,/area/space) +"hb" = (/turf/simulated/floor/airless/lava,/area/outpost/research/disposal) "hc" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/outpost/abandoned) "hd" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/outpost/abandoned) "he" = (/obj/effect/gibspawner/robot,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/outpost/abandoned) @@ -548,7 +548,7 @@ "kB" = (/turf/simulated/wall,/area/outpost/research/eva) "kC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/research/eva) "kD" = (/turf/simulated/wall,/area/mine/unexplored) -"kE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/space,/area/space) +"kE" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) "kF" = (/obj/structure/grille,/obj/structure/window/reinforced,/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/outpost/research/eva) "kG" = (/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/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/research/eva) "kH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) @@ -587,7 +587,7 @@ "lo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Hallway Port"; dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/outpost/research/hallway) "lp" = (/obj/machinery/mineral/unloading_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/research/eva) "lq" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) -"lr" = (/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"lr" = (/obj/item/weapon/material/shard,/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/unexplored) "ls" = (/obj/structure/table/standard,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_north) "lt" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor,/area/outpost/research/eva) "lu" = (/turf/simulated/wall/r_wall,/area/outpost/research/anomaly_storage) @@ -596,7 +596,7 @@ "lx" = (/obj/machinery/atmospherics/unary/heater{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "ly" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Hallway Starboard"},/turf/simulated/floor{icon_state = "white"},/area/outpost/research/hallway) "lz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Shuttle Dock"; dir = 8},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/outpost/research/dock) -"lA" = (/obj/machinery/conveyor_switch{id = "anosample"; req_access = list(65)},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"lA" = (/obj/structure/lattice,/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/unsimulated/mask,/area/outpost/abandoned) "lB" = (/obj/machinery/power/emitter,/turf/simulated/floor{icon_state = "delivery"},/area/outpost/research/isolation_monitoring) "lC" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/outpost/research/isolation_monitoring) "lD" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) @@ -615,7 +615,7 @@ "lQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "whitepurple"},/area/outpost/research/hallway) "lR" = (/obj/machinery/suspension_gen,/turf/simulated/floor,/area/outpost/research/eva) "lS" = (/obj/machinery/conveyor{dir = 2; id = "anominerals"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/research/eva) -"lT" = (/obj/structure/table/standard,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"lT" = (/obj/structure/lattice,/turf/unsimulated/mask,/area/outpost/abandoned) "lU" = (/obj/machinery/door/airlock/external{id_tag = "riso1"; name = "Access Airlock"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/research/isolation_a) "lV" = (/obj/machinery/door/airlock/external{id_tag = "riso2"; name = "Access Airlock"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/outpost/research/isolation_b) "lW" = (/obj/machinery/atmospherics/unary/freezer{dir = 4; icon_state = "freezer"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) @@ -625,7 +625,7 @@ "ma" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/outpost/research/isolation_monitoring) "mb" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "mc" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/turf/simulated/floor,/area/outpost/research/isolation_monitoring) -"md" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/unsimulated/mask,/area/mine/unexplored) +"md" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "me" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_north_outpost_inner"; locked = 1; name = "Mining External Access"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_north) "mf" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/lights/bulbs{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/lights/tubes{pixel_x = -5; pixel_y = 5},/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/outpost/research/emergency_storage) "mg" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) @@ -738,7 +738,7 @@ "oj" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "ok" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "ol" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) -"om" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"om" = (/obj/structure/lattice,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "on" = (/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers,/turf/simulated/floor{icon_state = "warning"},/area/outpost/research/isolation_monitoring) "oo" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/outpost/research/isolation_monitoring) "op" = (/obj/machinery/portable_atmospherics/canister/phoron,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) @@ -764,7 +764,7 @@ "oJ" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/outpost/abandoned) "oK" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/outpost/research/power) "oL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille/broken,/obj/item/weapon/material/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/outpost/abandoned) -"oM" = (/obj/machinery/light_construct/small,/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 10},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"oM" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "oN" = (/obj/structure/table/standard,/obj/item/weapon/paper/crumpled,/turf/simulated/floor/airless{icon_state = "floorscorched1"},/area/outpost/abandoned) "oO" = (/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Cell A"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_a) "oP" = (/obj/machinery/artifact_analyser,/turf/simulated/floor/bluegrid,/area/outpost/research/isolation_a) @@ -787,15 +787,15 @@ "pg" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) "ph" = (/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Cell C"; dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_c) "pi" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/outpost/abandoned) -"pj" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored) +"pj" = (/obj/structure/ore_box,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "pk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/outpost/research/eva) "pl" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "research_sensor"; pixel_x = -25; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "research_pump"},/turf/simulated/floor{icon_state = "warning"},/area/outpost/research/eva) "pm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/outpost/research/power) "pn" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor{icon_state = "warning"},/area/outpost/research/eva) -"po" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/explored) +"po" = (/obj/structure/closet,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "pp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/structure/cable/blue,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_c) "pq" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_b) -"pr" = (/obj/structure/closet,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"pr" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "ps" = (/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_two"; dir = 8; pixel_x = 22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_b) "pt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/structure/cable/blue,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_b) "pu" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/outpost/research/isolation_a) @@ -820,23 +820,23 @@ "pN" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_c) "pO" = (/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_a) "pP" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Port"; dir = 4},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) -"pQ" = (/obj/structure/table/rack,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"pQ" = (/obj/structure/table/standard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "pR" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_b) "pS" = (/obj/structure/table/standard,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/outpost/abandoned) -"pT" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"pU" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"pV" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"pT" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"pU" = (/obj/structure/table/rack,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"pV" = (/obj/machinery/conveyor_switch{id = "anosample"; req_access = list(65)},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "pW" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_a) "pX" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/turf/simulated/floor,/area/outpost/research/power) "pY" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "pZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"qa" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) -"qb" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) -"qc" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) +"qa" = (/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"qb" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"qc" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "qd" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "qe" = (/turf/simulated/floor/mech_bay_recharge_floor{icon_state = "recharge_floor_asteroid"},/area/mine/explored) "qf" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) -"qg" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/space) +"qg" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "qh" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/maintenance{req_one_access = list(12,65)},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/outpost/research/eva) "qi" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/outpost/engineering/meeting) "qj" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/meeting) @@ -853,23 +853,23 @@ "qu" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Isolation Starboard"; dir = 8},/turf/simulated/floor,/area/outpost/research/isolation_monitoring) "qv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/outpost/engineering/meeting) "qw" = (/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/explored) -"qx" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/space) +"qx" = (/obj/machinery/floodlight,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "qy" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "qz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored) "qA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored) -"qB" = (/turf/space,/area/shuttle/constructionsite/site) +"qB" = (/obj/structure/closet/crate,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "qC" = (/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/explored) "qD" = (/turf/simulated/wall/r_wall,/area/outpost/engineering/atmospherics) -"qE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/space) +"qE" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "qF" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "qG" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor,/area/outpost/engineering/hallway) "qH" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/outpost/engineering/hallway) "qI" = (/obj/machinery/atmospherics/omni/filter{power_rating = 15000; tag_east = 5; tag_north = 1; tag_south = 2; tag_west = 6},/turf/simulated/floor,/area/outpost/engineering/atmospherics) "qJ" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) "qK" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/atmospherics) -"qL" = (/turf/space,/area/mine/unexplored) -"qM" = (/obj/structure/closet/crate,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"qN" = (/obj/machinery/floodlight,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"qL" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"qM" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"qN" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "qO" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/research/eva) "qP" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) "qQ" = (/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -885,10 +885,10 @@ "ra" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "rb" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "eoutpost_dock_pump"},/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "eoutpost_solar_sensor"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "rc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"rd" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/explored) -"re" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) +"rd" = (/obj/machinery/light_construct/small,/obj/structure/table/rack,/obj/item/stack/material/steel{amount = 10},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"re" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "rf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/outpost/research/power) -"rg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) +"rg" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored) "rh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "ri" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored) "rj" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -906,7 +906,7 @@ "rv" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/outpost/research/power) "rw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "rx" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel{amount = 10},/obj/item/stack/material/wood{amount = 30},/obj/item/stack/material/plastic{amount = 10},/turf/simulated/floor,/area/outpost/engineering/storage) -"ry" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"ry" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "rz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "rA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "rB" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored) @@ -967,23 +967,23 @@ "sE" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "sF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/outpost/engineering/hallway) "sG" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) -"sH" = (/turf/simulated/floor/airless,/area/space) +"sH" = (/obj/structure/grille,/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "sI" = (/obj/structure/ore_box,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "research_pump"},/obj/structure/sign/vacuum{pixel_x = 32},/turf/simulated/floor{icon_state = "warning"},/area/outpost/research/eva) "sJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/outpost/engineering/hallway) "sK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "eoutpost_main_airlock"; pixel_x = 0; pixel_y = -25; req_access = list(10); tag_airpump = "eoutpost_main_pump"; tag_chamber_sensor = "eoutpost_main_sensor"; tag_exterior_door = "eoutpost_main_outer"; tag_interior_door = "eoutpost_main_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "eoutpost_main_pump"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/outpost/engineering/hallway) "sL" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "sM" = (/obj/machinery/light_construct/small,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"sN" = (/turf/simulated/floor/plating/airless,/area/space) +"sN" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) "sO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/mine/explored) "sP" = (/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/explored) "sQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "edock_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/outpost/engineering/hallway) -"sR" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) +"sR" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) "sS" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area/mine/explored) -"sT" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/explored) -"sU" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored) -"sV" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/explored) -"sW" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored) -"sX" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) +"sT" = (/obj/machinery/power/solar,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/mine/explored) +"sU" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/mine/explored) +"sV" = (/obj/machinery/light_construct/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"sW" = (/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/mine/explored) +"sX" = (/obj/structure/lattice,/turf/unsimulated/mask,/area/mine/explored) "sY" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) "sZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless,/area/mine/explored) "ta" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) @@ -993,9 +993,9 @@ "te" = (/obj/machinery/light{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) "tf" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) "tg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/explored) -"th" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored) -"ti" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored) -"tj" = (/obj/structure/lattice,/turf/space,/area/mine/explored) +"th" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) +"ti" = (/turf/simulated/floor/plating/airless,/area/mine/explored) +"tj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) "tk" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor,/area/outpost/engineering/hallway) "tl" = (/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/door/firedoor/border_only{dir = 2},/obj/machinery/camera/network/research_outpost{c_tag = "Research Outpost Expedition Airlock"; dir = 4},/turf/simulated/floor/plating,/area/outpost/research/eva) "tm" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1009,7 +1009,7 @@ "tu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/outpost/engineering/hallway) "tv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/engineering/hallway) "tw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_inner"; locked = 1; name = "Engineering Dock Airlock"},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) -"tx" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/explored) +"tx" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/mine/explored) "ty" = (/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/outpost/research/isolation_a) "tz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/outpost/engineering/meeting) "tA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1022,7 +1022,7 @@ "tH" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "tI" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "tJ" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor,/area/outpost/engineering/atmospherics) -"tK" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/space,/area/space) +"tK" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) "tL" = (/obj/machinery/atmospherics/pipe/simple/visible/blue,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "tM" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "outpost_n2_in"; name = "N2 Tank Monitor"; output_tag = "outpost_n2_out"; sensors = list("outpost_n2_sensor" = "Tank")},/obj/structure/sign/securearea{desc = "A warning sign which reads 'COMPRESSED GAS'."; name = "COMPRESSED GAS"; pixel_y = -32},/obj/machinery/light,/turf/simulated/floor,/area/outpost/engineering/atmospherics) "tN" = (/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor,/area/outpost/engineering/atmospherics) @@ -1087,7 +1087,7 @@ "uU" = (/obj/machinery/floodlight,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "uV" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "uW" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/isolation_c) -"uX" = (/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"uX" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/mine/explored) "uY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor,/area/outpost/engineering/hallway) "uZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/outpost/engineering/storage) "va" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1102,7 +1102,7 @@ "vj" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "edock_outer"; locked = 1; name = "Engineering Dock Airlock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/hallway) "vl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/outpost/engineering/hallway) -"vm" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "edock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 0; req_access = list(10)},/turf/space,/area/space) +"vm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/mine/explored) "vn" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver,/obj/item/weapon/crowbar,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored) "vo" = (/obj/machinery/power/solar_control,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor,/area/outpost/engineering/hallway) "vp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1110,7 +1110,7 @@ "vr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vs" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/hallway) "vt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/camera/network/mining{c_tag = "Mining Outpost North - Airlock"},/turf/simulated/floor/plating,/area/outpost/mining_north) -"vu" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/space) +"vu" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "edock_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = 0; req_access = list(10)},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "vv" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/plating,/area/outpost/engineering/power) "vw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/power) "vx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1153,14 +1153,14 @@ "wi" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "wj" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) "wk" = (/obj/machinery/door/airlock/engineering{name = "Restrooms"; req_access = list(10)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/engineering/meeting) -"wl" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/space) +"wl" = (/obj/structure/lattice,/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},/turf/unsimulated/mask,/area/mine/explored) "wm" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/outpost/engineering/hallway) "wn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_engineering{name = "Telecommunications"; req_access = list(10)},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 82.1472; oxygen = 21.8366; temperature = 293.15},/area/outpost/engineering/hallway) "wo" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/outpost/engineering/hallway) "wp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock"},/obj/machinery/door/airlock/glass_engineering{name = "Power Distribution Center"; req_access = list(10)},/turf/simulated/floor,/area/outpost/engineering/hallway) -"wq" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space) -"wr" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/space) -"ws" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/space) +"wq" = (/turf/simulated/floor/plating/airless/asteroid,/area/shuttle/constructionsite/site) +"wr" = (/obj/machinery/light/small,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"ws" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/mine/explored) "wt" = (/obj/structure/table/standard,/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/obj/item/stack/material/glass{amount = 50},/turf/simulated/floor,/area/outpost/engineering/storage) "wu" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc/super{dir = 1; pixel_y = 24},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "wv" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10},/turf/simulated/floor,/area/outpost/engineering/hallway) @@ -1179,7 +1179,7 @@ "wI" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "wJ" = (/obj/structure/table/rack,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/item/stack/cable_coil/yellow,/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/outpost/engineering/storage) "wK" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor/carpet,/area/outpost/engineering/meeting) -"wL" = (/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/space) +"wL" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "wM" = (/obj/machinery/status_display{layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "wN" = (/turf/simulated/wall,/area/outpost/mining_main/east_hall) "wO" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/decal/cleanable/blood/oil,/obj/structure/cable,/obj/machinery/camera/network/mining{c_tag = "Mining Outpost North"; dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_north) @@ -1195,6 +1195,7 @@ "wY" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) "wZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) "xa" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/effect/decal/cleanable/dirt,/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/outpost/mining_north) +"xb" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "xc" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/outpost/mining_main/maintenance) "xd" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/machinery/power/sensor{long_range = 1; name_tag = "Mining Outpost"},/turf/simulated/floor/plating,/area/outpost/mining_main/maintenance) "xe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eoutpost_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(10)},/turf/simulated/floor/plating/airless,/area/outpost/engineering/hallway) @@ -1279,7 +1280,7 @@ "yF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/outpost/mining_main/east_hall) "yG" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "yH" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/mining_main/refinery) -"yI" = (/turf/space,/area/shuttle/mining/outpost) +"yI" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "yJ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "interior access button"; pixel_x = -30; pixel_y = -25; req_one_access = list(13,48)},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "yK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/east_hall) "yL" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/outpost/mining_main/east_hall) @@ -1293,7 +1294,7 @@ "yT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/east_hall) "yU" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor,/area/outpost/mining_main/east_hall) "yV" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) -"yW" = (/turf/space,/area/mine/explored) +"yW" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "yX" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/outpost/mining_main/refinery) "yY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/refinery) "yZ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) @@ -1325,7 +1326,7 @@ "zz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "zA" = (/turf/simulated/wall,/area/outpost/mining_main/eva) "zB" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/outpost/mining_main/eva) -"zC" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"zC" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "zD" = (/obj/machinery/door/window/westleft{name = "Production Area"; req_access = list(48)},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/outpost/mining_main/refinery) "zE" = (/obj/structure/grille,/obj/structure/window/reinforced,/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/outpost/mining_main/eva) "zF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/eva) @@ -1343,13 +1344,13 @@ "zR" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor,/area/outpost/mining_main/west_hall) "zS" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) "zT" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/outpost/mining_main/dorms) -"zU" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "exterior access button"; pixel_x = -8; pixel_y = 25; req_one_access = list(13,48)},/turf/space,/area/space) +"zU" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "zV" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "zW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"},/area/mine/explored) "zX" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/outpost/mining_main/eva) "zY" = (/turf/simulated/floor,/area/outpost/mining_west) "zZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/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/outpost/mining_west) -"Aa" = (/turf/space,/area/skipjack_station/mining) +"Aa" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "Ab" = (/obj/structure/table/standard,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor,/area/outpost/mining_west) "Ac" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_west) "Ad" = (/obj/structure/table/standard,/obj/item/weapon/shovel,/turf/simulated/floor,/area/outpost/mining_west) @@ -1557,12 +1558,12 @@ "DX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored) "DY" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) "DZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored) -"Ea" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating/airless,/area/space) +"Ea" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "Eb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/explored) "Ec" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/explored) "Ed" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/outpost/mining_main/refinery) "Ee" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) -"Ef" = (/obj/structure/lattice,/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},/turf/space,/area/space) +"Ef" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "Eg" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/machinery/mineral/input,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Eh" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Ei" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) @@ -1586,17 +1587,17 @@ "EA" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera/network/mining{c_tag = "Mining Outpost EVA"; dir = 4},/turf/simulated/floor,/area/outpost/mining_main/eva) "EB" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/outpost/engineering/meeting) "EC" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/outpost/engineering/hallway) -"ED" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/space) +"ED" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "EE" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = -9},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 10},/turf/simulated/floor,/area/outpost/mining_main/eva) -"EF" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space) +"EF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/simulated/floor/airless/lava,/area/mine/explored) "EG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/outpost/mining_main/east_hall) -"EH" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) +"EH" = (/obj/structure/lattice,/turf/simulated/floor/airless/lava,/area/mine/explored) "EI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "EJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"EK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating/airless,/area/space) +"EK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/wall,/area/mine/explored) "EL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/mine/explored) -"EM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating/airless,/area/space) -"EN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating/airless,/area/space) +"EM" = (/turf/simulated/floor/plating/airless/asteroid,/area/shuttle/mining/outpost) +"EN" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless/lava,/area/mine/explored) "EO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/outpost/mining_main/east_hall) "EP" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "EQ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "mining_east_pump"},/obj/structure/sign/vacuum{pixel_y = 32},/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/eva) @@ -1622,262 +1623,270 @@ "Fk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/outpost/mining_main/maintenance) "Fl" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "mining_outpost_inner"; locked = 1; name = "Mining Dock Airlock"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor,/area/outpost/mining_main/east_hall) "Fm" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor,/area/outpost/mining_main/refinery) +"Fn" = (/obj/structure/lattice,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "mining_outpost_airlock"; name = "exterior access button"; pixel_x = -8; pixel_y = 25; req_one_access = list(13,48)},/turf/simulated/floor/airless/lava,/area/mine/explored) +"Fo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) +"Fp" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) +"Fq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating/airless,/area/mine/explored) +"Fr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating/airless,/area/mine/explored) +"Fs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating/airless,/area/mine/explored) +"Ft" = (/obj/machinery/light_construct/small,/turf/unsimulated/mask,/area/mine/explored) +"Fu" = (/turf/simulated/floor/plating/airless/asteroid,/area/skipjack_station/mining) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababbaabababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababbbababababababiLiKiKiJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaJaJaJaJaJabbbababababababiMeOeOdHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababaJiNiOjoaJaJbcaJaJaJaGaGaGaGiQiRaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaababababababababaJjbbiiUiVjCbpaKaKiSaiiZjfaibXeOaijaiZaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababaAaAaAaAjpjhiTjrjgjdjdjdccaikrjmjnjkjljijjkdaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaababababaAaAaNaOaAaJaJaJaJaKaKaLaLaMaiaiaiaiaIaHaiaiaiaGazazazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahagafaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaababababaAaBaCaDaEaFasaraqapawavauataiakajaiaoanaiamayaUaxamazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkbmblaeaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaababababaAaWbocVaAbnbAbgbHbAbybxaubzaibubwbvbrbqbtbsbjbBbhfJazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaRaQaSaeaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababaAaWaTdsaAaVbgbfbebdaJbcaJdzaGaGaGaGaZaYaiaXbjbhbhdvazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkdldleubWbVblaeaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeaeaeaeaeabababaAaWcmcnaAclcZcNcabZgxcbcecdcgcfchaGcjcickamamiXamhgazhpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadQdRdSdTbDbCbEaeaeababababababababababababababababababababababababababababababababababababababababababababababababababalalalaeaeaeaeaeaeaeaebTaGaGaGaGaGaGbUaGaGaGaGbFaGaGbIbQbGbLbKbJaGbPbObNbMbSbYbRhVjeiYalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetdldlfycPbVcrabababababababababababababababababababababababababababababababababababababababababababababababababababalalalaaaaaaexexexexexexexaicWcXcUjBcScTcQcRdcdbdejIaGcYdadEdidhdjaGdgdfbNbMbMbMbMbMazalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaecocqcpcrabababababababababababababababababababababababababababababababababababababababababababababababababababababalaaaaaaexexexexexexexcscwcxcyctctcucvctcycFcEcDcCcBcAczcMcMcLcKcJcIcHcGcOdDddazazalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaefdemelekcrababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaexexexexexexexejcwdAdBdCeifFdFdGdYaGeadZaGebedecehdNjQaGdVdUaidWdWdWdWeeefegalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaedLdKdMcrdJdIcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaexexexexexexexdHcwdAdBdCdOdPdFdGdyaGdxdwaGkaaGaGaGaGcCaGkoduaidtdodpdmdndqdrdqdqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegzfifEfHgVfGafbCeYcrfbfacrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaexexexexexexexaifkflfjdCfhdGdFfgfvaGfzfwfsfrfuftfoaGeLeKfmeRaifnfAfBfCfDdqalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaacacacacacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaefcfefiffeUeTeWeVeYeXfaeZfbcrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaeAereseyezeresevewepeqeneneneoeoeoeoeoeSeReQePeOeNeMaGfqfpeJeIaieHeFeGeDeEeCaGaGeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbfcgvfcfEfEdJheeUcrekhdcrfahccrabababababababababababababababababababababababababababababababababababababababababababababababdXaaaaaaaaaagMgPgQgNgOgTgQgRgSgWgXgUhahfeogYgZgweoloeRgBgAgDgCgEaGgGgFgIgHaiaigJaiaiaieReRgKeBeBeBeBgLeBeBeBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaegugsfEfxgtfEcpgqeTgrgpgocrcrcrcrcrcrababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaagngbgcgcgcgcgdgegfggghgigjgkeoglgmfVfUfTeIfXfWeReRfYfweReReJeIgafZfKfLfIlyeReRfMeBfOfPeBfNfRfSfQeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeiCiBhRfEgtiDffiGeUiFcriIiHcriWhKbCiEcrabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaagngQgQgQhWgQlzhUgQibgXhZiahYeogmhXihigijiiidicifieillQimmrikieieieirisitiuinioipiqixiyiziAivmFjceBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeababcrfGhLhPhQhRhThNeTiWafbChKcriWhLhKhMcrababababababababababababababababababababababababababababababababababalalalalalalababababababkDkEaaaaaahrgQgQhihjhyiwgRhhhnhopdhqhkeohlhmhHeoeohGhGhFhuhEhxhuhJhuhIhwhwhwhwhxhuhvhththseBhChDeBhBhzhAiPeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecrcrcrcrcrcrgVeUnUhLeUgqmkiWiWeVeYiIcriWcpeknVcrababababababababababababababababababababababababababababababababalalalgygygygyalalalababsEgygyaaaaaaaanwereseynwnwnwnwnwpMnwnununueopJeonSnTnRhGoTsjhunMnKnLnInJnGoikmkmkmnFhunEnChtnBlulululupHnznyfQeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecrmPeUhRoNcriCnWiBcrgrcroGoHoFcrbClLiFmOcpeleUcrabababababababababababababababababababababababababababababababalalgygygygygygygygyalalabgygyaaaaaaaaaaaaaaaeaekBohogoflnoeodpLqOoanZnYqhoqorosrIrfrvhuopokollDkmnGoEojkmkmmghuoCozhtoBoAovoulueBeBeBeBeBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcrmPcphRcpmUlLhLmShLmTbCbCmNeYbCcpcpcreUmOeUeUcrababababababababababababababababababababababababababababababalalgygygygygygygygygygymQmRgygyaaaaaaaaaaaaaaaaaekBmLllmMlOmImHmJkBkBllmKeomCmDhGhGnPnXhumEmxmbmvmwmAocnAnHmBnfhumqmuhtmtmpmpmoluabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababcrlMhReUcpnscpnrdJcpnqmTnrhKntcpkNekcrlIcpgobCcrabababababababababababababababababababababababababababababalmRgygygygygygygygygygygynDnjgyaeaaaaaaaaaaaaaaaaaekBmLllnppGnmnlllnkkBnneoeonNnOhGoXotoKhupPmVmWmXnQonoomEobmGquhungnhhtnineneneluabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababcrlMlNeUfGcrkPcrlJlKcrcpcrlJlKcreUlLcrdIlHiFlIcrabababababababababababababababababababababababababababababalomgygygygygygygygygygygygygygyaeaaaaaaaaaaaaaaaaaekBlmllqWlnmzjPltmskBlpeoowoxoyhGnamYmZhulxlqlGlDlElBlCkmnbkmkmhulwlvhtlululululuabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababcrcrcrcrcrcrkPcrgokNcphTmmeUhTeUgoffcrmnhSnxmjcrabababababababababababababababababababababababababababababalmQgygygygygygygygygygygygygygyaeaaaaaaaaaaaaaaaeaekBqZlRlPlOnojPndmykBlSeooYoxoyhGnvhGnchulWmbmclZlFlYmalqlqmhmghumimfhtababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababcrkPcrkNekkOhTkMcphKcreUekcrhOkJkJkKcradababababababababababababababababababababababababababababalalgygygyprgygygygygygygygygygyaeaaaaaaaaaaaaaeaeaekBkBkCkFkBkBkGlhkGkBkIeoowpBrVhGkpsekshukVkvkwkYkukzkAlckyknkmhuhththtababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababcrkPcrhTcpbVljeUekgocrkPcrcriWeUkJkKlkadababababababababababababababababababababababababababababallTpTgypUlTpQgygygygygygygygygytjaaaaaaaaaaaetjtjtjgygyqdqeqfkBmllglfkBlieogylrlAhGkSkTkTkUlUkWkXkUlVkZlalblXleldlbababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababcrkPcrcrcrcrcrcrcrcrcrkPcrpSbCeUbCkKpiadababababababababababababababababababababababababababababallTgygygylTpQgygygygygygygyqwqCpjsWsWsWsWsWsWpoqwqCgygygygygykBplpnsIkBpkgygygygyhGpApxpykUpwpupvkUptpqpslbpppEpDlbababmdabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLaaaaaaaaaaqLababababababababababababababcrkPkPkPkPkPkPkPkPkPkPkPcriWeUiFeUiEcradababababababababababababababababababababababababababababalgygygygyqMqNgygygygygygygygyrWqPqPqPqPqPqPqPqPrWgygygygygygykBtlrUkGkBpFrigygygypmpXkTkTkUpWpOoOkUpRuSoRlbpNpKphlbababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababcrcrcrcrcrcrcrcrcrcrcrcrcrcrmjrOoLcrcradababababababababababababababababababababababababababababalgygygygygygygygygygygygygyqwqCrdrerererererereqwqCgygygygygyuXpBrSpCvcpcpeoVoVoVxVoUsyoZkUpbtyoPkUoWtZoSlboQuWpalbabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababadadadcrkJkJeUcradadababababababababababababababababababababababababababababallTpTgygygygygygygygygygyaaaaaaaaaaaaaaaaalalalalalalalalgygygygygygypBpgpCgygyalhGhGhGhGkUkUkUkUkUpfpfpflblblblblbabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababadadadcroJoDoJcradabababababababababababababababababababababababababababababallTgygygygygygygygygygygyaaaaaaaaaaaaaaaaalalalababababalalalalalalalgyjHgygyalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababadadcroIrOmjcradabababababababababababababababababababababababababababababalalpVryoMgygygygygyalalalaaaaaaaaaaaaaaaaaaababababababababalalalalalgyjHgygyalabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababadadadrBrCrDadadababababababababababababababababababababababababababababababalalalmRalgygymQmQalababaaaaaaaaaaaaaaaaaaababababababababababalalalgyjHgygyalababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalababaaaaaaaaaaaaaaaaaaabababababababababababalalgyjHgygyalababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaababaaaaaaaaababababababababababalalgyjqkhgyalababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaabababaaaaaaababababababababababalalgygyjHgyalabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaababaaaaaaababababababababababalalalgyjHgyalalalalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababalalalgyjHgygygygyrHjFjFjFjFjFjFjFjFjFjFjFjFabababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababalalalgyjHgygygygyrJvtkQjYjXkgkfkelsjFkLkbjFababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaabababababababababalalalgykHjSjSjSoVjVjOjNvHmekqjZkxktjWjRjTjFababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaabaaaaaaaaababababababababababalalgykigygygygyjFjFjFjFjFjFjKjJwOjFjMjLjFababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaabababaaaaababababababababababalalgyqqjsjujtjtjvjxjwjzjyxajAjUkcjEjDjGjFababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaabababaaaaaaabababababababababalalgygygykigygyjFjFjFjFkljFjFjFjFjFjFjFjFabababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababalalalalgykigygygygysAkRsCsCalababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababalalalrJkkrigygygygygygygyalababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababalalalpBkjpCgygygygygygygyalababababababababababababababababababababababababababababababaaababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaabababababababababalalalgykigygygygygygygyalalabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaabaaaaabababababababababalalalgykigygyalmQalalalalalababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaabababaaaaababababababababalalalgykigygyalalalababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaabababaaaaaaabababababababalalalgykigyalalabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaababababababalalgykigyalalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababalalgykigygyalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaalalaaaaaaaaaaaaabababababalalgykigygyalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdXalalalaaaaaaaaaaaaabababababalalgyqqqngyalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLabababababababababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdXalaaaaaaaaaaaaaaaaabababababalalgygykigyalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLabababababababababqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalaeaeaeaeaeaeaeaealalababababalmRsEgykigyalababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababababqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalsHsHsHsHsHsHsHsHalalalabababalalgygykigyalababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLabababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalaeaeaeaeaeaeaeaealabababababalgygygykigyalalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaababababababalgygygykigygyalabababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaababababababalgygygykigygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababalgygyrJkkrigyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababalgygypBkjpCgyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalgygykigygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalgypZpYgyalalabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababalalgykigygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababalgygykigyalalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababalalgygykinDmRababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababababqLqLqLqLqLqLqLabababqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababalgygypZpYgyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLababababqLqLqLqLqLqLqLababababababqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalgygykigygyalalabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLababababababqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalgygygygykigygygyalabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLqLabababababqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygykigygygyalabababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababababqLqLqLqLqLqLqLqLababababababqLqLqLababababababqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygykigygygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygykigygygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygykigygygyalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaadXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygykigygygyalalababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaqaqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygykigygygygyalalalalalababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaeaeaaaaaaaaaaaaaaaaaeaaaaaaaeaaaaaaaeaaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygykigygygygygygygygyalalabababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaqgqxqbaaqgqxqbaaqgqxqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygygykigyrJrigygygygygygyalababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeqgqcqbaeqgqcqbaeqgqcqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygygygygygyqqjsqoqpjsjsjsqngygyalalalababababababababababababababababababababababababababababababababqjqjqjqjqjqjqjabaaaaaaaaaeaaaaaaaaaaaeaaaaaeaeaaaaaaqgqcqbaaqgqcqbaaqgqcqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLabababababqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaagygygygygygygygypBpCgygygykigygygygyalababababababababababababababababababababababababababababababababqjqkqmqlrXqiqjababaaaaaaaeaaaaaaaeaaaeaaaeaeaeaeaaaaqgqcqbaaqgqcqbaaqgqcqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaalalgysLgygygygygygygygyqqjsqngygyalalabababababababababababababababababababababababababababababababqjqkqvtzqjqjqjababaaaaaaaeaeaeaeaeaeaeaeaeaaaaaeaeaaqgqcqbaeqgqcqbaeqgqcqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabalalmRalalalalalalgygygygykigygygyalalalabababababababababababababababababababababababababababababqjqkqtqsrXqrqjabababaaaaaeaaaeaaaaaaaeaaaaaaaaaeaaaaqgqcqbaaqgqcqbaaqgqcqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaababababababababalalgygygykigygygygygyalalababababababababababababababababababababababababuyuyuyuyuyvewkveveveqjqjqjabalaaaeaaaeaeaaaaaeaaaaaaaaaaaaaaqgqcqbaaqgqcqbaaqgqcqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalaeaeaeaeaeaeaeaeaeaeaealalalalabababababalalgygyqqjsjsqngygygyalalababababababalalalababababababababababababababuyvbuZEqvJEpuVEoxnvKuOuOqjalalxyaeaaaeaaaaaaaeaeaeaeaeaeaeaeqgqcqbaeqgqcqbaeqgqcqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLababababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalsHsHsHsHsHsHsHsHsHsHsHsHsHsHalalalalababababalgygygygygykigygygygyalalabababalalalgyalababababababababababababababuyuQuRxDuTuUuAuPuNuMuPxLypxMxMiYaeaaaaaaaaaaaeaaaaaeaaaaaaaaqgqcqbaaqgqcqbaaqgqcqbaaaeaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaealalabababababalalgygygygyqqjsjsqngygyalabalalalgygygyalababababababababababababababuyuzuwrxuFuGuAuBuKuJuIuHqjuLuLuLuLuLrMrLrLrNrtrMrNrtaaaaaaaaqgqcqbaaqgqcqbaaqgqcqbaaqaqaqaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalalalgysMgygykigygyalalalgygygygygypzpzpzpzabababababababvMvMvMvMuywJuwwtwHwIEBuPwKwFuIwGvewBwDyqwywxwAwzshwawwwvECrMrLrNaaaaaewLaeaaaewLaeaaaewLaeaaaeaaqaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaababababababababababalalmRgygykigygygygygygygygygygyAwwuwEpzabababababababvMvXvVvWuyvUuwuxvRvTuAuPwjwiuPwhvewgwfwewdwcwbtEshwavZvYxlxmzoxqxewlsNsNsNsNsNsNsNsNsNsNwrwqwsaeqaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLabqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaababababababababababababalalgyqqjsqngygygygygygygygyAwAevSpzababrtrtrtrtabvMvNvOztuyAfvIAyuTvQuAvLvCvBuAvDvevEvGvFvwvvvgvxvzvysvqGEvrMrLrNaaaaaevuaeaaaevuaeaaaevuaeaaaeaaqaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaabababababababababababababalgygygyqygygygygygygygygyAwAeACrtrtrtrtviAWrtrtrtrtwnrtrtrGrGrGrGvhrNrGwRrGvhrNrGvsvrrGwpEtvlvkvpvorGqHEsrtaaaaaaaaqgrgqbaaqgrgqbaaqgrgqbaaqaqaqaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaabababababababababababababalalalrJqzrigygygygygygygypBAzuDuvvPsxulwosJBawCwmsDsFsGtdtetctfsYtctctctrtqtctcxCtktntmtAzgtDtCtvtuBbsptEtFaaaeaaaaqgrgqbaaqgrgqbaaqgrgqbaaaeaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaabababababababababababababababalalAwrQrPrRrRrRrRrRrRrRrRrTswszBzsKsBuksdsdsdBLsoslsmstsdsdsssqsrsdsdvauYBMsdscsbsarZskvdrZsishshtYsQsusvaeaeaeaeqgrgqbaeqgrgqbaeqgrgqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaabababababaaaaaaaaaaaaabababababababababababababababababalalpBqApCgygygygygygygyrJsCrurtrtrtrtrtrtrtrtrtrwrzrArErzrFrGsnrGrKrtrtrtrtrtrtrtrtrtrtrtrMrLrLrNrttwsgrtaaaaaeaaqgrgqbaaqgrgqbaaqgrgqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLababababababababqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababalalalalgyqygygygygygygygygyAwowowalabababababababqDrlrjrkrorprmrnrrrsrqqDababababababababababaaaaaaaarcrhrbrcaaaaaeaaqgrgqbaaqgrgqbaaqgrgqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabqLababababqLqLabababqLqLqLqLqLababababababababqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababalalalalalalgyqygygygygygygygygyAwumalalabababababababqDrlurusuqqQqQqQunuoupqDababababababababababaaaaaaaauuutvquuaeaeaeaeqgrgqbaeqgrgqbaeqgrgqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababalgygygygygygyqygygygygygygygygyAwumalababababababababqDrlujuhuhuiucuguaubDdqDababababababababababaaaaaaaaCQvfvjrtvmaaEfaaqgrgqbaaqgrgqbaaqgrgqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababalgypZjsjsjsjsragyalalgygygygyalalalalababababababababqDrltXqQqQqQtTtPtVtRCgqDabababababababababaaaaaaaaqBqBqBqBqBqBqBaaaaqgrgqbaaqgrgqbaaqgrgqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLabababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababababalgykigygygygysLgyalalalalalalalabababababababababababqDtStOtJtJBZtHtItMtNtLqDababababababababaaaaaaaaaaqBqBqBqBqBqBqBaaaaqgrgqbaeqgrgqbaeqgrgqbaeqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababababababababalgykigyalalalmRalalabababababababababababababababababqDtUqItWqQqDqSqRqDqJqKqDabababababababaaaaaaaaaaaaqBqBqBqBqBqBqBaaaaqgqEqbaaqgqEqbaaqgqEqbaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaababababababababababababababalgykigyalalalalabababababababababababababababababababqDqVqUqTqQqDClqYqDqXCrqDababababababaaaaaaaaaaaaaaqBqBqBqBqBqBqBaaaaaaaeaaaaaaaeaaaaaaaeaaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababababababababqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLabababababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababalgykigyalalalababababababababababababababababababababqDqDqDqDqDqDCBrYqDsfCRqDababababaaaaaaaaaaaaaaaaaaqBqBqBqBqBqBqBaatKqaqaqaqaqaqaqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLababababababqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaababababababababababalalgykigyalalababababababababababababababababababababababababababqDqDqDqDqDqDqDababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLababababqLabqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaabababababababababalgygykigyalalabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLabababqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaababababababababalgygykigyalabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLababababqLqLqLqLababababababqLqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababalalgypZragyalabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLababababqLqLqLababababababqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababalgygyqygygyalabababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLabababqLqLqLabababqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababmRsErJqzrigyalababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababalgypBqApCgyalababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLalalalqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababababababababalgygyqygygyalabababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLalalalalqLqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalaeaeaeaeaeaeaeaeaeaealalabababababababalalgyqygyalalalababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLabababqLqLqLqLqLqLgygyalalqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalsNsNsNsNsNsNsNsNsNalalalabababababababalalgyqygyalalalababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLabababqLqLqLqLqLqLgygygyalqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalaeaeaeaeaealalaeaeaealalabababababababababalgyqygyalalalabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLabababababqLqLqLqLgygygygyalalalalqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaalalalalaaaaaaababababababababababalalgyqygyalalalabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLababababababqLqLqLqLgygygygygyalalalqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaalalalalaaaaaaaaababababababababababalalgyqygyalalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLababqLqLqLqLqLqLqLababqLqLqLqLabababqLqLqLqLqLqLqLgygygygygyalalqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaalalaaaaaaaaaaabababababababababalalalgyqygyalalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLabababababababqLqLqLqLqLababqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLsOgysOgyalalalqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababalalalgyqygyalalabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLabababababababqLqLqLqLqLababqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLsPEnsPgyalqLqLqLqLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalalalgyqygyalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLababababababababqLqLqLqLqLabababqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLqLqLsRsSsTqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalalalgyqygyalalababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLababababababqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLabqLqLqLqLqLqLqLqLqLqLqLqLqLsRsSsUqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalalalgyqygyalabababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLababqLqLqLqLqLqLqLqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLgygyqwqCsVsWsWsWsWsWsWsXsSsUqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababalalalalgyqynDmRababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababqLqLqLqLqLqLqLqLqLqLgygygygyEnsZsZsZsZsZsZsZtatbsUqLqLqLqLqLqLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababalalalalgyqygyalabababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLalgygygyqwtgrerererererethsStitjqLqLqLqLqLalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababalalalgyqygyalabababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLabababqLabababqLqLqLqLqLqLalalalgygygygyqLqLqLqLqLqLsRsSsUqLqLqLalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFtotpabziziziziziziabababababababaaaaaaaaaaaaaaaaaaaaaaaaababababababababababalalalgyqygyalalababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLababqLqLqLqLqLqLqLqLqLqLababalalgygygyqLqLqLqLqLqLqLsRsSsUqLgyalalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababtstpttabziDwEmziDyziabababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababalalalgyqygyalalalalabababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababalalalgygyqLqLqLqLqLqLqLtxsSsUgygyalalalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFmRabzizMzLDADBziabababababababaaaaaaaaaaaaaaaaaaaaabababababababababababababalalgyqygygyalalalalalabababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLqLqLsOEnsOgygyalalalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababtBababziziziziDzzialalalalmRalalaaaaaaaaaaaaaaaaaaaaaaababababababababababababalalgyqygygygyalalalalalababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLgygysPgysPgygygygygygyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababpIababziDwEyziArDFgygygygytGgyalalaaaaaaaaaaaaaaaaaaaaababababababababababababalalgyqygygygygyalalalalalalababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLababababababqLqLqLqLqLqLqLqLqLqLabababababqLqLqLqLqLqLqLqLqLgygygygygygygygyDEDEDEgyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababpIababzizMzLDDzJDCgygygygygygygygygyaaaaaaaaaaaaaaaaaaaaababababababkDmRmRmRmRmRgygyqygygygygygygygyalabalalabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLababababababababqLqLqLqLqLqLqLababababababqLqLqLqLqLqLqLqLqLgygygygygygygygyDVDUDTgyalalalababababababababababababababababababababababababababababababalalalalalalalababababababababababababababababababziDSziziziziziziArDRgygygygygygygygygygygyaaaaaaaaaaaaaaaaaaabababababmRvnsCtQtQvAgyrJqzrigygygygygygygyadabalababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLababababababqLqLqLqLqLqLqLababababababqLqLqLqLalgyzyzyzyzyzyzyDPDQDOzyzyzyzyzygygygyalabababababababababababababababababababababababababababababalalalalalalalalalalalalabababababababababababziziziziDLDMDNziDwEzziDzzixhxhDJCcCdxhgygygygygygyaaaaaaaaaaaaaaaaaaabababalmRudowueueufgyAwDIrPDHAjAjAjAkgygygygygyalabababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLababababababqLqLqLqLqLqLqLabababababqLqLalalalgyzyzxzqzpzszrzuDazwzvznErzlzmsCsCrialalalalabababababababababababababababababababababababababalalalalalalalalalalalalalalalalalabababababababzizhzkzjzIzHzGzizMzLzKzJzizPzOzNzRzNzQgygygygygygygyaaaaaaaaaaaaaaaaaaalalalmRuCuDuEuEpCgyAwzBzAzFzEzAzAzzgygygygygyalababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLabababqLqLqLqLqLqLqLqLabababqLqLabalalalgyzyAdzYAbzZAJBfBeBeBdyxAcAAAIzVzWufalalalalalalabababababababababababababababababababababalalalalalalalalalalalalalalalalalalalalababababababzizTzkzSAoAnAqziziziziArzizPAsAsAuAtAvgygygygygygygyaaaaaaaaaaaaaaaaaagygygygygygygygygygypBzBAgAgAgAizAAlAmAjAkgynDmRalabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLabababqLqLqLqLqLqLqLqLqLqLqLqLqLabalalalgyzyAKAHBnBFBEBkAEAGAFznBgAxEuxvBhufalalalalalalalalalabababababababababababababababababalalalmRalalalalalalalalalalalalalalalalalalalalabababziABADEwASARAQAPAOANAMALzizPAsExAVAUATgygygygygygyaaaaaaaaaaaaaaaaaaaaaaaagygygygygywNwNyKxQzBEAAZAYEEzAzAzAzAAXgygygyalalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLqLqLqLqLababalalalgyzyBjBiBIzsBHBGzYBczyzyzyzyzyzyBhufgygygygygygygyalalalalabababababababababababababababalalgytGgygygygygygygygyrJrigygygygygygyalalalalalababziziziziziziziBmBlBJBmBlzixhxhxhBKxhxhxhBoBpgygyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagygyxOxQBqBxBwBvBuBuBtBsBrEQBAByAXgygygymQalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLqLqLqLqLqLqLqLabababalalgyzyBBBDBCzZzYERzYzYESBXBYBRBVBNBQqpjsjsjsjsjsqngyalalalalalalababababababababababababalalalgypZjsjsjsjsjsjsjsjsqoqpjsjsjsjsqngyalalalalalabababababxhCoCnCmAsAsCpAsAsCjCiAsChAVETCkCkCeCfCcCdEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFyKycCaCbxPBTyGBSzXBUBUCPBWBOBPCxCDgygygymQalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLqLqLabababalalgyzyzyzyzyzyzyzyzyzyzyCqzyzyzyzyowufgygygygygykigygygygyalalalalababababababababababalalgygygykigygygygygygygygypBpCgygygygykigyalalalalalalalalalabxhxhxhxhCLCNCMCGCGCGCFCGCGCICHCKCJCODlCTDlCyCyCyDfCyCyCyEGCyCyCyDfCyCyCyDgEIDgCACzCtxPCsEUCwCvCuBrDjCEEVCCsCsCrigyalalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqLqLabababalalgygygygygygygygygygygyAwEWAhowowowufgysMgygygyqqjsjsqngyalalalalababababababababababalgygypZjspYgygygygyalgygysMgygygygygygykigyalalalalalalalalalalalalalxhCZCYAsAsAsAsCXAsCWCVCUDmAsEXCSCcCdEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHyKycyMDcxPDbxPzBzAzAzAzAzAzAzAzAxXuDxJpCqFmQalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababalalalalalalalalalgygygypBuDuDuDuDDeApalmRalalgygygygykigyalalalalalabababababalalalalalgypZpYgygygyalalalalalalmRalalalalalgykigyalalalalalalmRalalalalalwVwVDiDuDiwXwXDhDtwXwXwXxIDsxIxhDkgygygyaaaaaaaaaeaaaaaaaeaaaaaaaaaaaeaayTxQxPDqDpDoDnxixixjDvDKEgDxDGDrDrDrqFgyalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababalalalalalalalalalalalalabalalalalalgykigygygygygyalalalalalalalalalalalgykigygyalalalabababababalalalalalalgykigygygyrJrigygytGgygyalalalwVwUwTwZwYwXwWxdxcFaEZwXxgxfxtxhgygygygygygyaaaaaeaaaaaaEDaeaeaeaeaeEDaeaewNwMwPFbwQwQwQwQxrwQwSwQwQxsqFqFqFqFgyalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababalalalalgyqqjsjsjsqngygygygygygygygygygygygygykigyalalabababababababalalalalalalgyqqjsjsjsqoqpjsjsjsqngyalalalwVxwxuFcxxwXxzxBxAFeFdwXxExGxFxhgygygygygygyaeaeaeaeaeaeaeyIyIyIyIyIaeaaaawNxkxoxPxWxRykxixixpxixjwQxKgygygygyalalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababalalalgygygygygyqqqngygyrJrigygypZjsjsjsjsjspYgyalabababababababababalalalalalgygygygygypBpCgygygykigygygygywVwVwVwVwVwXxHxNxAFgFfwXFhymxIxhgygygygygygyaaaaaeaaaaaaaeyIyIyIyIyIaeaaxOxQxPxSFiwQwQwQwQwQwQxTxUwQxKgygygyalalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababalalalgysMgygyqqjsjsqoqpjsjspYgygygygygygygyalabababababababababababalalalalalalalgygygygyalgyqqjsjsqngygygygygygywXEYFkDhwXwXwXowysufyZgygygygygyaaaaaaaeaaaaaaaeyIyIyIyIyIydycybyaxZylytyjyiyhygyfyexYxUwQxKgygygyalalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababalalmRalgygygygypBpCgygygygysMgyalalalalalababababababababababababababalalalalalalalalalgygygygykigygygygygygygygyyAowowowowowowufgygygygygygyaeaeaeaeaeaeaeaeyIyIyIyIyIywyEFlyJyvynxPxPxPyuyoyrFjyyyzwQxKgygygyalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababalalalalalalalalalalalmRalalabababababababababababababababababababababababababalalalalalgykigygygygygygygygyyNuDuDuDuDuDuDpCgygygygygygygyaaaaaaaaaaaaaeyIyIyIyIyIyKycyMyLxPyFyDyDyDzDyHyHFmyByCwQxKgygyzCmRabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababalalalalalalalalalalalababababababababababababababababababababababababababababalalalalgyqqjsjsjsjsjsjsjsjsyOjsjsjsjsjsjsjsjsyPgygygygygygyaaaaaaaaaaaeyIyIyIyIyIzUaayTxQyUySxPxPxPyRyQyryrxTyVwQxKgygygyalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababalalalalalababababababababababababababababababababababababababababababababalalalalgygygygygygygygygygygygygygygygygygygyqygyrJrigygygypzyWaaaaaaEDyIyIyIyIyIEDaaaaaazfzeytzdzczbzayYyXyyxUwQxKgygygyalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalalmRsEDYDWDZDXDWDWDWEcEbEaEaEaEaEaEaEaEaEaEaEaEaENEOEPxPElxPEjEkEhEiEeEdwQxKgyalalalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalgygygypBpCgygygypzyWaeaaaaaaaaaaaaaaaaaaaaaaEMzfwNyKxQwNwQwQwQwQwQwQwQxKgyalabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalalalalalalgygygyaeaaaaaaaaaaaaaaaaaaaaaaEKELrRrRrRrRrRrRrRrRrRrRrREJgyalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalgysMgygyaaaaaaaaaaaaaaaaaaaaaaaapzalalalalalalalalalalalalalalababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalmRalalaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalalalabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalababalalalaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalalabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalabababalalalaaaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalalabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalalalalabababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaalalalalalalalalababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaalalalalababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaalalababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaalababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaaaaaAaaaaaaaAaaaaaaaaaaaAaaaaaaaAaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaAaAaAaaaaaaaAaAaAaAaAaAaAaaaaaaaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaAaAaAaaaaaAaAaAaAaAaAaAaAaAaaaaaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaAaAaAaaaaaAaAaAaAaAaAaAaAaAaaaaaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaababababababababababababababaaabababaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaAaAaAaAaAaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaa +aaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaa +aaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalabalalalalababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalgygygygygygyalalalgygyalalalalalalalalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalalababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFgygygygygyacacacacacacacgygygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeabababababababababababababababababababababababababababababababababalgyqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeababababababababababababababababababababababababababababababalalalgyqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeabababababababababababababababababababababababababababababalgygygyqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeaeababababababababababababababababababababababababababababalgygygyqFqFgygygygygyacacacacacacacgygygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeaeababababababababababababababababababababababababababababalgygygyqFqFgygygygygyacacacacacacacgygygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeaeababababababababababababababababababababababababababababalgygygyqFqFgygygygyacacacacacacacacacgygygygyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaebaaeababbTababababababababababababababababababababababababababalgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaebbaeababbTababiLiKiKiJababababababababababababababababababababalgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaJaJaJaJaJabbbababadbTadadiMeOeOdHababababababaeabababababababababababababalgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaJiNiOjoaJaJbcaJaJaJaGaGaGaGiQiRaGaGaGaGababaeaeabababababababababababababalalalgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaJjbbiiUiVjCbpaKaKiSaiiZjfaibXeOaijaiZaGabaeaeaeaeababababababababababababalgyalgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaAaAaAaAjpjhiTjrjgjdjdjdccaikrjmjnjkjljijjkdaGaeaeaeaeaeababababababababababababalgyalgyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaAaAaNaOaAaJaJaJaJaKaKaLaLaMaiaiaiaiaIaHaiaiaiaGazazazaeaeababababababababababababalgygygyqFqFgyacacacacacacacacacacacacacacacgyqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahagafababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaAaBaCaDaEaFasaraqapawavauataiakajaiaoanaiamayaUaxamazaeaeaeabababababababababababalalgygyqFqFacacacacacacacacacacacacacacacacacqFqFgyalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbkbmbldkabababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababababababaAaWbocVaAbnbAbgbHbAbybxaubzaibubwbvbrbqbtbsbjbBbhfJazaeaeaeababababababababababababalgygyqFqFacacacacacacacacacacacacacacacacacqFqFalalababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaPaRaQaSdkabababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygyababababaAaWaTdsaAaVbgbfbebdaJbcaJdzaGaGaGaGaZaYaiaXbjbhbhdvazaeaeaeababababababababababababalgygyqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababetdldleubWbVbldkabababababababababababababababababababababababababababababababababababababababababababababababababababadadgyexexexexexexexexexadadabaAaWcmcnaAclcZcNcabZgxcbcecdcgcfchaGcjcickamamiXamhgazhpaeabababababababababababababalalalqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdQdRdSdTbDbCbEdkdkababababababababababababababababababababababababababababababababababababababababababababababababababgygygyexexexexexexexexfdaGaGaGaGaGaGbUaGaGaGaGbFaGaGbIbQbGbLbKbJaGbPbObNbMbSbYbRhVjeiYalabababababababababababababababalqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababetdldlfycPbVcrabababababababababababababababababababababababababababababababababababababababababababababababababababalgygygygygyfxfxfxfxfxfxfxaicWcXcUjBcScTcQcRdcdbdejIaGcYdadEdidhdjaGdgdfbNbMbMbMbMbMazalalabababababaeabababababababababalqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkcocqcpcrabababababababababababababababababababababababababababababababababababababababababababababababababababadadgygygygyfxfxfxfxfxfxfxcscwcxcyctctcucvctcycFcEcDcCcBcAczcMcMcLcKcJcIcHcGcOdDddazazalalalabababaeaeabaeaeabababababalalqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkgtemelekcrabababababababababababababababababababababababababababababababababababababababababababababababababababadgygygygygyfxfxfxfxfxfxfxejcwdAdBdCeifFdFdGdYaGeadZaGebedecehdNjQaGdVdUaidWdWdWdWeeefeggzgzaeaeaeaeaeaeaeaeabababababalgyqFqFacacacacacacacacacacacacacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkdLdKdMcrdJdIcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababalgygygygygygyfxfxfxfxfxfxfxdHcwdAdBdCdOdPdFdGdyaGdxdwaGkaaGaGaGaGcCaGkoduaidtdodpdmdndqdrhbhbaeaeaeaeaeaeaegzgzgzgzalalalgyqFqFacacacacacgyacacacacacgyacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkkEfifEfHgVfGafbCeYcrfbfacrabababababababababababababababababababababababababababababababababababababababababababababababalgygygygygygyfxfxfxfxfxfxfxaifkflfjdCfhdGdFfgfvaGfzfwfsfrfuftfoaGeLeKfmeRaifnfAfBfCfDhbgzgzgzaeaeaeaeaeaeaegzqFqFqFqFqFqFqFqFqFacacacacacgyacacacacacgyacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkfcfefiffeUeTeWeVeYeXfaeZfbcrabababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyeAereseyezeresevewepeqeneneneoeoeoeoeoeSeReQePeOeNeMaGfqfpeJeIaieHeFeGeDeEeCaGaGeBaeaeaeaeaeaeaegzqFqFqFqFqFqFqFqFqFacacacacacgygygygygygygyacacacacacqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababablrfcgvfcfEfEdJheeUcrekhdcrfahccrabababababababababababababababababababababababababababababababababababababababababababababababalgygygygygygMgPgQgNgOgTgQgRgSgWgXgUhahfeogYgZgweoloeRgBgAgDgCgEaGgGgFgIgHaiaigJaiaiaieReRgKeBeBeBeBgLeBeBeBeBqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkgugsfElAlTfEcpgqeTgrgpgocrcrcrcrcrcrababababababababababababababababababababababababababababababababababababababababababababababgygygygygygngbgcgcgcgcgdgegfggghgigjgkeoglgmfVfUfTeIfXfWeReRfYfweReReJeIgafZfKfLfIlyeReRfMeBfOfPeBfNfRfSfQeBqFqFqFalalalgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalabababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkiCiBhRfElTiDffiGeUiFcriIiHcriWhKbCiEcrabababababababababababababababababababababababababababababababababababababababababababababababgygygygygngQgQgQhWgQlzhUgQibgXhZiahYeogmhXihigijiiidicifieillQimmrikieieieirisitiuinioipiqixiyiziAivmFjceBqFqFqFalabalalalgygygygygygygygygygygygygygyalgygygygyalalabababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkdkdkababcrfGhLhPhQhRhThNeTiWafbChKcriWhLhKhMcrababababababababababababababababababababababababababababababababababalalalalalalababababababkDmdgygygyhrgQgQhihjhyiwgRhhhnhopdhqhkeohlhmhHeoeohGhGhFhuhEhxhuhJhuhIhwhwhwhwhxhuhvhththseBhChDeBhBhzhAiPeBqFqFqFalabababalalalalalalalalalalalalalalalalalalalalalababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkcrcrcrcrcrcrgVeUnUhLeUgqmkiWiWeVeYiIcriWcpeknVcrababababababababababababababababababababababababababababababababalalalgygygygyalalalababsEgygygygygygynwereseynwnwnwnwnwpMnwnununueopJeonSnTnRhGoTsjhunMnKnLnInJnGoikmkmkmnFhunEnChtnBlulululupHnznyfQeBqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdkcrmPeUhRoNcriCnWiBcrgrcroGoHoFcrbClLiFmOcpeleUcrabababababababababababababababababababababababababababababababalalgygygygygygygygyalalabgygygygygygygygygyexomkBohogoflnoeodpLqOoanZnYqhoqorosrIrfrvhuopokollDkmnGoEojkmkmmghuoCozhtoBoAovoulueBeBeBeBeBqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrmPcphRcpmUlLhLmShLmTbCbCmNeYbCcpcpcreUmOeUeUcrababababababababababababababababababababababababababababababalalgygygygygygygygygygyalmRgygygygygygygygygygyomkBmLllmMlOmImHmJkBkBllmKeomCmDhGhGnPnXhumEmxmbmvmwmAocnAnHmBnfhumqmuhtmtmpmpmoluababalalqFqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrlMhReUcpnscpnrdJcpnqmTnrhKntcpkNekcrlIcpgobCcrabababababababababababababababababababababababababababababalalqFqFqFqFqFgygygygygygynDnjgyexgygygygygygygygyomkBmLllnppGnmnlllnkkBnneoeonNnOhGoXotoKhupPmVmWmXnQonoomEobmGquhungnhhtnineneneluabalalqFqFqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrlMlNeUfGcrkPcrlJlKcrcpcrlJlKcreUlLcrdIlHiFlIcrabababababababababababababababababababababababababababababaloMqFqFmRqFqFqFgygygygygygygygyexgygygygygygygygyomkBlmllqWlnmzjPltmskBlpeoowoxoyhGnamYmZhulxlqlGlDlElBlCkmnbkmkmhulwlvhtlululululualalqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrcrcrcrcrcrkPcrgokNcphTmmeUhTeUgoffcrmnhSnxmjcrabababababababababababababababababababababababababababababalpjqFqFqFqFqFqFqFgygygygygygygyexgygygygygygygyexomkBqZlRlPlOnojPndmykBlSeooYoxoyhGnvhGnchulWmbmclZlFlYmalqlqmhmghumimfhtababababalalqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrkPcrkNekkOhTkMcphKcreUekcrhOkJkJkKcradababababababababababababababababababababababababababababalqFqFqFqFpoqFqFqFqFgygygygygygyexgygygygygygyexexomkBkBkCkFkBkBkGlhkGkBkIeoowpBrVhGkpsekshukVkvkwkYkukzkAlckyknkmhuhththtabababalalqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrkPcrhTcpbVljeUekgocrkPcrcriWeUkJkKlkadababababababababababababababababababababababababababababalpQprqFpTpQpUqFqFqFqFgygygygygyexgygygygygyexexexomqFqFqdqeqfkBmllglfkBlieoqFqapVhGkSkTkTkUlUkWkXkUlVkZlalblXleldlbabababababalalqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrkPcrcrcrcrcrcrcrcrcrkPcrpSbCeUbCkKpiadababababababababababababababababababababababababababababalpQqFqFqFpQpUqFqFqFqFqFqFqFqwqCqbqcqcqcqcqcqcqgqwqCqFqFqFqFqFkBplpnsIkBpkqFqFqFqFhGpApxpykUpwpupvkUptpqpslbpppEpDlbababababalalqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrkPkPkPkPkPkPkPkPkPkPkPcriWeUiFeUiEcradababababababababababababababababababababababababababababalqFqFqFqFqBqxqFqFqFqFqFqFqFqFrWqPqPqPqPqPqPqPqPrWqFqFqFqFqFqFkBtlrUkGkBpFriqFqFqFpmpXkTkTkUpWpOoOkUpRuSoRlbpNpKphlbabababalalqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcrcrcrcrcrcrcrcrcrcrcrcrcrcrmjrOoLcrcradababababababababababababababababababababababababababababalqFqFqFqFqFqFqFqFqFqFqFqFqFqwqCqEqLqLqLqLqLqLqLqwqCqFqFqFqFqFqMpBrSpCvcpcpeoVoVoVxVoUsyoZkUpbtyoPkUoWtZoSlboQuWpalbababalalqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadcrkJkJeUcradadababababababababababababababababababababababababababababalpQprqFqFqFqFqFqFqFqFgygygygygygygygygygyalalalalalqFqFqFqFqFqFqFqFqFpBpgpCqFqFqFhGhGhGhGkUkUkUkUkUpfpfpflblblblblbabalalqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadcroJoDoJcradabababababababababababababababababababababababababababababalpQqFqFqFqFqFqFqFqFgygygygygygygygygygygyalalalababababalalalalalalalqFjHqFgyalalalababababababababababababababababalalqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadcroIrOmjcradabababababababababababababababababababababababababababababalqFqNrerdqFqFqFqFgyalalalgygygygygygygygygyababababababababalalalalalqFjHqFgyalalalalalalalalalalalalalalalalalalalalqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadrBrCrDadadababababababababababababababababababababababababababababababqFqFqFmRqFqFqFalalalababgygygygygygygygygyababababababababababalalalqFjHqFgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrgrgrgqFqFalalalalababgygygygygygygygygyabababababababababababalalqFjHqFgyqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyababgygygygyababababababababababalalqFjqkhqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFalalabababababababababababdXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyabababgygygyababababababababababalalqFqFjHqFalalalalalalalalalalalalalalalalalalalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyababgygygyababababababababababalalalqFjHqFalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygyababababababababababalalalqFjHqFgygygyrHjFjFjFjFjFjFjFjFjFjFjFjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygyababababababababababalalalqFjHqFgygygyrJvtkQjYjXkgkfkelsjFkLkbjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyababababababababababalalalqFkHjSjSjSoVjVjOjNvHmekqjZkxktjWjRjTjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyabgygygyabababababababababababalalqFkiqFqFqFqFjFjFjFjFjFjFjKjJwOjFjMjLjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqqjsjujtjtjvjxjwjzjyxajAjUkcjEjDjGjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqFqFkiqFgyjFjFjFjFkljFjFjFjFjFjFjFjFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFkiqFgygygysAkRsCsCalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalrJkkrigygygygygygygyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalpBkjpCgygygygygygygyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFkiqFgygygygygygyalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFkiqFgyalmQalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFkiqFgyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFkiqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFkiqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFkiqFgyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFkiqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqqqnqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqFkiqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalmRsEqFkiqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgyqFkiqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygyqFkiqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygyqFkiqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygyqFkiqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygyrJkkrigyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygypBkjpCgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgyqFkiqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFpZpYqFalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFkiqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFkiqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgyqFkirymRabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFpZpYqFalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalgyqFkiqFqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgygygyqFkiqFgygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFkiqFgygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFkiqFgygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFkiqFgygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyqFkiqFgygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygygygygygygygygygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFkiqFgygyalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgysHsHsHsHsHsHsHsHsHsHsHsHsHsHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFkiqFgygygyalalalalalababababababababababababababababababababababababababababababababababababababadadadadababababababababababexexgyababgygygygygyexgygygyexgygygyexgygysHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFkiqFgygygygygygygyalalababababababababababababababababababababababababababababababababababababababababadgygygygygygygygygygygyexgyababgygygygysRsNsTgysRsNsTgysRsNsTgysHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyqFkiqFrJriqFqFqFqFqFgyalababababababababababababababababababababababababababababababababababababababababababexexexexexexexexexexexexexexexexexexsRsUsTexsRsUsTexsRsUsTexsHgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqqjsqoqpjsjsjsqnqFgyalalalababababababababababababababababababababababababababababababababqjqjqjqjqjqjqjabgygygygyexgygygygygyexgygyexexgygygysRsUsTgysRsUsTgysRsUsTgysHgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyqFqFqFpBpCqFqFqFkiqFqFqFgyalababababababababababababababababababababababababababababababababqjqkqmqlrXqiqjabababababexabababexgyexgyexexexexgygysRsUsTgysRsUsTgysRsUsTgysHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgysLgygygygygygygyqFqqjsqnqFgyalalabababababababababababababababababababababababababababababababqjqkqvtzqjqjqjababgygygyexexexexexexexexexgygyexexgysRsUsTexsRsUsTexsRsUsTexsHgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalmRalalalalalalgyqFqFqFkiqFgygyalalalabababababababababababababababababababababababababababababqjqkqtqsrXqrqjabababababexabexababgyexgygygygyexgygysRsUsTgysRsUsTgysRsUsTgysHgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgygyqFkiqFqFqFqFgyalalababababababababababababababababababababababababuyuyuyuyuyvewkveveveqjqjqjabalabexabexexgygyexgygygygygygygysRsUsTgysRsUsTgysRsUsTgysHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgyqFqqjsjsqnqFgygyalalababababababalalalababababababababababababababuyvbuZEqvJEpuVEoxnvKuOuOqjalalxyexabexgygygyexexexexexexexexsRsUsTexsRsUsTexsRsUsTexsHgygygyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFqFqFqFkiqFqFqFqFalalabababalalalgyalababababababababababababababuyuQuRxDuTuUuAuPuNuMuPxLypxMxMiYexababgygygyexgygyexgygygygysRsUsTgysRsUsTgysRsUsTgyexgygygyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalgygygyqFqqjsjsqnqFgyalabalalalgygygyalababababababababababababababuyuzuwrxuFuGuAuBuKuJuIuHqjuLuLuLuLuLrMrLrLrNrtrMrNrtgygygygysRsUsTgysRsUsTgysRsUsTgysHsHsHgyababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFsVqFqFkiqFgyalalalgygygygygypzpzpzpzabababababababvMvMvMvMuywJuwwtwHwIEBuPwKwFuIwGvewBwDyqwywxwAwzshwawwwvECrMrLrNgygysXsWexgyexsWexgyexsWexgyexgysHgyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalmRgyqFkiqFqFqFgygygygygygygyAwwuwEpzabababababababvMvXvVvWuyvUuwuxvRvTuAuPwjwiuPwhvewgwfwewdwcwbtEshwavZvYxlxmzoxqxethtititititititititititxtjtKexsHgyababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqqjsqnqFgygygygygygygyAwAevSpzababrtrtrtrtabvMvNvOztuyAfvIAyuTvQuAvLvCvBuAvDvevEvGvFvwvvvgvxvzvysvqGEvrMrLrNgygyexuXexgyexuXexgyexuXexgyexgysHgyababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFqFqyqFgygygygygygygyAwAeACrtrtrtrtviAWrtrtrtrtwnrtrtrGrGrGrGvhrNrGwRrGvhrNrGvsvrrGwpEtvlvkvpvorGqHEsrtgygygygysRvmsTgysRvmsTgysRvmsTgysHsHsHgyababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalrJqzriqFqFqFqFqFqFqFpBAzuDuvvPsxulwosJBawCwmsDsFsGtdtetctfsYtctctctrtqtctcxCtktntmtAzgtDtCtvtuBbsptEtFgyexgygysRvmsTgysRvmsTgysRvmsTgyexgygygyababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalAwrQrPrRrRrRrRrRrRrRrRrTswszBzsKsBuksdsdsdBLsoslsmstsdsdsssqsrsdsdvauYBMsdscsbsarZskvdrZsishshtYsQsusvexexexexsRvmsTexsRvmsTexsRvmsTexsHgygygyababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalpBqApCqFqFqFqFqFqFqFrJsCrurtrtrtrtrtrtrtrtrtrwrzrArErzrFrGsnrGrKrtrtrtrtrtrtrtrtrtrtrtrMrLrLrNrttwsgrtgygyexgysRvmsTgysRvmsTgysRvmsTgysHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyqFgygygygygygygyAwowowalabababababababqDrlrjrkrorprmrnrrrsrqqDabababababababadadadgygygygyrcrhrbrcgygyexgysRvmsTgysRvmsTgysRvmsTgysHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalqFqyqFgygygygygygygyAwumalalabababababababqDrlurusuqqQqQqQunuoupqDababababababababadadgygygygyuuutvquuexexexexsRvmsTexsRvmsTexsRvmsTexsHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFqFqFqFqFqyqFgygygygygygygyAwumalababababababababqDrlujuhuhuiucuguaubDdqDabababababababababadgygygygyCQvfvjrtvugywlgysRvmsTgysRvmsTgysRvmsTgysHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFpZjsjsjsjsraqFalalgygygygyalalalalababababababababqDrltXqQqQqQtTtPtVtRCgqDababababababababababgygygywqwqwqwqwqwqwqgygysRvmsTgysRvmsTgysRvmsTgysHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFkiqFqFqFqFwrqFalalalalalalalabababababababababababqDtStOtJtJBZtHtItMtNtLqDababababababababababgygygywqwqwqwqwqwqwqgygysRvmsTexsRvmsTexsRvmsTexsHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFkiqFalalalmRalalabababababababababababababababababqDtUqItWqQqDqSqRqDqJqKqDabababababababababgygygygywqwqwqwqwqwqwqgygysRwssTgysRwssTgysRwssTgysHgygyabababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFkiqFalalalalabababababababababababababababababababqDqVqUqTqQqDClqYqDqXCrqDabababababababababgygygygywqwqwqwqwqwqwqgygygyexgygygyexgygygyexgygysHgygyabababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFkiqFalalalababababababababababababababababababababqDqDqDqDqDqDCBrYqDsfCRqDababababababababababgygygywqwqwqwqwqwqwqgywLsHsHsHsHsHsHsHsHsHsHsHsHsHgygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFkiqFalalababababababababababababababababababababababababababqDqDqDqDqDqDqDababababababababababababgygygygygygygygygygygygygygygygygygygygygygygygygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFkiqFalalabababababababababababababababababababababababababababababababababababababababababababababgygygygygygyabgygygygygygygygygygygygygygygygygygyabababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqFkiqFalababababababababababababababababababababababababababababababababababababababababababababababababgygygyabababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFpZraqFalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFqyqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababmRsErJqzrigyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgypBqApCgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalgyqFqyqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqyqFalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqyqFalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygyalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalqFqyqFalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqyqFalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalqFqyqFalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFqyqFalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababsOgysOgyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFqyqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababsPEnsPgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababxbsSyIabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababxbsSyWabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyqFalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababgygyqwqCzCqcqcqcqcqcqczUsSyWabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyrymRabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababgygygygyEnsZsZsZsZsZsZsZtatbyWabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqyqFalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababalgygygyqwtgqLqLqLqLqLqLAasSEaexabababababalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFqyqFalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababalalalgygygygyababababababxbsSyWabababalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFtotpabziziziziziziabababababababababababababababababababababababababababababalalalqFqyqFalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababalgygygyabababababababxbsSyWabgyalalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababtstpttabziDwEmziDyziabababababababababababababababababababababababababababababalalalqFqyqFalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababalalgygyabababababababEfsSyWgygyalalalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFmRabzizMzLDADBziababababababababababababababababababababababababababababababalalqFqyqFgyalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababsOEnsOgygyalalalalalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababtBababziziziziDzzialalalalmRalalabababababababababababababababababababababababalalqFqyqFgygyalalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygysPqFsPgygygygygygyalalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababpIababziDwEyziArDFgygygygytGgyalalababababababababababababababababababababababalalqFqyqFgygygyalalalalalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygyqFqFqFqFqFDEDEDEqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababpIababzizMzLDDzJDCgygygygygygygygygyababababababababababababababababkDmRmRmRmRmRqFqFqyqFqFgygygygygyalabalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygyqFqFqFqFqFDVDUDTqFqFqFalababababababababababababababababababababababababababababababalalalalalalalababababababababababababababababababziDSziziziziziziArDRgygygygygygygygygygygyababababababababababababababmRvnsCtQtQvAqFrJqzriqFqFqFqFqFqFgyadabalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababalgyzyzyzyzyzyzyDPDQDOzyzyzyzyzyqFqFqFalabababababababababababababababababababababababababababababalalalalalalalalalalalalabababababababababababziziziziDLDMDNziDwEzziDzzixhxhDJCcCdxhgygygygygygyababababababababababababalmRudowueueufqFAwDIrPDHAjAjAjAkqFgygygygyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababalalalgyzyzxzqzpzszrzuDazwzvznErzlzmsCsCrialalalalabababababababababababababababababababababababababalalalalalalalalalalalalalalalalalabababababababzizhzkzjzIzHzGzizMzLzKzJzizPzOzNzRzNzQgygygygygygygyabalalabababalalalalalalmRuCuDuEuEpCqFAwzBzAzFzEzAzAzzqFqFqFqFgyalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababalalalgyzyAdzYAbzZAJBfBeBeBdyxAcAAAIzVzWufalalalalalalabababababababababababababababababababababalalalalalalalalalalalalalalalalalalalalababababababzizTzkzSAoAnAqziziziziArzizPAsAsAuAtAvgygygygygygygygygyalalalalalgygygygygygygygygygygygypBzBAgAgAgAizAAlAmAjAkqFnDmRalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababalalalgyzyAKAHBnBFBEBkAEAGAFznBgAxEuxvBhufalalalalalalalalalabababababababababababababababababalalalmRalalalalalalalalalalalalalalalalalalalalabababziABADEwASARAQAPAOANAMALzizPAsExAVAUATgygygygygygygygygygygygygygygygygygygygygygygywNwNyKxQzBEAAZAYEEzAzAzAzAAXqFgygyalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababalalalgyzyBjBiBIzsBHBGzYBczyzyzyzyzyzyBhufqFqFqFqFqFqFqFalalalalabababababababababababababababalalqFsAqFqFqFqFqFqFqFqFrJriqFqFqFqFqFqFalalalalalababziziziziziziziBmBlBJBmBlzixhxhxhBKxhxhxhBoBpgygygygygygygygygygygygygygygygygygygyxOxQBqBxBwBvBuBuBtBsBrEQBAByAXqFqFqFpjqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababalalgyzyBBBDBCzZzYERzYzYESBXBYBRBVBNBQqpjsjsjsjsjsqnqFalalalalalalababababababababababababalalalqFpZjsjsjsjsjsjsjsjsqoqpjsjsjsjsqnqFalalalalalabababababxhCoCnCmAsAsCpAsAsCjCiAsChAVETCkCkCeCfCcCdqbqbqbqbqbqbqbqbqbqbqbqbqbqbqbyKycCaCbxPBTyGBSzXBUBUCPBWBOBPCxCDqFqFqFpjqFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababalalgyzyzyzyzyzyzyzyzyzyzyCqzyzyzyzyowufqFqFqFqFqFkiqFqFqFqFalalalalababababababababababalalqFqFqFkiqFqFqFqFqFqFqFqFpBpCqFqFqFqFkiqFalalalalalalalalalabxhxhxhxhCLCNCMCGCGCGCFCGCGCICHCKCJCODlCTDlCyCyCyDfCyCyCyEGCyCyCyDfCyCyCyDgEIDgCACzCtxPCsEUCwCvCuBrDjCEEVCCsCsCriqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababalalgygygygygygygygygygygyAwEWAhowowowufgysMgygyqFqqjsjsqnqFalalalalababababababababababalqFqFpZjspYqFgygygyalgygysMgygygygygyqFkiqFalalalalalalalalalalalalalxhCZCYAsAsAsAsCXAsCWCVCUDmAsEXCSCcCdEDEDEDEDEDEDEDEDEDEDEDEDEDEFEFyKycyMDcxPDbxPzBzAzAzAzAzAzAzAzAxXuDxJpCqFpjalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalgygygypBuDuDuDuDDeApalmRalalqFqFqFqFkiqFalalalalalabababababalalalalalqFpZpYqFqFqFalalalalalalmRalalalalalqFkiqFalalalalalalmRalalalalalwVwVDiDuDiwXwXDhDtwXwXwXxIDsxIxhDkgygygygygygygyexgygygyexgygygygygzEHgzyTxQxPDqDpDoDnxixixjDvDKEgDxDGDrDrDrqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalabalalalalalqFkiqFqFqFqFgyalalalalalalalalalalalqFkiqFgyalalalabababababalalalalalalqFkiqFqFqFrJriqFqFsAqFqFalalalwVwUwTwZwYwXwWxdxcFaEZwXxgxfxtxhgygygygygygygygyexgygygyEKexexexexexEKEHEHwNwMwPFbwQwQwQwQxrwQwSwQwQxsqFqFqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalqFqqjsjsjsqnqFgygygygygyqFqFqFqFqFqFqFkiqFalalabababababababalalalalalalqFqqjsjsjsqoqpjsjsjsqnqFalalalwVxwxuFcxxwXxzxBxAFeFdwXxExGxFxhgygygygygygyexexexexexexexEMEMEMEMEMEHgzgzwNxkxoxPxWxRykxixixpxixjwQxKqFgzgzgzalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalqFqFqFqFqFqqqnqFqFrJriqFqFpZjsjsjsjsjspYqFalabababababababababalalalalalqFqFqFqFqFpBpCqFqFqFkiqFqFqFqFwVwVwVwVwVwXxHxNxAFgFfwXFhymxIxhgygygygygygygygyexgygygyexEMEMEMEMEMEHgzxOxQxPxSFiwQwQwQwQwQwQxTxUwQxKqFgzgzalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalgysMqFqFqqjsjsqoqpjsjspYqFqFqFqFqFqFqFalabababababababababababalalalalalalalgygygygyalqFqqjsjsqnqFgygygygygywXEYFkDhwXwXwXowysufyZgygygygygygygygyexgygygyexEMEMEMEMEMydycybyaxZylytyjyiyhygyfyexYxUwQxKqFgzgzalalabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalmRalqFqFqFqFpBpCqFqFqFqFsMgyalalalalalababababababababababababababalalalalalalalalalqFqFqFqFkiqFgygygygygygygyyAowowowowowowufgygygygygygyexexexexexexexexEMEMEMEMEMywyEFlyJyvynxPxPxPyuyoyrFjyyyzwQxKqFgzgzalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalmRalalabababababababababababababababababababababababababalalalalalqFkiqFqFqFqFqFqFqFqFyNuDuDuDuDuDuDpCqFqFgygygygygygygygygygygyexEMEMEMEMEMyKycyMyLxPyFyDyDyDzDyHyHFmyByCwQxKqFgzENmRababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalababababababababababababababababababababababababababababalalalalqFqqjsjsjsjsjsjsjsjsyOjsjsjsjsjsjsjsjsyPqFgygygygygygygygygygyexEMEMEMEMEMFngzyTxQyUySxPxPxPyRyQyryrxTyVwQxKqFgzgzalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalababababababababababababababababababababababababababababababababalalalalqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqyqFrJriqFqFqFpzgygygygyFoEMEMEMEMEMEKgzgzgzzfzeytzdzczbzayYyXyyxUwQxKqFgzgzalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalalmRFpDYDWDZDXDWDWDWEcEbEbEbEbEbEbEbEbEbEbEbEbEbFqEOEPxPElxPEjEkEhEiEeEdwQxKqFgzalalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalqFqFqFpBpCqFqFqFpzaldkabababababababababababFrzfwNyKxQwNwQwQwQwQwQwQwQxKqFgzababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalalalalalalalalgygygydkabababababababababababFsELrRrRrRrRrRrRrRrRrRrRrREJqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalFtalabababababababababababababpzqFqFqFqFqFqFqFqFqFqFqFqFqFalababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalalalalalababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalalababalalababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababalalalalalalalalalalalabababalababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFgygygygyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFqFgygygygygygyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFugygyFugygygyFugygygygygyFugygygyFugygyFugyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFugygygyFuFuFuFuFuFuFugygygyFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFugygyFuFuFuFuFuFuFuFuFugygyFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFugygyFuFuFuFuFuFuFuFuFugygyFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqFqFFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygyFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyFuFuFuFuFuFuFuFuFuFuFuFuFugygygygygygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyFuFuFuFuFuFuFuFuFuFuFuFuFugygygygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygyFuFuFuFuFuFuFuFuFuFuFuFuFugygygygyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygyFuFuFuFuFuFuFuFuFuFuFuFuFugygyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyFuFuFuFuFuFuFuFuFugygygygyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygyFuFuFuFuFuFuFugygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgygygygygygygygygygygyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaa +aaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaa +aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaa +aaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "}