diff --git a/.gitignore b/.gitignore index 3e5912dc36..ad65e8a856 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ cfg/ code/game/gamemodes/technomancer/spells/projectile/overload.dm code/game/gamemodes/technomancer/spells/projectile/overload.dm code/modules/client/preference_setup/loadout/loadout_xeno.dm +temp.dmi /maps/RandomZLevels/backup/blackmarketpackers.dmm /maps/backup/virgo-1.dmm /maps/backup/virgo-2.dmm diff --git a/code/__defines/roguemining_vr.dm b/code/__defines/roguemining_vr.dm new file mode 100644 index 0000000000..ffe55b7485 --- /dev/null +++ b/code/__defines/roguemining_vr.dm @@ -0,0 +1,10 @@ +//Some defines for the rogue miner. +#define RM_STARTING_DIFF 100 + +#define RM_DIFF_DECAY_TIME 18000 +#define RM_DIFF_DECAY_AMT -50 + +#define RM_DIFF_VALUE_MOB 10 +#define RM_DIFF_VALUE_MOB_HARD 15 +#define RM_DIFF_VALUE_MOB_BOSS 100 +#define RM_DIFF_VALUE_ORE 5 \ No newline at end of file diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 6ff37e0449..a9dc68a6a7 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -190,7 +190,7 @@ var/list/gamemode_cache = list() var/list/admin_levels= list(2) // Defines which Z-levels which are for admin functionality, for example including such areas as Central Command and the Syndicate Shuttle var/list/contact_levels = list(1, 5) // Defines which Z-levels which, for example, a Code Red announcement may affect var/list/player_levels = list(1, 3, 4, 5, 6) // Defines all Z-levels a character can typically reach - var/list/sealed_levels = list() // Defines levels that do not allow random transit at the edges. + var/list/sealed_levels = list(7) // Defines levels that do not allow random transit at the edges. // Event settings var/expected_round_length = 3 * 60 * 60 * 10 // 3 hours diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 49417ccd05..9a52780683 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -397,5 +397,20 @@ var/global/datum/shuttle_controller/shuttle_controller AM.move_time = 60 AM.warmup_time = 8 shuttles["AwayMission"] = AM - //VOREStation Add End - Away-mission shuttle + /////////////////////////////////////////////// + //VOREStation Add - Belter Shuttle + shuttle = new/datum/shuttle/ferry() + shuttle.location = 0 + shuttle.warmup_time = 6 + shuttle.area_station = locate(/area/shuttle/belter/station) + shuttle.area_offsite = locate(/area/shuttle/belter/belt/zone1) + shuttle.area_transition = locate(/area/shuttle/belter/transit) + shuttle.docking_controller_tag = "belter_docking" + shuttle.dock_target_station = "belter_nodocking" //Fake tags to prevent the shuttle from opening doors. + shuttle.dock_target_offsite = "belter_nodocking" + shuttle.transit_direction = EAST + shuttle.move_time = 60 + rand(10,40) + process_shuttles += shuttle + shuttles["Belter"] = shuttle + //VOREStation Add End - Belter Shuttle \ No newline at end of file diff --git a/code/datums/uplink/announcements.dm b/code/datums/uplink/announcements.dm index 58baa14e8e..d97e15b7ee 100644 --- a/code/datums/uplink/announcements.dm +++ b/code/datums/uplink/announcements.dm @@ -28,6 +28,16 @@ return list("title" = title, "message" = message) /datum/uplink_item/abstract/announcements/fake_centcom/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args) + for (var/obj/machinery/computer/communications/C in machines) + if(! (C.stat & (BROKEN|NOPOWER) ) ) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc ) + P.name = "'[command_name()] Update.'" + P.info = replacetext(args["message"], "\n", "
") + P.update_space(P.info) + P.update_icon() + C.messagetitle.Add(args["title"]) + C.messagetext.Add(P.info) + command_announcement.Announce(args["message"], args["title"]) return 1 diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index f4d92e4261..f3cc85f685 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -16,8 +16,8 @@ var/datum/antagonist/mercenary/mercs hard_cap = 4 hard_cap_round = 8 - initial_spawn_req = 4 - initial_spawn_target = 6 + initial_spawn_req = 3 + initial_spawn_target = 4 /datum/antagonist/mercenary/New() ..() diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm index ae77e8f216..a841e15476 100644 --- a/code/game/antagonist/outsider/raider.dm +++ b/code/game/antagonist/outsider/raider.dm @@ -14,8 +14,8 @@ var/datum/antagonist/raider/raiders hard_cap = 6 hard_cap_round = 10 - initial_spawn_req = 4 - initial_spawn_target = 6 + initial_spawn_req = 3 + initial_spawn_target = 4 id_type = /obj/item/weapon/card/id/syndicate diff --git a/code/game/area/Space Station 13 areas_vr.dm b/code/game/area/Space Station 13 areas_vr.dm index 2889416e95..f210187668 100644 --- a/code/game/area/Space Station 13 areas_vr.dm +++ b/code/game/area/Space Station 13 areas_vr.dm @@ -39,6 +39,7 @@ icon_state = "teleporter" music = "signal" +// New shuttles /area/shuttle/administration/transit name = "Deep Space (AS)" icon_state = "shuttle" @@ -62,3 +63,48 @@ /area/shuttle/awaymission/oldengbase name = "Old Construction Site (AM)" icon_state = "shuttle2" + +/area/shuttle/belter/station + name = "Belter Shuttle Landed" + icon_state = "shuttle2" + base_turf = /turf/simulated/floor/tiled/asteroid_steel/airless + +/area/shuttle/belter/belt //Don't use this one, use a subtype + name = "Belter Shuttle Holding Position" + icon_state = "shuttle2" + +//Placeholders +/area/shuttle/belter/belt/zone1 +/area/shuttle/belter/belt/zone2 +/area/shuttle/belter/belt/zone3 +/area/shuttle/belter/belt/zone4 + +/area/shuttle/belter/transit + name = "Belter Shuttle Warp" + icon_state = "shuttle" + +//Rouguelike Mining +/area/asteroid/rogue + var/asteroid_spawns = list() + var/mob_spawns = list() + var/shuttle_area //It would be neat if this were more dynamic, but eh. + +/area/asteroid/rogue/zone1 + name = "Asteroid Belt Zone 1" + icon_state = "red2" + shuttle_area = /area/shuttle/belter/belt/zone1 + +/area/asteroid/rogue/zone2 + name = "Asteroid Belt Zone 2" + icon_state = "blue2" + shuttle_area = /area/shuttle/belter/belt/zone2 + +/area/asteroid/rogue/zone3 + name = "Asteroid Belt Zone 3" + icon_state = "blue2" + shuttle_area = /area/shuttle/belter/belt/zone3 + +/area/asteroid/rogue/zone4 + name = "Asteroid Belt Zone 4" + icon_state = "red2" + shuttle_area = /area/shuttle/belter/belt/zone4 \ No newline at end of file diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index f91191fac5..9658cc0a81 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -7,9 +7,9 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' /datum/game_mode/heist name = "Heist" config_tag = "heist" - required_players = 15 - required_players_secret = 15 - required_enemies = 4 + required_players = 8 + required_players_secret = 8 + required_enemies = 3 round_description = "An unidentified bluespace signature is approaching the station!" extended_round_description = "The Company's majority control of phoron in "+starsys_name+" has marked the \ station to be a highly valuable target for many competing organizations and individuals. Being a \ diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 3bf4299cd2..8e273f9adb 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -12,9 +12,9 @@ var/list/nuke_disks = list() colony of sizable population and considerable wealth causes it to often be the target of various \ attempts of robbery, fraud and other malicious actions." config_tag = "mercenary" - required_players = 15 - required_players_secret = 15 - required_enemies = 1 + required_players = 8 + required_players_secret = 8 + required_enemies = 3 end_on_antag_death = 0 var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 5efd83bb92..c503a5d4bd 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -158,7 +158,7 @@ //Body Scan Console /obj/machinery/body_scanconsole var/obj/machinery/bodyscanner/scanner - var/known_implants = list(/obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking) + var/known_implants = list(/obj/item/weapon/implant/health, /obj/item/weapon/implant/chem, /obj/item/weapon/implant/death_alarm, /obj/item/weapon/implant/loyalty, /obj/item/weapon/implant/tracking, /obj/item/weapon/implant/language, /obj/item/weapon/implant/language/eal) var/delete var/temphtml name = "Body Scanner Console" diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 7c46651419..f30e3b4cfb 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -123,6 +123,7 @@ if(user.species.can_shred(user)) set_status(0) user.do_attack_animation(src) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) visible_message("\The [user] slashes at [src]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) add_hiddenprint(user) diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index e6577f3097..de81fbb0fa 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -10,6 +10,7 @@ var/active = 0 /obj/machinery/computer/aifixer/New() + ..() update_icon() /obj/machinery/computer/aifixer/proc/load_ai(var/mob/living/silicon/ai/transfer, var/obj/item/device/aicard/card, var/mob/user) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 03d3c1170f..9e34252ebd 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -253,7 +253,7 @@ desc = "Used to access the various cameras on the outpost." icon_keyboard = "mining_key" icon_screen = "mining" - network = list("MINE") + network = list("Mining Outpost") circuit = /obj/item/weapon/circuitboard/security/mining light_color = "#F9BBFC" diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index ecd20ae76e..bf384a401e 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -413,7 +413,7 @@ if(istype(W,/obj/item/weapon/implant/health)) for(var/obj/machinery/computer/cloning/com in world) for(var/datum/dna2/record/R in com.records) - if(R.implant == W) + if(locate(R.implant) == W) qdel(R) qdel(W) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 383cc1b3a4..1655ca4c74 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -746,6 +746,7 @@ About the new airlock wires panel: return src.add_fingerprint(user) + if (attempt_vr(src,"attackby_vr",list(C, user))) return if(istype(C, /mob/living)) ..() return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 185de7f06d..dd8e868d8a 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -202,6 +202,8 @@ /obj/machinery/door/attackby(obj/item/I as obj, mob/user as mob) src.add_fingerprint(user) + if (attempt_vr(src,"attackby_vr",list(I, user))) return + if(istype(I, /obj/item/stack/material) && I.get_material_name() == src.get_material_name()) if(stat & BROKEN) user << "It looks like \the [src] is pretty busted. It's going to need more than just patching up now." diff --git a/code/game/machinery/doors/door_vr.dm b/code/game/machinery/doors/door_vr.dm new file mode 100644 index 0000000000..e38dcd851d --- /dev/null +++ b/code/game/machinery/doors/door_vr.dm @@ -0,0 +1,93 @@ +/turf/simulated/floor/proc/adjacent_fire_act_vr(turf/simulated/floor/adj_turf, datum/gas_mixture/adj_air, adj_temp, adj_volume) + for(var/obj/machinery/door/D in src) //makes doors next to fire affected by fire + D.fire_act(adj_air, adj_temp, adj_volume) + +/obj/machinery/door + var/obj/item/stack/material/plasteel/reinforcing //vorestation addition + +/obj/machinery/door/firedoor + heat_proof = 1 + +/obj/machinery/door/airlock/vault + heat_proof = 1 + +/obj/machinery/door/airlock/hatch + heat_proof = 1 + +/obj/machinery/door/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + var/maxtemperature = 1800 //same as a normal steel wall + var/destroytime = 20 //effectively gives an airlock 200HP between breaking and completely disintegrating + if(heat_proof) + maxtemperature = 6000 //same as a plasteel rwall + destroytime = 50 //fireproof airlocks need to take 500 damage after breaking before they're destroyed + + if(exposed_temperature > maxtemperature) + var/burndamage = log(RAND_F(0.9, 1.1) * (exposed_temperature - maxtemperature)) + if (burndamage && health <= 0) //once they break, start taking damage to destroy_hits + destroy_hits -= (burndamage / destroytime) + if (destroy_hits <= 0) + visible_message("\The [src.name] disintegrates!") + new /obj/effect/decal/cleanable/ash(src.loc) // Turn it to ashes! + qdel(src) + take_damage(burndamage) + + return ..() + +/obj/machinery/door/proc/attackby_vr(obj/item/I as obj, mob/user as mob) + if(istype(I, /obj/item/stack/material) && I.get_material_name() == "plasteel") // Add heat shielding if it isn't already. + if(!heat_proof) + var/obj/item/stack/stack = I + var/transfer + var/amount_needed = 2 + if (stack.amount >= amount_needed) + if(stat & BROKEN) + user << "It looks like \the [src] is pretty busted. There's not much point reinforcing it." + return 1 + if (reinforcing) + transfer = stack.transfer_to(reinforcing, amount_needed - reinforcing.amount) + if (!transfer) + user << "You must weld or remove \the [reinforcing] from \the [src] before you can add anything else." + return 1 + else + reinforcing = stack.split(amount_needed) + if (reinforcing) + reinforcing.loc = src + transfer = reinforcing.amount + + if (transfer) + user << "You fit [transfer] [stack.singular_name]\s to \the [src]." + return 1 + return 0 + + if(reinforcing && istype(I, /obj/item/weapon/weldingtool)) + if(!density) + user << "\The [src] must be closed before you can repair it." + return 1 + + var/obj/item/weapon/weldingtool/welder = I + if(welder.remove_fuel(0,user)) + user << "You start to weld \the [reinforcing] into place." + playsound(src, 'sound/items/Welder.ogg', 100, 1) + if(do_after(user, 5 * reinforcing.amount) && welder && welder.isOn()) + user << "You finish reinforcing \the [src]." + heat_proof = 1 + update_icon() + qdel(reinforcing) + reinforcing = null + return 1 + + if(reinforcing && istype(I, /obj/item/weapon/crowbar)) + user << "You remove \the [reinforcing]." + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + reinforcing.loc = user.loc + reinforcing = null + return 1 + return 0 + +/obj/machinery/door/blast/regular/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + return // blast doors are immune to fire completely. + +/obj/machinery/door/blast/regular/ + heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage + + diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 2ac0c2a48d..13352a1645 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -160,6 +160,8 @@ if(H.species.can_shred(H)) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("[user] smashes against the [src.name].", 1) + user.do_attack_animation(src) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) take_damage(25) return return src.attackby(user, user) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 6f2ea5129d..64fc0c4a8f 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -780,8 +780,8 @@ name = "SweatMAX" desc = "Fueled by your inner inadequacy!" icon_state = "fitness" - products = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 8, - /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 8, + products = list(/obj/item/weapon/reagent_containers/food/drinks/smallmilk = 8, + /obj/item/weapon/reagent_containers/food/drinks/smallchocmilk = 8, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake = 8, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask = 8, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 8, @@ -789,8 +789,8 @@ /obj/item/weapon/reagent_containers/pill/diet = 8, /obj/item/weapon/towel/random = 8) - prices = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 3, - /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 3, + prices = list(/obj/item/weapon/reagent_containers/food/drinks/smallmilk = 3, + /obj/item/weapon/reagent_containers/food/drinks/smallchocmilk = 3, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake = 20, /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask = 5, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 5, diff --git a/code/game/machinery/vending_vr.dm b/code/game/machinery/vending_vr.dm index 8bfbff7754..203e5c03a4 100644 --- a/code/game/machinery/vending_vr.dm +++ b/code/game/machinery/vending_vr.dm @@ -11,7 +11,16 @@ products = list(/obj/item/weapon/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5, /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6, /obj/item/weapon/gun/energy/taser = 8,/obj/item/weapon/gun/energy/stunrevolver = 4, - /obj/item/weapon/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6) + /obj/item/weapon/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6, + /obj/item/weapon/gun/projectile/sec/flash = 4, /obj/item/ammo_magazine/c45m/flash = 8) + + +/obj/machinery/vending/tool + products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5, + /obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5, + /obj/item/device/flashlight/glowstick = 3, /obj/item/device/flashlight/glowstick/red = 3, /obj/item/device/flashlight/glowstick/blue = 3, + /obj/item/device/flashlight/glowstick/orange =3, /obj/item/device/flashlight/glowstick/yellow = 3, /obj/item/weapon/reagent_containers/spray/windowsealant = 5) + /* var/list/log = list() var/req_log_access = access_armory diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index b742b8a14b..09ff0075db 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -173,7 +173,7 @@ cell = C return cell = new(src) - cell.name = "high-capacity power cell" + cell.name = "mecha power cell" cell.charge = 15000 cell.maxcharge = 15000 @@ -514,6 +514,7 @@ if(H.species.can_shred(user)) if(!prob(src.deflect_chance)) src.take_damage(15) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1) user << "You slash at the armored suit!" diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index b7b258f5d6..1077d757ae 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -77,6 +77,8 @@ desc = "They seem to pulse slightly with an inner life" icon_state = "eggs" var/amount_grown = 0 + var/spiders_min = 6 + var/spiders_max = 24 New() pixel_x = rand(3,-3) pixel_y = rand(3,-3) @@ -97,7 +99,7 @@ /obj/effect/spider/eggcluster/process() amount_grown += rand(0,2) if(amount_grown >= 100) - var/num = rand(6,24) + var/num = rand(spiders_min, spiders_max) var/obj/item/organ/external/O = null if(istype(loc, /obj/item/organ/external)) O = loc @@ -108,6 +110,10 @@ O.implants += spiderling qdel(src) +/obj/effect/spider/eggcluster/small + spiders_min = 1 + spiders_max = 3 + /obj/effect/spider/spiderling name = "spiderling" desc = "It never stays still for long." diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index b553f4416c..d1a5b63e82 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -86,7 +86,7 @@ if(C.stat != DEAD) var/safety = C.eyecheck() if(safety <= 0) - var/flash_strength = 5 + var/flash_strength = 10 //Vorestation edit, making flashes behave the same as flash rounds if(ishuman(C)) var/mob/living/carbon/human/H = C flash_strength *= H.species.flash_mod diff --git a/code/game/objects/items/devices/flash_vr.dm b/code/game/objects/items/devices/flash_vr.dm new file mode 100644 index 0000000000..dcc7b1a0f4 --- /dev/null +++ b/code/game/objects/items/devices/flash_vr.dm @@ -0,0 +1,2 @@ +/obj/item/device/flash + halloss_per_flash = 22 \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm index c46c519e9e..fc981a9e8c 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm @@ -26,7 +26,7 @@ /obj/item/weapon/circuitboard/security/mining name = T_BOARD("mining camera monitor") build_path = /obj/machinery/computer/security/mining - network = list("MINE") + network = list("Mining Outpost") req_access = list() /obj/item/weapon/circuitboard/security/telescreen/entertainment diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 49d0238c13..06fd49d0e3 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -285,4 +285,59 @@ /obj/item/weapon/anobattery, /obj/item/device/ano_scanner, /obj/item/weapon/pickaxe/hand - ) \ No newline at end of file + ) + +/obj/item/weapon/storage/belt/fannypack + name = "leather fannypack" + desc = "A dorky fannypack for keeping small items in." + icon_state = "fannypack_leather" + item_state = "fannypack_leather" + max_w_class = ITEMSIZE_SMALL + storage_slots = null + max_storage_space = ITEMSIZE_COST_NORMAL * 2 + +/obj/item/weapon/storage/belt/fannypack/black + name = "black fannypack" + icon_state = "fannypack_black" + item_state = "fannypack_black" + +/obj/item/weapon/storage/belt/fannypack/blue + name = "blue fannypack" + icon_state = "fannypack_blue" + item_state = "fannypack_blue" + +/obj/item/weapon/storage/belt/fannypack/cyan + name = "cyan fannypack" + icon_state = "fannypack_cyan" + item_state = "fannypack_cyan" + +/obj/item/weapon/storage/belt/fannypack/green + name = "green fannypack" + icon_state = "fannypack_green" + item_state = "fannypack_green" + +/obj/item/weapon/storage/belt/fannypack/orange + name = "orange fannypack" + icon_state = "fannypack_orange" + item_state = "fannypack_orange" + +/obj/item/weapon/storage/belt/fannypack/purple + name = "purple fannypack" + icon_state = "fannypack_purple" + item_state = "fannypack_purple" + +/obj/item/weapon/storage/belt/fannypack/red + name = "red fannypack" + icon_state = "fannypack_red" + item_state = "fannypack_red" + +/obj/item/weapon/storage/belt/fannypack/white + name = "white fannypack" + icon_state = "fannypack_white" + item_state = "fannypack_white" + +/obj/item/weapon/storage/belt/fannypack/yellow + name = "yellow fannypack" + icon_state = "fannypack_yellow" + item_state = "fannypack_yellow" + diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm index 5845bd7c31..5457c860e5 100644 --- a/code/game/objects/items/weapons/storage/internal.dm +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -50,10 +50,10 @@ if (!( user.restrained() ) && !( user.stat )) switch(over_object.name) if("r_hand") - user.u_equip(master_item) + user.unEquip(master_item) user.put_in_r_hand(master_item) if("l_hand") - user.u_equip(master_item) + user.unEquip(master_item) user.put_in_l_hand(master_item) master_item.add_fingerprint(user) return 0 diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 8c1c47713a..3846a44d2b 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -77,10 +77,10 @@ switch(over_object.name) if("r_hand") - usr.u_equip(src) + usr.unEquip(src) usr.put_in_r_hand(src) if("l_hand") - usr.u_equip(src) + usr.unEquip(src) usr.put_in_l_hand(src) src.add_fingerprint(usr) diff --git a/code/game/objects/random/random_vr.dm b/code/game/objects/random/random_vr.dm index 0ccc5ee6e5..4c1d5d0d94 100644 --- a/code/game/objects/random/random_vr.dm +++ b/code/game/objects/random/random_vr.dm @@ -129,4 +129,30 @@ prob(1);/obj/item/ammo_magazine/stg,\ prob(1);/obj/item/ammo_magazine/tommydrum,\ prob(1);/obj/item/ammo_magazine/tommymag - ) \ No newline at end of file + ) + +/obj/random/cargopod + name = "Random Cargo Item" + desc = "Hot Stuff." + icon = 'icons/obj/items.dmi' + icon_state = "purplecomb" + spawn_nothing_percentage = 0 +/obj/random/cargopod/item_to_spawn() + return pick(prob(6);/obj/item/weapon/storage/pill_bottle/tramadol, + prob(8);/obj/item/weapon/haircomb, + prob(4);/obj/item/weapon/storage/pill_bottle/happy, + prob(4);/obj/item/weapon/storage/pill_bottle/zoom, + prob(10);/obj/item/weapon/contraband/poster, + prob(4);/obj/item/weapon/material/butterfly, + prob(6);/obj/item/weapon/material/butterflyblade, + prob(6);/obj/item/weapon/material/butterflyhandle, + prob(6);/obj/item/weapon/material/wirerod, + prob(2);/obj/item/weapon/material/butterfly/switchblade, + prob(2);/obj/item/weapon/material/knuckledusters, + prob(1);/obj/item/weapon/material/hatchet/tacknife, + prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, + prob(1);/obj/item/weapon/beartrap, + prob(1);/obj/item/weapon/handcuffs, + prob(1);/obj/item/weapon/legcuffs, + prob(2);/obj/item/weapon/reagent_containers/syringe/drugs, + prob(1);/obj/item/weapon/reagent_containers/syringe/steroid) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index f79203c3ba..27afc72d93 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -37,6 +37,7 @@ new /obj/item/taperoll/engineering(src) new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src) new /obj/item/weapon/tank/emergency/oxygen/engi(src) + new /obj/item/weapon/reagent_containers/spray/windowsealant(src) //vorestation addition return @@ -128,6 +129,7 @@ new /obj/item/taperoll/engineering(src) new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src) new /obj/item/weapon/tank/emergency/oxygen/engi(src) + new /obj/item/weapon/reagent_containers/spray/windowsealant(src) //vorestation addition return diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 5c8aa2b2e0..07dfb6b2fe 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -137,7 +137,8 @@ new /obj/item/clothing/gloves/yellow(src) if(prob(40)) new /obj/item/clothing/head/hardhat(src) - + if(prob(30)) + new /obj/item/weapon/reagent_containers/spray/windowsealant(src) //vorestation addition /* * Radiation Closet diff --git a/code/game/objects/structures/crates_lockers/crates_vr.dm b/code/game/objects/structures/crates_lockers/crates_vr.dm index 35ec2d41cd..c2a5cee915 100644 --- a/code/game/objects/structures/crates_lockers/crates_vr.dm +++ b/code/game/objects/structures/crates_lockers/crates_vr.dm @@ -5,11 +5,7 @@ if(!(Proj.damage_type == BRUTE || Proj.damage_type == BURN)) return - health -= Proj.damage - - ..() - - if(locked && tamper_proof && health <= 0) + if(locked && tamper_proof && health <= Proj.damage) if(tamper_proof == 2) // Mainly used for events to prevent any chance of opening the box improperly. visible_message("The anti-tamper mechanism of [src] triggers an explosion!") var/turf/T = get_turf(src.loc) @@ -33,9 +29,6 @@ visible_message("The anti-tamper mechanism of [src] fails!") return - if(health <= 0) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - qdel(src) + ..() return \ No newline at end of file diff --git a/code/game/turfs/flooring/shuttle_vr.dm b/code/game/turfs/flooring/shuttle_vr.dm new file mode 100644 index 0000000000..f7f1b6e497 --- /dev/null +++ b/code/game/turfs/flooring/shuttle_vr.dm @@ -0,0 +1,10 @@ +//Airless versions of shuttle floor tiles. +/turf/simulated/shuttle/floor/airless + oxygen = 0 + nitrogen = 0 + temperature = TCMB + +/turf/simulated/shuttle/plating/airless + oxygen = 0 + nitrogen = 0 + temperature = TCMB diff --git a/code/game/turfs/simulated/floor_acts.dm b/code/game/turfs/simulated/floor_acts.dm index ee42c625fe..fac9fe3d06 100644 --- a/code/game/turfs/simulated/floor_acts.dm +++ b/code/game/turfs/simulated/floor_acts.dm @@ -43,3 +43,5 @@ for(var/obj/structure/window/W in src) if(W.dir == dir_to || W.is_fulltile()) //Same direction or diagonal (full tile) W.fire_act(adj_air, adj_temp, adj_volume) + + attempt_vr(src,"adjacent_fire_act_vr",list(adj_turf,adj_air,adj_temp,adj_volume)) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b5444ec6c7..c42c65654d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1245,7 +1245,7 @@ proc/admin_notice(var/message, var/rights) M = whom C = M.client else - return "(*not an mob*)" + return "(*not a mob*)" switch(detail) if(0) return "[key_name(C, link, name, highlight_special)]" @@ -1255,15 +1255,15 @@ proc/admin_notice(var/message, var/rights) if(2) //Admins var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA)" + return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (CA) (TAKE)" if(3) //Devs var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)](VV)([admin_jump_link(M, src)])" + return "[key_name(C, link, name, highlight_special)](VV)([admin_jump_link(M, src)]) (TAKE)" if(4) //Mentors var/ref_mob = "\ref[M]" - return "[key_name(C, link, name, highlight_special)] (?) (PP) (VV) (SM) ([admin_jump_link(M, src)])" + return "[key_name(C, link, name, highlight_special)] (?) (PP) (VV) (SM) ([admin_jump_link(M, src)]) (TAKE)" /proc/ishost(whom) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 9fc8e43e73..b5e0f93682 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -195,6 +195,7 @@ var/list/admin_verbs_debug = list( /client/proc/SDQL_query, /client/proc/SDQL2_query, /client/proc/Jump, + /client/proc/debug_rogueminer, /client/proc/jumptomob, /client/proc/jumptocoord, /client/proc/dsay, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index fe427b54d8..a545bc1e87 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1218,6 +1218,18 @@ else if(href_list["check_antagonist"]) check_antagonists() + else if(href_list["take_question"]) + + var/mob/M = locate(href_list["take_question"]) + if(ismob(M)) + var/take_msg = "ADMINHELP: [key_name(usr.client)] is attending to [key_name(M)]'s adminhelp, please don't dogpile them." + for(var/client/X in admins) + if((R_ADMIN|R_MOD|R_MENTOR) & X.holder.rights) + to_chat(X, take_msg) + to_chat(M, "Your adminhelp is being attended to by [usr.client]. Thanks for your patience!") + else + to_chat(usr, "Unable to locate mob.") + else if(href_list["adminplayerobservecoodjump"]) if(!check_rights(R_ADMIN|R_SERVER|R_MOD)) return diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 4a261a3d98..169ab9b6a0 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -1,6 +1,6 @@ /obj/item/device/assembly/signaler name = "remote signaling device" - desc = "Used to remotely activate devices." + desc = "Used to remotely activate devices. Tap against another secured signaler to transfer configuration." icon_state = "signaller" item_state = "signaler" origin_tech = list(TECH_MAGNET = 1) @@ -98,6 +98,15 @@ return + attackby(obj/item/weapon/W, mob/user, params) + if(issignaler(W)) + var/obj/item/device/assembly/signaler/signaler2 = W + if(secured && signaler2.secured) + code = signaler2.code + frequency = signaler2.frequency + user << "You transfer the frequency and code of [signaler2] to [src]" + else + ..() proc/signal() if(!radio_connection) return diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index 3441962ef0..a7472c388f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -280,6 +280,18 @@ path = /obj/item/clothing/accessory/storage/white_drop_pouches allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor") +/datum/gear/accessory/fannypack + display_name = "fannypack selection" + cost = 2 + +/datum/gear/accessory/fannypack/New() + ..() + var/list/fannys = list() + for(var/fanny in typesof(/obj/item/weapon/storage/belt/fannypack)) + var/obj/item/weapon/storage/belt/fannypack/fanny_type = fanny + fannys[initial(fanny_type.name)] = fanny_type + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(fannys)) + /datum/gear/accessory/webbing display_name = "webbing, simple" path = /obj/item/clothing/accessory/storage/webbing diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 43a19c558f..996387aa1d 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -34,6 +34,7 @@ item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | PHORONGUARD allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank) phoronproof = 1 + slowdown = 2 armor = list(melee = 60, bullet = 50, laser = 40,energy = 15, bomb = 30, bio = 30, rad = 30) siemens_coefficient = 0.2 heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index d34739cad3..5d73e804b2 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -49,6 +49,9 @@ item_flags = THICKMATERIAL siemens_coefficient = 0.2 phoronproof = 1 + offline_slowdown = 5 + slowdown = 2 + allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit) air_type = /obj/item/weapon/tank/vox @@ -108,7 +111,6 @@ icon_state = "voxstealth_rig" armor = list(melee = 40, bullet = 30, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) emp_protection = 40 //change this to 30 if too high. - slowdown = 0 phoronproof = 1 req_access = list(access_syndicate) diff --git a/code/modules/clothing/under/xenos/vox.dm b/code/modules/clothing/under/xenos/vox.dm index b29df92e8c..bd66830f6e 100644 --- a/code/modules/clothing/under/xenos/vox.dm +++ b/code/modules/clothing/under/xenos/vox.dm @@ -25,7 +25,7 @@ icon_state = "webbing-vox" slot = "vox" - slots = 5 + slots = 3 /obj/item/clothing/accessory/storage/vox/New() ..() diff --git a/code/modules/gamemaster/actions/action.dm b/code/modules/gamemaster/actions/action.dm index 82ebd860b5..aa259ccc03 100644 --- a/code/modules/gamemaster/actions/action.dm +++ b/code/modules/gamemaster/actions/action.dm @@ -5,12 +5,9 @@ var/chaotic = 0 // A number showing how chaotic the action may be. If danger is high, the GM will avoid it. var/reusable = FALSE // If true, the event does not become disabled upon being used. Should be used sparingly. var/observers_used = FALSE // Determines if the GM should check if ghosts are available before using this. + var/length = 0 // Determines how long the event lasts, until end() is called. var/datum/game_master/gm = null -/datum/gm_action/New(var/datum/game_master/new_gm) - ..() - gm = new_gm - /datum/gm_action/proc/set_up() return diff --git a/code/modules/gamemaster/actions/carp_migration.dm b/code/modules/gamemaster/actions/carp_migration.dm new file mode 100644 index 0000000000..520eb0c314 --- /dev/null +++ b/code/modules/gamemaster/actions/carp_migration.dm @@ -0,0 +1,65 @@ +//carp_migration +/datum/gm_action/carp_migration + name = "carp migration" + departments = list(ROLE_SECURITY, ROLE_EVERYONE) + chaotic = 50 + var/list/spawned_carp = list() + var/carp_amount = 0 + length = 20 MINUTES + +/datum/gm_action/carp_migration/get_weight() + var/people_in_space = 0 + for(var/mob/living/L in player_list) + if(!(L.z in config.station_levels)) + continue // Not on the right z-level. + var/turf/T = get_turf(L) + if(istype(T, /turf/space) && istype(T.loc,/area/space)) + people_in_space++ + return 50 + (metric.count_people_in_department(ROLE_SECURITY) * 10) + (people_in_space * 20) + +/datum/gm_action/carp_migration/announce() + var/announcement = "Unknown biological entities have been detected near [station_name()], please stand-by." + command_announcement.Announce(announcement, "Lifesign Alert") + +/datum/gm_action/carp_migration/set_up() + // Higher filled roles means more groups of fish. + var/station_strength = 0 + station_strength += (metric.count_people_in_department(ROLE_SECURITY) * 3) + station_strength += (metric.count_people_in_department(ROLE_ENGINEERING) * 2) + station_strength += metric.count_people_in_department(ROLE_MEDICAL) + + // Less active emergency response departments tones the event down. + var/activeness = ((metric.assess_department(ROLE_SECURITY) + metric.assess_department(ROLE_ENGINEERING) + metric.assess_department(ROLE_MEDICAL)) / 3) + activeness = max(activeness, 20) + + carp_amount = Ceiling(station_strength * (activeness / 100) + 1) + +/datum/gm_action/carp_migration/start() + ..() + var/list/spawn_locations = list() + + var/group_size_min = 3 + var/group_size_max = 5 + + for(var/obj/effect/landmark/C in landmarks_list) + if(C.name == "carpspawn") + spawn_locations.Add(C.loc) + + spawn_locations = shuffle(spawn_locations) + carp_amount = min(carp_amount, spawn_locations.len) + + var/i = 1 + while (i <= carp_amount) + var/group_size = rand(group_size_min, group_size_max) + for (var/j = 1, j <= group_size, j++) + spawned_carp.Add(new /mob/living/simple_animal/hostile/carp(spawn_locations[i])) + i++ + message_admins("[spawned_carp.len] carp spawned by event.") + +/datum/gm_action/carp_migration/end() + for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp) + if(!C.stat) + var/turf/T = get_turf(C) + if(istype(T, /turf/space)) + if(!prob(25)) + qdel(C) \ No newline at end of file diff --git a/code/modules/gamemaster/actions/comms_blackout.dm b/code/modules/gamemaster/actions/comms_blackout.dm index 75359085ac..71b172b153 100644 --- a/code/modules/gamemaster/actions/comms_blackout.dm +++ b/code/modules/gamemaster/actions/comms_blackout.dm @@ -1,9 +1,21 @@ -// Comms blackout is, just like grid check, mostly the same as always, yet engineering has an option to get it back sooner. - /datum/gm_action/comms_blackout name = "communications blackout" departments = list(ROLE_ENGINEERING, ROLE_EVERYONE) chaotic = 35 /datum/gm_action/comms_blackout/get_weight() - return 50 + (metric.count_people_in_department(ROLE_ENGINEERING) * 40) \ No newline at end of file + return 50 + (metric.count_people_in_department(ROLE_ENGINEERING) * 40) + +/datum/gm_action/comms_blackout/announce() + if(prob(33)) + command_announcement.Announce("Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT", new_sound = 'sound/misc/interference.ogg') + // AIs will always know if there's a comm blackout, rogue AIs could then lie about comm blackouts in the future while they shutdown comms + for(var/mob/living/silicon/ai/A in player_list) + A << "
" + A << "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you-BZZT" + A << "
" + +/datum/gm_action/comms_blackout/start() + ..() + for(var/obj/machinery/telecomms/T in telecomms_list) + T.emp_act(1) diff --git a/code/modules/gamemaster/actions/dust.dm b/code/modules/gamemaster/actions/dust.dm new file mode 100644 index 0000000000..caecc51445 --- /dev/null +++ b/code/modules/gamemaster/actions/dust.dm @@ -0,0 +1,17 @@ +/datum/gm_action/dust + name = "dust" + departments = list(ROLE_ENGINEERING) + chaotic = 10 + reusable = TRUE + +/datum/gm_action/dust/announce() + command_announcement.Announce("Debris resulting from activity on another nearby asteroid is approaching your colony.", "Dust Alert") + +/datum/gm_action/dust/get_weight() + var/engineers = metric.count_people_in_department(ROLE_ENGINEERING) + var/weight = 30 + (engineers * 25) + return weight + +/datum/gm_action/dust/start() + ..() + dust_swarm("norm") \ No newline at end of file diff --git a/code/modules/gamemaster/actions/grid_check.dm b/code/modules/gamemaster/actions/grid_check.dm index 08c817fdf9..dcf35a230f 100644 --- a/code/modules/gamemaster/actions/grid_check.dm +++ b/code/modules/gamemaster/actions/grid_check.dm @@ -13,6 +13,7 @@ return 50 + (metric.count_people_in_department(ROLE_ENGINEERING) * 30) /datum/gm_action/grid_check/start() + ..() // This sets off a chain of events that lead to the actual grid check (or perhaps worse). // First, the Supermatter engine makes a power spike. for(var/obj/machinery/power/generator/engine in machines) diff --git a/code/modules/gamemaster/actions/meteor_defense.dm b/code/modules/gamemaster/actions/meteor_defense.dm new file mode 100644 index 0000000000..1bae723b00 --- /dev/null +++ b/code/modules/gamemaster/actions/meteor_defense.dm @@ -0,0 +1,51 @@ +// This event gives the station an advance warning about meteors, so that they can prepare in various ways. + +/datum/gm_action/meteor_defense + name = "meteor defense" + departments = list(ROLE_ENGINEERING) + chaotic = 50 + var/direction = null + var/dir_text = null + var/waves = 0 + +/datum/gm_action/meteor_defense/get_weight() + var/engineers = metric.count_people_in_department(ROLE_ENGINEERING) + var/weight = (max(engineers - 1, 0) * 25) // If only one engineer exists, no meteors for now. + return weight + +/datum/gm_action/meteor_defense/set_up() + direction = pick(cardinal) // alldirs doesn't work with current meteor code unfortunately. + waves = rand(5, 8) + switch(direction) + if(NORTH) + dir_text = "aft" // For some reason this is needed. + if(SOUTH) + dir_text = "fore" + if(EAST) + dir_text = "port" + if(WEST) + dir_text = "starboard" + +/datum/gm_action/meteor_defense/announce() + var/announcement = "Alert! Two other asteroids have collided near [station_name()]. Chunks of it are expected to approach from the [dir_text] side. ETA to arrival is \ + approximately 10 minutes." + command_announcement.Announce(announcement, "Meteor Alert", new_sound = 'sound/AI/meteors.ogg') + +/datum/gm_action/meteor_defense/start() + ..() + spawn(0) + // sleep(5 MINUTES) + var/announcement = "The incoming debris are expected to approach from the [dir_text] side. ETA to arrival is approximately 5 minutes." + command_announcement.Announce(announcement, "Meteor Alert - Update") + // sleep(5 MINUTES) + announcement = "Incoming debris approaches from the [dir_text] side!" + command_announcement.Announce(announcement, "Meteor Alert - Update") + while(waves) + message_admins("[waves] more wave\s of meteors remain.") + spawn(1) // Dir is reversed because the direction describes where meteors are going, not what side it's gonna hit. + spawn_meteors(rand(8, 12), meteors_threatening, reverse_dir[direction]) + waves-- + sleep(30 SECONDS) + announcement = "The colony has cleared the incoming debris." + command_announcement.Announce(announcement, "Meteor Alert - Update") + message_admins("Meteor defense event has ended.") \ No newline at end of file diff --git a/code/modules/gamemaster/actions/shipping_error.dm b/code/modules/gamemaster/actions/shipping_error.dm new file mode 100644 index 0000000000..affbe94dc9 --- /dev/null +++ b/code/modules/gamemaster/actions/shipping_error.dm @@ -0,0 +1,17 @@ +/datum/gm_action/shipping_error + name = "shipping error" + departments = list(ROLE_CARGO) + reusable = TRUE + +/datum/gm_action/shipping_error/get_weight() + var/cargo = metric.count_people_in_department(ROLE_CARGO) + var/weight = (cargo * 40) + return weight + +/datum/gm_action/shipping_error/start() + ..() + var/datum/supply_order/O = new /datum/supply_order() + O.ordernum = supply_controller.ordernum + O.object = supply_controller.supply_packs[pick(supply_controller.supply_packs)] + O.orderedby = random_name(pick(MALE,FEMALE), species = "Human") + supply_controller.shoppinglist += O \ No newline at end of file diff --git a/code/modules/gamemaster/actions/surprise_carp_attack.dm b/code/modules/gamemaster/actions/surprise_carp_attack.dm new file mode 100644 index 0000000000..c91103c878 --- /dev/null +++ b/code/modules/gamemaster/actions/surprise_carp_attack.dm @@ -0,0 +1,53 @@ +// This event sends a few carp after someone in space. + +/datum/gm_action/surprise_carp_attack + name = "surprise carp attack" + departments = list(ROLE_EVERYONE) + reusable = TRUE + chaotic = 10 + var/mob/living/victim = null + +/datum/gm_action/surprise_carp_attack/get_weight() + var/people_in_space = 0 + for(var/mob/living/L in player_list) + if(!(L.z in config.station_levels)) + continue // Not on the right z-level. + var/turf/T = get_turf(L) + if(istype(T, /turf/space) && istype(T.loc,/area/space)) + people_in_space++ + return people_in_space * 50 + +/datum/gm_action/surprise_carp_attack/set_up() + var/list/potential_victims = list() + victim = null + for(var/mob/living/L in player_list) + if(!(L.z in config.station_levels)) + continue // Not on the right z-level. + if(L.stat) + continue // Don't want dead people. + var/turf/T = get_turf(L) + if(istype(T, /turf/space) && istype(T.loc,/area/space)) + potential_victims.Add(L) + victim = pick(potential_victims) + + +/datum/gm_action/surprise_carp_attack/start() + ..() + if(!victim) + message_admins("Surprise carp attack failed to find a target.") + return + var/number_of_carp = rand(1, 2) + message_admins("Sending [number_of_carp] carp\s after [victim].") + while(number_of_carp) + var/turf/spawning_turf = null + var/list/nearby_things = oview(10, victim) + for(var/turf/space/space in nearby_things) + if(get_dist(space, victim) <= 7) + continue + spawning_turf = space + break + if(spawning_turf) + var/mob/living/simple_animal/hostile/carp/C = new(spawning_turf) + C.target_mob = victim + C.stance = STANCE_ATTACK + number_of_carp-- \ No newline at end of file diff --git a/code/modules/gamemaster/actions/surprise_meteor.dm b/code/modules/gamemaster/actions/surprise_meteor.dm new file mode 100644 index 0000000000..682a8287a6 --- /dev/null +++ b/code/modules/gamemaster/actions/surprise_meteor.dm @@ -0,0 +1,17 @@ +// This event sends one wave of meteors unannounced. + +/datum/gm_action/surprise_meteors + name = "surprise meteors" + departments = list(ROLE_ENGINEERING) + chaotic = 25 + +/datum/gm_action/surprise_meteors/get_weight() + var/engineers = metric.count_people_in_department(ROLE_ENGINEERING) + var/weight = (max(engineers - 1, 0) * 25) // If only one engineer exists, no meteors for now. + return weight + +/datum/gm_action/surprise_meteors/start() + ..() + spawn(1) + spawn_meteors(rand(4, 8), meteors_normal, pick(cardinal)) + message_admins("Surprise meteors event has ended.") \ No newline at end of file diff --git a/code/modules/gamemaster/controller.dm b/code/modules/gamemaster/controller.dm index 079c535164..343f05842d 100644 --- a/code/modules/gamemaster/controller.dm +++ b/code/modules/gamemaster/controller.dm @@ -24,7 +24,7 @@ for(var/datum/gm_action/action in available_actions) if(action.enabled == FALSE) continue - HTML += "[action.name] ([english_list(action.departments)]) (weight: [action.get_weight()])
" + HTML += "[action.name] ([english_list(action.departments)]) (weight: [action.get_weight()]) \[Force\]
" HTML += "
" HTML += "All living mobs activity: [metric.assess_all_living_mobs()]%
" @@ -77,4 +77,16 @@ adjust_danger(amount) message_admins("GM danger was adjusted by [amount] by [usr.key].") - interact(usr) // To refresh the UI. \ No newline at end of file + interact(usr) // To refresh the UI. + +/datum/gm_action/Topic(href, href_list) + if(..()) + return + + if(!is_admin(usr)) + message_admins("[usr] has attempted to force an event without being an admin.") + return + + if(href_list["force"]) + gm.run_action(src) + message_admins("GM event [name] was forced by [usr.key].") \ No newline at end of file diff --git a/code/modules/gamemaster/game_master.dm b/code/modules/gamemaster/game_master.dm index 180892f4c9..c435e868f6 100644 --- a/code/modules/gamemaster/game_master.dm +++ b/code/modules/gamemaster/game_master.dm @@ -19,6 +19,8 @@ /datum/game_master/New() ..() available_actions = init_subtypes(/datum/gm_action) + for(var/datum/gm_action/action in available_actions) + action.gm = src /datum/game_master/proc/process() if(ticker && ticker.current_state == GAME_STATE_PLAYING && !suspended) @@ -68,17 +70,26 @@ if(best_actions && best_actions.len) var/list/weighted_actions = list() for(var/datum/gm_action/action in best_actions) + if(action.chaotic > danger) + continue // We skip dangerous events when bad stuff is already occuring. weighted_actions[action] = action.get_weight() var/datum/gm_action/choice = pickweight(weighted_actions) if(choice) log_debug("[choice.name] was chosen by the Game Master, and is now being ran.") - choice.set_up() - choice.start() - next_action = world.time + rand(15 MINUTES, 30 MINUTES) - last_department_used = choice.departments[1] - + run_action(choice) +/datum/game_master/proc/run_action(var/datum/gm_action/action) + action.set_up() + action.start() + action.announce() + if(action.chaotic) + danger += action.chaotic + if(action.length) + spawn(action.length) + action.end() + next_action = world.time + rand(15 MINUTES, 30 MINUTES) + last_department_used = action.departments[1] /datum/game_master/proc/decide_best_action(var/list/most_active_departments) diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 9585a4965b..a017476af3 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -148,11 +148,19 @@ return user << "The crate is locked with a Deca-code lock." - var/input = input(user, "Enter [codelen] digits.", "Deca-Code Lock", "") as text + var/input = input(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "") as text if(!Adjacent(user)) return + var/list/sanitised = list() + var/sanitycheck = 1 + for(var/i=1,i<=length(input),i++) //put the guess into a list + sanitised += text2num(copytext(input,i,i+1)) + for(var/i=1,i<=(length(input)-1),i++) //compare each digit in the guess to all those following it + for(var/j=(i+1),j<=length(input),j++) + if(sanitised[i] == sanitised[j]) + sanitycheck = null //if a digit is repeated, reject the input - if(input == null || length(input) != codelen) + if(input == null || sanitycheck == null || length(input) != codelen) user << "You leave the crate alone." else if(check_input(input)) user << "The crate unlocks!" @@ -203,6 +211,9 @@ else if(lastattempt[i] in code_contents) ++cows code_contents -= lastattempt[i] - user << "Last code attempt had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions." + var/previousattempt = null //convert back to string for readback + for(var/i in 1 to codelen) + previousattempt = addtext(previousattempt, lastattempt[i]) + user << "Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions." return ..() diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 31d99ebb05..5b1cbe496f 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -17,7 +17,7 @@ var/list/resource_field = list() var/ore_types = list( - "iron" = /obj/item/weapon/ore/iron, + "hematite" = /obj/item/weapon/ore/iron, "uranium" = /obj/item/weapon/ore/uranium, "gold" = /obj/item/weapon/ore/gold, "silver" = /obj/item/weapon/ore/silver, @@ -26,7 +26,7 @@ "osmium" = /obj/item/weapon/ore/osmium, "hydrogen" = /obj/item/weapon/ore/hydrogen, "silicates" = /obj/item/weapon/ore/glass, - "carbonaceous rock" = /obj/item/weapon/ore/coal + "carbon" = /obj/item/weapon/ore/coal ) //Upgrades diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index c0c3dd937d..4a8c3c59b6 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -29,7 +29,7 @@ var/ore_type switch(metal) - if("silicates", "carbonaceous rock", "iron") ore_type = "surface minerals" + if("silicates", "carbon", "hematite") ore_type = "surface minerals" if("gold", "silver", "diamond") ore_type = "precious metals" if("uranium") ore_type = "nuclear fuel" if("phoron", "osmium", "hydrogen") ore_type = "exotic matter" diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index b9fc47e4e9..f46d384f86 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -175,9 +175,8 @@ var/list/mining_overlay_cache = list() if(severity <= 2) // Now to expose the ore lying under the sand. spawn(1) // Otherwise most of the ore is lost to the explosion, which makes this rather moot. - var/losses = rand(0.5, 1) // Between 0% to 50% loss due to booms. for(var/ore in resources) - var/amount_to_give = Ceiling(resources[ore] * losses) // Should result in at least one piece of ore. + var/amount_to_give = rand(Ceiling(resources[ore]/2), resources[ore]) // Should result in at least one piece of ore. for(var/i=1, i <= amount_to_give, i++) var/oretype = ore_types[ore] new oretype(src) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index db412c4134..5aef9abd4b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -708,6 +708,10 @@ icon_state = module_sprites[icontype] return + if(typing) + typing = FALSE + set_typing_indicator(1) + /mob/living/silicon/robot/proc/installed_modules() if(weapon_lock) src << "\red Weapon lock active, unable to use modules! Count:[weaponlock_time]" diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 030f9b8e6b..52704d85cd 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -29,7 +29,7 @@ cold_damage_per_tick = 20 var/poison_per_bite = 5 var/poison_chance = 10 - var/poison_type = "toxin" + var/poison_type = "spidertoxin" faction = "spiders" var/busy = 0 pass_flags = PASSTABLE @@ -85,9 +85,14 @@ if(prob(5)) var/obj/item/organ/external/O = pick(H.organs) if(!(O.robotic >= ORGAN_ROBOT)) - var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/, list(O, src)) - O.implants += eggs - H << "The [src] injects something into your [O.name]!" + var/eggcount + for(var/obj/I in O.implants) + if(istype(I, /obj/effect/spider/eggcluster)) + eggcount ++ + if(!eggcount) + var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/small, list(O, src)) + O.implants += eggs + H << "The [src] injects something into your [O.name]!" /mob/living/simple_animal/hostile/giant_spider/Life() ..() diff --git a/code/modules/mob/living/simple_animal/hostile/goose_vr.dm b/code/modules/mob/living/simple_animal/hostile/goose_vr.dm new file mode 100644 index 0000000000..080c6fac92 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/goose_vr.dm @@ -0,0 +1,11 @@ +/mob/living/simple_animal/hostile/goose + //Space geese aren't affected by atmos. + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 \ No newline at end of file diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index ccb527986f..b0da801703 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -23,10 +23,10 @@ if(!M.restrained() && !M.stat) switch(over_object.name) if("r_hand") - M.u_equip(src) + M.unEquip(src) M.put_in_r_hand(src) if("l_hand") - M.u_equip(src) + M.unEquip(src) M.put_in_l_hand(src) add_fingerprint(usr) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 57d10ed227..5373a71781 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -16,6 +16,7 @@ var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! /obj/machinery/photocopier/New() + ..() component_parts = list() component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) component_parts += new /obj/item/weapon/stock_parts/motor(src) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index a0f81f0aee..19a7e0498d 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -98,10 +98,10 @@ var/global/photo_count = 0 if((!( M.restrained() ) && !( M.stat ) && M.back == src)) switch(over_object.name) if("r_hand") - M.u_equip(src) + M.unEquip(src) M.put_in_r_hand(src) if("l_hand") - M.u_equip(src) + M.unEquip(src) M.put_in_l_hand(src) add_fingerprint(usr) return diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 036777ca15..184a1731f5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -701,6 +701,7 @@ var/mob/living/carbon/human/H = user if(H.species.can_shred(H)) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) user.visible_message("[user.name] slashes at the [src.name]!", "You slash at the [src.name]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 969cc6b6c2..946d8372ae 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -535,6 +535,7 @@ if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user if(H.species.can_shred(H)) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) for(var/mob/M in viewers(src)) M.show_message("\red [user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2) broken() diff --git a/code/modules/projectiles/guns/energy/particle.dm b/code/modules/projectiles/guns/energy/particle.dm new file mode 100644 index 0000000000..bb50366ec7 --- /dev/null +++ b/code/modules/projectiles/guns/energy/particle.dm @@ -0,0 +1,87 @@ +/obj/item/weapon/gun/energy/particle + name = "Antiparticle projector gun" + icon = 'icons/obj/gun_vr.dmi' + icon_state = "particle" + item_state = "particle" + desc = "An unconventional firearm, APP guns generate attogram-scale quantities of antimatter which are then launched using an electromagnetic field." + force = 5 + fire_sound = 'sound/weapons/Laser.ogg' + slot_flags = SLOT_BELT + w_class = ITEMSIZE_NORMAL + projectile_type = /obj/item/projectile/bullet/particle + origin_tech = null + fire_delay = 10 + charge_cost = 240 //same cost as lasers + var/safetycatch = 0 //if 1, won't let you fire in pressurised environment, rather than malfunctioning + + +/obj/item/weapon/gun/energy/particle/special_check(var/mob/user) + if (..()) + var/turf/T = get_turf(src) + var/datum/gas_mixture/environment = T ? T.return_air() : null + var/pressure = environment ? environment.return_pressure() : 0 + + if (!power_supply || power_supply.charge < charge_cost) + user.visible_message("*click*", "*click*") + playsound(src.loc, 'sound/weapons/empty.ogg', 100, 1) + return 0 + if(pressure >= 10) + if (safetycatch) //weapons with a pressure regulator simply won't fire + user.visible_message("*click*", "The pressure-interlock prevents you from firing \the [src].") + playsound(src.loc, 'sound/weapons/empty.ogg', 100, 1) + return 0 + else if (prob(min(pressure, 100))) //pressure% chance of failing + var/severity = rand(pressure) + if (severity <= 10) // just doesn't fire. 10% chance in 100 atmo. + user.visible_message("*click*", "\The [src] jams.") + playsound(src.loc, 'sound/weapons/empty.ogg', 100, 1) + else if (severity <= 60) //50% chance of fizzling and wasting a shot + user.visible_message("\The [user] fires \the [src], but the shot fizzles in the air!", "You fire \the [src], but the shot fizzles in the air!") + power_supply.charge -= charge_cost + playsound(src.loc, fire_sound, 100, 1) + var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread) + sparks.set_up(2, 1, T) + sparks.start() + update_icon() + else if (severity <= 80) //20% chance of shorting out and emptying the cell + user.visible_message("\The [user] pulls the trigger, but \the [src] shorts out!", "You pull the trigger, but \the [src] shorts out!") + power_supply.charge = 0 + var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread) + sparks.set_up(2, 1, T) + sparks.start() + update_icon() + else if (severity <= 90) //10% chance of breaking the gun + user.visible_message("\The [user] pulls the trigger, but \the [src] erupts in a shower of sparks!", "You pull the trigger, but \the [src] bursts into a shower of sparks!") + var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread) + sparks.set_up(2, 1, T) + sparks.start() + power_supply.charge = 0 + power_supply.maxcharge = 0 + power_supply.desc += " It seems to be burnt out!" + desc += " The casing is covered in scorch-marks." + fire_delay += fire_delay // even if you swap out the cell for a good one, the gun's cluckety-clucked. + charge_cost += charge_cost + update_icon() + else if (severity <= 150) // 10% chance of exploding + user << "The [src] explodes!" + explosion(T, -1, -1, 1, 1) + qdel(src) + else //can only possibly happen if you're dumb enough to fire it in an OVER pressure environment, over 150kPa + user << "The [src] explodes catastrophically!" + explosion(T, -1, 1, 2, 2) + qdel(src) + return 0 + return 1 + return 0 + + +// projectiles below + +/obj/item/projectile/bullet/particle + name = "particle" + icon = 'icons/obj/projectiles_vr.dmi' + icon_state = "particle" + damage = 40 + damage_type = BURN + check_armour = "energy" + embed_chance = 0 diff --git a/code/modules/projectiles/guns/energy/stun_vr.dm b/code/modules/projectiles/guns/energy/stun_vr.dm new file mode 100644 index 0000000000..b0bfd53e46 --- /dev/null +++ b/code/modules/projectiles/guns/energy/stun_vr.dm @@ -0,0 +1,6 @@ +/obj/item/weapon/gun/energy/taser + charge_cost = 160 + fire_delay = 4 + +/obj/item/weapon/gun/energy/stunrevolver + charge_cost = 400 \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/pistol_vr.dm b/code/modules/projectiles/guns/projectile/pistol_vr.dm new file mode 100644 index 0000000000..9f11eefdb1 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/pistol_vr.dm @@ -0,0 +1,2 @@ +/obj/item/weapon/gun/projectile/sec/flash + name = ".45 pistol" \ No newline at end of file diff --git a/code/modules/projectiles/guns/vox.dm b/code/modules/projectiles/guns/vox.dm index c1e0e84cf8..857b56fa6b 100644 --- a/code/modules/projectiles/guns/vox.dm +++ b/code/modules/projectiles/guns/vox.dm @@ -57,6 +57,7 @@ icon_state = "darkcannon" item_state = "darkcannon" fire_sound = 'sound/weapons/eLuger.ogg' + w_class = ITEMSIZE_HUGE charge_cost = 600 projectile_type = /obj/item/projectile/beam/darkmatter self_recharge = 1 @@ -102,6 +103,7 @@ icon_state = "noise" item_state = "noise" fire_sound = 'sound/effects/basscannon.ogg' + w_class = ITEMSIZE_HUGE self_recharge = 1 charge_cost = 600 diff --git a/code/modules/projectiles/projectile/beams_vr.dm b/code/modules/projectiles/projectile/beams_vr.dm index f6738fc597..c9325109e4 100644 --- a/code/modules/projectiles/projectile/beams_vr.dm +++ b/code/modules/projectiles/projectile/beams_vr.dm @@ -10,3 +10,6 @@ muzzle_type = /obj/effect/projectile/laser_omni/muzzle tracer_type = /obj/effect/projectile/laser_omni/tracer impact_type = /obj/effect/projectile/laser_omni/impact + +/obj/item/projectile/beam/stun + agony = 35 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy_vr.dm b/code/modules/projectiles/projectile/energy_vr.dm new file mode 100644 index 0000000000..5148c831bd --- /dev/null +++ b/code/modules/projectiles/projectile/energy_vr.dm @@ -0,0 +1,11 @@ +/obj/item/projectile/energy/electrode/strong + agony = 70 + +/obj/item/projectile/energy + flash_strength = 10 + +/obj/item/projectile/energy/flash + flash_range = 1 + +/obj/item/projectile/energy/flash/flare + flash_range = 2 \ No newline at end of file diff --git a/code/modules/projectiles/targeting/targeting_overlay.dm b/code/modules/projectiles/targeting/targeting_overlay.dm index 8c87751de7..2dcf0032be 100644 --- a/code/modules/projectiles/targeting/targeting_overlay.dm +++ b/code/modules/projectiles/targeting/targeting_overlay.dm @@ -107,8 +107,10 @@ obj/aiming_overlay/proc/update_aiming_deferred() cancel_aiming() return - if(!locked && lock_time >= world.time) + if(!locked && lock_time <= world.time) locked = 1 + owner << "You are locked onto your target." + aiming_at << "The gun is trained on you!" update_icon() var/cancel_aim = 1 @@ -176,7 +178,7 @@ obj/aiming_overlay/proc/update_aiming_deferred() toggle_active(1) locked = 0 update_icon() - lock_time = world.time + 35 + lock_time = world.time + 25 /obj/aiming_overlay/update_icon() if(locked) diff --git a/code/modules/projectiles/targeting/targeting_triggers.dm b/code/modules/projectiles/targeting/targeting_triggers.dm index 2544fae913..188440dcf6 100644 --- a/code/modules/projectiles/targeting/targeting_triggers.dm +++ b/code/modules/projectiles/targeting/targeting_triggers.dm @@ -27,3 +27,5 @@ var/obj/item/weapon/gun/G = aiming_with if(istype(G)) G.Fire(aiming_at, owner, reflex = 1) + locked = 0 + lock_time = world.time+10 diff --git a/code/modules/random_map/noise/ore.dm b/code/modules/random_map/noise/ore.dm index 4caacb7099..697a0b416d 100644 --- a/code/modules/random_map/noise/ore.dm +++ b/code/modules/random_map/noise/ore.dm @@ -49,11 +49,11 @@ if(!priority_process) sleep(-1) T.resources = list() T.resources["silicates"] = rand(3,5) - T.resources["carbonaceous rock"] = rand(3,5) + T.resources["carbon"] = 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["hematite"] = 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) @@ -69,14 +69,14 @@ T.resources["osmium"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX) T.resources["hydrogen"] = 0 T.resources["diamond"] = 0 - T.resources["iron"] = 0 + T.resources["hematite"] = 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["hematite"] = 0 T.resources["gold"] = 0 T.resources["silver"] = 0 return diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index aa952915c3..09897729f9 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -75,7 +75,7 @@ return else - trans = reagents.splash(target, amount_per_transfer_from_this, max_spill=30) //sprinkling reagents on generic non-mobs + trans = reagents.splash(target, amount_per_transfer_from_this, max_spill=0) //sprinkling reagents on generic non-mobs user << "You transfer [trans] units of the solution." else // Taking from something diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index edb8e7fae6..163fd1161f 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -131,23 +131,28 @@ ..() reagents.add_reagent("soymilk", 50) -/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton +/obj/item/weapon/reagent_containers/food/drinks/smallmilk name = "small milk carton" + desc = "It's milk. White and nutritious goodness!" volume = 30 icon_state = "mini-milk" -/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/New() + item_state = "carton" + center_of_mass = list("x"=16, "y"=9) +/obj/item/weapon/reagent_containers/food/drinks/smallmilk/New() ..() reagents.add_reagent("milk", 30) -/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk name = "small chocolate milk carton" desc = "It's milk! This one is in delicious chocolate flavour." + volume = 30 icon_state = "mini-milk_choco" -/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate/New() + item_state = "carton" + center_of_mass = list("x"=16, "y"=9) +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk/New() ..() reagents.add_reagent("chocolate_milk", 30) - /obj/item/weapon/reagent_containers/food/drinks/coffee name = "\improper Robust Coffee" desc = "Careful, the beverage you're about to enjoy is extremely hot." diff --git a/code/modules/reagents/reagent_containers/food/sandwich.dm b/code/modules/reagents/reagent_containers/food/sandwich.dm index c853706ad5..48356172ca 100644 --- a/code/modules/reagents/reagent_containers/food/sandwich.dm +++ b/code/modules/reagents/reagent_containers/food/sandwich.dm @@ -22,16 +22,16 @@ if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/breadslice)) sandwich_limit += 4 - if(src.contents.len > sandwich_limit) - user << "\red If you put anything else on \the [src] it's going to collapse." - return - else if(istype(W,/obj/item/weapon/material/shard)) + if(istype(W,/obj/item/weapon/material/shard)) user << "\blue You hide [W] in \the [src]." user.drop_item() W.loc = src update() return else if(istype(W,/obj/item/weapon/reagent_containers/food/snacks)) + if(src.contents.len > sandwich_limit) + user << "\red If you put anything else on \the [src] it's going to collapse." + return user << "\blue You layer [W] over \the [src]." var/obj/item/weapon/reagent_containers/F = W F.reagents.trans_to_obj(src, F.reagents.total_volume) diff --git a/code/modules/reagents/reagent_containers/spray_vr.dm b/code/modules/reagents/reagent_containers/spray_vr.dm new file mode 100644 index 0000000000..ef785ffc35 --- /dev/null +++ b/code/modules/reagents/reagent_containers/spray_vr.dm @@ -0,0 +1,12 @@ +/obj/item/weapon/reagent_containers/spray/windowsealant + name = "Krak-b-gone" + desc = "A spray bottle of silicate sealant for rapid window repair." + icon = 'icons/obj/items_vr.dmi' + icon_state = "windowsealant" + item_state = "spraycan" + possible_transfer_amounts = null + volume = 80 + +/obj/item/weapon/reagent_containers/spray/windowsealant/New() + ..() + reagents.add_reagent("silicate", 80) \ No newline at end of file diff --git a/code/modules/rogueminer_vr/asteroid.dm b/code/modules/rogueminer_vr/asteroid.dm new file mode 100644 index 0000000000..4719c23a66 --- /dev/null +++ b/code/modules/rogueminer_vr/asteroid.dm @@ -0,0 +1,150 @@ +////////////////////////////// +// An asteroid object, could be spawned in, or not +// May or may not include phat lewt +////////////////////////////// + +/datum/rogue/asteroid + //Composition + var/type_wall = /turf/simulated/mineral //Type of turf used to generate the asteroid + var/type_under = /turf/simulated/mineral/floor //Type of turf that's under the normal one + + //Dimensions + var/coresize = 3 //The size of the center square + var/width = 9 + + //Other Attribs + var/hollow = 0 //Might be hollow for loot injection purposes + var/spawned = 0 //Is this asteroid in-play right now + var/difficulty = 0 //Difficulty this asteroid was created at + + //Locational stats + var/obj/effect/landmark/asteroid_spawn/mylandmark //The landmark I'm spawned at, if any. + + //Asteroid map + //The map struct is: + // map list() + // 0 = list() + // 1 = list() //These are x coordinates + // 2 = list() + // ^0 = list() + // 1 = list() //These are y coordinates at x2 + // 2 = list() + // ^type1 + // type2 //These are items/objects at the coordinate + // type3 //This would be object 3 at x2,y2 + var/list/map + +//Builds an empty map +/datum/rogue/asteroid/New(var/core, var/tw, var/tu) + rm_controller.dbg("A(n): New asteroid, with: C:[core], TW:[tw], TU:[tu].") + + if(core) + coresize = core + if(tw) + type_wall = tw + if(tu) + type_under = tu + + width = coresize*3 + rm_controller.dbg("A(n): My width is [width].") + + map = new/list(width,width,0) + rm_controller.dbg("A(n): Created empty map lists. Map now has [map.len] X-lists.") + +//Adds something to a spot in the asteroid map +/datum/rogue/asteroid/proc/spot_add(var/x,var/y,var/thing) + if(!x || !y || !thing) + return + + rm_controller.dbg("A(sa): Adding [thing] at [x],[y] in the map.") + var/list/work = map[x][y] + work.Add(thing) + rm_controller.dbg("A(n): [x],[y] now contains [work.len] items.") + +//Removes something from a spot in the asteroid map +/datum/rogue/asteroid/proc/spot_remove(var/x,var/y,var/thing) + if(!x || !y || !thing) + return + + var/list/work = map[x][y] + work.Add(thing) + +//Just removes everything from a spot in the asteroid map +/datum/rogue/asteroid/proc/spot_clear(var/x,var/y) + if(!x || !y) + return + + var/list/work = map[x][y] + work.Cut() + +///////////////////////////// +// Predefined asteroid maps +///////////////////////////// +/datum/rogue/asteroid/predef + width = 3 //Small 1-tile room by default. + +/datum/rogue/asteroid/predef/New() //Basically just ignore what we're told. + rm_controller.dbg("Ap(n): A predefined asteroid is created with width [width].") + map = new/list(width,width,0) + +//Abandoned 1-tile hollow cargo box (pressurized). +/datum/rogue/asteroid/predef/cargo + type_wall = /turf/simulated/wall + type_under = /turf/simulated/floor/plating + + New() + ..() + spot_add(1,1,type_wall) //Bottom left corner + spot_add(1,2,type_wall) + spot_add(1,3,type_wall) + spot_add(2,1,type_wall) + spot_add(2,2,type_under) //Center floor + spot_add(2,2,/obj/random/cargopod) //Loot! + spot_add(2,3,type_wall) + spot_add(3,1,type_wall) + spot_add(3,2,type_wall) + spot_add(3,3,type_wall) //Bottom right corner + +//Abandoned 1-tile hollow cargo box (ANGRY). +/datum/rogue/asteroid/predef/cargo/angry + type_wall = /turf/simulated/wall + type_under = /turf/simulated/floor/plating + + New() + ..() + spot_add(2,2,/obj/random/cargopod) //EXTRA loot! + spot_add(2,2,/mob/living/simple_animal/hostile/vore/alien) //GRRR + +//Longer cargo container for higher difficulties +/datum/rogue/asteroid/predef/cargo_large + width = 5 + type_wall = /turf/simulated/wall + type_under = /turf/simulated/floor/plating + + New() + ..() + spot_add(1,2,type_wall) //-- + spot_add(1,3,type_wall) //Left end of cargo container + spot_add(1,4,type_wall) //-- + + spot_add(5,2,type_wall) //-- + spot_add(5,3,type_wall) //Right end of cargo container + spot_add(5,4,type_wall) //-- + + spot_add(2,4,type_wall) //-- + spot_add(3,4,type_wall) //Top and + spot_add(4,4,type_wall) //bottom of + spot_add(2,2,type_wall) //cargo + spot_add(3,2,type_wall) //container + spot_add(4,2,type_wall) //-- + + spot_add(2,3,type_under) //Left floor + spot_add(3,3,type_under) //Mid floor + spot_add(4,3,type_under) //Right floor + + spot_add(2,3,/obj/random/cargopod) //Left loot + spot_add(3,3,/obj/random/cargopod) //Mid loot + spot_add(4,3,/obj/random/cargopod) //Right loot + + if(prob(30)) + spot_add(3,3,/mob/living/simple_animal/hostile/vore/alien) //And maybe a friend. \ No newline at end of file diff --git a/code/modules/rogueminer_vr/controller.dm b/code/modules/rogueminer_vr/controller.dm new file mode 100644 index 0000000000..1ee3e5fd70 --- /dev/null +++ b/code/modules/rogueminer_vr/controller.dm @@ -0,0 +1,164 @@ +////////////////////////////// +// Tracks mining zone progress and decay +// Makes mining zones more difficult as you enter new ones +// THIS IS THE FIRST UNIT INITIALIZED THAT STARTS EVERYTHING +////////////////////////////// +var/datum/controller/rogue/rm_controller = new() + +/datum/controller/rogue + var/list/datum/rogue/zonemaster/all_zones = list() + var/list/datum/rogue/zonemaster/clean_zones = list() + var/list/datum/rogue/zonemaster/ready_zones = list() + + //So I don't have to do absurd list[list[thing]] over and over. + var/list/diffstep_nums = list( + 100, + 200, + 300, + 450, + 600, + 800) + + var/list/diffstep_strs = list( + "Low", + "Moderate", + "High", + "Very High", + "Extreme", + "ERROR!!@MEM:CH@05R31GN5") + + //The ever-changing difficulty + var/difficulty = 100 + + //Info about our current step + var/diffstep = 1 + + //The current mining zone that the shuttle goes to and whatnot + var/datum/rogue/zonemaster/current_zone = null + var/datum/rogue/zonemaster/previous_zone = null + + // The world.time at which the scanner was last run (for cooldown) + var/last_scan = 0 + var/scan_wait = 10 //In minutes + + var/debugging = 0 + + ///// Prefab Asteroids ///// + var/prefabs = list( + "tier1" = list(/datum/rogue/asteroid/predef/cargo), + "tier2" = list(/datum/rogue/asteroid/predef/cargo,/datum/rogue/asteroid/predef/cargo/angry), + "tier3" = list(/datum/rogue/asteroid/predef/cargo/angry,/datum/rogue/asteroid/predef/cargo_large), + "tier4" = list(/datum/rogue/asteroid/predef/cargo/angry,/datum/rogue/asteroid/predef/cargo_large), + "tier5" = list(/datum/rogue/asteroid/predef/cargo/angry,/datum/rogue/asteroid/predef/cargo_large), + "tier6" = list(/datum/rogue/asteroid/predef/cargo/angry,/datum/rogue/asteroid/predef/cargo_large) + ) + + ///// Monster Lists ///// + var/mobs = list( + "tier1" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose), + "tier2" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose), + "tier3" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose,/mob/living/simple_animal/hostile/vore/bear), + "tier4" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose,/mob/living/simple_animal/hostile/vore/bear), + "tier5" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose,/mob/living/simple_animal/hostile/vore/bear), + "tier6" = list(/mob/living/simple_animal/hostile/carp,/mob/living/simple_animal/hostile/goose,/mob/living/simple_animal/hostile/vore/bear) + ) + +/datum/controller/rogue/New() + //How many zones are we working with here + for(var/area/asteroid/rogue/A in world) + all_zones += new /datum/rogue/zonemaster(A) + //decay() //Decay removed for now, since people aren't getting high scores as it is. + +/datum/controller/rogue/proc/decay(var/manual = 0) + world.log << "RM(stats): DECAY on controller from [difficulty] to [difficulty+(RM_DIFF_DECAY_AMT)] min 100." //DEBUG code for playtest stats gathering. + adjust_difficulty(RM_DIFF_DECAY_AMT) + + if(!manual) //If it was called manually somehow, then don't start the timer, just decay now. + spawn(RM_DIFF_DECAY_TIME) + decay() + return difficulty + +/datum/controller/rogue/proc/dbg(var/message) + ASSERT(message) //I want a stack trace if there's no message + if(debugging) + world.log << "[message]" + +/datum/controller/rogue/proc/adjust_difficulty(var/amt) + ASSERT(amt) + + difficulty = max(difficulty+amt, diffstep_nums[1]) //Can't drop below the lowest level. + + if(difficulty < diffstep_nums[diffstep]) + diffstep-- + else if(difficulty >= diffstep_nums[diffstep+1]) + diffstep++ + +/datum/controller/rogue/proc/get_oldest_zone() + var/oldest_time = world.time + var/oldest_zone + + for(var/datum/rogue/zonemaster/ZM in ready_zones) + if(ZM.prepared_at < oldest_time) //Check ready so we don't return zones that ARE cleaning + oldest_zone = ZM + oldest_time = ZM.prepared_at + + return oldest_zone + +/datum/controller/rogue/proc/mark_clean(var/datum/rogue/zonemaster/ZM) + if(!ZM in all_zones) //What? Who? + rm_controller.dbg("RMC(mc): Some unknown zone asked to be listed.") + + if(ZM in ready_zones) + rm_controller.dbg("RMC(mc): Finite state machine broken.") + + clean_zones += ZM + +/datum/controller/rogue/proc/mark_ready(var/datum/rogue/zonemaster/ZM) + if(!ZM in all_zones) //What? Who? + rm_controller.dbg("RMC(mr): Some unknown zone asked to be listed.") + + if(ZM in clean_zones) + rm_controller.dbg("RMC(mr): Finite state machine broken.") + + ready_zones += ZM + +/datum/controller/rogue/proc/unmark_clean(var/datum/rogue/zonemaster/ZM) + if(!ZM in all_zones) //What? Who? + rm_controller.dbg("RMC(umc): Some unknown zone asked to be listed.") + + if(!ZM in clean_zones) + rm_controller.dbg("RMC(umc): Finite state machine broken.") + + clean_zones -= ZM + +/datum/controller/rogue/proc/unmark_ready(var/datum/rogue/zonemaster/ZM) + if(!ZM in all_zones) //What? Who? + rm_controller.dbg("RMC(umr): Some unknown zone asked to be listed.") + + if(!ZM in ready_zones) + rm_controller.dbg("RMC(umr): Finite state machine broken.") + + ready_zones -= ZM + +/datum/controller/rogue/proc/prepare_new_zone() + var/datum/rogue/zonemaster/ZM_target + + if(clean_zones.len) + ZM_target = pick(clean_zones) + + if(ZM_target) + world.log << "RM(stats): SCORING [ready_zones.len] zones (if unscored)." //DEBUG code for playtest stats gathering. + for(var/datum/rogue/zonemaster/ZM_toscore in ready_zones) //Score all the zones first. + if(ZM_toscore.scored) continue + ZM_toscore.score_zone() + ZM_target.prepare_zone() + else + rm_controller.dbg("RMC(pnz): I was asked for a new zone but there's no space.") + + if(clean_zones.len <= 1) //Need to clean the oldest one, too. + rm_controller.dbg("RMC(pnz): Cleaning up oldest zone.") + spawn(0) //Detatch it so we can return the new zone for now. + var/datum/rogue/zonemaster/ZM_oldest = get_oldest_zone() + ZM_oldest.clean_zone() + + return ZM_target \ No newline at end of file diff --git a/code/modules/rogueminer_vr/debug.dm b/code/modules/rogueminer_vr/debug.dm new file mode 100644 index 0000000000..366d9da027 --- /dev/null +++ b/code/modules/rogueminer_vr/debug.dm @@ -0,0 +1,8 @@ +/client/proc/debug_rogueminer() + set category = "Debug" + set name = "Debug RogueMiner" + set desc = "Debug the RogueMiner controller." + + if(!holder) return + debug_variables(rm_controller) + feedback_add_details("admin_verb","DRM") \ No newline at end of file diff --git a/code/modules/rogueminer_vr/landmarks.dm b/code/modules/rogueminer_vr/landmarks.dm new file mode 100644 index 0000000000..cef03695ea --- /dev/null +++ b/code/modules/rogueminer_vr/landmarks.dm @@ -0,0 +1,30 @@ +////////////////////////////// +// Landmarks for asteroid positioning +// Just makes the placement more safe/sane +////////////////////////////// + +/obj/asteroid_spawner + name = "asteroid spawn" + icon = 'icons/mob/screen1.dmi' + icon_state = "x2" + invisibility = 101 + anchored = 1 + var/datum/rogue/asteroid/myasteroid + +/obj/asteroid_spawner/New() + if(loc && istype(loc,/turf/space) && istype(loc.loc,/area/asteroid/rogue)) + var/area/asteroid/rogue/A = loc.loc + A.asteroid_spawns += src + +/obj/rogue_mobspawner + name = "mob spawn" + icon = 'icons/mob/screen1.dmi' + icon_state = "x" + invisibility = 101 + anchored = 1 + var/mob/mymob + +/obj/rogue_mobspawner/New() + if(loc && istype(loc,/turf/space) && istype(loc.loc,/area/asteroid/rogue)) + var/area/asteroid/rogue/A = loc.loc + A.mob_spawns += src diff --git a/code/modules/rogueminer_vr/wrappers.dm b/code/modules/rogueminer_vr/wrappers.dm new file mode 100644 index 0000000000..0e19a5cb00 --- /dev/null +++ b/code/modules/rogueminer_vr/wrappers.dm @@ -0,0 +1,206 @@ +/obj/effect/step_trigger/teleporter/random/rogue + teleport_z = 7 + teleport_z_offset = 7 + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour + var/margin = 15 //How far from the side should we teleport? Make sure to place the opposite + //side's wrappers at less than this far from the hard boundary + //else people will get stuck in the margins + //Important for auto-determining the size, as well. + + var/mapsize = 300 //I don't know of a way to obtain map size sorry. + + //Important infos! + var/quad_L + var/quad_R + var/quad_U + var/quad_D + + //Relative to the quadrant + var/rel_x + var/rel_y + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/New() + ..() + + + //Figure out where I am on the map and set up vars. + if(x < mapsize/2 && y < mapsize/2) //We're in area 1! + quad_L = 0 + quad_R = mapsize/2 + quad_U = mapsize/2 + quad_D = 0 + rel_x = x + rel_y = y + else if(x >= mapsize/2 && y < mapsize/2) //We're in area 2! + quad_L = mapsize/2 + quad_R = mapsize + quad_U = mapsize/2 + quad_D = 0 + rel_x = x-(mapsize/2) + rel_y = y + else if(x < mapsize/2 && y >= mapsize/2) //We're in area 3! + quad_L = 0 + quad_R = mapsize/2 + quad_U = mapsize + quad_D = mapsize/2 + rel_x = x + rel_y = y-(mapsize/2) + else if(x >= mapsize/2 && y >= mapsize/2) //We're in area 4! + quad_L = mapsize/2 + quad_R = mapsize + quad_U = mapsize + quad_D = mapsize/2 + rel_x = x-(mapsize/2) + rel_y = y-(mapsize/2) + else + return + +//These are placed ON the side they are named after. +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft/New() + ..() + teleport_x = quad_R - margin + teleport_x_offset = quad_R - margin + teleport_y = quad_D + margin + teleport_y_offset = quad_U - margin + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright/New() + ..() + teleport_x = quad_L + margin + teleport_x_offset = quad_L + margin + teleport_y = quad_D + margin + teleport_y_offset = quad_U - margin + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop/New() + ..() + teleport_x = quad_L + margin + teleport_x_offset = quad_R - margin + teleport_y = quad_D + margin + teleport_y_offset = quad_D + margin + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom/New() + ..() + teleport_x = quad_L + margin + teleport_x_offset = quad_R - margin + teleport_y = quad_U - margin + teleport_y_offset = quad_U - margin + +//Sure, I could probably do this with math. But I'm tired. +/* + S1 300 + ----------------------------------- + |015/285 135/285|166/285 285/285| + | | |S + | A3 | A4 |2 + | | | +0|015/166 135/166|166/166 285/166|3 +0|---------------------------------|0 +0|015/135 135/135|166/135 285/135|0 + | | | +S| A1 | A2 | +4| | | + |015/015 135/015|166/015 285/015| + ----------------------------------- + 000 S3 +*/ +/* +//////////// AREA 1 +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A1S1 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A1S2 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A1S3 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A1S4 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +//////////// AREA 2 +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A2S1 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A2S2 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A2S3 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A2S4 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +//////////// AREA 3 +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A3S1 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A3S2 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A3S3 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A3S4 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +//////////// AREA 4 +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A4S1 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A4S2 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A4S3 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = + +/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/A4S4 + teleport_x = + teleport_y = + teleport_x_offset = + teleport_y_offset = +*/ \ No newline at end of file diff --git a/code/modules/rogueminer_vr/zone_console.dm b/code/modules/rogueminer_vr/zone_console.dm new file mode 100644 index 0000000000..2073f92452 --- /dev/null +++ b/code/modules/rogueminer_vr/zone_console.dm @@ -0,0 +1,174 @@ +////////////////////////////// +// The zone control console, fluffed ingame as +// a scanner console for the asteroid belt +////////////////////////////// +#define OUTPOST_Z 5 +#define TRANSIT_Z 2 +#define BELT_Z 7 + +/obj/machinery/computer/roguezones + name = "asteroid belt scanning computer" + desc = "Used to monitor the nearby asteroid belt and detect new areas." + icon_keyboard = "tech_key" + icon_screen = "request" + light_color = "#315ab4" + use_power = 1 + idle_power_usage = 250 + active_power_usage = 500 + circuit = /obj/item/weapon/circuitboard/roguezones + + var/debug = 0 + var/debug_scans = 0 + var/scanning = 0 + var/legacy_zone = 0 //Disable scanning and whatnot. + var/obj/machinery/computer/shuttle_control/belter/shuttle_control + +/obj/machinery/computer/roguezones/initialize() + ..() + shuttle_control = locate(/obj/machinery/computer/shuttle_control/belter) + +/obj/machinery/computer/roguezones/attack_ai(mob/user as mob) + return attack_hand(user) + +/obj/machinery/computer/roguezones/attack_hand(mob/user as mob) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + user.set_machine(src) + ui_interact(user) + +/obj/machinery/computer/roguezones/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + user.set_machine(src) + + + var/chargePercent = min(100, ((((world.time - rm_controller.last_scan) / 10) / 60) / rm_controller.scan_wait) * 100) + var/curZoneOccupied = rm_controller.current_zone ? rm_controller.current_zone.is_occupied() : 0 + + var/list/data = list() + data["timeout_percent"] = chargePercent + data["diffstep"] = rm_controller.diffstep + data["difficulty"] = rm_controller.diffstep_strs[rm_controller.diffstep] + data["occupied"] = curZoneOccupied + data["scanning"] = scanning + data["updated"] = world.time - rm_controller.last_scan < 200 //Very recently scanned (20 seconds) + data["debug"] = debug + + if(!shuttle_control) + data["shuttle_location"] = "Unknown" + data["shuttle_at_station"] = 0 + else if(shuttle_control.z == OUTPOST_Z) + data["shuttle_location"] = "Landed" + data["shuttle_at_station"] = 1 + else if(shuttle_control.z == TRANSIT_Z) + data["shuttle_location"] = "In-transit" + data["shuttle_at_station"] = 0 + else if(shuttle_control.z == BELT_Z) + data["shuttle_location"] = "Belt" + data["shuttle_at_station"] = 0 + + var/can_scan = 0 + if(chargePercent >= 100) //Keep having weird problems with these in one 'if' statement + if(shuttle_control && shuttle_control.z == OUTPOST_Z) //Even though I put them all in parens to avoid OoO problems... + if(!curZoneOccupied) //Not sure why. + if(!scanning) + can_scan = 1 + + if(debug_scans) can_scan = 1 + data["scan_ready"] = can_scan + + // Permit emergency recall of the shuttle if its stranded in a zone with just dead people. + data["can_recall_shuttle"] = (shuttle_control && shuttle_control.z == BELT_Z && !curZoneOccupied) + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "zone_console.tmpl", src.name, 600, 400) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(5) + +/obj/machinery/computer/roguezones/Topic(href, href_list) + if(..()) + return 1 + usr.set_machine(src) + if (href_list["action"]) + switch(href_list["action"]) + if ("scan_for_new") + scan_for_new_zone() + if ("point_at_old") + point_at_old_zone() + if ("recall_shuttle") + failsafe_shuttle_recall() + + src.add_fingerprint(usr) + nanomanager.update_uis(src) + +/obj/machinery/computer/roguezones/proc/scan_for_new_zone() + if(scanning) return + + //Set some kinda scanning var to pause UI input on console + rm_controller.last_scan = world.time + scanning = 1 + sleep(60) + + //Break the shuttle temporarily. + shuttle_control.shuttle_tag = null + + //Build and get a new zone. + var/datum/rogue/zonemaster/ZM_target = rm_controller.prepare_new_zone() + + //Update shuttle destination. + var/datum/shuttle/ferry/S = shuttle_controller.shuttles["Belter"] + S.area_offsite = ZM_target.myshuttle + + //Re-enable shuttle. + shuttle_control.shuttle_tag = "Belter" + + //Update rm_previous + rm_controller.previous_zone = rm_controller.current_zone + + //Update rm_current + rm_controller.current_zone = ZM_target + + //Unset scanning + scanning = 0 + + return + +/obj/machinery/computer/roguezones/proc/point_at_old_zone() + + return + +/obj/machinery/computer/roguezones/proc/failsafe_shuttle_recall() + if(!shuttle_control) + return // Shuttle computer has been destroyed + if (shuttle_control.z != BELT_Z) + return // Usable only when shuttle is away + if(rm_controller.current_zone && rm_controller.current_zone.is_occupied()) + return // Not usable if shuttle is in occupied zone + // Okay do it + var/datum/shuttle/ferry/S = shuttle_controller.shuttles["Belter"] + S.launch(usr) + +/obj/item/weapon/circuitboard/roguezones + name = T_BOARD("asteroid belt scanning computer") + build_path = /obj/machinery/computer/roguezones + origin_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 1) + +// Undefine our constants to not pollute namespace +#undef OUTPOST_Z +#undef TRANSIT_Z +#undef BELT_Z + +/obj/item/weapon/paper/rogueminer + name = "R-38 Scanner Console Guide" + info = {"

Getting Started

+ Congratulations, your station has purchased the R-38 industrial asteroid belt scanner!
+ Using the R-38 is almost as simple as brain surgery! Simply press the scan button to scan for a new mineral-rich asteroid belt location!
+ That's all there is to it!
+ Notice, scan may cause extreme brain damage to those present in asteroid belt, so scanning will be disabled in that case.
+ Existing minerals and living creatures interfere with the scans, so the more minerals extracted and creatures 'removed'/made-not-living in the belt, the more accurate future scans will be.
+

Traveling to the belt

+ When a new zone has been scanned, your station's shuttle destination will be updated to direct it to the newly discovered area automatically.
+ You can then travel to the new area to mine in that location.
+
+ This technology produced under license from Thinktronic Systems, LTD."} \ No newline at end of file diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm new file mode 100644 index 0000000000..0f3b39b37a --- /dev/null +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -0,0 +1,418 @@ +////////////////////////////// +// The zonemaster object, spawned to track the zone and +// clean/populate the zone with asteroids and loot +////////////////////////////// + +/datum/rogue/zonemaster + //our area + var/area/asteroid/rogue/myarea + var/area/shuttle/belter/myshuttle + + //world.time + var/prepared_at = 0 + + //accepting shuttles + var/ready = 0 + + //completely empty + var/clean = 1 + + //scored or not + var/scored = 0 + + //for scoring + var/list/mineral_rocks = list() + var/list/spawned_mobs = list() + var/original_mobs = 0 + + //in-use spawns from the area + var/obj/asteroid_spawner/list/rockspawns = list() + var/obj/rogue_mobspawner/list/mobspawns = list() + +/datum/rogue/zonemaster/New(var/area/A) + ASSERT(A) + myarea = A + myshuttle = locate(myarea.shuttle_area) + spawn(10) //This is called from controller New() and freaks out if this calls back too fast. + rm_controller.mark_clean(src) + +/////////////////////////////// +///// Utility Procs /////////// +/////////////////////////////// + +/datum/rogue/zonemaster/proc/is_occupied() + var/humans = 0 + for(var/mob/living/carbon/human/H in human_mob_list) + if(H.stat >= DEAD) //Conditions for exclusion here, like if disconnected people start blocking it. + continue + var/area/A = get_area(H) + if((A == myarea) || (A == myshuttle)) //The loc of a turf is the area it is in. + humans++ + return humans + +/////////////////////////////// +///// Asteroid Generation ///// +/////////////////////////////// +/datum/rogue/zonemaster/proc/generate_asteroid(var/core_min = 2, var/core_max = 5) + //Chance for a predefined structure instead, more common later + if(prob(rm_controller.diffstep*4)) + rm_controller.dbg("ZM(ga): Fell into prefab asteroid chance.") + var/prefab = pick(rm_controller.prefabs["tier[rm_controller.diffstep]"]) + rm_controller.dbg("ZM(ga): Picked [prefab] as the prefab.") + var/prefabinst = new prefab(null) + return prefabinst + + var/datum/rogue/asteroid/A = new(rand(core_min,core_max)) + rm_controller.dbg("ZM(ga): New asteroid with C:[A.coresize], TW:[A.type_wall].") + + //Add the core to the asteroid's map + rm_controller.dbg("ZM(ga): Starting core generation for [A.coresize] size core..") + for(var/x = 1; x <= A.coresize, x++) + for(var/y = 1; y <= A.coresize, y++) + rm_controller.dbg("ZM(ga): Doing core-relative [x],[y] at [A.coresize+x],[A.coresize+y], [A.type_wall].") + A.spot_add(A.coresize+x, A.coresize+y, A.type_wall) + + var/max_armlen = A.coresize - 1 //Can tweak to change appearance. + + //Add the arms to the asteroid's map + //Vertical arms + for(var/x = A.coresize+1, x <= A.coresize*2, x++) //Start at leftmost side of core, work towards higher X. + rm_controller.dbg("ZM(ga): Vert arms. My current column is x:[x].") + var/B_arm = rand(0,max_armlen) + var/T_arm = rand(0,max_armlen) + rm_controller.dbg("ZM(ga): B/T. Going to make B:[B_arm], T:[T_arm] for x:[x].") + + //Bottom arm + for(var/y = A.coresize, y > A.coresize-B_arm, y--) //Start at bottom edge of the core, work towards lower Y. + A.spot_add(x,y,A.type_wall) + //Top arm + for(var/y = (A.coresize*2)+1, y < ((A.coresize*2)+1)+T_arm, y++) //Start at top edge of the core, work towards higher Y. + A.spot_add(x,y,A.type_wall) + + + //Horizontal arms + for(var/y = A.coresize+1, y <= A.coresize*2, y++) //Start at lower side of core, work towards higher Y. + rm_controller.dbg("ZM(ga): Horiz arms. My current row is y:[y].") + var/R_arm = rand(0,max_armlen) + var/L_arm = rand(0,max_armlen) + rm_controller.dbg("ZM(ga): R/L. Going to make R:[R_arm], L:[L_arm] for y:[y].") + + //Right arm + for(var/x = (A.coresize*2)+1, x <= ((A.coresize*2)+1)+R_arm, x++) //Start at right edge of core, work towards higher X. + A.spot_add(x,y,A.type_wall) + //Left arm + for(var/x = A.coresize, x > A.coresize-L_arm, x--) //Start at left edge of core, work towards lower X. + A.spot_add(x,y,A.type_wall) + + + //Diagonals + // hao do + + rm_controller.dbg("ZM(ga): Asteroid generation done.") + return A + +/datum/rogue/zonemaster/proc/place_asteroid(var/datum/rogue/asteroid/A,var/obj/asteroid_spawner/SP) + ASSERT(SP && A) + + rm_controller.dbg("ZM(pa): Placing at point [SP.x],[SP.y],[SP.z].") + SP.myasteroid = A + + //Bottom-left corner of our bounding box + var/BLx = SP.x - (A.width/2) + var/BLy = SP.y - (A.width/2) + rm_controller.dbg("ZM(pa): BLx is [BLx], BLy is [BLy].") + + rm_controller.dbg("ZM(pa): The asteroid has [A.map.len] X-lists.") + + for(var/Ix=1, Ix <= A.map.len, Ix++) + var/list/curr_x = A.map[Ix] + rm_controller.dbg("ZM(pa): Now doing X:[Ix] which has [curr_x.len] Y-lists.") + + for(var/Iy=1, Iy <= curr_x.len, Iy++) + var/list/curr_y = curr_x[Iy] + rm_controller.dbg("ZM(pa): Now doing Y:[Iy] which has [curr_y.len] items.") + + var/world_x = BLx+Ix + var/world_y = BLy+Iy + var/world_z = SP.z + + var/spot = locate(world_x,world_y,world_z) + + for(var/T in curr_y) + rm_controller.dbg("ZM(pa): Doing entry [T] in Y-list [Iy].") + if(ispath(T,/turf)) //We're spawning a turf + rm_controller.dbg("ZM(pa): Turf-generate mode.") + + //Make sure we locate()'d a turf and not something else + if(!isturf(spot)) + spot = get_turf(spot) + var/turf/P = spot + + rm_controller.dbg("ZM(pa): Replacing [P.type] with [T].") + var/turf/newturf = P.ChangeTurf(T) + switch(newturf.type) + if(/turf/simulated/mineral) + place_resources(newturf) + + newturf.update_icon(1) + else //Anything not a turf + rm_controller.dbg("ZM(pa): Creating [T].") + new T(spot) + + +/datum/rogue/zonemaster/proc/place_resources(var/turf/simulated/mineral/M) + #define XENOARCH_SPAWN_CHANCE 0.3 + #define DIGSITESIZE_LOWER 4 + #define DIGSITESIZE_UPPER 12 + #define ARTIFACTSPAWNNUM_LOWER 6 + #define ARTIFACTSPAWNNUM_UPPER 12 //Replace with difficulty-based ones. + + if(!M.mineral && prob(rm_controller.diffstep_nums[rm_controller.diffstep]/10)) //Difficulty translates directly into ore chance + rm_controller.dbg("ZM(par): Adding mineral to [M.x],[M.y].") + M.make_ore(rm_controller.diffstep >= 3 ? 1 : 0) + mineral_rocks += M + //If above difficulty threshold make rare ore instead (M.make_ore(1)) + //Increase with difficulty etc + + if(!M.density) + return + + if(isnull(M.geologic_data)) + M.geologic_data = new /datum/geosample(M) + + if(!prob(XENOARCH_SPAWN_CHANCE)) + return + + var/farEnough = 1 + for(var/A in master_controller.digsite_spawning_turfs) + var/turf/T = A + if(T in range(5, M)) + farEnough = 0 + break + if(!farEnough) + return + + master_controller.digsite_spawning_turfs.Add(M) + + var/digsite = get_random_digsite_type() + var/target_digsite_size = rand(DIGSITESIZE_LOWER, DIGSITESIZE_UPPER) + + var/list/processed_turfs = list() + var/list/turfs_to_process = list(M) + + var/list/viable_adjacent_turfs = list() + if(target_digsite_size > 1) + for(var/turf/simulated/mineral/T in orange(2, M)) + if(!T.density) + continue + if(T.finds) + continue + if(T in processed_turfs) + continue + viable_adjacent_turfs.Add(T) + + target_digsite_size = min(target_digsite_size, viable_adjacent_turfs.len) + + for(var/i = 1 to target_digsite_size) + turfs_to_process += pick_n_take(viable_adjacent_turfs) + + while(turfs_to_process.len) + var/turf/simulated/mineral/archeo_turf = pop(turfs_to_process) + rm_controller.dbg("ZM(par): Adding archeo find to [M.x],[M.y].") + processed_turfs.Add(archeo_turf) + if(isnull(archeo_turf.finds)) + archeo_turf.finds = list() + if(prob(50)) + archeo_turf.finds.Add(new /datum/find(digsite, rand(10, 190))) + else if(prob(75)) + archeo_turf.finds.Add(new /datum/find(digsite, rand(10, 90))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(110, 190))) + else + archeo_turf.finds.Add(new /datum/find(digsite, rand(10, 50))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(60, 140))) + archeo_turf.finds.Add(new /datum/find(digsite, rand(150, 190))) + + //sometimes a find will be close enough to the surface to show + var/datum/find/F = archeo_turf.finds[1] + if(F.excavation_required <= F.view_range) + archeo_turf.archaeo_overlay = "overlay_archaeo[rand(1,3)]" + archeo_turf.update_icon() + + //have a chance for an artifact to spawn here, but not in animal or plant digsites + if(isnull(M.artifact_find) && digsite != DIGSITE_GARDEN && digsite != DIGSITE_ANIMAL) + master_controller.artifact_spawning_turfs.Add(archeo_turf) + + //create artifact machinery + var/num_artifacts_spawn = rand(ARTIFACTSPAWNNUM_LOWER, ARTIFACTSPAWNNUM_UPPER) + while(master_controller.artifact_spawning_turfs.len > num_artifacts_spawn) + pick_n_take(master_controller.artifact_spawning_turfs) + + var/list/artifacts_spawnturf_temp = master_controller.artifact_spawning_turfs.Copy() + while(artifacts_spawnturf_temp.len > 0) + var/turf/simulated/mineral/artifact_turf = pop(artifacts_spawnturf_temp) + artifact_turf.artifact_find = new() + + #undef XENOARCH_SPAWN_CHANCE + #undef DIGSITESIZE_LOWER + #undef DIGSITESIZE_UPPER + #undef ARTIFACTSPAWNNUM_LOWER + #undef ARTIFACTSPAWNNUM_UPPER //Replace with difficulty-based ones. + +/////////////////////////////// +///// Zone Population ///////// +/////////////////////////////// + +//Overall 'prepare' proc (marks as ready) +/datum/rogue/zonemaster/proc/prepare_zone(var/delay = 0) + rm_controller.unmark_clean(src) + rm_controller.dbg("ZM(p): Preparing zone with difficulty level [rm_controller.diffstep].") + + + rm_controller.dbg("ZM(p): Randomizing spawns.") + randomize_spawns() + rm_controller.dbg("ZM(p): [rockspawns.len] picked.") + for(var/obj/asteroid_spawner/SP in rockspawns) + rm_controller.dbg("ZM(p): Creating asteroid for [SP.x],[SP.y],[SP.z].") + var/datum/rogue/asteroid/A = generate_asteroid() + rm_controller.dbg("ZM(p): Placing asteroid.") + place_asteroid(A,SP) + if(delay) + sleep(delay) + + for(var/obj/rogue_mobspawner/SP in mobspawns) + rm_controller.dbg("ZM(p): Spawning mob at [SP.x],[SP.y],[SP.z].") + //Make sure we can spawn a spacemob here + if(!istype(get_turf(SP),/turf/space)) + rm_controller.dbg("ZM(p): Turf blocking mob spawn at [SP.x],[SP.y],[SP.z].") + mobspawns -= SP + for(var/obj/rogue_mobspawner/NS in myarea.mob_spawns) + if(NS in mobspawns) + continue + if(istype(get_turf(NS),/turf/space)) + SP = NS + break + if(SP) + rm_controller.dbg("ZM(p): Got a mob spawnpoint, so picking a type.") + var/mobchoice = pick(rm_controller.mobs["tier[rm_controller.diffstep]"]) + rm_controller.dbg("ZM(p): Picked [mobchoice] to spawn.") + var/newmob = new mobchoice(get_turf(SP)) + spawned_mobs += newmob + if(delay) + sleep(delay) + + rm_controller.dbg("ZM(p): Zone generation done.") + world.log << "RM(stats): PREP [myarea] at [world.time] with [spawned_mobs.len] mobs, [mineral_rocks.len] minrocks, total of [rockspawns.len] rockspawns, [mobspawns.len] mobspawns." //DEBUG code for playtest stats gathering. + prepared_at = world.time + rm_controller.mark_ready(src) + return myarea + +//Randomize the landmarks that are enabled +/datum/rogue/zonemaster/proc/randomize_spawns(var/chance = 50) + rm_controller.dbg("ZM(rs): Previously [rockspawns.len] rockspawns.") + rockspawns.Cut() + rm_controller.dbg("ZM(rs): Now [rockspawns.len] rockspawns.") + for(var/obj/asteroid_spawner/SP in myarea.asteroid_spawns) + if(prob(chance)) + rockspawns += SP + rm_controller.dbg("ZM(rs): Picked [rockspawns.len] new rockspawns with [chance]% chance.") + + rm_controller.dbg("ZM(rs): Previously [mobspawns.len] mobspawns.") + mobspawns.Cut() + rm_controller.dbg("ZM(rs): Now [mobspawns.len] mobspawns.") + for(var/obj/rogue_mobspawner/SP in myarea.mob_spawns) + if(prob(rm_controller.diffstep_nums[rm_controller.diffstep]/10)) + mobspawns += SP + original_mobs++ + rm_controller.dbg("ZM(rs): Picked [mobspawns.len] new mobspawns with [chance]% chance.") + return myarea + +/////////////////////////////// +///// Zone Cleaning /////////// +/////////////////////////////// +/datum/rogue/zonemaster/proc/score_zone(var/bonus = 10) + rm_controller.dbg("ZM(sz): Scoring zone with area [myarea].") + scored = 1 + var/tally = bonus + + //Ore-bearing rocks that were mined + for(var/turf/T in mineral_rocks) + var/has_minerals = 0 + for(var/atom/I in T.contents) + if(istype(I,/obj/effect/mineral)) + has_minerals++ + break + if(has_minerals == 0) + tally += RM_DIFF_VALUE_ORE + + mineral_rocks.Cut() //For good measure, to prevent rescoring. + + for(var/I = 1, I <= spawned_mobs.len, I++) + if(isnull(spawned_mobs[I])) + tally += RM_DIFF_VALUE_MOB //Mobs so annihilated they were deleted + rm_controller.dbg("ZM(sz): Scoring one mob annihilated.") + if(istype(spawned_mobs[I],/mob)) + var/mob/M = spawned_mobs[I] + if(M.stat > 0) //Knocked out or dead or anything other than normal + tally += RM_DIFF_VALUE_MOB + rm_controller.dbg("ZM(sz): Scoring one mob dead.") + + spawned_mobs.Cut() + original_mobs = 0 + + rm_controller.adjust_difficulty(tally) + rm_controller.dbg("ZM(sz): Finished scoring and adjusted by [tally].") + world.log << "RM(stats): SCORE [myarea] for [tally]." //DEBUG code for playtest stats gathering. + return tally + +//Overall 'destroy' proc (marks as unready) +/datum/rogue/zonemaster/proc/clean_zone(var/delay = 1) + rm_controller.dbg("ZM(cz): Cleaning zone with area [myarea].") + world.log << "RM(stats): CLEAN start [myarea] at [world.time] prepared at [prepared_at]." //DEBUG code for playtest stats gathering. + rm_controller.unmark_ready(src) + + //Cut these lists so qdel can dereference the things properly + mineral_rocks.Cut() + spawned_mobs.Cut() + rockspawns.Cut() + mobspawns.Cut() + + var/ignored = list( + /obj/asteroid_spawner, + /obj/rogue_mobspawner, + /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft, + /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright, + /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop, + /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom) + + for(var/atom/I in myarea.contents) + if(I.type == /turf/space) + I.overlays.Cut() + continue + else if(I.type in ignored) + continue + qdel(I) + sleep(delay) + + //A deletion so nice that I give it twice + for(var/atom/I in myarea.contents) + if(I.type in ignored) + continue + qdel(I) + sleep(delay) + + //Clean up vars + scored = 0 + original_mobs = 0 + prepared_at = 0 + + world.log << "RM(stats): CLEAN done [myarea] at [world.time]." //DEBUG code for playtest stats gathering. + + rm_controller.dbg("ZM(cz): Finished cleaning up zone area [myarea].") + rm_controller.mark_clean(src) + return myarea + +/////////////////////////////// +///// Mysterious Mystery ////// +/////////////////////////////// + +//Throw a meteor at a player in the zone diff --git a/code/modules/shuttles/adminmulti_vr.dm b/code/modules/shuttles/adminmulti_vr.dm deleted file mode 100644 index bf84204a53..0000000000 --- a/code/modules/shuttles/adminmulti_vr.dm +++ /dev/null @@ -1,4 +0,0 @@ -/obj/machinery/computer/shuttle_control/multi/admin - name = "centcom shuttle control console" - req_access = list(access_cent_general) - shuttle_tag = "Administration" diff --git a/code/modules/shuttles/awaymission_vr.dm b/code/modules/shuttles/awaymission_vr.dm deleted file mode 100644 index 3900f40cef..0000000000 --- a/code/modules/shuttles/awaymission_vr.dm +++ /dev/null @@ -1,4 +0,0 @@ -/obj/machinery/computer/shuttle_control/multi/awaymission - name = "exploration shuttle control console" - req_access = list(access_gateway) - shuttle_tag = "AwayMission" diff --git a/code/modules/shuttles/departmental_vr.dm b/code/modules/shuttles/departmental_vr.dm deleted file mode 100644 index 7efac69577..0000000000 --- a/code/modules/shuttles/departmental_vr.dm +++ /dev/null @@ -1,8 +0,0 @@ -/obj/machinery/computer/shuttle_control/mining - name = "mining elevator control console" - -/obj/machinery/computer/shuttle_control/engineering - name = "engineering elevator control console" - -/obj/machinery/computer/shuttle_control/research - name = "research elevator control console" diff --git a/code/modules/shuttles/shuttles_vr.dm b/code/modules/shuttles/shuttles_vr.dm new file mode 100644 index 0000000000..71a1cf25ac --- /dev/null +++ b/code/modules/shuttles/shuttles_vr.dm @@ -0,0 +1,23 @@ +/obj/machinery/computer/shuttle_control/multi/admin + name = "centcom shuttle control console" + req_access = list(access_cent_general) + shuttle_tag = "Administration" + +/obj/machinery/computer/shuttle_control/multi/awaymission + name = "exploration shuttle control console" + req_access = list(access_gateway) + shuttle_tag = "AwayMission" + +/obj/machinery/computer/shuttle_control/belter + name = "belter control console" + req_access = list(access_mining) + // shuttle_tag = "Belter" //The scanning console needs to enable/disable this at will. + +/obj/machinery/computer/shuttle_control/mining + name = "mining elevator control console" + +/obj/machinery/computer/shuttle_control/engineering + name = "engineering elevator control console" + +/obj/machinery/computer/shuttle_control/research + name = "research elevator control console" diff --git a/code/modules/vehicles/Securitrain_vr.dm b/code/modules/vehicles/Securitrain_vr.dm index fcabe2f1e9..b1aa89d84b 100644 --- a/code/modules/vehicles/Securitrain_vr.dm +++ b/code/modules/vehicles/Securitrain_vr.dm @@ -1,7 +1,7 @@ //This is the initial set up for the new carts. Feel free to improve and/or rewrite everything here. //I don't know what the hell I'm doing right now. Please help. Especially with the update_icons stuff. -Joan Risu -/obj/vehicle/train/securiengine +/obj/vehicle/train/security/engine name = "Security Cart" desc = "A ridable electric car designed for pulling trolleys as well as personal transport." icon = 'icons/obj/vehicles_vr.dmi' @@ -23,17 +23,17 @@ var/car_limit = 0 //how many cars an engine can pull before performance degrades. This should be 0 to prevent trailers from unhitching. active_engines = 1 - var/obj/item/weapon/key/securitrain/key + var/obj/item/weapon/key/security/key var/siren = 0 //This is for eventually getting the siren sprite to work. -/obj/item/weapon/key/securitrain +/obj/item/weapon/key/security name = "The Security Cart key" desc = "The Security Cart Key used to start it." icon = 'icons/obj/vehicles_vr.dmi' icon_state = "securikey" w_class = ITEMSIZE_TINY -/obj/vehicle/train/securitrolley +/obj/vehicle/train/security/trolley name = "Train trolley" desc = "A trolly designed to transport security personnel or prisoners." icon = 'icons/obj/vehicles_vr.dmi' @@ -47,7 +47,7 @@ load_offset_y = 4 mob_offset_y = 8 -/obj/vehicle/train/securitrolley/cargo +/obj/vehicle/train/security/trolley/cargo name = "Train trolley" desc = "A trolley designed to transport security equipment to a scene." icon = 'icons/obj/vehicles_vr.dmi' @@ -58,15 +58,15 @@ //------------------------------------------- // Standard procs //------------------------------------------- -/obj/vehicle/train/securiengine/New() +/obj/vehicle/train/security/engine/New() ..() cell = new /obj/item/weapon/cell/high(src) key = new(src) - var/image/I = new(icon = 'icons/obj/vehicles_vr.dmi', icon_state = null, layer = src.layer + 0.2) //over mobs + var/image/I = new(icon = 'icons/obj/vehicles.dmi', icon_state = "cargo_engine_overlay", layer = src.layer + 0.2) //over mobs overlays += I turn_off() //so engine verbs are correctly set -/obj/vehicle/train/securiengine/Move(var/turf/destination) +/obj/vehicle/train/security/engine/Move(var/turf/destination) if(on && cell.charge < charge_use) turn_off() update_stats() @@ -82,48 +82,48 @@ return ..() -/obj/vehicle/train/securitrolley/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/vehicle/train/security/trolley/attackby(obj/item/weapon/W as obj, mob/user as mob) if(open && istype(W, /obj/item/weapon/wirecutters)) passenger_allowed = !passenger_allowed user.visible_message("[user] [passenger_allowed ? "cuts" : "mends"] a cable in [src].","You [passenger_allowed ? "cut" : "mend"] the load limiter cable.") else ..() -/obj/vehicle/train/securiengine/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/key/securitrain)) +/obj/vehicle/train/security/engine/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/key/cargo_train)) if(!key) user.drop_item() W.forceMove(src) key = W - verbs += /obj/vehicle/train/securiengine/verb/remove_key + verbs += /obj/vehicle/train/security/engine/verb/remove_key return ..() //cargo trains are open topped, so there is a chance the projectile will hit the mob ridding the train instead -/obj/vehicle/train/securitrolley/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/train/security/bullet_act(var/obj/item/projectile/Proj) if(buckled_mob && prob(70)) buckled_mob.bullet_act(Proj) return ..() -/obj/vehicle/train/securitrolley/update_icon() +/obj/vehicle/train/security/update_icon() if(open) icon_state = initial(icon_state) + "_open" else icon_state = initial(icon_state) -/obj/vehicle/train/securitrolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) +/obj/vehicle/train/security/trolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) return -/obj/vehicle/train/securiengine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) +/obj/vehicle/train/security/engine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) ..() update_stats() -/obj/vehicle/train/securiengine/remove_cell(var/mob/living/carbon/human/H) +/obj/vehicle/train/security/engine/remove_cell(var/mob/living/carbon/human/H) ..() update_stats() -/obj/vehicle/train/securiengine/Bump(atom/Obstacle) +/obj/vehicle/train/security/engine/Bump(atom/Obstacle) var/obj/machinery/door/D = Obstacle var/mob/living/carbon/human/H = load if(istype(D) && istype(H)) @@ -131,7 +131,7 @@ ..() -/obj/vehicle/train/securitrolley/Bump(atom/Obstacle) +/obj/vehicle/train/security/trolley/Bump(atom/Obstacle) if(!lead) return //so people can't knock others over by pushing a trolley around ..() @@ -139,44 +139,44 @@ //------------------------------------------- // Train procs //------------------------------------------- -/obj/vehicle/train/securiengine/turn_on() +/obj/vehicle/train/security/engine/turn_on() if(!key) return else ..() update_stats() - verbs -= /obj/vehicle/train/securiengine/verb/stop_engine - verbs -= /obj/vehicle/train/securiengine/verb/start_engine + verbs -= /obj/vehicle/train/security/engine/verb/stop_engine + verbs -= /obj/vehicle/train/security/engine/verb/start_engine if(on) - verbs += /obj/vehicle/train/securiengine/verb/stop_engine + verbs += /obj/vehicle/train/security/engine/verb/stop_engine else - verbs += /obj/vehicle/train/securiengine/verb/start_engine + verbs += /obj/vehicle/train/security/engine/verb/start_engine -/obj/vehicle/train/securiengine/turn_off() +/obj/vehicle/train/security/engine/turn_off() ..() - verbs -= /obj/vehicle/train/securiengine/verb/stop_engine - verbs -= /obj/vehicle/train/securiengine/verb/start_engine + verbs -= /obj/vehicle/train/security/engine/verb/stop_engine + verbs -= /obj/vehicle/train/security/engine/verb/start_engine if(!on) - verbs += /obj/vehicle/train/securiengine/verb/start_engine + verbs += /obj/vehicle/train/security/engine/verb/start_engine else - verbs += /obj/vehicle/train/securiengine/verb/stop_engine + verbs += /obj/vehicle/train/security/engine/verb/stop_engine -/obj/vehicle/train/securitrolley/RunOver(var/mob/living/carbon/human/H) +/obj/vehicle/train/security/RunOver(var/mob/living/carbon/human/H) var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM) H.apply_effects(5, 5) for(var/i = 0, i < rand(1,3), i++) H.apply_damage(rand(1,5), BRUTE, pick(parts)) -/obj/vehicle/train/securitrolley/RunOver(var/mob/living/carbon/human/H) +/obj/vehicle/train/security/trolley/RunOver(var/mob/living/carbon/human/H) ..() attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])") -/obj/vehicle/train/securiengine/RunOver(var/mob/living/carbon/human/H) +/obj/vehicle/train/security/engine/RunOver(var/mob/living/carbon/human/H) ..() if(is_train_head() && istype(load, /mob/living/carbon/human)) @@ -192,7 +192,7 @@ //------------------------------------------- // Interaction procs //------------------------------------------- -/obj/vehicle/train/securiengine/relaymove(mob/user, direction) +/obj/vehicle/train/security/engine/relaymove(mob/user, direction) if(user != load) return 0 @@ -205,8 +205,7 @@ else return ..() - -/obj/vehicle/train/securiengine/examine(mob/user) +/obj/vehicle/train/security/engine/examine(mob/user) if(!..(user, 1)) return @@ -216,7 +215,7 @@ user << "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." user << "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%" -/obj/vehicle/train/securiengine/verb/start_engine() +/obj/vehicle/train/security/engine/verb/start_engine() set name = "Start engine" set category = "Vehicle" set src in view(0) @@ -237,7 +236,7 @@ else usr << "[src]'s engine won't start." -/obj/vehicle/train/securiengine/verb/stop_engine() +/obj/vehicle/train/security/engine/verb/stop_engine() set name = "Stop engine" set category = "Vehicle" set src in view(0) @@ -253,7 +252,7 @@ if (!on) usr << "You stop [src]'s engine." -/obj/vehicle/train/securiengine/verb/remove_key() +/obj/vehicle/train/security/engine/verb/remove_key() set name = "Remove key" set category = "Vehicle" set src in view(0) @@ -272,12 +271,12 @@ usr.put_in_hands(key) key = null - verbs -= /obj/vehicle/train/securiengine/verb/remove_key + verbs -= /obj/vehicle/train/security/engine/verb/remove_key //------------------------------------------- // Loading/unloading procs //------------------------------------------- -/obj/vehicle/train/securitrolley/load(var/atom/movable/C) +/obj/vehicle/train/security/trolley/load(var/atom/movable/C) if(ismob(C) && !passenger_allowed) return 0 if(!istype(C,/obj/machinery) && !istype(C,/obj/structure/closet) && !istype(C,/obj/structure/largecrate) && !istype(C,/obj/structure/reagent_dispensers) && !istype(C,/obj/structure/ore_box) && !istype(C, /mob/living/carbon/human)) @@ -293,7 +292,7 @@ if(load) return 1 -/obj/vehicle/train/securiengine/load(var/atom/movable/C) +/obj/vehicle/train/security/engine/load(var/atom/movable/C) if(!istype(C, /mob/living/carbon/human)) return 0 @@ -303,7 +302,7 @@ //This prevents the object from being interacted with until it has // been unloaded. A dummy object is loaded instead so the loading // code knows to handle it correctly. -/obj/vehicle/train/securitrolley/proc/load_object(var/atom/movable/C) +/obj/vehicle/train/security/trolley/proc/load_object(var/atom/movable/C) if(!isturf(C.loc)) //To prevent loading things from someone's inventory, which wouldn't get handled properly. return 0 if(load || C.anchored) @@ -329,7 +328,7 @@ C.pixel_y = initial(C.pixel_y) C.layer = initial(C.layer) -/obj/vehicle/train/securitrolley/unload(var/mob/user, var/direction) +/obj/vehicle/train/security/trolley/unload(var/mob/user, var/direction) if(istype(load, /datum/vehicle_dummy_load)) var/datum/vehicle_dummy_load/dummy_load = load load = dummy_load.actual_load @@ -342,15 +341,13 @@ // Latching/unlatching procs //------------------------------------------- -/obj/vehicle/train/securiengine/latch(obj/vehicle/train/T, mob/user) +/obj/vehicle/train/security/engine/latch(obj/vehicle/train/T, mob/user) if(!istype(T) || !Adjacent(T)) return 0 //if we are attaching a trolley to an engine we don't care what direction // it is in and it should probably be attached with the engine in the lead - if(istype(T, /obj/vehicle/train/securitrolley)) - T.attach_to(src, user) - if (istype(T, /obj/vehicle/train/securitrolley/cargo)) + if(istype(T, /obj/vehicle/train/security/trolley)) T.attach_to(src, user) else var/T_dir = get_dir(src, T) //figure out where T is wrt src @@ -371,7 +368,7 @@ // more engines increases this limit by car_limit per // engine. //------------------------------------------------------- -/obj/vehicle/train/securiengine/update_car(var/train_length, var/active_engines) +/obj/vehicle/train/security/engine/update_car(var/train_length, var/active_engines) src.train_length = train_length src.active_engines = active_engines @@ -382,9 +379,9 @@ move_delay = max(0, (-car_limit * active_engines) + train_length - active_engines) //limits base overweight so you cant overspeed trains move_delay *= (1 / max(1, active_engines)) * 2 //overweight penalty (scaled by the number of engines) move_delay += config.run_speed //base reference speed - move_delay *= 1.5 //makes cargo trains 10% slower than running when not overweight + move_delay *= 1.1 //makes cargo trains 10% slower than running when not overweight -/obj/vehicle/train/securitrolley/update_car(var/train_length, var/active_engines) +/obj/vehicle/train/security/trolley/update_car(var/train_length, var/active_engines) src.train_length = train_length src.active_engines = active_engines @@ -392,32 +389,3 @@ anchored = 0 else anchored = 1 - -//----------------------------------------------------- -//Update layer stuff -// -//This is supposed to update the layers and put the mob in the correct spot. -//Pls help squirrel get this to work. ;m; -//----------------------------------------------------- -/obj/vehicle/train/securiengine/proc/update_layer() - if(dir == SOUTH) - layer = FLY_LAYER - else - layer = OBJ_LAYER - -/obj/vehicle/train/securiengine/proc/update_mob() - if(buckled_mob) - buckled_mob.set_dir(dir) - switch(dir) - if(SOUTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 7 - if(WEST) - buckled_mob.pixel_x = 13 - buckled_mob.pixel_y = 7 - if(NORTH) - buckled_mob.pixel_x = 0 - buckled_mob.pixel_y = 4 - if(EAST) - buckled_mob.pixel_x = -13 - buckled_mob.pixel_y = 7 diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm new file mode 100644 index 0000000000..3e584b9bee --- /dev/null +++ b/code/modules/vehicles/rover_vr.dm @@ -0,0 +1,398 @@ +//This is the initial set up for the new carts. Feel free to improve and/or rewrite everything here. +//I don't know what the hell I'm doing right now. Please help. Especially with the update_icons stuff. -Joan Risu + +/obj/vehicle/train/rover/engine + name = "NT Humvee" + desc = "The NT version of the UF T-41LV, a Federation recon vehicle used as a personal transport. Can be latched to a trolly to transport equipment. " + icon = 'icons/vore/rover_vr.dmi' + icon_state = "rover" + on = 0 + powered = 1 + locked = 0 + move_delay = 0.5 + + //Health stuff + health = 100 + maxhealth = 100 + fire_dam_coeff = 0.6 + brute_dam_coeff = 0.5 + + load_item_visible = 0 + load_offset_x = 0 + pixel_x = -8 + pixel_y = -8 + + + var/car_limit = 0 //how many cars an engine can pull before performance degrades. This should be 0 to prevent trailers from unhitching. + active_engines = 1 + var/obj/item/weapon/key/rover/key + var/siren = 0 //This is for eventually getting the siren sprite to work. + +/obj/item/weapon/key/rover + name = "The Rover key" + desc = "The Rover key used to start it." + icon = 'icons/obj/vehicles_vr.dmi' + icon_state = "securikey" + w_class = ITEMSIZE_TINY + +/obj/vehicle/train/rover/trolley + name = "Train trolley" + desc = "A trolley designed to transport security equipment to a scene." + icon = 'icons/obj/vehicles_vr.dmi' + icon_state = "secitemcarrierbot" + anchored = 0 + passenger_allowed = 0 + locked = 0 + + load_item_visible = 0 + load_offset_x = 0 + load_offset_y = 0 + mob_offset_y = 0 + +//------------------------------------------- +// Standard procs +//------------------------------------------- +/obj/vehicle/train/rover/engine/New() + ..() + cell = new /obj/item/weapon/cell/high(src) + key = new(src) + turn_off() //so engine verbs are correctly set + +/obj/vehicle/train/rover/engine/Move(var/turf/destination) + if(on && cell.charge < charge_use) + turn_off() + update_stats() + if(load && is_train_head()) + load << "The drive motor briefly whines, then drones to a stop." + + if(is_train_head() && !on) + return 0 + + //space check ~no flying space trains sorry + if(on && istype(destination, /turf/space)) + return 0 + + return ..() + +/obj/vehicle/train/rover/trolley/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(open && istype(W, /obj/item/weapon/wirecutters)) + passenger_allowed = !passenger_allowed + user.visible_message("[user] [passenger_allowed ? "cuts" : "mends"] a cable in [src].","You [passenger_allowed ? "cut" : "mend"] the load limiter cable.") + else + ..() + +/obj/vehicle/train/rover/engine/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/key/rover)) + if(!key) + user.drop_item() + W.forceMove(src) + key = W + verbs += /obj/vehicle/train/rover/engine/verb/remove_key + return + ..() + +//cargo trains are open topped, so there is a chance the projectile will hit the mob ridding the train instead +/obj/vehicle/train/rover/bullet_act(var/obj/item/projectile/Proj) + if(buckled_mob && prob(70)) + buckled_mob.bullet_act(Proj) + return + ..() + +/obj/vehicle/train/rover/update_icon() + if(open) + icon_state = initial(icon_state) + "_open" + else + icon_state = initial(icon_state) + +/obj/vehicle/train/rover/trolley/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) + return + +/obj/vehicle/train/rover/engine/insert_cell(var/obj/item/weapon/cell/C, var/mob/living/carbon/human/H) + ..() + update_stats() + +/obj/vehicle/train/rover/engine/remove_cell(var/mob/living/carbon/human/H) + ..() + update_stats() + +/obj/vehicle/train/rover/engine/Bump(atom/Obstacle) + var/obj/machinery/door/D = Obstacle + var/mob/living/carbon/human/H = load + if(istype(D) && istype(H)) + D.Bumped(H) //a little hacky, but hey, it works, and respects access rights + + ..() + +/obj/vehicle/train/rover/trolley/Bump(atom/Obstacle) + if(!lead) + return //so people can't knock others over by pushing a trolley around + ..() + +//------------------------------------------- +// Train procs +//------------------------------------------- +/obj/vehicle/train/rover/engine/turn_on() + if(!key) + return + else + ..() + update_stats() + + verbs -= /obj/vehicle/train/rover/engine/verb/stop_engine + verbs -= /obj/vehicle/train/rover/engine/verb/start_engine + + if(on) + verbs += /obj/vehicle/train/rover/engine/verb/stop_engine + else + verbs += /obj/vehicle/train/rover/engine/verb/start_engine + +/obj/vehicle/train/rover/engine/turn_off() + ..() + + verbs -= /obj/vehicle/train/rover/engine/verb/stop_engine + verbs -= /obj/vehicle/train/rover/engine/verb/start_engine + + if(!on) + verbs += /obj/vehicle/train/rover/engine/verb/start_engine + else + verbs += /obj/vehicle/train/rover/engine/verb/stop_engine + +/obj/vehicle/train/rover/RunOver(var/mob/living/carbon/human/H) + var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM) + + H.apply_effects(5, 5) + for(var/i = 0, i < rand(1,3), i++) + H.apply_damage(rand(1,5), BRUTE, pick(parts)) + +/obj/vehicle/train/rover/trolley/RunOver(var/mob/living/carbon/human/H) + ..() + attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])") + +/obj/vehicle/train/rover/engine/RunOver(var/mob/living/carbon/human/H) + ..() + + if(is_train_head() && istype(load, /mob/living/carbon/human)) + var/mob/living/carbon/human/D = load + D << "\red \b You ran over [H]!" + visible_message("\red \The [src] ran over [H]!") + attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])") + msg_admin_attack("[D.name] ([D.ckey]) ran over [H.name] ([H.ckey]). (JMP)") + else + attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])") + + +//------------------------------------------- +// Interaction procs +//------------------------------------------- +/obj/vehicle/train/rover/engine/relaymove(mob/user, direction) + if(user != load) + return 0 + + if(is_train_head()) + if(direction == reverse_direction(dir) && tow) + return 0 + if(Move(get_step(src, direction))) + return 1 + return 0 + else + return ..() + +/obj/vehicle/train/rover/engine/examine(mob/user) + if(!..(user, 1)) + return + + if(!istype(usr, /mob/living/carbon/human)) + return + + user << "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." + user << "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%" + +/obj/vehicle/train/rover/engine/verb/start_engine() + set name = "Start engine" + set category = "Vehicle" + set src in view(0) + + if(!istype(usr, /mob/living/carbon/human)) + return + + if(on) + usr << "The engine is already running." + return + + turn_on() + if (on) + usr << "You start [src]'s engine." + else + if(cell.charge < charge_use) + usr << "[src] is out of power." + else + usr << "[src]'s engine won't start." + +/obj/vehicle/train/rover/engine/verb/stop_engine() + set name = "Stop engine" + set category = "Vehicle" + set src in view(0) + + if(!istype(usr, /mob/living/carbon/human)) + return + + if(!on) + usr << "The engine is already stopped." + return + + turn_off() + if (!on) + usr << "You stop [src]'s engine." + +/obj/vehicle/train/rover/engine/verb/remove_key() + set name = "Remove key" + set category = "Vehicle" + set src in view(0) + + if(!istype(usr, /mob/living/carbon/human)) + return + + if(!key || (load && load != usr)) + return + + if(on) + turn_off() + + key.loc = usr.loc + if(!usr.get_active_hand()) + usr.put_in_hands(key) + key = null + + verbs -= /obj/vehicle/train/rover/engine/verb/remove_key + +//------------------------------------------- +// Loading/unloading procs +//------------------------------------------- +/obj/vehicle/train/rover/trolley/load(var/atom/movable/C) + if(ismob(C) && !passenger_allowed) + return 0 + if(!istype(C,/obj/machinery) && !istype(C,/obj/structure/closet) && !istype(C,/obj/structure/largecrate) && !istype(C,/obj/structure/reagent_dispensers) && !istype(C,/obj/structure/ore_box) && !istype(C, /mob/living/carbon/human)) + return 0 + + //if there are any items you don't want to be able to interact with, add them to this check + // ~no more shielded, emitter armed death trains + if(istype(C, /obj/machinery)) + load_object(C) + else + ..() + + if(load) + return 1 + +/obj/vehicle/train/rover/engine/load(var/atom/movable/C) + if(!istype(C, /mob/living/carbon/human)) + return 0 + + if(ismob(C)) + buckle_mob(C) + C.alpha = 0 + + return ..() + +/obj/vehicle/train/rover/engine/unload(var/mob/user, var/direction) + var/mob/living/carbon/human/C = load + + + if(ismob(load)) + unbuckle_mob(load) + C.alpha = 255 + + load = null + + +//Load the object "inside" the trolley and add an overlay of it. +//This prevents the object from being interacted with until it has +// been unloaded. A dummy object is loaded instead so the loading +// code knows to handle it correctly. +/obj/vehicle/train/rover/trolley/proc/load_object(var/atom/movable/C) + if(!isturf(C.loc)) //To prevent loading things from someone's inventory, which wouldn't get handled properly. + return 0 + if(load || C.anchored) + return 0 + + var/datum/vehicle_dummy_load/dummy_load = new() + load = dummy_load + + if(!load) + return + dummy_load.actual_load = C + C.forceMove(src) + + if(load_item_visible) + C.pixel_x += load_offset_x + C.pixel_y += load_offset_y + C.layer = layer + + overlays += C + + //we can set these back now since we have already cloned the icon into the overlay + C.pixel_x = initial(C.pixel_x) + C.pixel_y = initial(C.pixel_y) + C.layer = initial(C.layer) + +/obj/vehicle/train/rover/trolley/unload(var/mob/user, var/direction) + if(istype(load, /datum/vehicle_dummy_load)) + var/datum/vehicle_dummy_load/dummy_load = load + load = dummy_load.actual_load + dummy_load.actual_load = null + qdel(dummy_load) + overlays.Cut() + ..() + +//------------------------------------------- +// Latching/unlatching procs +//------------------------------------------- + +/obj/vehicle/train/rover/engine/latch(obj/vehicle/train/T, mob/user) + if(!istype(T) || !Adjacent(T)) + return 0 + + //if we are attaching a trolley to an engine we don't care what direction + // it is in and it should probably be attached with the engine in the lead + if(istype(T, /obj/vehicle/train/rover/trolley)) + T.attach_to(src, user) + else + var/T_dir = get_dir(src, T) //figure out where T is wrt src + + if(dir == T_dir) //if car is ahead + src.attach_to(T, user) + else if(reverse_direction(dir) == T_dir) //else if car is behind + T.attach_to(src, user) + +//------------------------------------------------------- +// Stat update procs +// +// Update the trains stats for speed calculations. +// The longer the train, the slower it will go. car_limit +// sets the max number of cars one engine can pull at +// full speed. Adding more cars beyond this will slow the +// train proportionate to the length of the train. Adding +// more engines increases this limit by car_limit per +// engine. +//------------------------------------------------------- +/obj/vehicle/train/rover/engine/update_car(var/train_length, var/active_engines) + src.train_length = train_length + src.active_engines = active_engines + + //Update move delay + if(!is_train_head() || !on) + move_delay = initial(move_delay) //so that engines that have been turned off don't lag behind + else + move_delay = max(0, (-car_limit * active_engines) + train_length - active_engines) //limits base overweight so you cant overspeed trains + move_delay *= (1 / max(1, active_engines)) * 2 //overweight penalty (scaled by the number of engines) + move_delay += config.run_speed //base reference speed + move_delay *= 1.1 //makes cargo trains 10% slower than running when not overweight + +/obj/vehicle/train/rover/trolley/update_car(var/train_length, var/active_engines) + src.train_length = train_length + src.active_engines = active_engines + + if(!lead && !tow) + anchored = 0 + else + anchored = 1 diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm index cb6866a8b3..94e811f343 100644 --- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm @@ -156,7 +156,10 @@ has_items = list( /obj/item/weapon/storage/backpack/fluff/aronai, /obj/item/weapon/rig/light/hacker/fluff/aronai, - /obj/item/clothing/under/rank/khi/fluff/aronai) + /obj/item/clothing/under/rank/khi/fluff/aronai, + /obj/item/fluff/permit/aronai_kadigan, + /obj/item/weapon/gun/projectile/khi/pistol, + /obj/item/ammo_magazine/c45m/flash) /* Swimsuits, for general use, to avoid arriving to work with your swimsuit. diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index b73131899c..756eb67837 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -533,6 +533,8 @@ icon_override = 'icons/vore/custom_clothes_vr.dmi' item_state = "scree-helm_mob" + item_state_slots = list(slot_r_hand_str = "engspace_helmet", slot_l_hand_str = "engspace_helmet") + light_overlay = "helmet_light_dual" species_restricted = null @@ -556,6 +558,8 @@ icon_override = 'icons/vore/custom_clothes_vr.dmi' item_state = "scree-spess_mob" + item_state_slots = list(slot_r_hand_str = "eng_voidsuit", slot_l_hand_str = "eng_voidsuit") + species_restricted = null mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) diff --git a/code/modules/vore/fluffstuff/custom_guns_vr.dm b/code/modules/vore/fluffstuff/custom_guns_vr.dm index cb5be9c9ec..339bce6259 100644 --- a/code/modules/vore/fluffstuff/custom_guns_vr.dm +++ b/code/modules/vore/fluffstuff/custom_guns_vr.dm @@ -312,7 +312,6 @@ if(!ignore_inhands) update_held_icon() //-----------------------G44 Energy Variant-------------------- - /obj/item/weapon/gun/energy/gun/burst/g44e name = "G44 Energy Rifle" desc = "The G44 Energy is a laser variant of the G44 lightweight assault rifle manufactured by the National Armory of Gaia. Though almost exclusively to the United Federation's Military Assault Command Operations Department (MACOs) and Starfleet, it is occassionally sold to security departments for their stun capabilities." @@ -357,6 +356,78 @@ name = "\improper MEUSOC .45" desc = "Some serious drywall work, coming up!" +//-----------------------KHI Common---------------------------------- +/obj/item/weapon/gun/projectile/khi/process_chambered() + if (!chambered) return + qdel(chambered) //Devours ammo rather than fires it. + +//-----------------------KHI Pistol---------------------------------- +/obj/item/weapon/gun/projectile/khi/pistol + name = "alien pistol" + desc = "This KHI handgun doesn't so much 'fire' .45 ammo as 'devour' it and make it's own proprietary ammunition." + icon = 'icons/obj/gun_vr.dmi' + icon_state = "khipistol" + item_state = "gun" // Placeholder + magazine_type = /obj/item/ammo_magazine/c45m/flash //Dun wanna KILL all the people. + allowed_magazines = list(/obj/item/ammo_magazine/c45m) + caliber = ".45" + handle_casings = CYCLE_CASINGS + origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5) + fire_sound = 'sound/weapons/semiauto.ogg' + load_method = MAGAZINE + dna_lock = 1 + +//-----------------------KHI PDW---------------------------------- +// For general use +/obj/item/weapon/gun/projectile/automatic/khi/pdw + name = "alien pdw" + desc = "The KHI personal defense mainstay. If KHI had any standards whatsoever, that is. Insert 9mm ammo for good times." + icon = 'icons/obj/gun_vr.dmi' + icon_state = "khipdw" + item_state = "c20r" // Placeholder + w_class = ITEMSIZE_NORMAL + caliber = "9mm" + origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 5) + slot_flags = SLOT_BELT + load_method = MAGAZINE + handle_casings = CYCLE_CASINGS + magazine_type = /obj/item/ammo_magazine/mc9mml + allowed_magazines = list(/obj/item/ammo_magazine/mc9mm, /obj/item/ammo_magazine/mc9mml) + dna_lock = 1 + + firemodes = list( + list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-1,-2), dispersion=list(0.0, 0.6, 0.6)) + ) + +//-----------------------KHI LIM Rifle---------------------------------- +//Unfinished +/obj/item/weapon/limrifle //Not even a subtype of gun because it behaves differently. + name = "lim rifle" + desc = "The KHI-101-R linear induction motor rifle can propel a small 2mm slug at extreme velocity through nearly any solid object. Whether it has the time to impart any force is another question entirely." + //icon = 'icons/obj/gun64_vr.dmi' + icon_state = "limrifle" + item_state = "gun" //Should probably be huge-r + //dna_lock = 1 + //safety_level = 1 + + var/charge_time = 5 SECONDS + var/charge_percent = 100 + +/obj/item/weapon/limrifle/New() + ..() + update_icon() + +/obj/item/weapon/limrifle/update_icon() + ..() + var/charge_icon = round(charge_percent,20) + icon_state = "[initial(icon_state)]_[charge_icon]" + +/obj/item/weapon/limrifle/proc/recharge() + charge_percent = 0 + update_icon() + + //////////////////// Energy Weapons //////////////////// // -------------- Dominator ------------- /obj/item/weapon/gun/energy/gun/fluff/dominator diff --git a/code/modules/vore/fluffstuff/custom_permits_vr.dm b/code/modules/vore/fluffstuff/custom_permits_vr.dm index 04e14991bf..a9f2d1d035 100644 --- a/code/modules/vore/fluffstuff/custom_permits_vr.dm +++ b/code/modules/vore/fluffstuff/custom_permits_vr.dm @@ -73,11 +73,12 @@ /obj/item/fluff/permit/aronai_kadigan name = "Aronai Kadigan's Sidearm Permit" desc = {" - NAME: Aronai Kadigan | RACE: Cross Fox | HOMEWORLD: New Kitsuhana, KHI1 + NAME: Aronai Kadigan | RACE: Cross Fox (Synth) | HOMEWORLD: Kitsuhana Prime DOB: 12/Jul/2530 | HEIGHT: 188cm | SEX: Male - The individual named above is licensed by the Nanotrasen Department of Civil Protection to carry one KIN-H21 (Egun Variant). - This license expires on 30/Sep/2560 and must be renewed by CentCom prior to this date."} + The individual named above is licensed by the Nanotrasen Department of Civil Protection + to carry one KIN (foreign) handgun with flash ammo. + This license expires on 16/Feb/2562 and must be renewed by CentCom prior to this date."} // joanrisu:Joan Risu /obj/item/fluff/permit/joanrisu diff --git a/html/changelogs/Anewbe - Announcement.yml b/html/changelogs/Anewbe - Announcement.yml new file mode 100644 index 0000000000..1bda432be2 --- /dev/null +++ b/html/changelogs/Anewbe - Announcement.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Fake command reports now make the paper show up." diff --git a/html/changelogs/Anewbe - Mining Cameras.yml b/html/changelogs/Anewbe - Mining Cameras.yml new file mode 100644 index 0000000000..2171ac81ed --- /dev/null +++ b/html/changelogs/Anewbe - Mining Cameras.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Mining cameras should work now." \ No newline at end of file diff --git a/html/changelogs/MagmaRam - Aimbot.yml b/html/changelogs/MagmaRam - Aimbot.yml new file mode 100644 index 0000000000..dbe59cb09d --- /dev/null +++ b/html/changelogs/MagmaRam - Aimbot.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: MagmaRam + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "There is now a short delay before being able to fire when using hostage-taking mode, and a short delay between shots. This should make hostage mode useful for taking hostages and ambushes, rather than as an aimbot in actual firefights." diff --git a/html/changelogs/MagmaRam - Sandwich.yml b/html/changelogs/MagmaRam - Sandwich.yml new file mode 100644 index 0000000000..b9482e6bff --- /dev/null +++ b/html/changelogs/MagmaRam - Sandwich.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: MagmaRam + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Sandwiches at max size can be eaten with a fork." diff --git a/html/changelogs/zuhayr-dibs.yml b/html/changelogs/zuhayr-dibs.yml new file mode 100644 index 0000000000..54cf379ed3 --- /dev/null +++ b/html/changelogs/zuhayr-dibs.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Zuhayr + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adminhelps now have a TAKE button that allow an admin to claim it, and inform the adminhelper that someone is on the case." diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 5bc7760381..c9acba40a4 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 134f719c3a..b26eabc764 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index cf1c7b343c..015a3bc345 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi index bd2f354b1b..48dbdeb4af 100644 Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ diff --git a/icons/obj/items_vr.dmi b/icons/obj/items_vr.dmi new file mode 100644 index 0000000000..06677bf537 Binary files /dev/null and b/icons/obj/items_vr.dmi differ diff --git a/icons/obj/projectiles_vr.dmi b/icons/obj/projectiles_vr.dmi new file mode 100644 index 0000000000..e34d3c0c21 Binary files /dev/null and b/icons/obj/projectiles_vr.dmi differ diff --git a/icons/turf/shuttle_vr.dmi b/icons/turf/shuttle_vr.dmi new file mode 100644 index 0000000000..e67b3959e0 Binary files /dev/null and b/icons/turf/shuttle_vr.dmi differ diff --git a/icons/vore/rover_vr.dmi b/icons/vore/rover_vr.dmi new file mode 100644 index 0000000000..5fa1fc428d Binary files /dev/null and b/icons/vore/rover_vr.dmi differ diff --git a/maps/virgo-1.dmm b/maps/virgo-1.dmm index 3dad101226..e28b1cddf8 100644 --- a/maps/virgo-1.dmm +++ b/maps/virgo-1.dmm @@ -1171,7 +1171,7 @@ "awA" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/projectile/shotgun/pump{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/pump,/obj/effect/floor_decal/corner/green/full{dir = 8},/obj/machinery/door/window/brigdoor{name = "Ballistics"},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/dark,/area/security/armoury) "awB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/security/armoury) "awC" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_x = -32; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/officer,/obj/item/clothing/suit/storage/vest/heavy/officer,/obj/item/clothing/suit/storage/vest/heavy/officer,/obj/item/clothing/suit/storage/vest/heavy/officer,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor/southleft{name = "Heavy Duty Armor"; req_access = list(3)},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) -"awD" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack,/obj/item/weapon/gun/projectile/colt/detective,/obj/item/weapon/gun/projectile/colt/detective,/obj/item/weapon/gun/projectile/colt/detective,/obj/item/weapon/gun/projectile/colt/detective,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor/southright{name = "Weapons locker"; req_access = list(3)},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) +"awD" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/brigdoor/southright{name = "Weapons locker"; req_access = list(3)},/obj/item/weapon/gun/projectile/sec/flash,/obj/item/weapon/gun/projectile/sec/wood,/obj/item/weapon/gun/projectile/sec/flash,/obj/item/weapon/gun/projectile/sec/flash,/obj/item/weapon/gun/projectile/sec/flash,/obj/item/weapon/gun/projectile/sec/wood,/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "awE" = (/obj/structure/closet/l3closet/security,/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "awF" = (/obj/structure/closet/l3closet/security,/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera/network/security{c_tag = "SEC - Equipment Storage"; dir = 9},/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "awG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/security/security_equiptment_storage) @@ -1358,7 +1358,7 @@ "aAf" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/red{dir = 9},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/security/brig) "aAg" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/security/brig) "aAh" = (/obj/effect/floor_decal/corner/red,/obj/structure/closet/secure_closet/brig,/turf/simulated/floor/tiled,/area/security/brig) -"aAi" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/machinery/door/window/brigdoor/eastright{name = "Spare Equipment"; req_access = list(3)},/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/clothing/suit/armor/vest/security,/obj/item/clothing/suit/armor/vest/security,/obj/item/clothing/suit/armor/vest/security,/obj/item/clothing/suit/armor/vest/security,/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) +"aAi" = (/obj/structure/table/rack,/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/machinery/door/window/brigdoor/eastright{name = "Spare Equipment"; req_access = list(3)},/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/ammo_magazine/c45m/rubber,/obj/item/clothing/suit/armor/vest/alt,/obj/item/clothing/suit/armor/vest/alt,/obj/item/clothing/suit/armor/vest/alt,/obj/item/clothing/suit/armor/vest/alt,/turf/simulated/floor/tiled,/area/security/security_equiptment_storage) "aAj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison) "aAk" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/brigdoor/southleft{id = "Cell 1"; name = "Cell 1"; req_access = list(2)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/security/prison) "aAl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/green,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/prison) @@ -5140,7 +5140,7 @@ "bUR" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue_captain,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bUS" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bUT" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bUU" = (/obj/structure/closet,/obj/item/weapon/lipstick/purple,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/item/clothing/shoes/jackboots{armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 0, "rad" = 0); desc = "They have initials D M in each boot. They also have claw marks and smell very very strongly"; name = "Dhael's jackboots"},/turf/simulated/floor/plating,/area/maintenance/engineering) +"bUU" = (/obj/structure/table/glass,/obj/machinery/light{dir = 1},/obj/item/clothing/shoes/jackboots{armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 0, "rad" = 0); desc = "They have initials D M in each boot. They also have claw marks and smell very very strongly"; name = "Dhael's jackboots"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/pool) "bUV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/central) "bUW" = (/obj/machinery/door/airlock/maintenance{name = "Resturant Maintenance"; req_one_access = list(12,28,35)},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/central) "bUX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/cafeteria) @@ -8979,7 +8979,7 @@ "dqI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2) "dqJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2) "dqK" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dqL" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/shuttle/arrival/station) +"dqL" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) "dqM" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "dqN" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "dqO" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) @@ -9152,7 +9152,7 @@ "dtZ" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dua" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dub" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"duc" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) +"duc" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) "dud" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "due" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "duf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9229,7 +9229,7 @@ "dvy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1) "dvz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dvA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dvB" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) +"dvB" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/awaymission/home) "dvC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dvD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dvE" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) @@ -9367,7 +9367,7 @@ "dyg" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dyh" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) "dyi" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2) -"dyj" = (/turf/simulated/shuttle/wall{tag = "icon-swall"; icon_state = "swall"},/area/shuttle/arrival/station) +"dyj" = (/turf/simulated/shuttle/wall{tag = "icon-swall (NORTHWEST)"; icon_state = "swall"; dir = 9},/area/shuttle/arrival/station) "dyk" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "dyl" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) "dym" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "dock_three_mid_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3) @@ -9493,8 +9493,8 @@ "dAC" = (/turf/simulated/wall,/area/engineering/aft_hallway) "dAD" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/airless,/area/engineering/aft_hallway) "dAE" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "eng_starboard_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 0; req_one_access = list(11,24)},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/airless,/area/engineering/aft_hallway) -"dAF" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/station) -"dAG" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/constructionsite/station) +"dAF" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) +"dAG" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "dAH" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "engineering_shuttle_hatch"; locked = 1; name = "Elevator Hatch"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/constructionsite/station) "dAI" = (/obj/machinery/door/window/northleft{name = "Engine Waste"; req_one_access = list(10,24)},/turf/simulated/floor,/area/engineering/engine_waste) "dAJ" = (/obj/machinery/atmospherics/pipe/simple/visible/black{dir = 6},/obj/machinery/door/window/northright{name = "Engine Waste"; req_one_access = list(10,24)},/turf/simulated/floor,/area/engineering/engine_waste) @@ -9713,10 +9713,10 @@ "dEO" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "dEP" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D4) "dEQ" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod4/station) -"dER" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod4/station) +"dER" = (/obj/structure/window/shuttle{icon_state = "window1"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station) "dES" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod4/station) "dET" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 1},/area/shuttle/escape_pod3/station) -"dEU" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod3/station) +"dEU" = (/turf/simulated/shuttle/wall{tag = "icon-swall"; icon_state = "swall"},/area/shuttle/arrival/station) "dEV" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/escape_pod3/station) "dEW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "dEX" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "solar_xeno_pump"; tag_exterior_door = "solar_xeno_outer"; frequency = 1379; id_tag = "solar_xeno_airlock"; tag_interior_door = "solar_xeno_inner"; pixel_x = 25; req_access = list(13); tag_chamber_sensor = "solar_xeno_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_xeno_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "solar_xeno_pump"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/cee{tag = "icon-warningcee (NORTH)"; icon_state = "warningcee"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) @@ -9937,8 +9937,8 @@ "dJe" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research) "dJf" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 4},/area/shuttle/awaymission/home) "dJg" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_l"},/turf/space,/area/shuttle/awaymission/home) -"dJh" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) -"dJi" = (/obj/structure/window/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) +"dJh" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/constructionsite/station) +"dJi" = (/turf/simulated/shuttle/wall,/area/shuttle/constructionsite/station) "dJj" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) "dJk" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 2},/area/shuttle/awaymission/home) "dJl" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/shuttle/awaymission/home) @@ -9949,7 +9949,7 @@ "dJq" = (/obj/structure/closet/crate/secure{req_access = list(62)},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/awaymission/home) "dJr" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/airlock_sensor{pixel_x = 24},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/awaymission/home) "dJs" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/awaymission/home) -"dJt" = (/turf/simulated/shuttle/wall{icon_state = "swall_straight"; dir = 1},/area/shuttle/awaymission/home) +"dJt" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod4/station) "dJu" = (/turf/simulated/shuttle/floor,/area/shuttle/awaymission/home) "dJv" = (/obj/machinery/door/window/brigdoor/westleft{req_access = list(62)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/awaymission/home) "dJw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "awaymission_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(62)},/turf/simulated/floor/plating,/area/shuttle/awaymission/home) @@ -9961,8 +9961,9 @@ "dJC" = (/obj/structure/closet/crate/critter,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/awaymission/home) "dJD" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/awaymission/home) "dJE" = (/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/awaymission/home) -"dJF" = (/obj/structure/window/shuttle{icon_state = "window2"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/awaymission/home) +"dJF" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/floor,/area/shuttle/escape_pod3/station) "dJG" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_c"; dir = 8},/area/shuttle/awaymission/home) +"dJH" = (/obj/structure/closet,/obj/item/weapon/lipstick/purple,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/engineering) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10067,7 +10068,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafarSarSawAawzavCazHazIavCawBavXarSawCawDaqQaqQawEawFawGawHawHawIawHawJawKawLawMawNawOawPawQawRawSauxawTawUckLawWawXawYawZazMaxaaxbaxcattaxdattattattaxeattatCaxfatCatCauRaxgagZalBaxhagZagZaxiaxjagZagZaruaruaxkaxlaxmaruaruaaiaaiaaiaaiaaiaxnaxnaxoaxnaxnaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaafaafaxpaxpaxqaxraxsaxparMaafaafaafaafaafaafaafaafaafaafaafaafaafanJanJanJanJanJanJanJaitaitaxtaitaitaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafarSarSaxuawzavCaBaaBaavCawBaxvaxwaxxaxyaxzaxAaxBaqQaxCaxDaxEaxFaxGaxHaxIaxJaxKaxLaxMaxNaxOaxPaxPaxQaxRaxSaxTaxUaxVaxWaxXaxYaxZayaaybaycaydayeayfaygayhayiayjaykaylaymauRaynayoalBaglaypagZagZagZagZagZayqayrarJarKaryaruaaiaaiaaiaaiaaiaaiaaiaxnaysaytaxnaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafaafaafayuayvaywayxayyaxpaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafayzayAayBayzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafarSarSarSarSazFavCavCavCavCayEarSarSayFayGayHayIaqQaqQayJawHawHayKawHayLayMayNayOayPayQayRaySayTayUauxayVayWayXawWayYayZazaazbazcazdazeazfazgazhaziazjazgazkazlazmaznazoazpazqazrazsaglagZagZaztayrayrayrayrayrarJarKazuaruaaiaaiaaiaaiaaiaaiaaiaxnazvaytaxnaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaafazwazxazyazzazAaxpazBazBazBazBazBazBazBazBazBazCazCazCazCazCazCazCazCazCazCazCazCazCazCazDazEayzayzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafarSarSazKazGawzavCavCavCavCawBaAqarSazLazPazOazNaAiaBfazNazQazRayKazSazTazUazVazWazXazYazZaAaaAbaAcauxawWaAdawWaAeaAfaAgaAhaApaAjaAkaAlaApaAmaAnaAmaApaAmaAoaAmaApattattaglaAraAsaAtaglaAuaztayrayraAvaAwaAxayraAyarxaryaAzaAzaAzaAzaAzaaiaaiaaiaxnaysaxnaxnaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaAAaABaACaADaAEaxpaAFaAGaAHaAIaAJaAKaALaAMaAFazCaANaANaAOaAPaAQaARaASaARaATaAPaAOaAUazCayzaAVaAWayzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafarSarSazKazGawzavCavCavCavCawBaAqarSazLazPazOazNaAiaBfazNazQazRayKazSazTazUazVazWazXazYazZaAaaAbaAcauxawWaAdawWaAeaAfaAgaAhaApaAjaAkaAlaApaAmaAnaAmaApaAmaAoaAmaApattattaglaAraAsaAtaglaAuaztayrayraAvaAwaAxayraAyarxaryaAzaAzaAzaAzaAzaaiaaiaaiaxnaysaxnaxnaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaafaafaAAaABaACaADaAEaxpaAFaAGaAHaAIaAJaAKaALaAMaAFazCaANaANaAObUUaAQaARaASaARaATaAPaAOaAUazCayzaAVaAWayzaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafarSarSaAXaAYaAZavCavCavCavCawBaBbaBcaBdaxKaBeazNaCjaCtazNaBgaBhaBiaBjaBkaBlaBmaBnauxaBoaBpaBqaBraBsauxaBtaBuaBvaBwaBxaByaBzaApaBAaBBaBCaApaBDaBEaBFaApaBDaBBaBFaApaafaafaglaBGaBHaBIaglagZayrayraBJaBKaBLaBMaBNarJarKaBOaAzaBPaBQaBRaAzaAzaaiaaiaxnaysaxnaaiaaiaBSaBSaBTaBUaBUaBUaBVaBUaBUaBUaBUaBWaBSaBXaBYaBZaCaaxpaCbaCcaCcaCcaCdaCcaCcaCcaCeazCaCfaCgaCfaCfaCfaCfaCfaCfaCfaCfaCfaCfaChayzaAVaCiayzayzayzayzayzaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafarSarSaCuavCaCkaClaClaClaClaCmaCnaCoaCpaCqaCraCsaDRaDSaCvaCwaCxaCyaCzaCAaCBaCCaCDaCEaCFaCGaCHaCzaCIaCJaCKaCLaCMaCNaCOaCPaCQaApaCRaCSaCTaApaCUaCVaCWaApaCXaCSaCYaApaafaafaglaCZaDaaDbaglaDcayraDdaDeaBKaDfaDgayraDharKaryaAzaDiaDjaDkaDlaAzaAzaaiaxnaysaxnaaiaaiaBSaDmaDnaDnaDnaDnaDnaDnaDnaDnaDnaDnaDoaDpaDqaDraDsaxpaDtaCcaDuaDvaDwaDxaDuaCcaDyazCaCfaDzaDAaDAaDAaDAaDAaDAaDAaDAaDAaDBaCfayzaAVaDCaDDaDEaDFaDFayzaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaumaumaumaumaumaumaumaumaumaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafarSarSaDGaDHaDIaDJaFaaDJaDJaDKaDLaDMaDNaDOaDPaDQaEYaJNaDTaDUaDVaDWaDXaDYaDZaEaaEbaEcaEdaEcaEeaEfaEgaEhaEiaEjawYaEkaElaByaEmaApaEnaEoaEpaApaEqaEraEqaApaEqaEsaEqaApaafaafaglaEtaEuaDbaglayrayraEvaDeaEwaExaEyaEzaEAaEBaECaEDaEEaEFaEGaEHaEIaAzaaiaxnaysaxnaaiaaiaBSaEJaDnaDnaDnaDnaDnaDnaDnaDnaDnaDnaEKaELaACaADaEMaxpaCcaCcaCcaENaCdaEOaCcaCcaCcazCaEPaEQaERaESaESaESaESaESaESaESaETaCfaEUayzaAVaEVaDDaDFaEWaEXayzaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10174,7 +10175,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafabxcLJcLJcLJcLJcLJabxdcodcpdcqcZYdcrdcscWMcWOdctdctdcucZgcZZdcvdcwdbgdcxdcydczdcAdcBdcCdcDdcEdcFdcGdcHdcIdcHdcJdcKcREdcLdaucRCdcMdcNdcOdcPdcQdcRcZBcVYcBRdcScBRcBRdcTdcUdcVdcWdcXdcUdcYdcWdcZddaddbddcdddddeddfddeddeddgddeddhddiddeddeddjddkddlddmddnddoddjddeddpddeddfddqddrddeddeddeddsddeddtdduddfddeddeddeddjddeddnddvddwddwddxddyddzddyddAddyddBddCddDddyddzddyddEddyddyddyddFddyddGddzddHddIddJddDddGddyddKddyddyddLddyddyddMddBddDddyddyddNddyddyddzddyddGddOddPdcgddQddRddSdckdckdckddTddUdcldckdckdckdckddVcZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafabxcLJddWddWddXddYddZdeadebdaedecdedcTXcWMcWOdeedefdegdabdacdehdaedafdeidejdaedekdeldemdendeodepdeqderdesderdetdeudevdewdexdeydezdeAdeBdeCdeDdeEcZBcVYcxWcxWdeFcxWdeGdeHdeIdaBdeGdeHdeJdaBdeGdeKdeLdeMdeNdeOdeOdeOdePdeOdeOdeQdeOdeOdeOdeRdePdeSdeTdeUdeVdeRdeOdeUdeOdeOdeOdePdeOdeOdeOdeOdeOdeQdeOdeOdeOdeOdeOdeRdeVdeUdeWdeOdePdeRdeXdeXdeXdeYdeXdeXdeZdeXdeXdeXdeXdfadeXdeXdeXdfbdeXdfcdeZdfddfedffdfgdfcdeXdeYdeXdeXdeZdeXdeXdeXdeXdeXdeXdeXdfhdeXdeXdfgdeXdfcdfidfjdfkdfldfmdfndfodfodfpdfqdfrdfsdftdckdckdckdfucZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaicLJdfvdfwdfxcRlaaicWJdfydfzdfAdfBcYgdfCcWOdfDdfEdfFcWOcTXdfGcTXdfHcTXdfIdfJdfKdfKdfLdfMdfNdfOdfLdfMdfKdfPdfQdfRdfSdfTdfUdfVdfWdfXdfYdfVdfWdfUdfUcVYcxWdfZdgadgbdeGdgcdgddgedaBdgfdgddggdeGdaBdghdbFdgidgjdgjdgjdgkdgldgjdgjdgmdgjdgjdgndgodgpdgqdgrdgsdgtdgudgvdgudgudgwdgxdgudgudgydgudgudgudgzdgudgudgAdgudgtdgBdgrdgqdgCdgDdgncSndgEcSncSncSncSndgFcSndgGcSncSncSncSncSncSndgHcSndaRdgIdgJcZJdcfdgKdaRcSndgEcSncSndgLcSndgGcSncSncSndgGcSncSncSncSndgMcSndaRdgMdgNdcgdgOdgPdckdckdgQdgRdgSdgTdgUdftdckdckdckdgVcZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafabxcLJddWddWdgWdgXdgYdgZdhadhbdhcdhdcTXcWMdhedhfdhgdhhdhidhjdhkcYedhldhhdhmdhndhodhpdhqdhrdhsdhtdhudhvdhudhwdhxdhydhzdhAdhBdhCdhDdhEdhFdhGdhHdhIdfUdhJcxWbUUdgadhLdeGdhMdhNdhOdaBdhPdhQdhRdeGdaBdaBdaBdaBdbLdbMdbMdbMdbMdbMdbNdhSdbLdbNdhTdhUdhVdhWdhXdhUdhTdhYdhSdbLdbMdbMdbMdbMdbNdhSdbLdbMdbMdbMdbMdbNdhSdhYdhZdiadibdicdiddiadiadiedifdbWdbXdbXdbXdbXdbYdifdbWdbXdbXdbXdbXdbYdifdiedigdihdiidijdikdihdigdiedifdbWdbXdbXdbXdbXdbYdifdbWdbXdbXdbXdbXdbYdifdiedildimdindiodipcZQdiqdckdcldckdckdirdisdckdckdckdckditcZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafabxcLJddWddWdgWdgXdgYdgZdhadhbdhcdhdcTXcWMdhedhfdhgdhhdhidhjdhkcYedhldhhdhmdhndhodhpdhqdhrdhsdhtdhudhvdhudhwdhxdhydhzdhAdhBdhCdhDdhEdhFdhGdhHdhIdfUdhJcxWdJHdgadhLdeGdhMdhNdhOdaBdhPdhQdhRdeGdaBdaBdaBdaBdbLdbMdbMdbMdbMdbMdbNdhSdbLdbNdhTdhUdhVdhWdhXdhUdhTdhYdhSdbLdbMdbMdbMdbMdbNdhSdbLdbMdbMdbMdbMdbNdhSdhYdhZdiadibdicdiddiadiadiedifdbWdbXdbXdbXdbXdbYdifdbWdbXdbXdbXdbXdbYdifdiedigdihdiidijdikdihdigdiedifdbWdbXdbXdbXdbXdbYdifdbWdbXdbXdbXdbXdbYdifdiedildimdindiodipcZQdiqdckdcldckdckdirdisdckdckdckdckditcZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafabxcLJcLJcLJcLJcLJabxdiudivdcqdiwdixcYgdiycTXcZgdaacZZcTXcTXdizdiAdiBdiCdiDdiEdiFdhpdhrdhrdhsdhtdiGdiGdiHdiIdiJdiKdhzdiLdiMdiMdiMdiNdiOdiPdiPdiQdfUcVYcxWdiRdiSdiTdeGdiUdiVdiUdaBdiWdiXdiWdeGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiYdiZdjadjbdjcdjddiYaaaaaaaaaaaaaaadjedjedjedjedjedjedjeaaaaaaaaaaaaaaadjfdjgdjhdjidjjdjkdjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldjmdjndjodjpdjqdjlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjrdjsdjtdjudjvdipdjwdjxdjydjzdjAdjBdckdjCdjDdjEdjFcZQcZQaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafabxcLJdjGdjGdjHddYddZdeadjIdaedjJdjKdjLcWMcTXdhedhgdaccWQcTXdjMdiBdaddjNdjOdjPdjQdjRdhrdjSdjTdjUdjVdjWdjXdjYdjZdkadkbdiLdiMdiMdkcdkddkedkfdiMdkgdfUcVYcxWaaiaaiaaideGdiUdkhdiUdaBdiWdkidiWdeGdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjaaaaaadkkdkldkmdkndjcdkodkpaaaaaaaaaaaadjedjedjedjedjedjedjedjedjeaaaaaaaaaaaadkqdkrdjhdksdktdkudkqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkvdkwdkxdkydjpdkzdkvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkAdjsdjtdkBdkCdipcZQcZQcZQdkDdkDdkEdkDdkDcZQcZQcZQcZQaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaaicLJdkFdkGdkHcRlaaicWJdkIcTXcWMdiBdaddjJdkJdaedkKdaedkJdaedkLdiBcTXcTXdkMdkNdkOdkPdhrdhrdkQdkRdhrdkSdkTdhwdkUdkVdkWdhAcbBbWDdkZcCfdkXdhKdkYdfUdfUcVYcxWaaiaaiaaiaaidiUdlcdiUdeGdiWdlddiWdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdledlfdlgdlhdlidljdlkdlldhTaaaaacaaadjedjedjedjedjedjedjedjedjedjedjeaaaaacaaadhZdlmdlndlodlpdlqdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadigdlrdjndlsdltdludigaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildlvdlwdlxdlydipaafdkDdIodkDdlAdlBdlCdlDdlEdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10182,27 +10183,27 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafabxcLJcLJcLJcLJcLJabxdiudmxdcqcTXdiBcTXcTXcWMdmydiBcTXcTXdmydmzdmAdmBdmCdmDdmEdfKdmFdhrdhrdmGdmHdhrdmIdmJdlUdmKdkVdmLdmMdmNdmOdmPdmQdmRdmSdHOdmUdmVdmWcBRcBRcxWaaiaaaaaaaaaaaaaaaaaaaaaaaadkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdmXdlfdmYdlhdmZdnadmmdnbdkkaaaaaaaaadjedjedjedjedjedjedjedjedjedjedjeaaaaaaaaadncdnddnedlodnfdngdncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnhdnidjndlsdnjdnkdnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdjtdnndnodipaafdkDdIqdkDdnqdnrdnrdnsdlEdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafabxabxaaiaaiaaiabxabxdntdnudnvdnwdaddnxdnydnzdnAdnBdnCdnDdnEdnFdnGdnHdnIcTXdnJdfKdnKdhrdhrdmGdnLdhrdkSdnMdlUdkUdnNdlWdnOdHPdnQdnRdnSdnTdnUdnVdnWdnXdnYdnZdoacxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjdkjaaaaaadkpdkldjadjbdmmdkodkpaaaaaaaaadjedjedjedjedjedjedjedjedjedjedjeaaaaaaaaadkqdkrdmndjidjjdkudkqaaaaaaaaaaaaaaadobdocdoddoddoddoedofaaaaaaaaaaaaaaadkvdkwdjndjodnjdkzdkvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkAdjsdjtdogdmsdipaafdkDdkDdkDdkDdohdkDdkDdkDdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaiaaiaaiaaiaaidoidojdokdoldomdoldondoodomdoldopdoodomdomdondoqdordosdfKdotdoudovdowdoxdoydozdoAdlUdkUdnNdlWdnOdHPdoBdoCdoDdoEdoFdHQdmUdmVdmWdoGdoHcxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdoMdjadoNdoOdoPdhTaaaaaaaaadjedjedjedjedjedjedjedjedjedjedjeaaaaaaaaadhZdoQdoRdoSdjjdoTdhZaaaaaaaaaaaaaaadoUdoVdoVdoVdoVdoVdoUaaaaaaaaaaaaaaadigdoWdjndoXdoYdoZdigaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadildpadpbdpcdpddipaafaafaafdkDdpednrdpfdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaaaaaaaaaaaidpgdphddZddZdpidphdpjddZdpidphdpjddZdpidpkcSpabxdordpldfKdfKdlUdlUdlUdlUdlUdpmdlUdlUdpndpodppdpqdpqdpqdpqdpqdpqdpqdpqdpqdprdpscxWcxWcxWaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJfdJfdJhdJidJfdJfdJhdJjdJidJfdJfdJkaaaaaadiYdkldjadjbdmmdkodiYaaaaaaaaadjedjedjedjedjedjedjedjedjedjedjeaaaaaaaaadjfdkrdmndjidjjdkudjfaaaaaaaaaaaaaaadoUdptdpudoVdpudptdoUaaaaaaaaaaaaaaadjldkwdjndjodnjdkzdjlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjrdjsdjtdogdmsdipaafaafaafdkDdpedpvdpfdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaaadpwaaaabxcLJdpxcRlcRkcLJdpxcRlcRkcLJdpxcRlcRkcLJdordpydpzdpAdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpqdpMdpNdpOdpPdpQdpRdpSdpqdpqdmWcxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJmdJmdJmdJndJmdJodJqdJpdJsdJrdJtdledlfdlgdpTdlidjbdmmdjddkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdjkdmndjidjjdmndncaaaaaaaaaaaadobdpUdpVdpVdpWdpVdpVdpUdofaaaaaaaaaaaadnhdnjdjndjodnjdjqdnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldjsdjtdogdmsdipdipaafaafdkDdkDdkDdkDdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaayaaedpXaaeabxcLJdpYdpZdqacLJdqbdqcdqdcLJdqedqfdqgcLJdordqhdqidpAdqjdqkdqldqmdqndqodqpdpIdqqdqrdqsdpqdqtdqtdqudpQdpQdqvdqvdqwdpqdmWcxWdqxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJudJudJudJudJudJudJudJudJudJvdJwdqydqzdqAdqBdqCdjbdqDdqEdlgdlfdqFdjedjedjedjedjedjedjedjedjedjedjedjedjedqGdqHdqIdqJdqKdjidjjdkudncaaaaaadobdpVdqLdqMdqNdqOdoVdqOdqPdqQdqRdpVdofaaaaaadnhdkwdjndjodqSdqTdqUdqVdqWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqXdqYdqZdradrbdogdmsdrcdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaadrddredrfaaadrddredrfaaadrddredrfaaadrddredrfaaadrddredrfaaaaayaaeaaeaaaaaacLJdrgdrhdrgcLJdridrjdricLJdrkdrldrkcLJdordrmdrndpAdrodrpdrqdqndqndrrdrsdrtdrudrvdrwdrxdrydrzdrAdrzdrzdrBdrzdrCdpqdmWdrDdrEdrFaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJxdJxdJxdJydJAdJzdJCdJBdJEdJDdJFdmXdlfdmYdpTdrGdrHdrIdrJdrKdrLdrMdjedjedjedjedjedjedjedjedjedjedjedjedjedrNdrOdrPdrQdrRdrSdrTdrUdqIdqHdrVdoUdrWdoVdoVdoVdoVdoVdoVdoVdoVdoVdrWdoUdrXdqVdqUdqWdrYdrZdsadsbdscdsddseaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdsgdshdsidsjdogdmsdskdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaedrddsldrfaaedrddsldrfaaedrddsldrfaaedrddsldrfaaedrddsldrfaaeaazaaaaaeaaeaaacLJdrgdsmdrgcLJdridsndricLJdrkdsodrkcLJdordspdsqdpAdrodsrdqndqndqndssdstdsudsvdswdsxdsydszdsAdsBdsCdsCdsDdrzdsEdpqdmWcBRdsFdsGaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJfdJfdJhdJidJfdJfdJhdJjdJidJfdJfdJGaaaaaadkpdkldjadjbdsHdsIdsJdsKdsLdjedjedjedjedjedjedjedjedjedjedjedjedjedsMdsNdsOdsPdsQdjidsRdsSdsTdmndsSdpWdoVdoVdoVdsUdsUdoVdsUdsUdoVdoVdoVdpWdsVdnjdsWdsVdsXdjodsYdsZdtadtbdtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtddtedtfdtgdthdogdmsdtidipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaaaaaaaaaaaidpgdphddZddZdpidphdpjddZdpidphdpjddZdpidpkcSpabxdordpldfKdfKdlUdlUdlUdlUdlUdpmdlUdlUdpndpodppdpqdpqdpqdpqdpqdpqdpqdpqdpqdprdpscxWcxWcxWaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJfdJfdqLducdJfdJfdqLdJjducdJfdJfdJkaaaaaadiYdkldjadjbdmmdkodiYaaaaaaaaadjedjedjedjedjedjedjedjedjedjedjeaaaaaaaaadjfdkrdmndjidjjdkudjfaaaaaaaaaaaaaaadoUdptdpudoVdpudptdoUaaaaaaaaaaaaaaadjldkwdjndjodnjdkzdjlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjrdjsdjtdogdmsdipaafaafaafdkDdpedpvdpfdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaayaaadpwaaaabxcLJdpxcRlcRkcLJdpxcRlcRkcLJdpxcRlcRkcLJdordpydpzdpAdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpqdpMdpNdpOdpPdpQdpRdpSdpqdpqdmWcxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJmdJmdJmdJndJmdJodJqdJpdJsdJrdvBdledlfdlgdpTdlidjbdmmdjddkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdjkdmndjidjjdmndncaaaaaaaaaaaadobdpUdpVdpVdpWdpVdpVdpUdofaaaaaaaaaaaadnhdnjdjndjodnjdjqdnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldjsdjtdogdmsdipdipaafaafdkDdkDdkDdkDdkDaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaaeaaeaaeaaaaayaaedpXaaeabxcLJdpYdpZdqacLJdqbdqcdqdcLJdqedqfdqgcLJdordqhdqidpAdqjdqkdqldqmdqndqodqpdpIdqqdqrdqsdpqdqtdqtdqudpQdpQdqvdqvdqwdpqdmWcxWdqxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJudJudJudJudJudJudJudJudJudJvdJwdqydqzdqAdqBdqCdjbdqDdqEdlgdlfdqFdjedjedjedjedjedjedjedjedjedjedjedjedjedqGdqHdqIdqJdqKdjidjjdkudncaaaaaadobdpVdyjdqMdqNdqOdoVdqOdqPdqQdqRdpVdofaaaaaadnhdkwdjndjodqSdqTdqUdqVdqWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqXdqYdqZdradrbdogdmsdrcdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaadrddredrfaaadrddredrfaaadrddredrfaaadrddredrfaaadrddredrfaaaaayaaeaaeaaaaaacLJdrgdrhdrgcLJdridrjdricLJdrkdrldrkcLJdordrmdrndpAdrodrpdrqdqndqndrrdrsdrtdrudrvdrwdrxdrydrzdrAdrzdrzdrBdrzdrCdpqdmWdrDdrEdrFaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJldJxdJxdJxdJydJAdJzdJCdJBdJEdJDdAFdmXdlfdmYdpTdrGdrHdrIdrJdrKdrLdrMdjedjedjedjedjedjedjedjedjedjedjedjedjedrNdrOdrPdrQdrRdrSdrTdrUdqIdqHdrVdoUdrWdoVdoVdoVdoVdoVdoVdoVdoVdoVdrWdoUdrXdqVdqUdqWdrYdrZdsadsbdscdsddseaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdsgdshdsidsjdogdmsdskdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaedrddsldrfaaedrddsldrfaaedrddsldrfaaedrddsldrfaaedrddsldrfaaeaazaaaaaeaaeaaacLJdrgdsmdrgcLJdridsndricLJdrkdsodrkcLJdordspdsqdpAdrodsrdqndqndqndssdstdsudsvdswdsxdsydszdsAdsBdsCdsCdsDdrzdsEdpqdmWcBRdsFdsGaaaaaaaaaaaaaaaaaaaaaaaaaaadJgdJfdJfdqLducdJfdJfdqLdJjducdJfdJfdJGaaaaaadkpdkldjadjbdsHdsIdsJdsKdsLdjedjedjedjedjedjedjedjedjedjedjedjedjedsMdsNdsOdsPdsQdjidsRdsSdsTdmndsSdpWdoVdoVdoVdsUdsUdoVdsUdsUdoVdoVdoVdpWdsVdnjdsWdsVdsXdjodsYdsZdtadtbdtcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtddtedtfdtgdthdogdmsdtidipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaaaaeaaaaaaaaeaaecLJcLJcLJcLJcLJcLJcLJcLJcLJcLJcLJcLJcLJdordspdsqdpAdqjdqkdrqdqndqndqodtjdpIdkUdnNdtkdpqdtldtmdtndtodtpdtqdtrdtsdpqdttcBRdtudsGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdtvdjadjbdtwdqEdmYdlfdlhdjedjedjedjedjedjedjedjedjedjedjedjedjedrUdqHdtxdqJdtydjidtzdrUdtxdqHdqJdoUdtAdoVdoVdoVdoVdoVdoVdoVdoVdoVdtBdoUdqTdqVdtCdqWdtDdjodtEdqTdtCdqVdqWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqXdqYdtFdradtGdogdmsdtHdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaaaaeaaaaaaaaaaaeaaeaaeaaeaaaaaaaaeaaeaaeaaaabxdtIdtIdtIdordtJdordpAdpBdtKdtLdtMdtNdtOdpAdpAdtPdtQdtRdpqdpqdtSdtodtTdtUdtVdtrdpqdpqdmWcBRdtudsGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWaaaaaaaaadiYdkldtXdtYdmmdkldkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdtZdmnduadubdtZdncaaaaaaducdoVdsUdsUdsUdsUdoVdsUdsUdsUdsUdoVducaaaaaadnhdudduedufdnjduddnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldugdjtduhduidipdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaaaaeaaaaaaaaaaaeaaeaaeaaeaaaaaaaaeaaeaaeaaaabxdtIdtIdtIdordtJdordpAdpBdtKdtLdtMdtNdtOdpAdpAdtPdtQdtRdpqdpqdtSdtodtTdtUdtVdtrdpqdpqdmWcBRdtudsGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWaaaaaaaaadiYdkldtXdtYdmmdkldkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdtZdmnduadubdtZdncaaaaaadAGdoVdsUdsUdsUdsUdoVdsUdsUdsUdsUdoVdAGaaaaaadnhdudduedufdnjduddnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldugdjtduhduidipdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayaayaaeaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaadrddsldrfaaaaaeaaaaaaaaaaaaaaedujdukdukdukdukdtIduldumdtIdtIdundunduodupduqdpAdpAdpAdpAdpAdpAdpAdpAdurdusdutduuduvdpqdpqdpqdpqdpqdpqdpqdpqdpqdmWcBRduwdsGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdledlfdlgdpTdlidjbdmmdnbdkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdnddmndjidjjduxdncaaaaaaduydIrdoVdoVdoVdoVduzdoVdoVdoVdoVdIsduyaaaaaadnhduAdjndjodnjdnkdnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdjtdogduBdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaeaaaaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaduEaaaaaaduFduGduGduHduIduJduKduLduMduNduOduPduQduRduRduSduTduUduVduWduXduSduPduYduZdvadvbdvcdvddvedvfdvgdvhdvidvjdvkdvldvmdvndvodmWdvpdvqdvraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdvsdvtdvudvvdvwdvxdvydkldkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdtZdvzdvAdjjdtZdncaaaaaadvBdoVdsUdsUdsUdsUdoVdsUdsUdsUdsUdoVdvBaaaaaadnhduddjndvCdvDduddnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldugdvEdvFdmsdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaeaaaaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaduEaaaaaaduFduGduGduHduIduJduKduLduMduNduOduPduQduRduRduSduTduUduVduWduXduSduPduYduZdvadvbdvcdvddvedvfdvgdvhdvidvjdvkdvldvmdvndvodmWdvpdvqdvraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdvsdvtdvudvvdvwdvxdvydkldkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdtZdvzdvAdjjdtZdncaaaaaadERdoVdsUdsUdsUdsUdoVdsUdsUdsUdsUdoVdERaaaaaadnhduddjndvCdvDduddnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldugdvEdvFdmsdipaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaedvGdvHdvHdvHdvIdvHdvHdvHdvIdvHdvHdvHdvIdvHdvHdvHdvIdvHdvHdvHdvIdvHdvHdvHdvHdvJdvKdvLdvMdvNdvOdvPdvQdvRdvSdvTdvUdvVdvWdvXdvYdvZdwadwbdwcdwddutduvduvdweduvdwfduvdwgdwhduvduvdwiduvdwedwjdwkdwldwmdwndwodwpcxWdwqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdmXdlfdmYdpTdwrdwsdwtdqEdlgdlfdlhdjedjedjedjedjedjedjedjedjedjedjedjedjedrUdqHdqIdqJdwudwvdwwdrUdqIdqHdqJdoUdtAdoVdoVdoVdoVdoVdoVdoVdoVdoVdtBdoUdqTdqVdqUdqWdwxdwydwzdqTdqUdqVdqWaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAaaaaaadqXdqYdqZdradwBdwCdwDdipaafaafaafdwEdwEdwEdwEdwEdwEdwEaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaeaaaaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeduDaaeaaaaaeaaaaaaduFduGduGdwFdwGdwHdwIdukdtIdwJdwKdtIdtIdwLdumdwMdtIdwNdwOdwOdwPdwOdwQdwRdwQdwSdwTdwUdwVdwTdwUdwSdwWdwXdwYdtIdwcdwcdtIdtIcxWcxWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadtWdtWdtWdtWdtWdtWdtWdtWdtWdtWdtWaaaaaaaaadkpdkldjadjbdsHdwZdxadxbdxcdjedjedjedjedjedjedjedjedjedjedjedjedjedxddxedxfdxgdsQdjidsRdsSdxhdmndsSdpWdoVdoVdoVdsUdsUdoVdsUdsUdoVdoVdoVdpWdsVdnjdxidsVdsXdjodsYdxjdxkdxldxmaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaadxndxodxpdxqdthdogdmsdipdwEdwEdwEdwEdxrdxsdxtdxudxrdwEdwEdwEdwEdwEdwEdwEdwEdwEdwEdwEdwEaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayaayaaeaaedrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaaaaeaaaaaaaaaaaaaaedxwdukdukdukdukdtIdxxdxydxzaaadxAdxBdxCdxDdxEdwOdxFdxGdxHdwQdxIdxJdxKdxLdxMdxNdxOdxPdxKdxQdxRdxSdtIdxTdxUdxVdxzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdxWdxXdrHdxYdxZdyadybdycdjedjedjedjedjedjedjedjedjedjedjedjedjedyddyedyfdygdyhdrSdyidrUdtxdqHdrVdoUdrWdyjdqMdoVdoVdoVdoVdoVdykdyjdrWdoUdrXdqVdtCdqWdyldrZdymdyndyodypdyqaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaadyrdysdytdyudyvdywdyxdyydyzdyAdyAdyAdyBdyCdyBdyDdyBdyAdyEdyAdyAdyAdyFdyGdyHdyIdyJdyKdwEdwEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaayaayaaeaaedrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaaaaeaaaaaaaaaaaaaaedxwdukdukdukdukdtIdxxdxydxzaaadxAdxBdxCdxDdxEdwOdxFdxGdxHdwQdxIdxJdxKdxLdxMdxNdxOdxPdxKdxQdxRdxSdtIdxTdxUdxVdxzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdxWdxXdrHdxYdxZdyadybdycdjedjedjedjedjedjedjedjedjedjedjedjedjedyddyedyfdygdyhdrSdyidrUdtxdqHdrVdoUdrWdEUdqMdoVdoVdoVdoVdoVdykdEUdrWdoUdrXdqVdtCdqWdyldrZdymdyndyodypdyqaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaadyrdysdytdyudyvdywdyxdyydyzdyAdyAdyAdyBdyCdyBdyDdyBdyAdyEdyAdyAdyAdyFdyGdyHdyIdyJdyKdwEdwEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaaaaeaaaaaaaaaaaeaaeaaaaaaaaaaaaaaadtIdyMdyNdyOaaedxAdyPdyQdyRdySdwOdyTdyUdyVdwQdyWdyXdxKdyYdyZdzadzbdzcdxKdzddzedzfdtIdzgdzhdzidyOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiYdkldjadjbdzjdqEdmYdlfdqFdjedjedjedjedjedjedjedjedjedjedjedjedjedqGdqHdtxdqJdzkdjidjjdkudncaaaaaadzldpVdzmdzndoVdzodzpdzqdoVdzrdzsdpVdztaaaaaadnhdkwdjndjodzudqTdtCdqVdqWaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaadqXdqYdzvdzwdzxdzydzzdzzdzAdzBdzCdzDdzEdzFdzGdzHdzIdzFdzJdzKdzLdzMdzNdzKdzKdzKdzKdzOdzPdwEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaeaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaadrddxvdrfaaaaayaaaaaaaaeaaeaaaaaaaaaaaaaaaaaadtIdzQdzQdtIaaidzRdumdzSduldumdwOdzTdzUdzVdzWdzXdzYdzZdAadAbdAcdAddAedAfdAgdAhdAidAjdAkdAldtIdtIaaedAmaclaclaclaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadledlfdlgdpTdAndjbdmmdAodkkaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadncdApdmndjidjjdAqdncaaaaaaaaaaaadzldArdAsdAtdAtdAtdAsdArdztaaaaaaaaaaaadnhdAudjndjodnjdAvdnhaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaadnldAwdogdAxdipdwEdwEdAydAzdAAdwEdAydAzdABdwEdAydwEdwEdwEdwEdwEdwEdwEdzKdzOdzKdwEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaayaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaeaayaaaaaeaaeaaaaaaaaaaaaaaaaaaaaadACdADdAEdACabxdAFdAGdAHdAGdAFdwOdAIdAJdAKdwQdALdAMdxKdANdAOdAPdAOdAQdxKdARdASdATdAjdAUdAVdAWdAXaaaaaeaaeaaaaaaaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadAYdAZdBadBbdBcdBddoOdkodkpaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadkqdkrdoRdBedjjdkudkqaaaaaaaaaaaaaaaaaadzldArdArdArdztaaaaaaaaaaaaaaaaaadkvdkwdjndBfdoYdkzdkvaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaadkAdBgdBhdBidipaafaafdwEdBjdBkdBldwEdBmdBndBodwEaafaafaafaafaafaafdBpdBpdBqdBpdBpaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaayaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaedrddxvdrfaaeaayaaaaaeaaeaaaaaaaaaaaaaaaaaaaaadACdADdAEdACabxdJidJhdAHdJhdJidwOdAIdAJdAKdwQdALdAMdxKdANdAOdAPdAOdAQdxKdARdASdATdAjdAUdAVdAWdAXaaaaaeaaeaaaaaaaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadAYdAZdBadBbdBcdBddoOdkodkpaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadkqdkrdoRdBedjjdkudkqaaaaaaaaaaaaaaaaaadzldArdArdArdztaaaaaaaaaaaaaaaaaadkvdkwdjndBfdoYdkzdkvaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaadkAdBgdBhdBidipaafaafdwEdBjdBkdBldwEdBmdBndBodwEaafaafaafaafaafaafdBpdBpdBqdBpdBpaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaazaaadrddBrdrfaaadrddBrdrfaaadrddBrdrfaaadrddBrdrfaaadrddBrdrfaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdBsdBtdBudBvdBsdBwdBxdBydBzdwQdBAdBBdxKdBCdBDdBEdBFdBGdxKdBHdBIdBJdAjdBKdBLdAWdBMaaaaaeaaeaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmXdlfdmYdpTdBNdBOdmmdBPdhTaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadhZdBQdmndBRdjjdoTdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadigdoWdjndBSdnjdBTdigaaaaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaaaaadildBUdBVdBWdipaafaafdwEdBXdBYdBZdwEdCadCbdCcdwEaafaafaafaafaafaafdBpdCddCedCfdBpdCgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaclaaaaaeaaaaaaaaaaaeaaeaaeaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdAGdChdBudCidAGdwOdCjdCkdwOdwQdwQdCldAjdCmdCndCodCndCpdAjdwWdCqdwWdAjdAjdAjdAjdCrdCsdCtdCtdCsdCuaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdkldkmdCvdmmdkodiYaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadjfdkrdmndCwdktdkudjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldkwdkxdCxdnjdkzdjlaaaaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaaaaadjrdCydCzdCAdipaafaafdwEdCBdCCdCBdwEdCDdCEdCDdwEaafaafaafaafaafaafdBpdCFdCGdCHdBpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaclaaaaaeaaaaaaaaaaaeaaeaaeaaaaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdJhdChdBudCidJhdwOdCjdCkdwOdwQdwQdCldAjdCmdCndCodCndCpdAjdwWdCqdwWdAjdAjdAjdAjdCrdCsdCtdCtdCsdCuaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdkldkmdCvdmmdkodiYaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadjfdkrdmndCwdktdkudjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldkwdkxdCxdnjdkzdjlaaaaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaaaaadjrdCydCzdCAdipaafaafdwEdCBdCCdCBdwEdCDdCEdCDdwEaafaafaafaafaafaafdBpdCFdCGdCHdBpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdCIdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaclaclaclaclacvaazaayaaeaaeaaeaayaaeaaeaaeaaeaazaazaayaaeaaeaaeaazaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdBsdCJdBudCKdBsdAjdCLdCMdCNdCOdCPdCQdCRdCSdCTdCUdCVdCWdCXdCYdCZdDadDbdDcdDcdAjdDddCtdDedDfdCtdDgdDhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkpdDidDjdDkdDldDmdkpaaaaaadjedjedjedjedjedjedjedjedjedjedjedjedjeaaaaaadkqdDndDodDpdDqdDrdkqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkvdDsdDtdDudDvdDwdkvaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaadkAdDxdDydDzdipaafaaidwEdCBdDAdCBdwEdCDdDBdCDdwEaafaafaafaafaafaafdBpdDCdDDdDEdBpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdAGdDFdDFdDFdAGdAjdDbdDGdDHdDIdDJdDKdDLdDMdDNdDOdDNdDNdDNdDNdDNdDPdDQdDcdDcdAjdCrdCsdDgdDddCsdCuaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdhTdDRdDSdDSdhTdhTaaaaaaaaaaaaaaaaaadjedjedjedjedjeaaaaaaaaaaaaaaaaaadhZdhZdDTdDTdDUdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadigdigdDVdDWdDWdigdigaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdildildDXdDYdDZdilaafaaidAydCBdEadCBdAydCDdEbdCDdAyaaiaaiaafaafaafaafdEcdEddEedEfdEgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidEhdBsdEidEidEjdBsdAjdDbdDGdEkdEldEmdEndEodEodEpdEqdErdEsdEtdEudEvdEwdExdEydEzdAjdEAdCsdDedDfdCsdEBaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadiYdECdEDdEEdiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjfdEFdEGdEHdjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldEIdEJdEKdjlaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdELdEMdENdEOdEPdjraaiaaiaaidEQdERdESaaadETdEUdEVaaiaaiaaiaaiaaiaaiabxabxdEWdEXdEWaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEYaaaaaadEYaaaaaaaaadEYaaaaaaaaaaaaaaadEYaaaaaaaaadEYaaaaaadEYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidtIdAFdAGdEZdAGdAFdAjdDbdDGdFadFbdFcdDbdDbdDbdFddFedFfdFgdFgdFhdFidFjdFkdFldFmdFndFodCtdDgdDddCtdDeaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdFpdDldFqdkkaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadncdFrdDodFsdncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnhdFtdDvdFudnhaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdFvdFwdFxdFydFzdnlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaaaaaaaaaaeaaeaaadEWdFAdEWaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxdJhdDFdDFdDFdJhdAjdDbdDGdDHdDIdDJdDKdDLdDMdDNdDOdDNdDNdDNdDNdDNdDPdDQdDcdDcdAjdCrdCsdDgdDddCsdCuaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoIdhTdoJdoKdoLdhUdhUdhUdhUdhUdhTdhTdDRdDSdDSdhTdhTaaaaaaaaaaaaaaaaaadjedjedjedjedjeaaaaaaaaaaaaaaaaaadhZdhZdDTdDTdDUdhZdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadigdigdDVdDWdDWdigdigaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdildildDXdDYdDZdilaafaaidAydCBdEadCBdAydCDdEbdCDdAyaaiaaiaafaafaafaafdEcdEddEedEfdEgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidEhdBsdEidEidEjdBsdAjdDbdDGdEkdEldEmdEndEodEodEpdEqdErdEsdEtdEudEvdEwdExdEydEzdAjdEAdCsdDedDfdCsdEBaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadiYdECdEDdEEdiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjfdEFdEGdEHdjfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadjldEIdEJdEKdjlaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdELdEMdENdEOdEPdjraaiaaiaaidEQdJtdESaaadETdJFdEVaaiaaiaaiaaiaaiaaiabxabxdEWdEXdEWaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEYaaaaaadEYaaaaaaaaadEYaaaaaaaaaaaaaaadEYaaaaaaaaadEYaaaaaadEYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidtIdJidJhdEZdJhdJidAjdDbdDGdFadFbdFcdDbdDbdDbdFddFedFfdFgdFgdFhdFidFjdFkdFldFmdFndFodCtdDgdDddCtdDeaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkkdFpdDldFqdkkaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadncdFrdDodFsdncaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnhdFtdDvdFudnhaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdFvdFwdFxdFydFzdnlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaaaaaaaaaaeaaeaaadEWdFAdEWaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEYdEYdEYdEYaaaaaaaaadEYdEYdEYdEYdEYdEYdEYaaaaaaaaadEYdEYdEYdEYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFBdtIdEhabxdEhdtIdAjdFCdDGdFDdFEdFFdDbdFGdFHdFIdFJdFKdFLdFMdFNdFOdFPdFQdFRdFSdFTdFodCsdDedDfdCsdEBaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFUdlhdFVdFWdkpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkqdFXdFYdrUdFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadGadqWdGbdGcdkvaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdqXdqYdGddqYdqYdGeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaadGfdGgdGfaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEYdEYdEYdEYaaaaaadEYdEYdEYdEYdEYdEYdEYdEYdEYaaaaaadEYdEYdEYdEYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaidGhaaiaaidAjdGidFadGjdGkdGldDbdGmdAjdGndGodGpdAjdGqdGrdGsdGtdGudGvdGwdAjdCrdCsdDgdDddCsdCuaclaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadGxdGxdGxdGxaaaaaaaaaaaadGxdGxdGxdGxdGxaaaaaaaaaaaaaaaaaadGydGydGydGydGydGydGydGydGydGydGydGyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaeaaeaaaaaaaaaaaadGzaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLdyLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadEYdEYdEYdEYaaaaaadEYdEYdEYdEYdEYdEYdEYdEYdEYaaaaaadEYdEYdEYdEYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclaaaaaidAjdGAdDbdGBdGCdGCdDbdGDdGEdGFdGGdGHdGEdGIdGJdFidFjdGKdGLdGMdAjdDddCtdDedDfdCtdDgaclaaaaaaaaaaaaaaaaaaaaaaaadGxdGxdGxdGxdGxdGxdGxdGxdGxdGxaaaaaaaaaaaaaaadGxdGxdGxdGxdGxdGxaaaaaadGxdGxdGxdGxdGxdGxaaaaaaaaaaaaaaadGydGydGydGydGydGydGydGydGydGydGydGydGydGydGyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAdwAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaadGNaaaaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCduCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/virgo-2.dmm b/maps/virgo-2.dmm index 5a15a4315a..f4365b69ce 100644 --- a/maps/virgo-2.dmm +++ b/maps/virgo-2.dmm @@ -1229,7 +1229,7 @@ "axG" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access = list(103)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/specops) "axH" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/centcom/specops) "axI" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/administration/transit) -"axJ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) +"axJ" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/belter/transit) "axK" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"; req_access = list(13)},/turf/simulated/floor/plating,/area/shuttle/administration/centcom) "axL" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/administration/transit) "axM" = (/obj/machinery/recharger/wallcharger{pixel_x = -25},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) @@ -1389,7 +1389,7 @@ "aAK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "admin_shuttle_bay"; name = "shuttle bay controller"; pixel_x = 25; pixel_y = 0; tag_door = "admin_shuttle_bay_door"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "aAL" = (/obj/machinery/optable,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "aAM" = (/turf/space,/area/centcom/command) -"aAN" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) +"aAN" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/belter/transit) "aAO" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/supply/dock) "aAP" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/supply/dock) "aAQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "syndieshutters_infirmary"; name = "Blast Shutters"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) @@ -1407,7 +1407,7 @@ "aBc" = (/obj/machinery/porta_turret/crescent,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "aBd" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command) "aBe" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_bay_door"; locked = 1},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) -"aBf" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) +"aBf" = (/turf/space/transit/east/shuttlespace_ew6,/area/shuttle/belter/transit) "aBg" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) "aBh" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) "aBi" = (/obj/machinery/light{dir = 1},/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) @@ -2744,15 +2744,15 @@ "baN" = (/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "baO" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger{pixel_x = -4; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "baP" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) -"baQ" = (/obj/machinery/light{dir = 8},/obj/machinery/door/window/southleft,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) +"baQ" = (/turf/space/transit/east/shuttlespace_ew10,/area/shuttle/belter/transit) "baR" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) "baS" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) "baT" = (/obj/structure/table/reinforced,/obj/item/weapon/flame/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/administration/centcom) "baU" = (/obj/structure/closet/emcloset,/obj/item/device/suit_cooling_unit,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "baV" = (/obj/machinery/door/airlock/centcom{name = "Administrative Office"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"baW" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration/centcom) +"baW" = (/turf/space/transit/east/shuttlespace_ew11,/area/shuttle/belter/transit) "baX" = (/turf/simulated/floor/wood,/area/shuttle/administration/centcom) -"baY" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/shuttle/administration/centcom) +"baY" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/belter/transit) "baZ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/wood,/area/shuttle/administration/centcom) "bba" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "bbb" = (/obj/machinery/autolathe{desc = "Your typical Autolathe. It appears to have much more options than your regular one, however..."; hacked = 1; name = "Centcom Autolathe"},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) @@ -2760,8 +2760,8 @@ "bbd" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "bbe" = (/obj/structure/dispenser,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) "bbf" = (/obj/machinery/cryopod{dir = 4},/turf/simulated/floor/wood,/area/shuttle/administration/centcom) -"bbg" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) -"bbh" = (/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration/centcom) +"bbg" = (/turf/space/transit/east/shuttlespace_ew12,/area/shuttle/belter/transit) +"bbh" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/belter/transit) "bbi" = (/obj/structure/closet/emcloset,/obj/item/device/suit_cooling_unit,/turf/simulated/floor/wood,/area/shuttle/administration/centcom) "bbj" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/shuttle/administration/centcom) "bbk" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -2773,10 +2773,10 @@ "bbq" = (/obj/structure/closet/medical_wall{pixel_x = 31},/obj/item/weapon/storage/firstaid/combat,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "bbr" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "bbs" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/closet/secure_closet/hos{name = "security gear locker"; req_access = list(101)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) -"bbt" = (/obj/machinery/light{dir = 8},/obj/machinery/door/window/northleft,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) +"bbt" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/belter/transit) "bbu" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) "bbv" = (/obj/item/weapon/storage/firstaid/surgery,/obj/structure/table/reinforced,/obj/item/weapon/tank/anesthetic,/obj/item/clothing/mask/breath/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) -"bbw" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) +"bbw" = (/turf/space/transit/east/shuttlespace_ew7,/area/shuttle/belter/transit) "bbx" = (/obj/machinery/door/airlock/centcom{name = "Quarters"; opacity = 1; req_access = list(101)},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "bby" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 2; id = "ccas_room1_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "ccas_room1_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "ccas_room1_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "ccas_room1_tint"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) "bbz" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 2; id = "ccas_room2_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "ccas_room2_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "ccas_room2_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "ccas_room2_tint"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration/centcom) @@ -2814,35 +2814,67 @@ "bcf" = (/obj/structure/table/glass,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "bcg" = (/obj/structure/table/glass,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) "bch" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/atmospherics/unary/freezer,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/medical) +"bci" = (/turf/space/transit/east/shuttlespace_ew9,/area/shuttle/belter/transit) +"bcj" = (/turf/space/transit/east/shuttlespace_ew8,/area/shuttle/belter/transit) +"bck" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/belter/transit) +"bcl" = (/turf/space/transit/east/shuttlespace_ew13,/area/shuttle/belter/transit) +"bcm" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/belter/transit) +"bcn" = (/turf/simulated/shuttle/wall{tag = "icon-gwall_space (WEST)"; icon_state = "gwall_space"; dir = 8},/area/shuttle/administration/centcom) +"bco" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall3_t"},/area/shuttle/administration/centcom) +"bcp" = (/turf/simulated/shuttle/wall{tag = "icon-gwall_space (NORTH)"; icon_state = "gwall_space"; dir = 1},/area/shuttle/administration/centcom) +"bcq" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3_straight"; tag = "icon-swall_straight (EAST)"},/area/shuttle/administration/centcom) +"bcr" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "wall3_straight"; tag = "icon-swall_straight (EAST)"},/area/shuttle/administration/centcom) +"bcs" = (/turf/simulated/shuttle/wall{dir = 2; icon = 'icons/turf/shuttle_vr.dmi'; icon_state = "gwall_bfloor"; tag = ""},/area/shuttle/administration/centcom) +"bct" = (/turf/simulated/shuttle/wall{dir = 4; icon = 'icons/turf/shuttle_vr.dmi'; icon_state = "gwall_drfloor"; tag = "icon-gwall_space (EAST)"},/area/shuttle/administration/centcom) +"bcu" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor7"},/area/shuttle/administration/centcom) +"bcv" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/administration/centcom) +"bcw" = (/obj/machinery/vending/snack,/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/shuttle/administration/centcom) +"bcx" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating/airless,/area/shuttle/administration/centcom) +"bcy" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "wall3_t"},/area/shuttle/administration/centcom) +"bcz" = (/turf/simulated/shuttle/wall{tag = "icon-gwall_space (EAST)"; icon_state = "gwall_space"; dir = 4},/area/shuttle/administration/centcom) +"bcA" = (/turf/simulated/shuttle/wall{dir = 7; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/shuttle/administration/centcom) +"bcB" = (/turf/simulated/shuttle/wall{tag = "icon-gwall_space"; icon_state = "gwall_space"; dir = 2},/area/shuttle/administration/centcom) +"bcC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) +"bcD" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3_t"},/area/shuttle/administration/centcom) +"bcE" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "wall3_wall"; tag = "icon-swall (EAST)"},/area/shuttle/administration/centcom) +"bcF" = (/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/command) +"bcG" = (/turf/simulated/shuttle/wall{dir = 5; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/shuttle/administration/centcom) +"bcH" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/structure/window/reinforced{dir = 2; health = 1e+006},/turf/simulated/shuttle/plating/airless,/area/shuttle/administration/centcom) +"bcI" = (/obj/machinery/light{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) +"bcJ" = (/turf/simulated/shuttle/wall{dir = 1; icon = 'icons/turf/shuttle_vr.dmi'; icon_state = "gwall_wfloor"; tag = "icon-gwall_space (NORTH)"},/area/shuttle/administration/centcom) +"bcK" = (/obj/machinery/smartfridge/chemistry,/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration/centcom) +"bcL" = (/turf/simulated/shuttle/wall{dir = 10; icon_state = "wall3_wall"; tag = "icon-swall (NORTHWEST)"},/area/shuttle/administration/centcom) +"bcM" = (/turf/simulated/shuttle/wall{tag = "icon-gwall_floor (WEST)"; icon_state = "gwall_floor"; dir = 8},/area/shuttle/administration/centcom) +"bcN" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "wall3_t"},/area/shuttle/administration/centcom) (1,1,1) = {" -aaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaalaahaajaapaaqaaraasaataauaavaawaaxaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaR -aajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbabhabeaaZabcaabaauaavaawabiabjabkablabmabeaaXabfaaZabcabbabhabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabvabuabuabuabuabuabuabwabxabyabxabyabxabxabyabxabyabxabwabzabAabAabAabAabAabAabAabAabAabwabBabCabDabDabDabDabDabDabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabJabKabKabKabKabKabLabM -aamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaTabhaaYabfaaeaaraasaataauaavaawabiabNabhabgaaVaaYabfaaXaaTabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTaaTabNaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabOabuabwabPabQabPabQabPabQabPabQabPabQabwabRabRabRabRabRabRabRabRabRabRabwabBabSabTabTabTabTabTabTabTabTabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM -aadaaZaaXabhaaYabdabbaaUabfaaUaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaaWaaTaaUaaVaahabiabjabkablabqabnaboabYaaTabdabeaaUaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaWabYaazaaHaaqaaraasaauaauaavaawabiabjaawabiabjabkaboabpaataaraasaataauaavaawabiaaBaazaaHaaqaaraasaauaauaavaawabiabjaawabiabjabkaboabpaataaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabOabuabuabuabuabuabuabuabuabwabQabPabZacaacbacaacbaccabQabPabwabRabRabRabRabRabRabRabRabRabRabwabBacdabTabDaceabDabTacfacgachabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGaciabVabWabWabWabWabWabXabM -aalaaYabgaaTaaUabaaaXabbaaVabbabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaaZaaWabbabeaagaboabpaaqaaraasaataauacjabfaaUabaaaTabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaaWaaUabaaaTabdaaYaaVaaVacjaazaaNaawabiabjabkablabqabnaboabpaataauaavaawaauaavaawabiabjabkablabqabnaboaaHaazaaNaawabiabjabkaaDaaEaaFaaGaaHaaLaaMaaNaaOaaMaaNaaOaaAaaBabkablabqabnaboaaHaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabvabuabuabuabuabwabQabPackaclacmacmacnacoacbacaabwacpacpacpacpacpacpacpacpacpacqabwabBacdacracsactacuacvacwacxacyabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM -aaoaaUabdaaWabbabcabgaaXabeaaXabhaczacAacBacCabYacDacEacFacGaaWaaXaaVabbaaTabaaaYaaZaaXabhaacabiabjabkablabqabnaboacHabeaaXabfaaZabcabbabhaaVabbabcaaWabaaaUabeabeaaVabbabcaaWabaaaUabeabeacHaazaaHaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiaaBaazaaHaaqaaraasaaLaaMawHaxLaxIaxZaxYaybayaayeaycayrayfaysaaKaaLaaMaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabvabuabuabuabvabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKacLacMacMacMacMacNacKacOabwabBacdacPacQacQacQacRacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM -aababbabaaaZaaXabfabdabgabhabgacCacUacVacVacVacVacVacVacVacFacEaaWabeaaXaaWabcaaUaaYabgaaTaaiaasaataauaavaawabiabjabmabhabgaaVaaYabfaaXaaTabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaCablabqabnaboacWacXacXacYacZacWacXacYacWacXacYacYacYabnaboabpaaqaaraasaaLaazaaCablabqaaFaaGayfaysaysaytayJayfaysaytayfaysaytaytaytayeaycaaHaaIaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKadaadbadbadbadbadcacKacOabwabBacdaddadeadfadeadgacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM -aaeaaXabcaaYabgaaVabaabdaaTadjadkacVacVacVacVacVacVacVacVacVacDadlabhabgaaZabfabbaaUabdaaWaafabqabnaboabpaaqaaraasabNaaTabdabeaaUaaVabgaaWaaWabeaaXabfaaZabcabbabhabhaaXabfaaZabcabbabhabhabNaazaaLaauaavaawabiadmadnadnadoadpadqadradsadtaduadvadvacYadmabiabjabkablabqaaFaazaaLaauaaNaaOaxIayaayJayJayKawHaxLaxIaxZaxYaybayaayaaytayaaxIaxZaaCablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabOabuabuabuabvabwabQabPackaclacmacmacnadwadxadyabwacKacKadaadbadbadbadbadcacKacOabwabBacdadzadAadfadAadBacwacSacTabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM -aahabgabfaaUabdabeabcabaaaWaczacVacVacVacVacVacVacVacVacVacVacVabmaaTabdaaYaaVaaXabbabaaaZaanabpaaqaaraasaataauaavabYabfaaUabaaaTabdaaYaaVadCadDadEadFadGadHadIadJadKabgaaVaaYabfaaXaaTaaTabYaazaaOabiabjabkabladLadMadMadNadOadOadnadoadpadradsadsadsadmablabqabnaboabpaaIaazaaOabiaaBaxYaybaxLayfayfaysaytaytayJayKawHaxIaxZaxZaxZayaaybayaaaFaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabOabuabuabuabuabuabuabuabwabQabPadPadyadxadyadxadQabQabPabwacKacKadaadbadbadbadbadcacKacOabwabBadRadSadfadfadfadTacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGadUadhabWabWabWabWabWadiabM -aagabdaaVabbabaabhabfabcaaZacUacVacVacVacVacVacVacVacVacVacVacVacGaaWabaaaUabeabgaaXabcaaYaakabkablabqabnaboabpaaqacjaaVabbabcaaWabaaaUabeadVadWadXadYadZaeaaebaebadKabdabeaaUaaVabgaaWaaWacjaazaaJaasaataauaavadmadqadqadradsadqadradsadtaecaedaedaedaeeaavaawabiabjabkaaDaazaaJaasaaLayKawHayaaxLaxLaxIaxZaxLaxIaxZaxYaycayrayrayraysawHaxLaaAabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQabPabQabPabQabPabQabQabPabwacKacKaefaegaegaegaegaehacKaeiabwabBacdadzadAadAadAadBacwaejaekabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM -aacabaabeaaXabcaaTaaVabfaaYacCacVacVacVacVacVacVacVacVacVacVacVaaxaaZabcabbabhabdabgabfaaUaaaaataauaavaawabiabjabkacHaaUaaVaaZabdaaWabfaeladJaemaenaeoadXadWaepaepadHaelaaVaaZabdaaWabfabbacHaazaaDabqabnaboabpaeqaeraeraecaedadnadoadpadqadoadpadpadpaesabpaaqaaraasaataaMaazaaDabqaaFaycayraycayeayeaycayrayJayKawHaxLayKawHawHawHayJayrayfaaJaasaataaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabvabuabuabuabOabuabuabuabuabOabwabxabyabxabyabxabxabyabxabyabxabwaetacKacKacKacKacKacKacKacKaeuabwabBabCaevaewaewaewaexacwabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIaeyaezaezaezaezaezaeAabM -aaiabcabhabgabfaaWabeaaVaaUadkacVacVacVacVacVacVacVacVacVacVacVacEaaYabfaaXaaTabaabdaaVabbaajabjabkablabqabnaboabpabNabbabeaaYabaaaZaaVaeBaenaeaadZaeCaeDaeEaeFaeFaenaeBabeaaYabaaaZaaVaaXaaxaazaaIaaraasaataauaeGadqadqadradsadtaduadvaeraecaedaedacYaeHaauaavaawabiabjaaCaazaaIaaraaKayJayKaxIaxLaxLaxIaxZaxYaybayaayeaycayraaHaaKaaFaaMaaNaaOabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaR -aafabfaaTabdaaVaaZabhabeabbaeKacVacVacVacVacVacVacVacVacVacVacVaeLaaUaaVabgaaWabcabaabeaaXaamaaraasaataauaavaawabiabYaaXabhaaUabcaaYabeaeMadYaepaeaaeoaebadWadZaebaeFaeMabhaaUabcaaYabeabgabmaazaaBabkablabqabnaeNaeqaeqaeOacWacXacYaeqaeOacWacXacXacXabqabnaboabpaaqaaraaKaazaaBabkaaDaaEayeayeaycaycayrayfaysaytaycayrayfaysaaJaarabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwaeRaeRaeRaeRaeRaeRaeRaeRaeRaeSabwaeTaeUaeVaeWaeXaeWaeYaeZaeXaeZabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdafeaffaffaffaffaffafgabwafhafhafiafiafiafiafiafiafiafiabM -aanaaVaaWabaabeaaYaaTabhafjafkacVacVacVacVacVacVacVacVacVacVacVaflacHabeabdaaZabfabcabhabgaadaavaawabiabjabkablabqacjabgaaTabbabfaaUabhafmaenaeaadZaeCaeDaeEaeFaepaebafmaaTabbabfaaUabhabdabNaazaaFaboabpaaqaaraasaataauaavaasabkablabqabnabiabnaboabpaaqaaraasaataauaavaaOaazaaFaboaaHayfaysaytayJayKawHaytaxYaybayaayeaxIayeaaGaaHaaIaaJaaKaaLaauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQafoaeQaeQaeQaeQafoaeQaeQaeQabwaeRaeRafpafqafqafqafraeRaeRaeRabwaeTaeUaeVafsaftafsaftafuaftafuabwafaafaafvafaafaafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafiafiafiafzafzafzafiafiafiabM -aakabeaaZabcabhaaUaaWaaTadjacVacVacVacVacVacVacVacVacVacVacVacVacVaayabhabaaaYaaTaaVaaWabaaaoablabqabnaboabpaaqaaracHabdaaWaaXaaVabbaaTafAaeFadWadXadYadZaeaaebaeCaepafAaaWaaXaaVabbaaTabaabYaazaaKaataauaavabqacXacXacXacYacZacWacXacYacWacXacYacYacZaavaawabiabjabkablaaEaazaaKaataaMawHayaaysaysaysaytayJayfaysaytayfaysaytaytayJawHaxLaxIaaBabkablaaEaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQafBaeQabwaeRaeRafCafCafCafCafCaeRaeRaeRabwaeTaeTafDafsaftaeXaeXaeXaftafuabwafaafaafaafaafaafaafEafFafaafaabwafbafbafGafwafxafxafxafxafxafyabwafiafiafiafHafIafIafIafiafiafiabM -aaaabhaaYabfaaTabbaaZaaWafJacVacVacVacVacVacVacVacVacVacVacVacVacVacDaaTabcaaUabeabeaaZabcaababnaboabpaaqaaraasaataaxabaaaZabgabeaaXaaWafKaebaemaenaeoadXadWaepaenadXafKaaZabgabeaaXaaWabcaaxaazaaMaavaawabiadmacWafLafLafMafNafOafPafQafRafSafTafTadmabiabjabkablabqabnaaGaazaaMaavaaOaxIayaayfayJayJayKawHaxLaxIaxZaxYaybayaayaayaaxIaxZaxYaaDabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQaeQafUaeQafBaeQaeQaeQaeQaeQabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVafsaftaftaftaftaftafuabwafaafaafaafaafXafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafzafYafZagaagaagbagcafzafiabM -aajaaTaaUaaVaaWaaXaaYaaZaczacVacVacVacVacVacVacVacVacVacVacVacVacVacGaaWabfabbabhabhaaYabfaaeaawabiabjabkablabqabnabmabcaaYabdabhabgaaZagdaepageaeFaeEaenaemaeCaeFaenagdaaYabdabhabgaaZabfabmaazaaGabpaaqaaradLagfagfagfaggaghaghafLafMafNafPafQafQadmaaraasaataauaavaawaaAaazaaGabpaaIaysaxLayfayfayfaysaytaytayJayKawHaxIaxZaxZayaaysaytayJaaMaavaawaaAaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQagiaeQaeQaeQaeQagiaeQabwagjagkaglaglaglaglaglagmafVafWabwaeTaeUaeVagnagoagoagpagoagoagqabwafaafaafaafaafaafaafaagrafaafaabwafbafcafdagsagtagtagtagtagtaguabwafiafzafYagvagwagxagyagcafzafiabM -aamaaWabbabeaaZabgaaUaaYacUacVacVacVacVacVacVacVacVacVacVacVacVacVaaxaaZaaVaaXaaTaaTaaUaaVaahabqabnaboabpaaqaaraasabNabfaaUabaaaTabdaaYagzaeCaeDaebaeaaeFageadYaebaeFagzaaUabaaaTabdaaYaaVabNaazaaLaauaavaawadmafOafOafOafPafQafOafPafQafRagAagBagBaeeaawabiabjabkablabqaaFaazaaLaauaaNaaOayaaxLaxLaxLaxIaxZaxLaxIaxZaxYaycayrayraysaxLaxIaxZaaCablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwagjagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagFagGagGagGagGagGagHabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagIagJagJagJagJagJagKabwafiafzafYagvagLagMagyagcafzafiabM -aadaaZaaXabhaaYabdabbaaUacCacVacVacVacVacVacVacVacVacVacVacVacVacVacEaaYabeabgaaWaaWabbabeaagaasaataauaavaawabiabjabYaaVabbabcaaWabaaaUadHadCadDadEadFadGadHadIadJadKadHabbabcaaWabaaaUabeabYaazaaCablabqabnaeqagNagNagNagAagBafLafMafNafOafMafNafNaesabnaboabpaaqaaraasaaLaazaaCablabqaaFaaGayeayeayeaycayrayJayKawHaxLayKawHawHayJayeaycaaHaaIaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQaeQaeQaeQafoaeQafUaeQaeQafoabwafVagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagOaftaftaftaftaftagPabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagQafxafxafxafxafxagRabwafiafzafYagbagSagSagTagcafzafiabM -aalaaYabgaaTaaUabaaaXabbadkacVacVacVacVacVacVacVacVacVacVacVacVacVaeLaaUabhabdaaZaaZaaXabhaacabkablabqabnaboabpaaqacjabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabeabeaaXabfaaZabcabbabhacjaazaaJaasaataauaeGaeNafOafOafPafQafRafSafTagNagAagBagBaeHaauaavaawabiabjabkaaDaazaaJaasaataauaaAaaFaxLaxLaxIaxZaxYaybayaayeaycayrayrayeaaMaaNaaOabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwagUaeQaeQaeQaeQagUaeQaeQaeQaeQabwafVagCagDagDagDagDagDagVafVafWabwaeTaeTagWagOaftagXagXagXaftagPabwagYagYagYagYagYagYagYagYagYagYabwafbafbagZagQafxafxafxafxafxagRabwafiafiafiahaahaahaahbafiafiafiabM -aaoaaUabdaaWabbabcabgaaXaeKacVacVacVacVacVacVacVacVacVacVacVacVacVaflabbaaTabaaaYaaYabgaaTaaiaauaavaawabiabjabkablacHabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTabhabhabgaaVaaYabfaaXaaTacHaazaaEabnaboabpabqaeqaeqaeqaeOacWacXacYaeqaeOacWacXacXacYabpaaqaaraasaataauaaNaazaaEabnaboabpabqaaGaaGaaGaaHaaIaaJaaKaaGaaHaaIaaJaaJaaKaaHaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQagiaeQafUaeQaeQagiaeQafUaeQabwafVahcahdahdahdahdahdaheafVafWabwaeTaeUaeVagOaftagOaftagPaftagPabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdagQafxafxafxafxafxagRabwafiafiafiafzafzafzafiafiafiafiabM -aababbabaaaZaaXabfabdabgafkacVacVacVacVacVacVacVacVacVacVacVacVacVahgaaXaaWabcaaUaaUabdaaWaafabpaaqaaraasaataauaavabmaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaTaaTabdabeaaUaaVabgaaWabmaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQagUaeQaeQaeQaeQagUabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVahhagXahhahiahjagXahjabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdahkahlahlahlahlahlahmabwafiafiafiafiafiafiafiafiahnahnabM -aaeaaXabcaaYabgaaVabaabdacBacVacVacVacVacVacVacVacVacVacVacVacVacVacFabgaaZabfabbabbabaaaZaanabnaboabpaaqaaraasaatabNaaWabaabhabbabeabdaaZaaVabfaaUabaaaTabdaaYaaVabfaaWabaabhabbabeabdaaZabNaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaR -aahabgabfaaUabdabeabcabaahpacVacVacVacVacVacVacVacVacVacVacVacVacVahqabdaaYaaVaaXaaVaaWabaaapaavaawabiabjabkablabqabYaaZabcaaTaaXabhabaaaYabeaaVabbabcaaWabaaaUabeaaVaaZabcaaTaaXabhabaaaYabYaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP -aagabdaaVabbabaabhabfabcacAacVacVacVacVacVacVacVacVacVacVacVacVacVabmabaaaUabeabgaaVaaWabaaaoabjabkablabqabnaboabpacjaaYabfaaWabgaaTabcaaUabhabeaaXabfaaZabcabbabhabeaaYabfaaWabgaaTabcaaUacjaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP -aacabaabeaaXabcaaTaaVabfahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabcabbabhabdabeaaZabcaabaataauaavaawabiabjabkaayaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP -aaiabcabhabgabfaaWabeaaVahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabfaaXaaTabaabhaaYabfaaeaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahuahvahwahxahyahsahzahAahAahAahAahAahsahBahCahBahCahBahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP +aaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaalaahaajaapaaqaaraasaataauaavaawaaxaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaRaaSaaSaaSaaSaaSaaSaaSaaSaaSaaSaaR +aajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbabhabeaaZabcaabaauaavaawabiabjabkablabmabeaaXabfaaZabcabbabhabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabvabuabuabuabuabuabuabwabxabyabxabyabxabxabyabxabyabxabwabzabAabAabAabAabAabAabAabAabAabwabBabCabDabDabDabDabDabDabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabJabKabKabKabKabKabLabM +aamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaTabhaaYabfaaeaaraasaataauaavaawabiabNabhabgaaVaaYabfaaXaaTabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTaaTabNaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabOabuabwabPabQabPabQabPabQabPabQabPabQabwabRabRabRabRabRabRabRabRabRabRabwabBabSabTabTabTabTabTabTabTabTabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM +aadaaZaaXabhaaYabdabbaaUabfaaUaaVabcaaTabeabaaaWabbabdaaVaaXabhaaUabcaaYabeabgaaWaaTaaUaaVaahabiabjabkablabqabnaboabYaaTabdabeaaUaaVabgaaWaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaWabYaazaaHaaqaaraasaauaauaavaawabiabjaawabiabjabkaboabpaataaraasaataauaavaawabiaaBaazaaHaaqaaraasaauaauaavaawabiabjaawabiabjabkaboabpaataaraasaataauaavaawabiaaBaazaaHaaqaaraasaauaauaavaawabiabjaawabiabjabkaboabpaataaraasaataauaavaawabiaaBaazaaPaaPaaQabrabsaaQabrabsaaQabrabsaaQabrabsaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabOabuabuabuabuabuabuabuabuabwabQabPabZacaacbacaacbaccabQabPabwabRabRabRabRabRabRabRabRabRabRabwabBacdabTabDaceabDabTacfacgachabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGaciabVabWabWabWabWabWabXabM +aalaaYabgaaTaaUabaaaXabbaaVabbabeabfaaWabhabcaaZaaXabaabeabgaaTabbabfaaUabhabdaaZaaWabbabeaagaboabpaaqaaraasaataauacjabfaaUabaaaTabdaaYaaVabfaaUabaaaTabdaaYaaVaaVaaWaaUabaaaTabdaaYaaVaaVacjaazaaNaawabiabjabkablabqabnaboabpaataauaavaawaauaavaawabiabjabkablabqabnaboaaHaazaaNaawabiabjabkaaDaaEaaFaaGaaHaaLaaMaaNaaOaaMaaNaaOaaAaaBabkablabqabnaboaaHaazaaNaawabiabjabkablabqabnaboabpaataauaavaawaauaavaawabiabjabkablabqabnaboaaHaazaaPaaPaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaQaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabvabuabuabuabuabwabQabPackaclacmacmacnacoacbacaabwacpacpacpacpacpacpacpacpacpacqabwabBacdacracsactacuacvacwacxacyabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM +aaoaaUabdaaWabbabcabgaaXabeaaXabhaczacAacBacCabYacDacEacFacGaaWaaXaaVabbaaTabaaaYaaZaaXabhaacabiabjabkablabqabnaboacHabeaaXabfaaZabcabbabhaaVabbabcaaWabaaaUabeabeaaVabbabcaaWabaaaUabeabeacHaazaaHaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiaaBaazaaHaaqaaraasaaLaaMawHaxLaxIaxZaxYaybayaayeaycayrayfaysaaKaaLaaMaavaawabiaaBaazaaHaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiaaBaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabvabuabuabuabvabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKacLacMacMacMacMacNacKacOabwabBacdacPacQacQacQacRacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIabVabWabWabWabWabWabXabM +aababbabaaaZaaXabfabdabgabhabgacCacUacVacVacVacVacVacVacVacFacEaaWabeaaXaaWabcaaUaaYabgaaTaaiaasaataauaavaawabiabjabmabhabgaaVaaYabfaaXaaTabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabhabmaazaaCablabqabnaboacWacXacXacYacZacWacXacYacWacXacYacYacYabnaboabpaaqaaraasaaLaazaaCablabqaaFaaGayfaysaysaytayJayfaysaytayfaysaytaytaytayeaycaaHaaIaaraasaaLaazaaCablabqabnaboaaqaaraaraasaataaqaaraasaaqaaraasaasaasabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQacIacnacJacJacnacnacnacnabwacKacKadaadbadbadbadbadcacKacOabwabBacdaddadeadfadeadgacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM +aaeaaXabcaaYabgaaVabaabdaaTadjadkacVacVacVacVacVacVacVacVacVacDadlabhabgaaZabfabbaaUabdaaWaafabqabnaboabpaaqaaraasabNaaTabdabeaaUaaVabgaaWaaWabeaaXabfaaZabcabbabhabhaaXabfaaZabcabbabhabhabNaazaaLaauaavaawabiadmadnadnadoadpadqadradsadtaduadvadvacYadmabiabjabkablabqaaFaazaaLaauaaNaaOaxIayaayJayJayKawHaxLaxIaxZaxYaybayaayaaytayaaxIaxZaaCablabqaaFaazaaLaauaavaawabiabqaataataauaavaawabiabjabkablabqabqaasabqabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabOabuabuabuabvabwabQabPackaclacmacmacnadwadxadyabwacKacKadaadbadbadbadbadcacKacOabwabBacdadzadAadfadAadBacwacSacTabwabEabEabEabUabEabEabUabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM +aahabgabfaaUabdabeabcabaaaWaczacVacVacVacVacVacVacVacVacVacVacVabmaaTabdaaYaaVaaXabbabaaaZaanabpaaqaaraasaataauaavabYabfaaUabaaaTabdaaYaaVadCadDadEadFadGadHadIadJadKabgaaVaaYabfaaXaaTaaTabYaazaaOabiabjabkabladLadMadMadNadOadOadnadoadpadradsadsadsadmablabqabnaboabpaaIaazaaOabiaaBaxYaybaxLayfayfaysaytaytayJayKawHaxIaxZaxZaxZayaaybayaaaFaboabpaaIaazaaOabiabjabkablaawaaIaaIaaJaaKaaKaataauaavabiabjabjabjabqablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabOabuabuabuabuabuabuabuabwabQabPadPadyadxadyadxadQabQabPabwacKacKadaadbadbadbadbadcacKacOabwabBadRadSadfadfadfadTacwacSacTabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabGadUadhabWabWabWabWabWadiabM +aagabdaaVabbabaabhabfabcaaZacUacVacVacVacVacVacVacVacVacVacVacVacGaaWabaaaUabeabgaaXabcaaYaakabkablabqabnaboabpaaqacjaaVabbabcaaWabaaaUabeadVadWadXadYadZaeaaebaebadKabdabeaaUaaVabgaaWaaWacjaazaaJaasaataauaavadmadqadqadradsadqadradsadtaecaedaedaedaeeaavaawabiabjabkaaDaazaaJaasaaLayKawHayaaxLaxLaxIaxZaxLaxIaxZaxYaycayrayrayraysawHaxLaaAabjabkaaDaazaaJaasaataauaavaaEaaOaANaxJaBfaaOaaAaaBaaCaaGaaHaaHabpaaraavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabuabuabuabuabuabuabuabuabuabuabwabPabQabPabQabPabQabPabQabQabPabwacKacKaefaegaegaegaegaehacKaeiabwabBacdadzadAadAadAadBacwaejaekabwabEabUabEabEabEabEabEabEabUabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIadhabWabWabWabWabWadiabM +aacabaabeaaXabcaaTaaVabfaaYacCacVacVacVacVacVacVacVacVacVacVacVaaxaaZabcabbabhabdabgabfaaUaaaaataauaavaawabiabjabkacHaaUaaVaaZabdaaWabfaeladJaemaenaeoadXadWaepaepadHaelaaVaaZabdaaWabfabbacHaazaaDabqabnaboabpaeqaeraeraecaedadnadoadpadqadoadpadpadpaesabpaaqaaraasaataaMaazaaDabqaaFaycayraycayeayeaycayrayJayKawHaxLayKawHawHawHayJayrayfaaJaasaataaMaazaaDabqabnaboabpaaGbaQbaQbaWbbgbaYbbtbbhaANbbtbbhaaNaavaatabpaaqaaraasaataaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtabvabuabuabuabOabuabuabuabuabOabwabxabyabxabyabxabxabyabxabyabxabwaetacKacKacKacKacKacKacKacKaeuabwabBabCaevaewaewaewaexacwabDabDabwabEabEabEabEabEabEabEabEabEabEabwabFabFabFabFabFabFabFabFabFabFabwabGabHabIaeyaezaezaezaezaezaeAabM +aaiabcabhabgabfaaWabeaaVaaUadkacVacVacVacVacVacVacVacVacVacVacVacEaaYabfaaXaaTabaabdaaVabbaajabjabkablabqabnaboabpabNabbabeaaYabaaaZaaVaeBaenaeaadZaeCaeDaeEaeFaeFaenaeBabeaaYabaaaZaaVaaXaaxaazaaIaaraasaataauaeGadqadqadradsadtaduadvaeraecaedaedacYaeHaauaavaawabiabjaaCaazaaIaaraaKayJayKaxIaxLaxLaxIaxZaxYaybayaayeaycayraaHaaKaaFaaMaaNaaOabiabjaaCaazaaIaaraasaataauaaAaANaANaxJaBfbbwbcjbcibaQbaWbbgaaHaasabnaauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeIaeIaeIaeIaeIaeIaeIaeIaeIaeIaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaRaeJaeJaeJaeJaeJaeJaeJaeJaeJaeJaaR +aafabfaaTabdaaVaaZabhabeabbaeKacVacVacVacVacVacVacVacVacVacVacVaeLaaUaaVabgaaWabcabaabeaaXaamaaraasaataauaavaawabiabYaaXabhaaUabcaaYabeaeMadYaepaeaaeoaebadWadZaebaeFaeMabhaaUabcaaYabeabgabmaazaaBabkablabqabnaeNaeqaeqaeOacWacXacYaeqaeOacWacXacXacXabqabnaboabpaaqaaraaKaazaaBabkaaDaaEayeayeaycaycayrayfaysaytaycayrayfaysaaJaarabqabnaboabpaaqaaraaKaazaaBabkablabqabnaaFbaWbaWbbgbclbckbcmbaWbbgbclbckaaJaarabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwaeRaeRaeRaeRaeRaeRaeRaeRaeRaeSabwaeTaeUaeVaeWaeXaeWaeYaeZaeXaeZabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdafeaffaffaffaffaffafgabwafhafhafiafiafiafiafiafiafiafiabM +aanaaVaaWabaabeaaYaaTabhafjafkacVacVacVacVacVacVacVacVacVacVacVaflacHabeabdaaZabfabcabhabgaadaavaawabiabjabkablabqacjabgaaTabbabfaaUabhafmaenaeaadZaeCaeDaeEaeFaepaebafmaaTabbabfaaUabhabdabNaazaaFaboabpaaqaaraasaataauaavaasabkablabqabnabiabnaboabpaaqaaraasaataauaavaaOaazaaFaboaaHayfaysaytayJayKawHaytaxYaybayaayeaxIayeaaGaaHaaIaaJaaKaaLaauaavaaOaazaaFaboabpaaqaaraaKbaYbbtbbhbcmbbwbcjbcibaQaxJbaQaaGabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQafoaeQaeQaeQaeQafoaeQaeQaeQabwaeRaeRafpafqafqafqafraeRaeRaeRabwaeTaeUaeVafsaftafsaftafuaftafuabwafaafaafvafaafaafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafiafiafiafzafzafzafiafiafiabM +aakabeaaZabcabhaaUaaWaaTadjacVacVacVacVacVacVacVacVacVacVacVacVacVaayabhabaaaYaaTaaVaaWabaaaoablabqabnaboabpaaqaaracHabdaaWaaXaaVabbaaTafAaeFadWadXadYadZaeaaebaeCaepafAaaWaaXaaVabbaaTabaabYaazaaKaataauaavabqacXacXacXacYacZacWacXacYacWacXacYacYacZaavaawabiabjabkablaaEaazaaKaataaMawHayaaysaysaysaytayJayfaysaytayfaysaytaytayJawHaxLaxIaaBabkablaaEaazaaKaataauaavabqaaJbckbckbcmbaYbclbckbcmbclbckbcmaaKaataavaawabiabjabkablaaEaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQafBaeQabwaeRaeRafCafCafCafCafCaeRaeRaeRabwaeTaeTafDafsaftaeXaeXaeXaftafuabwafaafaafaafaafaafaafEafFafaafaabwafbafbafGafwafxafxafxafxafxafyabwafiafiafiafHafIafIafIafiafiafiabM +aaaabhaaYabfaaTabbaaZaaWafJacVacVacVacVacVacVacVacVacVacVacVacVacVacDaaTabcaaUabeabeaaZabcaababnaboabpaaqaaraasaataaxabaaaZabgabeaaXaaWafKaebaemaenaeoadXadWaepaenadXafKaaZabgabeaaXaaWabcaaxaazaaMaavaawabiadmacWafLafLafMafNafOafPafQafRafSafTafTadmabiabjabkablabqabnaaGaazaaMaavaaOaxIayaayfayJayJayKawHaxLaxIaxZaxYaybayaayaayaaxIaxZaxYaaDabqabnaaGaazaaMaavaawabiabqaaIbaYbaYbbtbbhaANaxJaBfbbwbcjbciaaEabqabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQaeQafUaeQafBaeQaeQaeQaeQaeQabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVafsaftaftaftaftaftafuabwafaafaafaafaafXafaafaafaafaafaabwafbafcafdafwafxafxafxafxafxafyabwafiafzafYafZagaagaagbagcafzafiabM +aajaaTaaUaaVaaWaaXaaYaaZaczacVacVacVacVacVacVacVacVacVacVacVacVacVacGaaWabfabbabhabhaaYabfaaeaawabiabjabkablabqabnabmabcaaYabdabhabgaaZagdaepageaeFaeEaenaemaeCaeFaenagdaaYabdabhabgaaZabfabmaazaaGabpaaqaaradLagfagfagfaggaghaghafLafMafNafPafQafQadmaaraasaataauaavaawaaAaazaaGabpaaIaysaxLayfayfayfaysaytaytayJayKawHaxIaxZaxZayaaysaytayJaaMaavaawaaAaazaaGabpaaqaaraawaaIaaIbclbckbcmaaKaaLaaMaaNaaAaaBaaBabqaaraasaataauaavaawaaAaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQagiaeQaeQaeQaeQagiaeQabwagjagkaglaglaglaglaglagmafVafWabwaeTaeUaeVagnagoagoagpagoagoagqabwafaafaafaafaafaafaafaagrafaafaabwafbafcafdagsagtagtagtagtagtaguabwafiafzafYagvagwagxagyagcafzafiabM +aamaaWabbabeaaZabgaaUaaYacUacVacVacVacVacVacVacVacVacVacVacVacVacVaaxaaZaaVaaXaaTaaTaaUaaVaahabqabnaboabpaaqaaraasabNabfaaUabaaaTabdaaYagzaeCaeDaebaeaaeFageadYaebaeFagzaaUabaaaTabdaaYaaVabNaazaaLaauaavaawadmafOafOafOafPafQafOafPafQafRagAagBagBaeeaawabiabjabkablabqaaFaazaaLaauaaNaaOayaaxLaxLaxLaxIaxZaxLaxIaxZaxYaycayrayraysaxLaxIaxZaaCablabqaaFaazaaLaauaavaawabqaawaaOaaOaaAaaBaaOabiabjabkaboabpabpaaraawabiabjabkablabqaaFaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQaeQaeQaeQaeQaeQaeQabwagjagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagFagGagGagGagGagGagHabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagIagJagJagJagJagJagKabwafiafzafYagvagLagMagyagcafzafiabM +aadaaZaaXabhaaYabdabbaaUacCacVacVacVacVacVacVacVacVacVacVacVacVacVacEaaYabeabgaaWaaWabbabeaagaasaataauaavaawabiabjabYaaVabbabcaaWabaaaUadHadCadDadEadFadGadHadIadJadKadHabbabcaaWabaaaUabeabYaazaaCablabqabnaeqagNagNagNagAagBafLafMafNafOafMafNafNaesabnaboabpaaqaaraasaaLaazaaCablabqaaFaaGayeayeayeaycayrayJayKawHaxLayKawHawHayJayeaycaaHaaIaaraasaaLaazaaCablabqabnaboabnabnabnaboabpaataauaavaawaauaavaavaatabnaboabpaaqaaraasaaLaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePafnaePaePaePaePafnaePabwaeQaeQaeQaeQafoaeQafUaeQaeQafoabwafVagCagDagDagDagDagDagEafVafWabwaeTaeUaeVagOaftaftaftaftaftagPabwafaafaafaafaafaafaafaafaafaafaabwafbafcafdagQafxafxafxafxafxagRabwafiafzafYagbagSagSagTagcafzafiabM +aalaaYabgaaTaaUabaaaXabbadkacVacVacVacVacVacVacVacVacVacVacVacVacVaeLaaUabhabdaaZaaZaaXabhaacabkablabqabnaboabpaaqacjabeaaXabfaaZabcabbabhabhabeaaXabfaaZabcabbabhabeabeaaXabfaaZabcabbabhacjaazaaJaasaataauaeGaeNafOafOafPafQafRafSafTagNagAagBagBaeHaauaavaawabiabjabkaaDaazaaJaasaataauaaAaaFaxLaxLaxIaxZaxYaybayaayeaycayrayrayeaaMaaNaaOabiabjabkaaDaazaaJaasaataauabiabnaawaawabiabjabkablabqabnaboabpabpabnaauaavaawabiabjabkaaDaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwagUaeQaeQaeQaeQagUaeQaeQaeQaeQabwafVagCagDagDagDagDagDagVafVafWabwaeTaeTagWagOaftagXagXagXaftagPabwagYagYagYagYagYagYagYagYagYagYabwafbafbagZagQafxafxafxafxafxagRabwafiafiafiahaahaahaahbafiafiafiabM +aaoaaUabdaaWabbabcabgaaXaeKacVacVacVacVacVacVacVacVacVacVacVacVacVaflabbaaTabaaaYaaYabgaaTaaiaauaavaawabiabjabkablacHabhabgaaVaaYabfaaXaaTaaTabhabgaaVaaYabfaaXaaTabhabhabgaaVaaYabfaaXaaTacHaazaaEabnaboabpabqaeqaeqaeqaeOacWacXacYaeqaeOacWacXacXacYabpaaqaaraasaataauaaNaazaaEabnaboabpabqaaGaaGaaGaaHaaIaaJaaKaaGaaHaaIaaJaaJaaKaaHaaqaaraasaataauaaNaazaaEabnaboabpabqaboaboaboabpaaqaaraasaboabpaaqaaraaraasabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePafnaePaePaePaePafnaePaePaePabwaeQagiaeQafUaeQaeQagiaeQafUaeQabwafVahcahdahdahdahdahdaheafVafWabwaeTaeUaeVagOaftagOaftagPaftagPabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdagQafxafxafxafxafxagRabwafiafiafiafzafzafzafiafiafiafiabM +aababbabaaaZaaXabfabdabgafkacVacVacVacVacVacVacVacVacVacVacVacVacVahgaaXaaWabcaaUaaUabdaaWaafabpaaqaaraasaataauaavabmaaTabdabeaaUaaVabgaaWaaWaaTabdabeaaUaaVabgaaWaaTaaTabdabeaaUaaVabgaaWabmaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaOabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaIaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPabtaePaePaePaePaePaePaePaePaePaePabwaeQaeQaeQaeQagUaeQaeQaeQaeQagUabwafVafVafVafVafVafVafVafVafVafWabwaeTaeUaeVahhagXahhahiahjagXahjabwahfahfahfahfahfahfahfahfahfahfabwafbafcafdahkahlahlahlahlahlahmabwafiafiafiafiafiafiafiafiahnahnabM +aaeaaXabcaaYabgaaVabaabdacBacVacVacVacVacVacVacVacVacVacVacVacVacVacFabgaaZabfabbabbabaaaZaanabnaboabpaaqaaraasaatabNaaWabaabhabbabeabdaaZaaVabfaaUabaaaTabdaaYaaVabfaaWabaabhabbabeabdaaZabNaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaMaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaaGaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaRahoahoahoahoahoahoahoahoahoahoaaR +aahabgabfaaUabdabeabcabaahpacVacVacVacVacVacVacVacVacVacVacVacVacVahqabdaaYaaVaaXaaVaaWabaaapaavaawabiabjabkablabqabYaaZabcaaTaaXabhabaaaYabeaaVabbabcaaWabaaaUabeaaVaaZabcaaTaaXabhabaaaYabYaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaFaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaaOaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP +aagabdaaVabbabaabhabfabcacAacVacVacVacVacVacVacVacVacVacVacVacVacVabmabaaaUabeabgaaVaaWabaaaoabjabkablabqabnaboabpacjaaYabfaaWabgaaTabcaaUabhabeaaXabfaaZabcabbabhabeaaYabfaaWabgaaTabcaaUacjaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaIaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaavaawabiabjaaCaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP +aacabaabeaaXabcaaTaaVabfahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabcabbabhabdabeaaZabcaabaataauaavaawabiabjabkaayaayaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP +aaiabcabhabgabfaaWabeaaVahracVacVacVacVacVacVacVacVacVacVacVacVacVabNabfaaXaaTabaabhaaYabfaaeaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahuahvahwahxahyahsahzahAahAahAahAahAahsahBahCahBahCahBahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP aafabfaaTabdaaVaaZabhabeahracVacVacVacVacVacVacVacVacVacVacVacVacVabNaaVabgaaWabcaaTaaUaaVaahaaTaaaaabaacaadaaeaafaagaahaaaaaiaajaakaalaamaanaaoaagaafaajaacaadaahaakaaeaamaaiaaoaaTabdaazahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDahDaazaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaaKaaLaaMaaNaaOaaAaaBaaCaaDaaEaaFaaGaaHaaIaaJaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahAahAahAahAahEahsahFahCahCahCahGahAahsahHahCahHahCahHahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP aanaaVaaWabaabeaaYaaTabhahIacVacVacVacVacVacVacVacVacVacVacVacVacVabYabeabdaaZabfaaWabbabeaagaaWaajaaTaaUaaVaaWaaXaaYaaZabaabbabcabdabeabfabgabhaaYaaXabcaaUaaVaaZabdaaWabfabbaabaaWabaaazahDabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabaabbaaTabaabbaaTabaabbaaTabaabbaaTabaabbabbahDaazaaEabnaboabpaaqaaraasaataauaavaawabiabjabkablabqabnaboabpaaqaaraasaataauaaNaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahtahAahAahJahAahKahsahLahCahMahMahGahAahsahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP aakabeaaZabcabhaaUaaWaaTahNacVacVacVacVacVacVacVacVacVacVacVacVacVacjabhabaaaYaaVaaZaaXabhaacaaZaamaaWabbabeaaZabgaaUaaYabcaaXabfabaabhaaVabdaaTaaUabgabfabbabeaaYabaaaZaaVaaXaaeaaZabcaazahDaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaXabcaaXaaWabcaaXaaWabcaaXaaWabcaaXaaWabcaaPaaXahDaazaaBabkablabqabnaboabpaaqaaraasaasaataauaavabiabjabkablabqabnaboabpaaqaaraaKaazaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPahsahsahsahAahJahAahAahAahAahCahMahMahCahAahOahCahCahCahCahCahCahsaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaP @@ -2921,21 +2953,21 @@ aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaa aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJaqJaqJaqJaqJaqJaqJaqFaqJaqJaqJaqJaqJaqJaqJaqJaqFavSawoawzawAawBawBawBawBawBawCavwawDaqFaqJaqJaqJaqJarHavaavaawEawEavaavaawFavaavaavAaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGawGawGawGaAIaAIaAIaAIaAIawGawGawGawGawGawGaAIaAIaAIaAIaAIawGawGawGawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawIavdawJavdavdavdavdavdawKaaPawLauhauhawMalxauQauQauQalxapxapxawNawOalxaqAaqAaqAalxawPaiRaiRawQalxaqAaqAaqAaqAaqA aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaqJaqJawRawSawTawUawVawWaqFawXawYawZaxaaxbaxcaqJaxdaqFaxeavwavwavwavwavwavwavwavwavwawDaaPaqFaqJaqJaqJaqJaqFaxfavaaxgaxhavaavaaxiavaavaaxjaqFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaxlaxmaxnaxoaxpavdaaPaaPaaPaaPaaPaaPaxqauQauQauQaxrapyapyaxsaxsalxaqAaqAaqAalxawPaiRaiRaxtalxaqAaqAaqAaqAaqA aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqFaxuaxvawRawSawTawUawVawWarsaqCaqCaqCaqCaqCaqCaqCaqCathaxwaxwaxwaxwaxwaxwaxwaxwaxwaxwaxwaxwargarvaxxaxxarvaqYaqCaqCaqCaqCaqCaqCaqCaqCaqCaqCathaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaxkaAcaAcaAcaAcaAcaAcaAcaAcaAmaAlaAcaAcaAcaAcaAcaAcaAcaAcaxkaxkawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaxyaxzawdavDaxAavdaaPaaPaaPaaPaaPaaPaxBauQauQauQalxaxCapyalxalxalxalxalxalxalxaxDaxEaxEaxDalxalxalxalxaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqYaqCaqCaqCaqCaqCaqCaqCaqCathaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaxFarvaxGaxGarvaxHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnaAMaAMaAMaANaxJazVazVaxJaxKaxKaxJazVazVaxJaBfaAMaAMaAMaBgaxkawGawGaAIaAIaAIawGawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauAavdaxMaxmawdavDaxNavdauEaaPaaPasqashaxOalxauQauQauQalxalxalxalxaxPaxQaxRaxSaxTaxUaiRaiRaiRaiRaxVaxVaxWalxalxaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnaAMaAMaANaBhaBjaBiaBwaxJaBEaydaxJaBFaGPaDZaxJaxJaBfaAMaBgaxkawGaygayhayiayiayiawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauAavdavdavdavdayjaxmawdavDaykavdavdavdavdauEaylaylalxaymauQauQauQalxaynayoaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaypalxaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnaAMaANaxJaJcaJcaJcaKlaxJaKDayqaxJaBFbaNbaMbaPbaOaxJaBfaBgaxkaAIayuayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdayvaywayxavdayyavDavDayzavdavdayAayBayCayDayEayFayEauQauQauQauQayGaiRaiRaiRaiRaiRaiRauQaiRayHaiRaiRaiRaiRaiRaiRayIalxaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnaANaxJaxJbaQbaSbaRbaTaxJayqayqayObaNbaNbaNbaNbaNbaUaxJaBgaxkbaVayiayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaySayTayUayTavdavdayVayWavdavdayXayYayZazaayDayEazbayEauQauQauQauQalxazcazdaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRazealxaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnazfbaWbaYbaXbaZbaZbaZaxJayNayqaxJbbabbcbbbbbdbaNbbeaxJaBgaxkaAIayiayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPavdavdaySazpavdavdazqavDazravdavdazsaztazsavdazuazualxazvauhawMalxalxalxalxazwazxazyazzazAazBaiRaiRaiRaiRazCazCazDalxalxaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParRaxXaxXarRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnazEbaWbbfbaXbaXbaXbaXayOayqayqaxJaxJaxJaxJazVazVaxJbbgaBgaxkawGazGazHayiazHazIawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdazJavDavDazKavdazLazMavDavdazNazOazPazQavdaruaaParuaaPaaPaaPaaPaqAaqAalxalxalxalxalxalxalxaxDazRazRaxDalxalxalxalxaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnbbhaxJbbibaXbaXbbjbaXaxJayqayqbbkazUazVaxkaxkaxkaxkaxkaBgaxkazWazWazWazWazWazWazWazWazWazWazWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdazXavDavDavDazYavDavDavDazZavDavDavDaAaavdashashashashaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnaAMaxJaxJaxJaxJaxJaxJaxJayNayqbblayqazVaxkaxkaxkaxkaxkaBgaxkazWaAdaAdaAdaAdaAdaAdaAdaAdaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPavdaAfavDavDavDaAgavDavDavDaAhavDavDavDaAiavdaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnaANaxJaAjaAkbbnbbmbboaxJayqayqbbkbbpazVaxkaxkaxkaxkaxkaBgaxkazWaAdaAoaApaApaApaApaApaAqaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPauAavdavdavdavdavdavdavDavDavDavdavdavdavdavdavdauEaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGawGawGawGawGaxkaAnazfbaWaAraAraAraAraArayOayqayqaxJaxJaxJaxJazVazVaxJaBfaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdaAuaAvaAwaAxaAyavdaAzavDaAAavdaABaACaACaADaAEavdaaPaaPaaPaaPaaPartaruaqAaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaAGaAGaAGaAGaAFaAFaAFaAFaAGaAHaAHaAGawGaAIaAIawGawGaAIaAIawGawGaAIaAIaAIaAIawGawGawGawGaAIaAIaAIaAIawGawGawGawGaAIaAIawGawGawGawGawGawGaAJaAJaAKawGaxkaAnazEbaWaALaAraAraArbbqaxJayNayqayqayqbbrayqayqayqbbsaxJaBgaxkazWaAdaAsaAOaAtaAtaAtaAPaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaAQaARaARaARaARaARavdavDavDavDavdaASavDavDavDaATaAUaaPaaPaaPaaPaaPasqaaPaqAaqAaqAaqAaqAaqAaqAalxalxaAVaAWalxalxaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAXaAYaAXaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAXaAXaAXaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAZaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBbaAIaAJaAJaAJaAJaAJaAJaAIaAJaAJaAJaAJaAJaAJaBcaAJaAJaAJaAJaAJaAJaAJaAJaBcaAJaAJaAJaBdaAJaAJaAJaAJaAJaAJaAJaAJaBeaxkaAnbbhaxJaxJbbtbbvbbubbwaxJbbybbxaxJbbxbbzaxJayqayqbbAaxJaBgaxkazWaAdaAsaAtaAtaBkaBkaBkaBlaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaBmaBnaBoaARaARaARaBpavDavDavDaBqavDavDavDaBraBsaBtaaPaaPaaPaaPaaPartaruaruaqAaqAaqAaqAaqAaqAaqAalxalxalxalxaqAaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBuaAFaAFaAFaBuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBuaAFaAFaAFaBuaAGaAGaAGaAGaBuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBvaAJaAJaAJaAJaAJaAJaBvaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaBdaAJaAJaAJaAJaAJaAJaAJaAJaBeaxkaAnaAMbbhaxJaAraArbbBbbCaxJbbEbbDaxJbbFbbGaxJazTayqaxJbbgaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaBxaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaByaARaARaARaARaARaBzavDavDavDaBAavDavDavDavDaBBaBCaaPaaPaaPaaPaaPartaaPaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAGaBaaBaaBaaAGaruaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaAGaBaaBaaBaaAGaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaaPaAFaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBvaAJaAJaAJaAJaAJaAJaBvaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJawGawGawGawGawGawGawGawGawGawGaxkaAnaAMaAMbbhaxJaBDbbHbbIaxJbbKbbJaxJbbJazlaxJaxJaxJbbgaAMaBgaxkazWaAdaAsaAtaAtaAtaAtaBGaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaBHaARaARaARaBIavdazsaBJazsavdaBKaBLaBMavDaBNavdaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA -aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAGaBaaBaaBaaAGaaPaaPaaParuaruaruaruaruaruaruaruaruaruaruaaPaaPaaPaAGaBaaBaaBaaAGaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaAGaBaaBaaBaaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaAIaAIaBPaAIaAIawGaAIaAIaAIaAIaAIaBQaBQaAIaAIawGawGaAIaAIaAIaAIawGawGaAJaAJawGaBRaBSawGaBRaBSawGaBRaBSawGaxkaAnaAMaAMaAMbbhaxJazVazVaxJazVazVaxJazVazVaxJbbgaAMaAMaAMaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaBxaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaBTaBUaBVaBWaBXavdaBYavDaBZavdaCaavdavdaCbavdavdaaPaaPaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqYaqCaqCaqCaqCaqCaqCaqCaqCathaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaxFarvaxGaxGarvaxHaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnaAMaAMaAMbcnazVazVazVbcoaxKaxKbcoazVazVazVbcqbcpaAMaAMaBgaxkawGawGaAIaAIaAIawGawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauAavdaxMaxmawdavDaxNavdauEaaPaaPasqashaxOalxauQauQauQalxalxalxalxaxPaxQaxRaxSaxTaxUaiRaiRaiRaiRaxVaxVaxWalxalxaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnaAMaAMbcnaBhaBjaBiaBwbcraBEaydbcraBFaGPaDZbaObcsbcpaAMaBgaxkawGaygayhayiayiayiawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPauAavdavdavdavdayjaxmawdavDaykavdavdavdavdauEaylaylalxaymauQauQauQalxaynayoaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaypalxaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnaAMbcnbctaJcaJcaJcaKlbcraKDayqbcraBFbaNbaMbaPbcubcsbcpaBgaxkaAIayuayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdayvaywayxavdayyavDavDayzavdavdayAayBayCayDayEayFayEauQauQauQauQayGaiRaiRaiRaiRaiRaiRauQaiRayHaiRaiRaiRaiRaiRaiRayIalxaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnbcnbctaJcaJcbaSbaRbaTbcrayqayqayObaNbaNbaNbaNbaNbaUbcraBgaxkbaVayiayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaySayTayUayTavdavdayVayWavdavdayXayYayZazaayDayEazbayEauQauQauQauQalxazcazdaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRaiRazealxaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnazfbcvbcwbaXbaZbaZbaZbcrayNayqbcrbbabbcbbbbbdbaNbbebcraBgaxkaAIayiayiayiayiayiaAIaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPavdavdaySazpavdavdazqavDazravdavdazsaztazsavdazuazualxazvauhawMalxalxalxalxazwazxazyazzazAazBaiRaiRaiRaiRazCazCazDalxalxaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParRaxXaxXarRaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAIaxkaAnazEbcxbbfbaXbaXbaXbaXayOayqayqbcybcqbcqbcqazVazVbcqbczaBgaxkawGazGazHayiazHazIawGaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdazJavDavDazKavdazLazMavDavdazNazOazPazQavdaruaaParuaaPaaPaaPaaPaqAaqAalxalxalxalxalxalxalxaxDazRazRaxDalxalxalxalxaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnbcBbcAbbibaXbaXbbjbaXbcrayqayqbbkazUazVbcCbbLbbLbbLbbLaxkaxkazWazWazWazWazWazWazWazWazWazWazWaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdazXavDavDavDazYavDavDavDazZavDavDavDaAaavdashashashashaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnaAMbcybcqbcqbcqbcqbcqbcDayNayqbblayqazVaBgaxkaxkaxkaxkaxkaxkazWaAdaAdaAdaAdaAdaAdaAdaAdaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaaPaaPaaPaaPavdaAfavDavDavDaAgavDavDavDaAhavDavDavDaAiavdaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGaxkaAnbcnbcEaAjaAkbbnbbmbbobcrayqayqbbkbbpazVbcFaAcaAcaAcaAcaxkaxkazWaAdaAoaApaApaApaApaApaAqaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPauAavdavdavdavdavdavdavDavDavDavdavdavdavdavdavdauEaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParmaxXaxXarmaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPawGawGawGawGawGaxkaAnazfbcxaAraAraAraAraArayOayqayqbcGbcqbcqbcqazVazVbcqbcpaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaaPaaPaaPaaPavdaAuaAvaAwaAxaAyavdaAzavDaAAavdaABaACaACaADaAEavdaaPaaPaaPaaPaaPartaruaqAaqAaqAaqAaqAaqAaqAalxaAbaiRaiRaAbalxaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaAFaAFaAGaAGaAGaAGaAFaAFaAFaAFaAGaAHaAHaAGawGaAIaAIawGawGaAIaAIawGawGaAIaAIaAIaAIawGawGawGawGaAIaAIaAIaAIawGawGawGawGaAIaAIawGawGawGawGawGawGaAJaAJaAKawGaxkaAnazEbcHbcIaAraAraArbbqbcrayNayqayqayqbbrayqayqayqbbsbcraBgaxkazWaAdaAsaAOaAtaAtaAtaAPaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaaPaaPaaPaaPaaPaAQaARaARaARaARaARavdavDavDavDavdaASavDavDavDaATaAUaaPaaPaaPaaPaaPasqaaPaqAaqAaqAaqAaqAaqAaqAalxalxaAVaAWalxalxaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAXaAYaAXaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAXaAXaAXaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAZaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBbaAIaAJaAJaAJaAJaAJaAJaAIaAJaAJaAJaAJaAJaAJaBcaAJaAJaAJaAJaAJaAJaAJaAJaBcaAJaAJaAJaBdaAJaAJaAJaAJaAJaAJaAJaAJaBeaxkaAnbcBbcJaALaArbbvbbubcKbcybbybbxbcobbxbbzbcLayqayqbbAbcraBgaxkazWaAdaAsaAtaAtaBkaBkaBkaBlaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaaPaaPaaPaaPaaPaaPaBmaBnaBoaARaARaARaBpavDavDavDaBqavDavDavDaBraBsaBtaaPaaPaaPaaPaaPartaruaruaqAaqAaqAaqAaqAaqAaqAalxalxalxalxaqAaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBuaAFaAFaAFaBuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaBuaAFaAFaAFaBuaAGaAGaAGaAGaBuaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBvaAJaAJaAJaAJaAJaAJaBvaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaBdaAJaAJaAJaAJaAJaAJaAJaAJaBeaxkaAnaAMbcBbcJaAraArbbBbbCbcrbbEbbDbcrbbFbbGbcrayqayqbcMbczaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaBxaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaByaARaARaARaARaARaBzavDavDavDaBAavDavDavDavDaBBaBCaaPaaPaaPaaPaaPartaaPaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAGaBaaBaaBaaAGaruaruaruaruaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaruaruaAGaBaaBaaBaaAGaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaruaaPaAFaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBaaBvaAJaAJaAJaAJaAJaAJaBvaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJaAJawGawGawGawGawGawGawGawGawGawGaxkaAnaAMaAMbcBbcJaBDbbHbbIbcrbbKbbJbcrbbJazlbcrazTbcMbczaAMaBgaxkazWaAdaAsaAtaAtaAtaAtaBGaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaBHaARaARaARaBIavdazsaBJazsavdaBKaBLaBMavDaBNavdaaPaaPaaPaaPaaPaaPaaPaaPaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA +aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAGaBaaBaaBaaAGaaPaaPaaParuaruaruaruaruaruaruaruaruaruaruaaPaaPaaPaAGaBaaBaaBaaAGaruaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaParuaruaAGaBaaBaaBaaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaBOaAIaAIaBPaAIaAIawGaAIaAIaAIaAIaAIaBQaBQaAIaAIawGawGaAIaAIaAIaAIawGawGaAJaAJawGaBRaBSawGaBRaBSawGaBRaBSawGaxkaAnaAMaAMaAMbcBazVazVazVbcNazVazVbcNazVazVbcNbcqbczaAMaAMaBgaxkazWaAdaAsaAtaAtaAtaAtaAtaBxaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaBTaBUaBVaBWaBXavdaBYavDaBZavdaCaavdavdaCbavdavdaaPaaPaaPaaPaaPaaPaaPartaaParuaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaBaaBaaBaaAFaAFaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaBaaBaaBaaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaAFaAFaBaaBaaBaaBOaCcaCdaCdaCdaCdaCdaCdaCdaCdaCdaCeaCfaCgaChaBOaCiaCiaCiaCjaCkawGaBQaBQaBQaBQaBQaBQaBQaClaCmawGaCnaCnaCnaCnaCnaCnawGaAJaAJawGaCoaCpawGaCoaCpawGaCoaCpawGaxkaxkbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLbbLaxkaxkazWaAdaAsaAtaAtaCqaCqaCqaCraAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaCsaARaCtavdavdavdaCuavDaCvavdavdavdaCwavDaCxavdaaPaaPaaPaaPaaPaaPaaPartaruaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaBaaBaaBaaCyaCzaCAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCAaCzaCyaBaaBaaBaaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCAaCzaCyaBaaBaaBaaBOaCBaCCaCCaCCaCDaCDaCCaCCaCCaCCaCEaCCaCCaCFaBOaCGaCiaCiaCiaCiawGaBQaCHaCIaCJaCHaBQaBQaBQaBQawGaCnaCKaCLaCLaCMaCnaAIaAJaAJawGaCNaCOawGaCNaCOawGaCNaCOawGaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkaxkazWaAdaAsaAOaAtaAtaAtaAPaAsaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaCPaCQaCRavdaaPavdaCSaCSaCSavdaaPavdavhaCTaCUavdaaPaaPaaPaaPaaPaaPaaPartaaParuaaPaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA aaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaAFaBaaBaaBaaCyaCzaCAaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCAaCzaCyaBaaBaaBaaAFaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaCAaCzaCAaBaaBaaBaaBOaCBaCCaCCaCVaCWaCXaCYaCCaCCaCZaCeaDaaDbaDcaBOaDdaCiaCiaCiaCiawGaBQaCHaDeaDeaCHaBQaBQaBQaBQawGaCnaDfazHaDgaDhaCnaAIaAJaAJawGaDiawGawGaDiawGawGaDiawGawGawGawGawGaAIaAIaAIaAIawGawGawGawGaAIaAIaAIaAIawGawGawGawGawGawGawGazWaAdaDjaDkaAtaAtaAtaDlaDmaAdaAeaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaquaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPaaPavdaCSaCSaCSavdaaPawIaDnaDoaDpawKaaPavdaCSaCSaCSavdaaPaaPaaPaaPaaPaaPaaPartaruaruaruaruaruaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqAaqA diff --git a/maps/virgo-3.dmm b/maps/virgo-3.dmm index eb36ccc8cb..94163fdfa4 100644 --- a/maps/virgo-3.dmm +++ b/maps/virgo-3.dmm @@ -414,7 +414,7 @@ "ih" = (/obj/machinery/light{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "ij" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/tiled/dark,/area/tcommsat/entrance) "im" = (/obj/item/weapon/circuitboard/teleporter,/turf/space,/area/space) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/virgo-5.dmm b/maps/virgo-5.dmm index 15849178d7..706e322e36 100644 --- a/maps/virgo-5.dmm +++ b/maps/virgo-5.dmm @@ -1448,8 +1448,8 @@ "BR" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "BS" = (/turf/simulated/wall/r_wall,/area/outpost/mining_main/storage) "BT" = (/obj/structure/ore_box,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) -"BU" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) -"BV" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) +"BU" = (/obj/structure/closet/secure_closet/miner,/obj/machinery/light{dir = 1},/obj/item/weapon/tank/jetpack/oxygen,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) +"BV" = (/obj/structure/closet/secure_closet/miner,/obj/item/weapon/tank/jetpack/oxygen,/turf/simulated/floor/tiled/dark,/area/outpost/mining_main/storage) "BW" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Outpost Airlock"; req_access = list(48)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) "BX" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Outpost Airlock"; req_access = list(48)},/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) "BY" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Outpost Airlock"; req_access = list(48)},/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) @@ -1539,7 +1539,7 @@ "DE" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "DF" = (/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,/area/outpost/engineering/mining/power) "DG" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"DH" = (/obj/machinery/light/small{dir = 4},/turf/simulated/mineral/floor/ignore_mapgen,/area/mine/explored) +"DH" = (/obj/machinery/computer/roguezones,/obj/item/weapon/paper/rogueminer,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "DI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) "DJ" = (/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "DK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) @@ -1910,6 +1910,51 @@ "KL" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) "KM" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow,/turf/simulated/floor/airless{icon_state = "asteroidplating2"},/area/outpost/engineering/solarsoutside/aft) "KN" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -20},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) +"KO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) +"KP" = (/obj/machinery/access_button/airlock_exterior{frequency = 1390; master_tag = "belter_airlock"; pixel_x = 25; pixel_y = -25; req_access = list(48)},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"KQ" = (/obj/machinery/light/small,/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"KR" = (/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"KS" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHEAST)"; icon_state = "swall"; dir = 6},/area/shuttle/belter/station) +"KT" = (/obj/machinery/door/airlock/external{density = 0; explosion_resistance = 0; frequency = 1390; icon_state = "door_open"; id_tag = "belter_ext"; locked = 1; req_access = list(48)},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"KU" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight (WEST)"; icon_state = "swall_straight"; dir = 8},/area/shuttle/belter/station) +"KV" = (/turf/simulated/shuttle/wall{icon_state = "swall_t"; dir = 1},/area/shuttle/belter/station) +"KW" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/belter/station) +"KX" = (/obj/structure/shuttle/window{tag = "icon-13"; icon_state = "13"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/belter/station) +"KY" = (/obj/structure/shuttle/window{tag = "icon-12"; icon_state = "12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/belter/station) +"KZ" = (/obj/structure/shuttle/window{tag = "icon-9"; icon_state = "9"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/belter/station) +"La" = (/turf/simulated/shuttle/wall{tag = "icon-swall (SOUTHWEST)"; icon_state = "swall"; dir = 10},/area/shuttle/belter/station) +"Lb" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/shuttle/belter/station) +"Lc" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1390; id_tag = "belter_pump"},/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) +"Ld" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"Le" = (/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-5"; icon_state = "5"},/turf/simulated/shuttle/plating,/area/shuttle/belter/station) +"Lf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/light{dir = 1},/obj/machinery/airlock_sensor{frequency = 1390; id_tag = "belter_sensor"; master_tag = "belter_airlock"; pixel_y = 25},/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) +"Lg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/table/standard,/obj/item/device/binoculars,/obj/item/weapon/gun/energy/particle,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) +"Lh" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) +"Li" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) +"Lj" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/obj/structure/table/standard,/obj/machinery/recharger{pixel_x = 4; pixel_y = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) +"Lk" = (/turf/simulated/shuttle/wall{tag = "icon-swall_straight"; icon_state = "swall_straight"},/area/shuttle/belter/station) +"Ll" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/shuttle/belter/station) +"Lm" = (/obj/machinery/door/airlock/external{frequency = 1390; icon_state = "door_locked"; id_tag = "belter_int"; locked = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Ln" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) +"Lo" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lp" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lq" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lr" = (/obj/machinery/door/airlock/external{frequency = 1390; icon_state = "door_locked"; id_tag = "belter_hatch"; locked = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Ls" = (/obj/machinery/door/airlock/external{frequency = 1390; icon_state = "door_locked"; id_tag = "belter_int"; locked = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lt" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) +"Lu" = (/obj/machinery/access_button/airlock_interior{frequency = 1390; master_tag = "belter_airlock"; pixel_x = -25; pixel_y = -25; req_access = list(48)},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lv" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1390; id_tag = "belter_docking"; pixel_x = 25; pixel_y = -25; req_access = list(48); tag_door = "belter_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lw" = (/obj/structure/shuttle/engine/propulsion{dir = 8},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/shuttle/belter/station) +"Lx" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/light,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1390; id_tag = "belter_airlock"; pixel_x = 25; tag_airpump = "belter_pump"; tag_chamber_sensor = "belter_sensor"; tag_exterior_door = "belter_ext"; tag_interior_door = "belter_int"},/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) +"Ly" = (/obj/machinery/computer/shuttle_control/belter,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"Lz" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"LA" = (/obj/structure/bed/chair{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/belter/station) +"LB" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 5},/area/shuttle/belter/station) +"LC" = (/turf/simulated/shuttle/wall{tag = "icon-swall_t"; icon_state = "swall_t"},/area/shuttle/belter/station) +"LD" = (/turf/simulated/shuttle/wall{icon_state = "swall"; dir = 9},/area/shuttle/belter/station) +"LE" = (/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (SOUTHWEST)"; icon_state = "warning_dust"; dir = 10},/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) +"LF" = (/obj/machinery/access_button/airlock_exterior{frequency = 1390; master_tag = "belter_airlock"; pixel_x = 25; pixel_y = 25; req_access = list(48)},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) +"LG" = (/obj/machinery/light/small{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2072,42 +2117,42 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlacxVxVARxVxVASxVAT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacxVBiBjxVBiBkxVyZBlzrzczUBmybBnzgBoBpBqAgziybEzDLEvExEwoVoVdlaczMzMBsAoAoBtBJBIAoAoBuzMzMacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacxUytDSxVytDSxVBwxUxUBxzUByybybBzBABBBCBDBEycEAEBzCzCAHoVoVdlacaczMzMBHAoBKDFDEAoBLzMzMacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacxUxVxVxVxVxVxUxUxUBMzczdzeBNBOBOBOBPBPBPBPBPBOBPtWdloVoVoVdldlacaczMzMzMBQBRBQzMzMzMacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaadmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBSBSBTBTBTBUBVBUBSBSBWBXBYBOBOCaBZCaCbCbCcCdCeCckvoVoVoVdldldlacacacaczMzMzMzMzMacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSCfCfCfCfCfCfDTChCiCjCkClCmEeCoEgEfCpCqCrCsCtCuoVoVdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSCvCfCfCwCfCxCyCzCACBCCCDEhCEDJCnCnCcCFCGCcqjoVoVdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSCvCfCHCICJCJCKCLDKCNCOCPEiCQCnCnCRBOCSCTBPdloVoVacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSDUCVCWCVCVCXCYCZDaDbDcDcDdDcDVBOBOdldldloVoVoVacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSDfDgCfCfDhDWDjDkBPCnCnDlDmBOBOdldldloVoVoVacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacBSBSBSDnDoDhKNDpCkBPDqDrBOBOBOdldldloVoVoVacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacBSBSBSDhDsDtDuBPBOBOBOdldldldldloVoVdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacBSBSDvDwDxBOBOacdldldldldldloVoVdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacoVoVDyoVacacdldldldldldloVoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacjWdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacoVoVDzoVacacdldldldldldloVoVdlDHjWacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloidldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacoVDBacacacacdldldldldloVoVoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldlacacdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacoVacacacacacdldldldldloVoVdldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldlacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacdldloVoVoVoVdldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldlacacacdldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacdldldldloVdldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacdldldldloVdloVoVoVdldldldldldldldldldldldldldldldldljWacacacacacacacacacacacacacacacacacacacacacEYdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacdldldldldldldldldloVoVoVdldldldldldldldldldldldldloidlacacacacacacacacacdldlacacacacacacacacacoidldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacdldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCaaaaDCaaaaaaDCaaaaaaaaaaDCaaaaaaDCaaaaDCaaaaaaaaaaaaaaaaacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacdldldlacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaaaDCDCDCDCDCDCDCaaaaaaDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacdldldlrKdldldldloVdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlrKdldlacacacacacacacacacacacacacacacacacacacacacacdldlacdldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaDCDCDCDCDCDCDCDCDCaaaaDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacjWdldldldldldldldldldldloVdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldljWacacacacacacacacacacacacacacacacacacacacacacacacacacacdldlacdldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaDCDCDCDCDCDCDCDCDCaaaaDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldlacacacdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacoVoVoVacacacacacacdldldlacacacacacacacacacacacacacacacacacacacacacacoVoVoVoVEZFaFaFaFboVdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldlrKdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVFcFeFdkvFcoVFfoVoVdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacjWacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVoVFeFgktktktktktktktktktktktktktktktktktFgkvoVoVoVoVoVoVoVoVoVoVoVoVoVFhFjFiFlFkFnFmFooVoVdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFqFpFpqiqiqiqiqiFrFqFsqiqiqiqiqiFpFpFqmboVacacacacoVoVoVoVoVFhFhFhFhFuFtFwFvFnFnFnoVoVoVoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFxaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFymboVacacacacoVoVoVFzFzFhFAFBFhFDFCFEFvFGFFFnFHFnoVoVoVdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacacoVoVoVFzFzFzFJFIFKFhFjFLFlFMFNFNFPFOFnFnoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacacoVoVFzFzFQFzFhFRFhFhFTFSFUFnFWFVFNFNFXFnFndldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacoVoVoVFzFYGaFZGcGbGeGdGgGfGiGhGkGjFNFNFNGlFndlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacoVoVFzFzGmGoGnGaGpGqFzGsGrGtFnGvGuGxGwFNGyFnFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVGzaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaGAmboVdloVoVoVFzGCGBGEGDGFGFGFFzGHGGGIFnGJFNFNFNFNFNGKFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFqaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFqmboVdloVoVFzFzFzFzGMGLFzFzFzFzGOGNGPFnFnGQGRFNFNGSFnFnFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFxaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFymboVdloVoVFzGTGVGUGXGWGYGYFzGZHaGrGtHbFnFnFnHcHcFnFnHdHeHeHeHeHeHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVdloVoVFzHfHhHgHjHiHlHkHnHmHpHoHqFUGOHaHrHaHaHsHaHaHeHtHvHuHwHeHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVHxqiHyHzaaaaaaaaaaaaaaaaaaaaaaaaaaHAHyqiqjoVdloVHBHCHCHCHDHFHEGEHGHIHHHJFhHLHKHMGgGgGgGgHNGgHOHQHPHSHRHUHTHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaadmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBSBSBTBTBTBVBUBVBSBSBWBXBYBOBOCaBZCaCbCbCcCdCeCckvoVoVoVdldldlacacacaczMzMzMzMzMacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSCfCfCfCfCfCfDTChCiCjCkClCmEeCoEgEfCpCqCrCsCtCuoVoVdldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSCvCfCfCwCfCxCyCzCACBCCCDEhCEDJCnCnCcCFCGCcqjoVoVdljWDHkZdldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSCvCfCHCICJCJCKCLDKCNCOCPEiCQCnCnCRBOCSCTBPdloVoVdlKOkZkZdldldljWdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSDUCVCWCVCVCXCYCZDaDbDcDcDdDcDVBOBOdldldloVoVoVdlFektktktkvdloidldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacBSBSDfDgCfCfDhDWDjDkBPCnCnDlDmBOBOdldldloVoVoVdlFekZKQKPKRkZktktktktktkvdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacBSBSBSDnDoDhKNDpCkBPDqDrBOBOBOdldldloVoVoVdldlvVKSKUKTKUKVKXKWKZKYLambdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacBSBSBSDhDsDtDuBPBOBOBOdldldldldloVoVdldldlvVLbLdLcLfLeLhLgLjLiLkmbdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacBSBSDvDwDxBOBOacdldldldldldloVoVdldldlvVLlLdLcLnLmLpLoLqLqLrmbDAjWacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacoVoVDyoVacacdldldldldldloVoVdldldlvVLbLdLcLtLsLuLqLqLvLrmbdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacjWdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacoVoVDzoVacacdldldldldldloVoVdldldlvVLwLdLcLxLkLzLyLALzLkmbdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloidldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacoVDBacacacdldldldldldloVoVoVdldlvVLBKUKTKULCKXKZKZKYLDmbdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldlacacdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacoVacacdldldldldldldldloVoVdldlLEkZLGLFKRkZqiqiqiqiqiqjdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldlacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacdldldldldldldldldloVoVoVoVdlLEqiqiqiqjdlrKdldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldlacacacdldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacdldldldldldldldldldldloVoVdlrKdldldldldljWdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacdldldldldldldldldldldldloVoVoVjWoVoVdldldldldldldldldldldldldldldldldljWacacacacacacacacacacacacacacacacacacacacacEYdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdldldldldldldldldldldldldldloVoVoVoVoVoVoVoVoVdldldldldldldldldldldldldloidlacacacacacacacacacdldlacacacacacacacacacoidldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacdldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCaaaaDCaaaaaaDCaaaaaaaaaaDCaaaaaaDCaaaaDCaaaaaaaaaaaaaaaadldldldldldldldldldldldldldldldloVoVoVoVoVdldldldldldldldldldldldldldldlacacacacacacacacdldldlacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaaaDCDCDCDCDCDCDCaaaaaaDCDCDCDCaaaaaaaaaaaaaaaaaadldldldldldldldldldldldldldldldldldloVoVoVoVdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlrKdldlacacacacacacacacacacacacacacacacacacacacacacdldlacdldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaDCDCDCDCDCDCDCDCDCaaaaDCDCDCDCaaaaaaaaaaaaaaaaaadldldldldldldldldldldldldldldldldldldldldloVoVdldldldloVdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldljWacacacacacacacacacacacacacacacacacacacacacacacacacacacdldlacdldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCaaaaDCDCDCDCDCDCDCDCDCaaaaDCDCDCDCaaaaaaaaaaaaaaaaaadldldldldldldldldldldldldldldldldldldldldldldldloVdldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaadldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdldldldldlacacacdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaadldldldldldldldldldldldldlacacacacacacacacacacacacacacdldldldldldldldldldldldldldldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacoVoVoVacacacacacacdldldlacacacacacacacacacacacacacacacacacacacacacacoVoVoVoVEZFaFaFaFboVdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaadldldldldldldldldldldldldldlacacacacacacacacacacacacacacacacdldldldldldldldldldldldldldlrKdldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVoVFcFeFdkvFcoVFfoVoVdldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaadldldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacjWacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVoVFeFgktktktktktktktktktktktktktktktktktFgkvoVoVoVoVoVoVoVoVoVoVoVoVoVFhFjFiFlFkFnFmFooVoVdldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaadldldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFqFpFpqiqiqiqiqiFrFqFsqiqiqiqiqiFpFpFqmboVacacacacoVoVoVoVoVFhFhFhFhFuFtFwFvFnFnFnoVoVoVoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaadldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFxaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFymboVacacacacoVoVoVFzFzFhFAFBFhFDFCFEFvFGFFFnFHFnoVoVoVdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaadldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacacoVoVoVFzFzFzFJFIFKFhFjFLFlFMFNFNFPFOFnFnoVdldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaadldldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacacoVoVFzFzFQFzFhFRFhFhFTFSFUFnFWFVFNFNFXFnFndldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaadldldldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacdloVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacoVoVoVFzFYGaFZGcGbGeGdGgGfGiGhGkGjFNFNFNGlFndlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaadldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVacacoVoVFzFzGmGoGnGaGpGqFzGsGrGtFnGvGuGxGwFNGyFnFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaadldldldldldldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVGzaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaGAmboVdloVoVoVFzGCGBGEGDGFGFGFFzGHGGGIFnGJFNFNFNFNFNGKFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaadldldldlacdlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFqaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFqmboVdloVoVFzFzFzFzGMGLFzFzFzFzGOGNGPFnFnGQGRFNFNGSFnFnFnacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaadldlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVFxaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaaFymboVdloVoVFzGTGVGUGXGWGYGYFzGZHaGrGtHbFnFnFnHcHcFnFnHdHeHeHeHeHeHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaadlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVvVmbaagPaaaaaaaaaaaaaaaaaaaaaaaaaagPaavVmboVdloVoVFzHfHhHgHjHiHlHkHnHmHpHoHqFUGOHaHrHaHaHsHaHaHeHtHvHuHwHeHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDCDCDCDCDCDCDCaaaaaaaaaaaaaaaaaaaadlacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVHxqiHyHzaaaaaaaaaaaaaaaaaaaaaaaaaaHAHyqiqjoVdloVHBHCHCHCHDHFHEGEHGHIHHHJFhHLHKHMGgGgGgGgHNGgHOHQHPHSHRHUHTHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVoVoVoVoVaaaaaaaaaaaaaaaaaaaaaaaaaaoVoVoVoVoVdloVHVFzHWHXHgHZHYIbIaHnIcIeIdIgIfGOIhHaHaHaIiHaFtHeIjIlIkInImHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVoVoVoVoVaaaaaaaaaaaaaaaaaaaaaaaaaaoVoVoVoVoVacacHVFzIoIqIpIsIrItItFzGZHaIuGtIvIwIwIwIxIxIwIwIyHeHeHeIzIBIAHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacoVFektICHzaaaaaaaaaaaaaaaaaaaaaaaaaaHAHyktkvoVacacHVFqFqFqFqFqFqFqFqFqFqGOGNGPIwIwIDIFIEIEIGIwIwIwacHeIHIBIjHeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/virgo-7.dmm b/maps/virgo-7.dmm new file mode 100644 index 0000000000..5d493440c9 --- /dev/null +++ b/maps/virgo-7.dmm @@ -0,0 +1,336 @@ +"a" = (/turf/space,/area/asteroid/rogue/zone3) +"b" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft,/turf/space,/area/asteroid/rogue/zone3) +"c" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright,/turf/space,/area/asteroid/rogue/zone3) +"d" = (/turf/space,/area/asteroid/rogue/zone4) +"e" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft,/turf/space,/area/asteroid/rogue/zone4) +"f" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright,/turf/space,/area/asteroid/rogue/zone4) +"g" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop,/turf/space,/area/asteroid/rogue/zone3) +"h" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop,/turf/space,/area/asteroid/rogue/zone4) +"i" = (/obj/rogue_mobspawner,/turf/space,/area/asteroid/rogue/zone3) +"j" = (/obj/asteroid_spawner,/turf/space,/area/asteroid/rogue/zone3) +"k" = (/obj/rogue_mobspawner,/turf/space,/area/asteroid/rogue/zone4) +"l" = (/obj/asteroid_spawner,/turf/space,/area/asteroid/rogue/zone4) +"m" = (/turf/space,/area/shuttle/belter/belt/zone4) +"n" = (/turf/space,/area/shuttle/belter/belt/zone3) +"o" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom,/turf/space,/area/asteroid/rogue/zone3) +"p" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom,/turf/space,/area/asteroid/rogue/zone4) +"q" = (/turf/space,/area/asteroid/rogue/zone1) +"r" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft,/turf/space,/area/asteroid/rogue/zone1) +"s" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright,/turf/space,/area/asteroid/rogue/zone1) +"t" = (/turf/space,/area/asteroid/rogue/zone2) +"u" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onleft,/turf/space,/area/asteroid/rogue/zone2) +"v" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onright,/turf/space,/area/asteroid/rogue/zone2) +"w" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop,/turf/space,/area/asteroid/rogue/zone1) +"x" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop,/turf/space,/area/asteroid/rogue/zone2) +"y" = (/obj/rogue_mobspawner,/turf/space,/area/asteroid/rogue/zone2) +"z" = (/obj/asteroid_spawner,/turf/space,/area/asteroid/rogue/zone2) +"A" = (/obj/rogue_mobspawner,/turf/space,/area/asteroid/rogue/zone1) +"B" = (/obj/asteroid_spawner,/turf/space,/area/asteroid/rogue/zone1) +"C" = (/turf/space,/area/shuttle/belter/belt/zone2) +"D" = (/turf/space,/area/shuttle/belter/belt/zone1) +"E" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom,/turf/space,/area/asteroid/rogue/zone1) +"F" = (/obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom,/turf/space,/area/asteroid/rogue/zone2) + +(1,1,1) = {" +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggcgggggggggggggghhhhhhhhhhhhhehhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddlddddddddddddddddddddddkdddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddkdddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddddkdddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddlddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaajaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddkddddddddddddddddddddlddddddddddddddddddddddmmmddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddkdddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmmmmmmmmddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmmmddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddlddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddlddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddkddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddlddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddkddddddlddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddldddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaiaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddlddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddlddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddlddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddlddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddlddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddldddddddkdddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddldddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddkdddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddlddddddkddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddedddddddddddddddddddddddddddddddddddddddddddkddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +aaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaadddddddddddddeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfddddddddddddd +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttytttttttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttyttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttzttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttztttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttyttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttyttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttzttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttzttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttyttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttytttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttztttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCtttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttCCCCCCCCCCtttttttttttttttttttttttttttttttttttttttyttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttCCCttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttzttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttzttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqDDDDDDDDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqDDDqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqAqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttzttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttytttttttttttttttttytttttttttttyttttttzttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttztttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttzttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttztttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqBqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttytttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqAqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttutttttttttttttttttttttttttttttttttttyttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEsEEEEEEEEEEEEEEFFFFFFFFFFFFFuFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFvFFFFFFFFFFFFF +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +qqqqqqqqqqqqqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsqqqqqqqqqqqqqqtttttttttttttuttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttvttttttttttttt +"} + diff --git a/nano/images/nanomap_z1.png b/nano/images/nanomap_z1.png index 730004ead5..6e83ba84a8 100644 Binary files a/nano/images/nanomap_z1.png and b/nano/images/nanomap_z1.png differ diff --git a/nano/templates/zone_console.tmpl b/nano/templates/zone_console.tmpl new file mode 100644 index 0000000000..cb7389f978 --- /dev/null +++ b/nano/templates/zone_console.tmpl @@ -0,0 +1,83 @@ +
+
+
+ Scn. Ramestat Core: +
+
+ {{:helper.displayBar(data.timeout_percent, 0, 100, (data.timeout_percent < 75) ? 'bad' : (data.timeout_percent < 100) ? 'average' : 'good')}} +
+
+
+
+
+ Mineral Content: +
+
+ {{:data.difficulty}} +
+
+ +
+
+ Shuttle Location: +
+
+ {{:data.shuttle_location}} +
+ {{if data.can_recall_shuttle > 0}} +
+ {{:helper.link('Recall Shuttle', 'alert-red', {'action' : 'recall_shuttle'}, null)}} +
+ {{/if}} +
+{{if data.occupied > 0}} +
+
+ WARNING: +
+
+ Area Occupied by {{:data.occupied}} personnel! +
+
+{{/if}} + + +

Scanner Operation

+
+
+ Scanner Activation: +
+
+ {{:helper.link('Scan For Asteroids', 'power', {'action' : 'scan_for_new'}, data.scan_ready ? null : 'disabled')}} +
+
+{{if data.scanning > 0}} +
+
+ Scanning: +
+
+ In Progress... +
+
+{{/if}} +{{if data.updated > 0 && data.scanning == 0}} +
+
+ Info: +
+
+ Updated shuttle destination! +
+
+{{/if}} +{{if data.debug > 0}} +
+
+ DEBUG: +
+
+ TP:{{:data.timeout_percent}},DS:{{:data.diffstep}},D:{{:data.difficulty}},O:{{:data.occupied}},DBG:{{:data.debug}},SL:{{:data.shuttle_location}},SAS:{{:data.shuttle_at_station}},SR:{{:data.scan_ready}} +
+
+{{/if}} \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 674251f770..c1aad26773 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -39,6 +39,7 @@ #include "code\__defines\mobs.dm" #include "code\__defines\process_scheduler.dm" #include "code\__defines\research.dm" +#include "code\__defines\roguemining_vr.dm" #include "code\__defines\species_languages.dm" #include "code\__defines\targeting.dm" #include "code\__defines\turfs.dm" @@ -675,6 +676,7 @@ #include "code\game\machinery\doors\brigdoors.dm" #include "code\game\machinery\doors\checkForMultipleDoors.dm" #include "code\game\machinery\doors\door.dm" +#include "code\game\machinery\doors\door_vr.dm" #include "code\game\machinery\doors\firedoor.dm" #include "code\game\machinery\doors\firedoor_assembly.dm" #include "code\game\machinery\doors\multi_tile.dm" @@ -793,6 +795,7 @@ #include "code\game\objects\items\devices\debugger.dm" #include "code\game\objects\items\devices\defib.dm" #include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flash_vr.dm" #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\floor_painter.dm" #include "code\game\objects\items\devices\hacktool.dm" @@ -1042,6 +1045,7 @@ #include "code\game\turfs\flooring\flooring_decals_vr.dm" #include "code\game\turfs\flooring\flooring_premade.dm" #include "code\game\turfs\flooring\flooring_vr.dm" +#include "code\game\turfs\flooring\shuttle_vr.dm" #include "code\game\turfs\initialization\init.dm" #include "code\game\turfs\initialization\maintenance.dm" #include "code\game\turfs\simulated\floor.dm" @@ -1429,8 +1433,14 @@ #include "code\modules\gamemaster\game_master.dm" #include "code\modules\gamemaster\helpers.dm" #include "code\modules\gamemaster\actions\action.dm" +#include "code\modules\gamemaster\actions\carp_migration.dm" #include "code\modules\gamemaster\actions\comms_blackout.dm" +#include "code\modules\gamemaster\actions\dust.dm" #include "code\modules\gamemaster\actions\grid_check.dm" +#include "code\modules\gamemaster\actions\meteor_defense.dm" +#include "code\modules\gamemaster\actions\shipping_error.dm" +#include "code\modules\gamemaster\actions\surprise_carp_attack.dm" +#include "code\modules\gamemaster\actions\surprise_meteor.dm" #include "code\modules\gamemaster\actions\waste_disposal.dm" #include "code\modules\games\cah.dm" #include "code\modules\games\cah_black_cards.dm" @@ -1788,6 +1798,7 @@ #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" #include "code\modules\mob\living\simple_animal\hostile\goose.dm" +#include "code\modules\mob\living\simple_animal\hostile\goose_vr.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" @@ -1961,9 +1972,10 @@ #include "code\modules\projectiles\guns\energy\laser.dm" #include "code\modules\projectiles\guns\energy\nuclear.dm" #include "code\modules\projectiles\guns\energy\nuclear_yw.dm" -#include "code\modules\projectiles\guns\energy\pulse.dm" +#include "code\modules\projectiles\guns\energy\particle.dm"#include "code\modules\projectiles\guns\energy\pulse.dm" #include "code\modules\projectiles\guns\energy\special.dm" #include "code\modules\projectiles\guns\energy\stun.dm" +#include "code\modules\projectiles\guns\energy\stun_vr.dm" #include "code\modules\projectiles\guns\energy\temperature.dm" #include "code\modules\projectiles\guns\launcher\crossbow.dm" #include "code\modules\projectiles\guns\launcher\grenade_launcher.dm" @@ -1977,7 +1989,7 @@ #include "code\modules\projectiles\guns\projectile\dartgun.dm" #include "code\modules\projectiles\guns\projectile\pistol.dm" #include "code\modules\projectiles\guns\projectile\pistol_yw.dm" -#include "code\modules\projectiles\guns\projectile\revolver.dm" +#include "code\modules\projectiles\guns\projectile\pistol_vr.dm"#include "code\modules\projectiles\guns\projectile\revolver.dm" #include "code\modules\projectiles\guns\projectile\revolver_yw.dm" #include "code\modules\projectiles\guns\projectile\shotgun.dm" #include "code\modules\projectiles\guns\projectile\sniper.dm" @@ -1989,6 +2001,7 @@ #include "code\modules\projectiles\projectile\bullets_vr.dm" #include "code\modules\projectiles\projectile\change.dm" #include "code\modules\projectiles\projectile\energy.dm" +#include "code\modules\projectiles\projectile\energy_vr.dm" #include "code\modules\projectiles\projectile\force.dm" #include "code\modules\projectiles\projectile\special.dm" #include "code\modules\projectiles\targeting\targeting_client.dm" @@ -2052,6 +2065,7 @@ #include "code\modules\reagents\reagent_containers\hypospray_vr.dm" #include "code\modules\reagents\reagent_containers\pill.dm" #include "code\modules\reagents\reagent_containers\spray.dm" +#include "code\modules\reagents\reagent_containers\spray_vr.dm" #include "code\modules\reagents\reagent_containers\syringes.dm" #include "code\modules\reagents\reagent_containers\drinkingglass\drinkingglass.dm" #include "code\modules\reagents\reagent_containers\drinkingglass\extras.dm" @@ -2089,6 +2103,13 @@ #include "code\modules\research\rdmachines.dm" #include "code\modules\research\research.dm" #include "code\modules\research\server.dm" +#include "code\modules\rogueminer_vr\asteroid.dm" +#include "code\modules\rogueminer_vr\controller.dm" +#include "code\modules\rogueminer_vr\debug.dm" +#include "code\modules\rogueminer_vr\landmarks.dm" +#include "code\modules\rogueminer_vr\wrappers.dm" +#include "code\modules\rogueminer_vr\zone_console.dm" +#include "code\modules\rogueminer_vr\zonemaster.dm" #include "code\modules\scripting\Errors.dm" #include "code\modules\scripting\IDE.dm" #include "code\modules\scripting\Options.dm" @@ -2117,11 +2138,8 @@ #include "code\modules\shieldgen\shield_capacitor.dm" #include "code\modules\shieldgen\shield_gen.dm" #include "code\modules\shieldgen\shield_gen_external.dm" -#include "code\modules\shuttles\adminmulti_vr.dm" #include "code\modules\shuttles\antagonist.dm" -#include "code\modules\shuttles\awaymission_vr.dm" #include "code\modules\shuttles\departmental.dm" -#include "code\modules\shuttles\departmental_vr.dm" #include "code\modules\shuttles\escape_pods.dm" #include "code\modules\shuttles\shuttle.dm" #include "code\modules\shuttles\shuttle_console.dm" @@ -2130,6 +2148,7 @@ #include "code\modules\shuttles\shuttle_specops.dm" #include "code\modules\shuttles\shuttle_supply.dm" #include "code\modules\shuttles\shuttles_multi.dm" +#include "code\modules\shuttles\shuttles_vr.dm" #include "code\modules\spells\artifacts.dm" #include "code\modules\spells\construct_spells.dm" #include "code\modules\spells\no_clothes.dm" @@ -2184,7 +2203,7 @@ #include "code\modules\tables\tables.dm" #include "code\modules\tables\update_triggers.dm" #include "code\modules\vehicles\cargo_train.dm" -#include "code\modules\vehicles\Securitrain_vr.dm" +#include "code\modules\vehicles\rover_vr.dm" #include "code\modules\vehicles\train.dm" #include "code\modules\vehicles\vehicle.dm" #include "code\modules\ventcrawl\ventcrawl.dm" @@ -2338,6 +2357,14 @@ #include "code\ZAS\Zone.dm" #include "interface\interface.dm" #include "interface\skin.dmf" +#include "maps\virgo-1.dmm" +#include "maps\virgo-2.dmm" +#include "maps\virgo-3.dmm" +#include "maps\virgo-4.dmm" +#include "maps\virgo-5.dmm" +#include "maps\virgo-6.dmm" +#include "maps\virgo-7.dmm" +#include "maps\RandomZLevels\beach.dm" #include "maps\RandomZLevels\blackmarketpackers.dm" #include "maps\RandomZLevels\carpfarm.dm" #include "maps\RandomZLevels\labyrinth.dm"