From 08c6923a12fb50ca15cfbf07aad4864808710333 Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 30 Jun 2016 22:28:58 -0300 Subject: [PATCH] Adds the tele-gulag [ready for review/merge] (#18644) Now security can send the bad guys to the gulag without any effort! Just put the unlucky guy inside the teleporter, insert a prisoner ID and hit the button! You don't even need to strip him, it's all automatic! --- _maps/map_files/MetaStation/MetaStation.dmm | 50 +- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 27 +- _maps/map_files/generic/lavaland.dmm | 6649 +++++++++-------- .../game/machinery/computer/buildandrepair.dm | 4 +- .../machinery/computer/gulag_teleporter.dm | 164 + code/game/machinery/gulag_item_reclaimer.dm | 108 + code/game/machinery/gulag_teleporter.dm | 173 + .../modules/mining/laborcamp/laborminerals.dm | 12 +- code/modules/mining/laborcamp/laborstacker.dm | 204 +- .../modules/mining/lavaland/lavaland_areas.dm | 3 + code/modules/mining/mine_turfs.dm | 2 +- icons/obj/machines/implantchair.dmi | Bin 7622 -> 8079 bytes tgstation.dme | 3 + tgui/assets/tgui.css | 2 +- tgui/assets/tgui.js | 26 +- tgui/src/interfaces/gulag_console.ract | 49 + tgui/src/interfaces/gulag_item_reclaimer.ract | 10 + tgui/src/interfaces/labor_claim_console.ract | 29 + 18 files changed, 4042 insertions(+), 3473 deletions(-) create mode 100644 code/game/machinery/computer/gulag_teleporter.dm create mode 100644 code/game/machinery/gulag_item_reclaimer.dm create mode 100644 code/game/machinery/gulag_teleporter.dm create mode 100644 tgui/src/interfaces/gulag_console.ract create mode 100644 tgui/src/interfaces/gulag_item_reclaimer.ract create mode 100644 tgui/src/interfaces/labor_claim_console.ract diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index cf6ae7bb7f7..bb988a84303 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -9681,19 +9681,7 @@ /turf/open/floor/plasteel/black, /area/security/brig) "arh" = ( -/obj/structure/table, -/obj/item/weapon/storage/box/prisoner, -/obj/item/weapon/razor{ - pixel_x = -6 - }, -/obj/item/weapon/paper{ - desc = ""; - info = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveilance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."; - name = "Labor Camp Operating Guide" - }, -/obj/structure/window/reinforced{ - dir = 4 - }, +/obj/machinery/computer/shuttle/labor, /turf/open/floor/plasteel/black, /area/security/brig) "ari" = ( @@ -10505,23 +10493,26 @@ c_tag = "Labor Shuttle Control Desk"; dir = 4 }, -/obj/machinery/computer/shuttle/labor, /obj/machinery/light{ dir = 8 }, +/obj/structure/table, +/obj/item/weapon/storage/box/prisoner, +/obj/item/weapon/razor{ + pixel_x = -6 + }, +/obj/item/weapon/paper{ + desc = ""; + info = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveilance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."; + name = "Labor Camp Operating Guide" + }, +/obj/item/weapon/pen, /turf/open/floor/plasteel/black, /area/security/brig) "asy" = ( /obj/structure/chair/office/dark{ dir = 8 }, -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Labor Camp Desk"; - req_access_txt = "0" - }, /turf/open/floor/plasteel/black, /area/security/brig) "asz" = ( @@ -11484,19 +11475,11 @@ }, /area/shuttle/labor) "atW" = ( -/obj/machinery/computer/prisoner, +/obj/machinery/computer/gulag_teleporter_computer, /turf/open/floor/plasteel/black, /area/security/brig) "atX" = ( -/obj/structure/table, -/obj/item/weapon/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/weapon/pen, -/obj/structure/window/reinforced{ - dir = 4 - }, +/obj/machinery/gulag_teleporter, /turf/open/floor/plasteel/black, /area/security/brig) "atY" = ( @@ -15841,6 +15824,9 @@ pixel_x = 24; pixel_y = 20 }, +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, /turf/open/floor/plasteel/black, /area/hallway/primary/fore) "aBp" = ( @@ -118133,7 +118119,7 @@ aju avw aju aaa -azT +aDN aBo aCA aDO diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index ad10023e18a..4cc0fd113ae 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -4501,14 +4501,11 @@ /turf/open/space, /area/solar/auxport) "ajr" = ( -/obj/machinery/computer/security{ - name = "Labor Camp Monitoring"; - network = list("Labor") - }, +/obj/machinery/computer/gulag_teleporter_computer, /turf/open/floor/plasteel, /area/security/processing) "ajs" = ( -/obj/machinery/computer/prisoner, +/obj/machinery/gulag_teleporter, /turf/open/floor/plasteel, /area/security/processing) "ajt" = ( @@ -4516,21 +4513,24 @@ pixel_x = 32; pixel_y = 0 }, -/obj/structure/closet/emcloset, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/table, +/obj/item/weapon/storage/box/prisoner, +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock North" + }, /turf/open/floor/plasteel, /area/security/processing) "aju" = ( -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" - }, -/obj/structure/table, -/obj/item/weapon/storage/box/prisoner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, +/obj/machinery/computer/security{ + name = "Labor Camp Monitoring"; + network = list("Labor") + }, /turf/open/floor/plasteel, /area/security/processing) "ajv" = ( @@ -6434,7 +6434,9 @@ }, /area/security/processing) "ant" = ( -/obj/structure/closet/emcloset, +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, /turf/open/floor/plasteel/warning{ dir = 9 }, @@ -6869,6 +6871,7 @@ }, /area/security/processing) "aos" = ( +/obj/structure/closet/emcloset, /turf/open/floor/plasteel/warning{ dir = 10 }, diff --git a/_maps/map_files/generic/lavaland.dmm b/_maps/map_files/generic/lavaland.dmm index 1575ffc7988..80fbd46fec6 100644 --- a/_maps/map_files/generic/lavaland.dmm +++ b/_maps/map_files/generic/lavaland.dmm @@ -111,6 +111,7 @@ /obj/item/weapon/storage/bag/ore, /obj/item/weapon/pickaxe, /obj/item/device/flashlight, +/obj/item/clothing/glasses/meson, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -122,6 +123,7 @@ /obj/item/weapon/storage/bag/ore, /obj/item/device/flashlight, /obj/item/weapon/pickaxe, +/obj/item/clothing/glasses/meson, /turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, @@ -306,7 +308,7 @@ "aN" = ( /obj/structure/closet/crate, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/area/lavaland/surface/outdoors/explored) "aO" = ( /obj/machinery/door/airlock/glass_security{ name = "Labor Camp Shuttle Security Airlock"; @@ -556,7 +558,7 @@ width = 9 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/area/lavaland/surface/outdoors/explored) "bm" = ( /obj/machinery/door/airlock/glass_security{ name = "Labor Camp Shuttle Prisoner Airlock"; @@ -717,10 +719,11 @@ }, /area/mine/eva) "bA" = ( -/turf/closed/wall{ +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, -/area/mine/laborcamp/security) +/area/lavaland/surface/outdoors/explored) "bB" = ( /obj/structure/table, /obj/machinery/recharger, @@ -906,11 +909,10 @@ }, /area/mine/production) "bT" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ +/turf/open/floor/plasteel{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface }, -/area/mine/laborcamp/security) +/area/lavaland/surface/outdoors/explored) "bU" = ( /turf/open/floor/plasteel/purple/corner{ baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; @@ -1230,11 +1232,11 @@ }, /area/mine/production) "cx" = ( -/obj/machinery/mineral/stacking_unit_console, -/turf/closed/wall/r_wall{ - baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface +/turf/open/floor/plasteel/purple/corner{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface; + dir = 4 }, -/area/mine/production) +/area/lavaland/surface/outdoors/explored) "cy" = ( /obj/machinery/door/airlock/mining{ name = "Mining Station Storage"; @@ -1659,9 +1661,8 @@ }, /area/mine/living_quarters) "dq" = ( -/turf/open/floor/plating/lava/smooth/lava_land_surface, -/turf/closed/mineral/random/volcanic, -/area/lavaland/surface/outdoors) +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) "dr" = ( /obj/machinery/conveyor_switch/oneway{ id = "gulag" @@ -2084,6 +2085,8 @@ }, /area/mine/living_quarters) "en" = ( +/obj/item/weapon/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, /turf/closed/indestructible/riveted, /area/ruin/unpowered{ name = "Necropolis Bridge" @@ -2781,6 +2784,38 @@ dir = 8 }, /area/mine/laborcamp) +"fI" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/lavaland/surface/outdoors) +"fJ" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/explored) +"fK" = ( +/turf/closed/mineral/random/labormineral/volcanic, +/area/lavaland/surface/outdoors) +"fL" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/explored) +"fM" = ( +/obj/structure/gulag_beacon, +/turf/open/floor/plasteel{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp) +"fN" = ( +/turf/closed/wall{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) +"fO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating{ + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + }, +/area/mine/laborcamp/security) (1,1,1) = {" aa @@ -3424,11 +3459,11 @@ af af af af -al -al -al -al -al +ed +ed +ed +ed +ed ab af af @@ -3960,7 +3995,7 @@ af af af af -al +fK ab af af @@ -4224,10 +4259,10 @@ af af af af -al -al -al -al +fK +fK +fK +fK af af af @@ -4283,7 +4318,7 @@ af af af af -ab +dq af af af @@ -4424,10 +4459,10 @@ af af af af -al -al -al -al +fK +fK +fK +fK af af af @@ -4535,10 +4570,10 @@ af af af af -ab -ab +dq +dq af -ab +dq af af af @@ -4683,52 +4718,52 @@ af ab ab ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ed -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab ab -al -al +fK +fK ab ab -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab ab @@ -4791,8 +4826,8 @@ af af af af -ab -ab +dq +dq af af af @@ -4939,71 +4974,71 @@ al af af ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -5048,15 +5083,15 @@ af af af af -ab -ab +dq +dq af af -ab -ab +dq +dq af af -ab +dq af af af @@ -5197,67 +5232,67 @@ al af ab ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab ab @@ -5304,19 +5339,19 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -5454,76 +5489,76 @@ al af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab -al -al -al -al -al +fK +fK +fK +fK +fK af af af @@ -5559,22 +5594,22 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -5712,85 +5747,85 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -5799,7 +5834,7 @@ af af af af -al +fK ab af af @@ -5817,24 +5852,24 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af -ab +dq af af af @@ -5969,84 +6004,84 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab af @@ -6056,8 +6091,8 @@ af af af ab -al -al +fK +fK af af af @@ -6075,19 +6110,19 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -6227,94 +6262,94 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -6331,21 +6366,21 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -6486,92 +6521,92 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -6588,22 +6623,22 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -6742,93 +6777,93 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -6846,19 +6881,19 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -7000,92 +7035,92 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab af af @@ -7103,19 +7138,19 @@ af af af af -ab -ab -ab -ab -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq +dq +dq +dq +dq bl -ab -ab -ab +dq +dq +dq af af af @@ -7259,90 +7294,90 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab af @@ -7367,12 +7402,12 @@ an an aO an -ab +fI an bm an -ab -ab +dq +dq af af af @@ -7517,99 +7552,99 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab -al +fK ab af af @@ -7624,15 +7659,15 @@ aG an aP an -an +aZ an aF an -ab -al +dq +fJ af af -ab +dq af ab al @@ -7773,101 +7808,101 @@ al af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab af af @@ -7881,13 +7916,13 @@ au an aO an -aZ +fM an bm an -al -al -al +fJ +fJ +fJ af af af @@ -8031,102 +8066,102 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK am am am @@ -8142,9 +8177,9 @@ ba at at an -bA -bA -bA +fN +fN +fN af af af @@ -8289,101 +8324,101 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK am ao ao @@ -8401,7 +8436,7 @@ at an bB bK -bT +fO af af af @@ -8546,101 +8581,101 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an ap fD @@ -8658,7 +8693,7 @@ bc bu bC bL -bT +fO af af af @@ -8810,94 +8845,94 @@ ab ab af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an aq aM @@ -8915,7 +8950,7 @@ be an bD bM -bT +fO af af af @@ -9068,93 +9103,93 @@ af af ab ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an an an @@ -9326,92 +9361,92 @@ af af af ed -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an ar ar @@ -9583,92 +9618,92 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an as at @@ -9841,91 +9876,91 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an an av @@ -10100,103 +10135,103 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an an an an at an -aY +fL aN aN -ab -ab -ab -ab +dq +dq +dq +dq an bF bG @@ -10357,103 +10392,103 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK an aF an -aY -ab -ab -ab -ab -ab -ab +fL +dq +dq +dq +dq +dq +dq an an an @@ -10616,100 +10651,100 @@ af af af af -al +fK af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq an aE an -aY -ab -ab -ab -ab -ab +fL +dq +dq +dq +dq +dq af af af @@ -10875,97 +10910,97 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq aJ -ab -ab -ab -ab -ab +dq +dq +dq +dq +dq af af af @@ -11131,99 +11166,99 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -11390,97 +11425,97 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq af af af @@ -11647,97 +11682,97 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq af af af @@ -11905,97 +11940,97 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab -ab -ab -ab -ab -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq +dq +dq +dq +dq +dq af af af @@ -12166,93 +12201,93 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -aU -aY -al -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +en +fL +fK +dq +dq af af af @@ -12425,92 +12460,92 @@ af af af af -al -al -al -ab -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab +fK +fK +fK ab ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq +dq af af al @@ -12688,86 +12723,86 @@ af af ab ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af al @@ -12946,86 +12981,86 @@ af af ab ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq af af ee @@ -13203,86 +13238,86 @@ af af af ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq af af ef @@ -13460,86 +13495,86 @@ af af af ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq af af ee @@ -13716,25 +13751,25 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -13743,60 +13778,60 @@ af ab ab ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq af ab ee @@ -13975,20 +14010,20 @@ af af af af -al -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab ab af @@ -14001,58 +14036,58 @@ af af af ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -al -ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +dq +dq af af ab @@ -14237,15 +14272,15 @@ af af af af -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -14256,16 +14291,16 @@ af af af af -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK af af af @@ -14278,37 +14313,37 @@ af af af af -al -al +fK +fK ab af af ab -al -al -al -al -al -al -al -al -al -al -al -al -al +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK ab af af -al -al -al -al -al -ab -ab -ab -ab +fK +fK +fK +fK +fK +dq +dq +dq +dq af af af @@ -14548,11 +14583,11 @@ af af af af -al -al -al -al -al +fK +fK +fK +fK +fK af af af @@ -14560,10 +14595,10 @@ af af af af -ab -ab -ab -ab +dq +dq +dq +dq af af af diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 2c58aa54a82..955cbf118bb 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -270,7 +270,9 @@ /obj/item/weapon/circuitboard/computer/prisoner name = "circuit board (Prisoner Management Console)" build_path = /obj/machinery/computer/prisoner - +/obj/item/weapon/circuitboard/computer/gulag_teleporter_console + name = "circuit board (Labor Camp teleporter console)" + build_path = /obj/machinery/computer/gulag_teleporter_computer /obj/item/weapon/circuitboard/computer/rdconsole name = "circuit board (RD Console)" diff --git a/code/game/machinery/computer/gulag_teleporter.dm b/code/game/machinery/computer/gulag_teleporter.dm new file mode 100644 index 00000000000..c467e54b4fb --- /dev/null +++ b/code/game/machinery/computer/gulag_teleporter.dm @@ -0,0 +1,164 @@ +//computer that handle the points and teleports the prisoner +/obj/machinery/computer/gulag_teleporter_computer + name = "labor camp teleporter console" + desc = "Used to send criminals to the Labor Camp" + icon_screen = "explosive" + icon_keyboard = "security_key" + req_access = list(access_security) + circuit = /obj/item/weapon/circuitboard/computer/gulag_teleporter_console + var/default_goal = 200 + var/obj/item/weapon/card/id/prisoner/id = null + var/obj/machinery/gulag_teleporter/teleporter = null + var/obj/structure/gulag_beacon/beacon = null + var/mob/living/carbon/human/prisoner = null + var/datum/data/record/temporary_record = null + +/obj/machinery/computer/gulag_teleporter_computer/New() + ..() + addtimer(src, "scan_machinery", 5) + +/obj/machinery/computer/gulag_teleporter_computer/Destroy() + if(id) + id.forceMove(get_turf(src)) + return ..() + +/obj/machinery/computer/gulag_teleporter_computer/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/weapon/card/id/prisoner)) + if(!id) + if(!user.drop_item()) + return + W.forceMove(src) + id = W + user << "You insert [W]." + return + else + user << "There's an ID inserted already." + return ..() + +/obj/machinery/computer/gulag_teleporter_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "gulag_console", name, 455, 440, master_ui, state) + ui.open() + +/obj/machinery/computer/gulag_teleporter_computer/ui_data(mob/user) + var/list/data = list() + + var/list/prisoner_list = list() + var/can_teleport = FALSE + + if(teleporter && (teleporter.occupant && ishuman(teleporter.occupant))) + prisoner = teleporter.occupant + prisoner_list["name"] = prisoner.real_name + if(id) + can_teleport = TRUE + if(!isnull(data_core.general)) + for(var/r in data_core.security) + var/datum/data/record/R = r + if(R.fields["name"] == prisoner_list["name"]) + temporary_record = R + prisoner_list["crimstat"] = temporary_record.fields["criminal"] + + data["prisoner"] = prisoner_list + + if(teleporter) + data["teleporter"] = teleporter + data["teleporter_location"] = "([teleporter.x], [teleporter.y], [teleporter.z])" + data["teleporter_lock"] = teleporter.locked + data["teleporter_state_open"] = teleporter.state_open + if(beacon) + data["beacon"] = beacon + data["beacon_location"] = "([beacon.x], [beacon.y], [beacon.z])" + if(id) + data["id"] = id + data["id_name"] = id.registered_name + data["goal"] = id.goal + data["can_teleport"] = can_teleport + + return data + +/obj/machinery/computer/gulag_teleporter_computer/ui_act(action, list/params) + if(..()) + return + if(!allowed(usr)) + usr << "Access denied." + return + switch(action) + if("scan_teleporter") + teleporter = findteleporter() + if("scan_beacon") + beacon = findbeacon() + if("handle_id") + if(id) + if(!usr.get_active_hand()) + usr.put_in_hands(id) + id = null + else + id.forceMove(get_turf(src)) + id = null + else + var/obj/item/I = usr.get_active_hand() + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!usr.drop_item()) + return + I.forceMove(src) + id = I + if("set_goal") + var/new_goal = input("Set the amount of points:", "Points", id.goal) as num|null + if(!isnum(new_goal)) + return + if(!new_goal) + new_goal = default_goal + id.goal = Clamp(new_goal, 0, 1000) //maximum 1000 points + if("toggle_open") + if(teleporter.locked) + usr << "The teleporter is locked" + return + teleporter.toggle_open() + if("teleporter_lock") + if(teleporter.state_open) + usr << "Close the teleporter before locking!" + return + teleporter.locked = !teleporter.locked + if("teleport") + if(!teleporter || !beacon) + return + addtimer(src, "teleport", 5, FALSE, usr) + +/obj/machinery/computer/gulag_teleporter_computer/proc/scan_machinery() + teleporter = findteleporter() + beacon = findbeacon() + +/obj/machinery/computer/gulag_teleporter_computer/proc/findteleporter() + var/obj/machinery/gulag_teleporter/teleporterf = null + + for(dir in cardinal) + teleporterf = locate(/obj/machinery/gulag_teleporter, get_step(src, dir)) + if(teleporterf && teleporterf.is_operational()) + return teleporterf + +/obj/machinery/computer/gulag_teleporter_computer/proc/findbeacon() + return locate(/obj/structure/gulag_beacon) + +/obj/machinery/computer/gulag_teleporter_computer/proc/teleport(mob/user) + log_game("[user]([user.ckey] teleported [prisoner]([prisoner.ckey]) to the Labor Camp ([beacon.x], [beacon.y], [beacon.z]) for [id.goal] points.") + teleporter.handle_prisoner(id, temporary_record) + playsound(loc, "sound/weapons/emitter.ogg", 50, 1) + prisoner.forceMove(beacon) + prisoner.Weaken(2) // small travel dizziness + prisoner << "The teleportation makes you a little dizzy." + PoolOrNew(/obj/effect/particle_effect/sparks, prisoner.loc) + playsound(src.loc, "sparks", 50, 1) + if(teleporter.locked) + teleporter.locked = FALSE + teleporter.toggle_open() + id = null + temporary_record = null + + + + + + + diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm new file mode 100644 index 00000000000..91d7bb1882a --- /dev/null +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -0,0 +1,108 @@ +/obj/machinery/gulag_item_reclaimer + name = "equipment reclaimer station" + desc = "Used to reclaim your items after you finish your sentence at the labor camp" + icon = 'icons/obj/terminals.dmi' + icon_state = "dorm_taken" + req_access = list(access_security) //reqaccess to access all stored items + density = 0 + anchored = 1 + use_power = 1 + idle_power_usage = 100 + active_power_usage = 2500 + var/list/stored_items = list() + var/obj/item/weapon/card/id/prisoner/inserted_id = null + var/obj/machinery/gulag_teleporter/linked_teleporter = null + +/obj/machinery/gulag_item_reclaimer/Destroy() + for(var/i in contents) + var/obj/item/I = i + I.forceMove(get_turf(src)) + if(linked_teleporter) + linked_teleporter.linked_reclaimer = null + if(inserted_id) + inserted_id.forceMove(get_turf(src)) + inserted_id = null + return ..() + +/obj/machinery/gulag_item_reclaimer/emag_act(mob/user) + if(!emagged) // emagging lets anyone reclaim all the items + req_access = list() + emagged = 1 + +/obj/machinery/gulag_item_reclaimer/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!inserted_id) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + user << "You insert [I]." + return + else + user << "There's an ID inserted already." + return ..() + +/obj/machinery/gulag_item_reclaimer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "gulag_item_reclaimer", name, 455, 440, master_ui, state) + ui.open() + +/obj/machinery/gulag_item_reclaimer/ui_data(mob/user) + var/list/data = list() + var/can_reclaim = FALSE + + if(inserted_id) + data["id"] = inserted_id + data["id"]["name"] = inserted_id.registered_name + if(inserted_id.points >= inserted_id.goal || allowed(user)) + can_reclaim = TRUE + + var/list/mobs = list() + for(var/i in stored_items) + var/mob/thismob = i + var/list/mob_info = list() + mob_info["name"] = thismob.real_name + mob_info["mob"] = "\ref[thismob]" + mobs += list(mob_info) + + data["mobs"] = mobs + + + data["can_reclaim"] = can_reclaim + + return data + +/obj/machinery/gulag_item_reclaimer/ui_act(action, list/params) + switch(action) + if("handle_id") + if(inserted_id) + if(!usr.get_active_hand()) + usr.put_in_hands(inserted_id) + inserted_id = null + else + inserted_id.forceMove(get_turf(src)) + inserted_id = null + else + var/obj/item/I = usr.get_active_hand() + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!usr.drop_item()) + return + I.forceMove(src) + inserted_id = I + if("release_items") + var/mob/M = locate(params["mobref"]) + if(M == usr || allowed(usr)) + drop_items(M) + else + usr << "Access denied." + +/obj/machinery/gulag_item_reclaimer/proc/drop_items(mob/user) + if(!stored_items[user]) + return + for(var/i in stored_items[user]) + var/obj/item/W = i + stored_items[user] -= W + W.forceMove(get_turf(src)) + stored_items -= user \ No newline at end of file diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm new file mode 100644 index 00000000000..8a1ae3a9378 --- /dev/null +++ b/code/game/machinery/gulag_teleporter.dm @@ -0,0 +1,173 @@ +/* +The gulag teleporter teleports a prisoner to the gulag outpost. +It automatically strips the prisoner and equips a prisoner ID, prisoner jumpsuit and oranges sneakers. +You can set the amount of points in the console +The console is located at computer/gulag_teleporter.dm +*/ + +//Gulag teleporter +/obj/machinery/gulag_teleporter + name = "labor camp teleporter" + desc = "A bluespace teleporter used for teleporting prisoners to the labor camp." + icon = 'icons/obj/machines/implantchair.dmi' + icon_state = "implantchair" + state_open = 0 + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 200 + active_power_usage = 5000 + var/locked = FALSE + var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner + var/shoes_type = /obj/item/clothing/shoes/sneakers/orange + var/obj/machinery/gulag_item_reclaimer/linked_reclaimer = null + +/obj/machinery/gulag_teleporter/New() + ..() + var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gulag_teleporter(null) + B.apply_default_parts(src) + addtimer(src, "locate_reclaimer", 5) + +/obj/machinery/gulag_teleporter/Destroy() + if(linked_reclaimer) + linked_reclaimer.linked_teleporter = null + return ..() + +/obj/machinery/gulag_teleporter/power_change() + ..() + update_icon() + + +/obj/machinery/gulag_teleporter/interact(mob/user) + if(locked) + user << "[src] is locked." + return + toggle_open() + +/obj/machinery/gulag_teleporter/updateUsrDialog() + return + +/obj/machinery/gulag_teleporter/attackby(obj/item/I, mob/user) + if(!occupant && default_deconstruction_screwdriver(user, "[icon_state]", "[icon_state]",I)) + update_icon() + return + + if(default_deconstruction_crowbar(I)) + return + + if(default_pry_open(I)) + return + + return ..() + +/obj/machinery/gulag_teleporter/update_icon() + icon_state = initial(icon_state) + (state_open ? "_open" : "") + //no power or maintenance + if(stat & (NOPOWER|BROKEN)) + icon_state += "_unpowered" + if((stat & MAINT) || panel_open) + icon_state += "_maintenance" + return + + if((stat & MAINT) || panel_open) + icon_state += "_maintenance" + return + + //running and someone in there + if(occupant) + icon_state += "_occupied" + return + + +/obj/machinery/gulag_teleporter/relaymove(mob/user) + if(user.stat != CONSCIOUS) + return + if(locked) + user << "[src] is locked!" + return + open_machine() + +/obj/machinery/gulag_teleporter/container_resist(mob/living/user) + var/breakout_time = 600 + if(!locked) + open_machine() + return + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You lean on the back of [src] and start pushing the door open... (this will take about a minute.)" + user.visible_message("You hear a metallic creaking from [src]!") + + if(do_after(user,(breakout_time), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked) + return + + locked = FALSE + visible_message("[user] successfully broke out of [src]!") + user << "You successfully break out of [src]!" + + open_machine() + +/obj/machinery/gulag_teleporter/proc/locate_reclaimer() + linked_reclaimer = locate(/obj/machinery/gulag_item_reclaimer) + if(linked_reclaimer) + linked_reclaimer.linked_teleporter = src + +/obj/machinery/gulag_teleporter/proc/toggle_open() + if(panel_open) + usr << "Close the maintenance panel first." + return + + if(state_open) + close_machine() + return + if(!locked) + open_machine() + +// strips and stores all occupant's items +/obj/machinery/gulag_teleporter/proc/strip_occupant() + if(linked_reclaimer) + linked_reclaimer.stored_items[occupant] = list() + for(var/obj/item/W in occupant) + if(occupant.unEquip(W)) + if(istype(W, /obj/item/weapon/restraints/handcuffs)) + W.forceMove(get_turf(src)) + continue + if(istype(W, /obj/item/weapon/implant/storage)) + continue + if(linked_reclaimer) + linked_reclaimer.stored_items[occupant] += W + linked_reclaimer.contents += W + W.forceMove(linked_reclaimer) + else + W.forceMove(src) + +/obj/machinery/gulag_teleporter/proc/handle_prisoner(obj/item/id, datum/data/record/R) + if(!ishuman(occupant)) + return + strip_occupant() + var/mob/living/carbon/human/prisoner = occupant + if(jumpsuit_type) + prisoner.equip_to_appropriate_slot(new jumpsuit_type) + if(shoes_type) + prisoner.equip_to_appropriate_slot(new shoes_type) + if(id) + prisoner.equip_to_appropriate_slot(id) + if(R) + R.fields["criminal"] = "Incarcerated" + +/obj/item/weapon/circuitboard/machine/gulag_teleporter + name = "circuit board (labor camp teleporter)" + build_path = /obj/machinery/gulag_teleporter + origin_tech = "programming=3;engineering=4;bluespace=4;materials=4" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 2, + /obj/item/weapon/stock_parts/scanning_module, + /obj/item/weapon/stock_parts/manipulator) + def_components = list(/obj/item/weapon/ore/bluespace_crystal = /obj/item/weapon/ore/bluespace_crystal/artificial) + +/* beacon that receives the teleported prisoner */ +/obj/structure/gulag_beacon + name = "labor camp bluespace beacon" + desc = "A recieving beacon for bluespace teleportations." + icon = 'icons/turf/floors.dmi' + icon_state = "light_on-w" diff --git a/code/modules/mining/laborcamp/laborminerals.dm b/code/modules/mining/laborcamp/laborminerals.dm index f39f10ed440..5299d953754 100644 --- a/code/modules/mining/laborcamp/laborminerals.dm +++ b/code/modules/mining/laborcamp/laborminerals.dm @@ -6,4 +6,14 @@ /turf/closed/mineral/random/labormineral/New() icon_state = "rock" - ..() \ No newline at end of file + ..() + +/turf/closed/mineral/random/labormineral/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/lava/smooth/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + mineralSpawnChanceList = list( + /turf/closed/mineral/iron/volcanic = 100, /turf/closed/mineral/uranium/volcanic = 1, /turf/closed/mineral/diamond/volcanic = 1, + /turf/closed/mineral/gold/volcanic = 1, /turf/closed/mineral/silver/volcanic = 1, /turf/closed/mineral/plasma/volcanic = 1) \ No newline at end of file diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 2b1c53c082a..58e13865f94 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -7,7 +7,7 @@ icon_state = "console" density = 0 anchored = 1 - var/obj/machinery/mineral/stacking_machine/laborstacker/machine = null + var/obj/machinery/mineral/stacking_machine/laborstacker/stacking_machine = null var/machinedir = SOUTH var/obj/item/weapon/card/id/prisoner/inserted_id var/obj/machinery/door/airlock/release_door @@ -19,50 +19,106 @@ ..() Radio = new/obj/item/device/radio(src) Radio.listening = 0 - spawn(7) - src.machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) - var/t - for(var/obj/machinery/door/airlock/d in range(5,src)) - t = d.id_tag - if(t == src.door_tag) - src.release_door = d - if (machine && release_door) - machine.CONSOLE = src - else - qdel(src) - -/obj/machinery/mineral/labor_claim_console/proc/check_auth() - if(emagged) return 1 //Shuttle is emagged, let any ol' person through - return (istype(inserted_id) && inserted_id.points >= inserted_id.goal) //Otherwise, only let them out if the prisoner's reached his quota. - - -/obj/machinery/mineral/labor_claim_console/attack_hand(mob/user) - var/dat - dat += text("Point Claim Console

") - if(emagged) //Shit's broken - dat += text("QU&#t0A In%aL*D
") - else if(istype(inserted_id)) //There's an ID in there. - dat += text("ID: [inserted_id.registered_name] Eject ID.
") - dat += text("Points Collected:[inserted_id.points]
") - dat += text("Point Quota: [inserted_id.goal] - Reach your quota to earn your release
") - dat += text("Unclaimed Collection Points: [machine.points]. Claim points.
") - else //No ID in sight. Complain about it. - dat += text("No ID inserted. Insert ID.
") - if(check_auth()) - dat += text("Proceed to Station.
") - dat += text("Open release door.
") - if(machine) - dat += text("
Mineral Value List:
[machine.get_ore_values()]") - - - user << browse("[dat]", "window=console_stacking_machine") - + addtimer(src, "locate_stacking_machine", 7) /obj/machinery/mineral/labor_claim_console/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/weapon/card/id)) - return attack_hand(user) + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!inserted_id) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + user << "You insert [I]." + return + else + user << "There's an ID inserted already." + return ..() + +/obj/machinery/mineral/labor_claim_console/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \ + datum/tgui/master_ui = null, datum/ui_state/state = default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "labor_claim_console", name, 450, 475, master_ui, state) + ui.open() + +/obj/machinery/mineral/labor_claim_console/ui_data(mob/user) + var/list/data = list() + var/can_go_home = FALSE + + data["emagged"] = emagged + if(inserted_id) + data["id"] = inserted_id + data["id_name"] = inserted_id.registered_name + data["points"] = inserted_id.points + data["goal"] = inserted_id.goal + if(check_auth()) + can_go_home = TRUE + + var/list/ores = list() + if(stacking_machine) + data["unclaimed_points"] = stacking_machine.points + for(var/ore in stacking_machine.ore_values) + var/list/O = list() + O["ore"] = ore + O["value"] = stacking_machine.ore_values[ore] + ores += list(O) + + data["ores"] = ores + data["can_go_home"] = can_go_home + + return data + +/obj/machinery/mineral/labor_claim_console/ui_act(action, params) + if(..()) + return + switch(action) + if("handle_id") + if(inserted_id) + if(!usr.get_active_hand()) + usr.put_in_hands(inserted_id) + inserted_id = null + else + inserted_id.forceMove(get_turf(src)) + inserted_id = null + else + var/obj/item/I = usr.get_active_hand() + if(istype(I, /obj/item/weapon/card/id/prisoner)) + if(!usr.drop_item()) + return + I.forceMove(src) + inserted_id = I + if("claim_points") + inserted_id.points += stacking_machine.points + stacking_machine.points = 0 + usr << "Points transferred." + if("move_shuttle") + if(!alone_in_area(get_area(src), usr)) + usr << "Prisoners are only allowed to be released while alone." + else + switch(SSshuttle.moveShuttle("laborcamp","laborcamp_home")) + if(1) + usr << "Shuttle not found" + if(2) + usr << "Shuttle already at station" + if(3) + usr << "No permission to dock could be granted." + else + if(!emagged) + Radio.set_frequency(SEC_FREQ) + Radio.talk_into(src, "[inserted_id.registered_name] has returned to the station. Minerals and Prisoner ID card ready for retrieval.", SEC_FREQ) + usr << "Shuttle received message and will be sent shortly." + +/obj/machinery/mineral/labor_claim_console/proc/check_auth() + if(emagged) + return 1 //Shuttle is emagged, let any ol' person through + return (istype(inserted_id) && inserted_id.points >= inserted_id.goal) //Otherwise, only let them out if the prisoner's reached his quota. + +/obj/machinery/mineral/labor_claim_console/proc/locate_stacking_machine() + stacking_machine = locate(/obj/machinery/mineral/stacking_machine, get_step(src, machinedir)) + if(stacking_machine) + stacking_machine.CONSOLE = src else - return ..() + qdel(src) /obj/machinery/mineral/labor_claim_console/emag_act(mob/user) if(!emagged) @@ -70,74 +126,12 @@ user << "PZZTTPFFFT" - -/obj/machinery/mineral/labor_claim_console/Topic(href, href_list) - usr.set_machine(src) - src.add_fingerprint(usr) - if(href_list["choice"]) - if(istype(inserted_id)) //Sanity check against href spoofs - if(href_list["choice"] == "eject") - inserted_id.loc = loc - inserted_id.verb_pickup() - inserted_id = null - if(href_list["choice"] == "claim") - inserted_id.points += machine.points - machine.points = 0 - src << "Points transferred." - else if(href_list["choice"] == "insert") - var/obj/item/weapon/card/id/prisoner/I = usr.get_active_hand() - if(istype(I)) - if(!usr.drop_item()) - return - I.loc = src - inserted_id = I - else usr << "Invalid ID." - if(check_auth()) //Sanity check against hef spoofs - if(href_list["choice"] == "station") - if(!alone_in_area(get_area(src), usr)) - usr << "Prisoners are only allowed to be released while alone." - else - switch(SSshuttle.moveShuttle("laborcamp","laborcamp_home")) - if(1) - usr << "Shuttle not found" - if(2) - usr << "Shuttle already at station" - if(3) - usr << "No permission to dock could be granted." - else - Radio.set_frequency(SEC_FREQ) - Radio.talk_into(src, "[inserted_id.registered_name] has returned to the station. Minerals and Prisoner ID card ready for retrieval.", SEC_FREQ) - usr << "Shuttle received message and will be sent shortly." - - if(href_list["choice"] == "release") - if(alone_in_area(get_area(loc), usr)) - var/obj/docking_port/stationary/S = SSshuttle.getDock("laborcamp_home") - if(S && S.get_docked()) - if(release_door && release_door.density) - release_door.open() - else - usr << "Prisoners can only be released while docked with the station." - else - usr << "Prisoners are only allowed to be released while alone." - - src.updateUsrDialog() - return - - /**********************Prisoner Collection Unit**************************/ /obj/machinery/mineral/stacking_machine/laborstacker var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity. - var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50)) - -/obj/machinery/mineral/stacking_machine/laborstacker/proc/get_ore_values() - var/dat = "" - for(var/ore in ore_values) - var/value = ore_values[ore] - dat += "" - dat += "
[capitalize(ore)][value]
" - return dat + var/list/ore_values = list("glass" = 1, "metal" = 2, "solid plasma" = 20, "plasteel" = 23, "reinforced glass" = 4, "gold" = 20, "silver" = 20, "uranium" = 20, "diamond" = 25, "bananium" = 50) /obj/machinery/mineral/stacking_machine/laborstacker/process_sheet(obj/item/stack/sheet/inp) if(istype(inp)) diff --git a/code/modules/mining/lavaland/lavaland_areas.dm b/code/modules/mining/lavaland/lavaland_areas.dm index 246fee16f8e..d87b2310615 100644 --- a/code/modules/mining/lavaland/lavaland_areas.dm +++ b/code/modules/mining/lavaland/lavaland_areas.dm @@ -27,3 +27,6 @@ /area/lavaland/surface/outdoors name = "Lavaland Wastes" outdoors = 1 + +/area/lavaland/surface/outdoors/explored + name = "Lavaland Labor Camp" \ No newline at end of file diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 723f9988266..a41933fcd67 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -339,7 +339,7 @@ new turf_type(T) /turf/open/floor/plating/asteroid/airless/cave/proc/SpawnMonster(turf/T) if(prob(30)) - if(istype(loc, /area/mine/explored)) + if(istype(loc, /area/mine/explored) || istype(loc, /area/lavaland/surface/outdoors/explored)) return for(var/atom/A in urange(12,T))//Lowers chance of mob clumps if(istype(A, /mob/living/simple_animal/hostile/asteroid)) diff --git a/icons/obj/machines/implantchair.dmi b/icons/obj/machines/implantchair.dmi index 94adefcbf2812f18fd20940bd966a1dd4795f4e0..d57db2b4f3117f60df38d4511038937fab759aed 100644 GIT binary patch literal 8079 zcmXwe1yqzz*!|Ki4blip2na~Xl8bbg(k(41-AgXgCAGxS^?x4q3-`r;u4NcLB_M9%yl_EjD&oUF)G(cn%G8JKrn@(>9xHL50 zUs5`iAJE0ei7VR!Ncbkao}Yt|$s-NZp=WW<1>dB_uM9*oIK?s(J%$!!(gO?IO&z%{ zoFu)3E?h6C%g?+Yl824?4mUd|(Kl@Q@p5V`HQDc-x17-3F=2 zwiNw8K4gH-l3`IDF=uG7gqlDxuRF|X#7UQSP@<)N3dtU^{@LkvA|9KlA5q%;q(En? zrWyxCll+u5b_1bO!ad7>qX}xFdip7QtfFvg2?Dr8o3HW@gSC%vV+4?6>XDs^(ddMA<)d z6qCtyD`P1bcn09k?*9f`hlkZ{v5us%2?$~YR$VCYBn#GAHJzK>L`z!4t4hKIcEku7 z+n3}x(rJy?f4eZHU2-UlBf=64ObEX7{BO|yP2PFFd75pD&QEkqQmc*yv&*HFjGw@z zBB%i&w?xOT%r@1r3BSwAPjToab6KqNi}wHRVQzGTk3R-d8LY$qqQ? z=DSaE>5 zZ}T(Gyu94EK9!7gtL8+!*g-4oKBNo`O03`q$bltd*wY;dHB^y4$@y_KB-oZifERNWo%?y+tL&V%GdOuFBum04t`$&;M|o_MbkRi^CSM1>rW! zQdLONY``|yQY!p0Bi2DvEQt&kVZ5Rwis}OWo`@@^L)jn)-77eDav#u5rAwtz8RG6I zUmgn8U+Rffd|jLLhdzl$oO}vuKHMaL2Qto454#CQ|Df(YX&aLk1$`eRvf<5@B-wtE znwmV}x_R9K7@P#{TGl<%LxstqufH0W?8r~>j3HMjZz)eUm%_G52yrrY!(AVw1~u7^ zkwt3~j^Nc>{xT8oHGL5h8eEh>s2<{eOT)gu?V#@sUW!#-@h_c``maX7+uhqRE`(*Sz>0IO`8f<8ZB(%hjXho z9K2%&cF&dYv-8P!xlN1ZfA>2)ijhz~czVi&cfdZY(}toI7cJAhj7R zswvB)E<;ER+>qk5f6kSH~m6LZQCt=&RKi&+uFXR_yX+f0-h-z`$UKf?PSk3Csc z2IxTd)+Uy&y)etl>2^Sx_=xYW`0_c!6y&;4;!2~qB!wm(#9ivLcOaJ2GL(#z&-4WmG!F-T3)} z*p!JJz;7RHQ^-nRDGf$Z0$Nu}t!qrSH~{T;?UcCV^TaQCZ!5!|O#QSpC_JX$kyN~R zK&elILEfoT@0ml?=Lh`A=$WHD%#v+3GxOh#Nx+n2#=F0L`Q$XD2{;DwB?G+yW?!DX zt@`^CcRUesku2pWL1!QA_%4_$y1F!TGShx)RWu+eW&Ri8DE{_uyiA=cjrHCHizDRq z=S310!lkE$_QJBX4!%=*2!2DzU*Dt*^*{KF2TVxNsK_D~=9|2zY-fWlvDF*u zm~rxG}zx~8%_xQz- zfq><72l?4c*pEqWpqlzaood&UTY$z0s)CjTN<(52-1E?-gv31gO-n5>PerVN3nYhI zt{j)fz8V}R8_+S?CI?>Xf%78ruFPF^=WT{x6C?xatab ztrmgd#>>N<5%PePx!b;0AASKEuGMyHROs&jvm~A2)*l}j*z^%^Z3ewoZU*t{Ke6uV zrqH($Cnx&>*;AXd zg!$S<*JDH=+AGvb3+)LL8?Ts*(j7+$P$CsvO)lDF`D!V2SN9NemG^cC<(NV~j2iS= z4K;$M73h_dUK}Y26|2xl0B2OUdYA40GCS7IdgPlbxvc$Th6Jj6BH8`u_^#DKu2xGX zQ_-(OLxsx`9vN+S@Zmo3|5vW95*#)M=Byf-(#KC5mgSX1P0_Pi;DXtZ*!7KIWp2l@ zu67G$?nI5aBjh1p!BnPGOB{HP=D&JN-<3WufYCNxqAUJk{O)tZM>$HIw!4;Qtuao| zFQer(e6Le$-@y-|JlRi;wt*O9K|3x35NFk{t1x50*hHMh+rfk`K__^IH_UB#MBOcN zm)>kJ$Xs8-&u5pl=eO>YLkLkPRYs_T^XkJ%9iWIgP--lP0u-HN z?x9{8x3(S_BMM^liX2e~lj}JBEqHw$Fo$KU%IudAOG!IJ(pwHA_FBihBK=JBj!sG$ z$)vy^e5G4!sc9>fCgBt332b_NF;%NQcC|m5IN0(p9d*oa{LmT_F=3}_KwWOf{4f5+ z`Hk6nzzjNqY9!fF(n+PZh+5+*HRBht-mV3&a2eqcR0=wTl7KNtTNpbq?jL?OD6w(d z8KbDcy$&IZiQ_l{t};^7); zpU5K%;p<-w#!r){Aw#CUiq0FpR(f6KPR@Hah6<+}%d(Ob)qnf2$GaUnVap9n*po$U z{P%AgAKe2-Yd4`C)8gcTlCPPydxOcmv7_nQZF!D>-C0X-*w}J-FkL~M>|7H)zNi@S z+Rw)XhWOmdZ?=Ez@gL;m4u@ZlKgg-#>0mwZUo$k8$a9~)G1I9&8k(x`ljdQ)#T!AM6ix=*N!D&93Y?VGgu)8!?JMfYCj(MS7j zq+i``-9+a3{Hyp}B5!CfE-z?F5*8r!dFz-SS1&1&gzWVrD!_Q*#0WLH&kTLu>6Tdr zHt?9`+JrtlAC`_?yF)l(kN7iHvIcu1;^3jI&!?$={bD*)0Q4m_K%TcF;6c{i@n9z* zg`+C6t6w?Z4J2512u7TU2>RCX$<1x(_T6|Bz^B1n8!L|Fd`w!`7|GJotI#Op!WPDo z>oeXt6MjCWtu=>d)#cfBKFZ>?dU?4#(V8=sI5g;FkiMwCylPVdn^$-7l?;`M*PcEC z?G-KU1&TZ8ulR6k(JXi{6zK_>R}DE_Mo4OwO`6-_{+md0?GTkUe9pI#uG6=S-aluE zvV2i<8FK$f%ZO^sdiu#JKpx>~z@WYdyy$UViH8hN9yILzK3xS%wlwu!c3HLGoflaj zmO~uzA6>rN+>HPXZ8|K>Hb@kIB0p4#GpYXIjFvI4>g`Ar=SeJSd9xOyk^Oq^Hh#+0 zjY!+1zM`gqK>b&Ro5jrrdK}?25@5Aru6jx;GCoh@`q~Y^DeC-L$o7wmRP!J7-_NHj z90!A|{$*bUk_Mw+=yARlh~ejQg~>DXBoVi!yf85UCNd=8C76Wb459rk;I!DR2GirO z%7`yHb$T#1ftazxvE88!f4a^vK&^6lX({{A_Q0VJryk4O8mO&^b}*Yj+V2lV-pT7D z%%@WQ)AMnItN$(8{yC_F+UB`?xp%y7m^Mv#;rA|;AlNc@rRj2-A&DVvG=bP>ENyo_ zye;BQD;Hzri6J`jbOBek#7SB2MAOC;+#H}7kLQ-4>^RkHz zl^5T_N=`Sh>m7%HAI=5uy`)?^i{94`iy_jTbqC9Hf~1yUT0P6^cjTT?TG!V{_tCZ% z{!k%LknxuN3l*>KVF8Tg4$X0^(cy% z%cq+RbKhsXu%A%lD72lQ?#aDoq(~Af|0=d>7uRQ&(P!4&OkuZanB33+AyG8RdIMr* zWv6KF?AO0v$&0M*v*4|>`KHAl_SugTEiR58!({K@BG#AU9q6l*2e}=(-3FyE7}qXW zN0~3igXVb#ht?1VYYUf8pCQzQIu0F{`c5c6NW!bX>7EXf0fC2a}nHkLOXAYOL9 z0*!Jv(!%&L&2_ad301XRr`DwJlcS>E7PB}bTBq2t10kXjT>c~_-a^%qM|=|rkmz87 z(Tb(zhCH5Eu%w+p@juJRBnpsnYh){&-3xiU=7 z;2UIY78ha*Ow*>($QPG76Wm}_*OxQ=W_x*!3u!B)>>xk7a-anGO!Ao0kT9YDuG~4v z_Ew_gE6zmmM$+lpjCO|2jTo+sz4=IjQ3^7HfYMJszV0V@^CJQP?#>?6+YS1yV(a;)GEm zcuD5r%~;#O`0{Z9r2a8v?1>cM$I6d~k!@kln53EbxuD1!Z60_|3SPa%2ORF~f`DP+ zoD^DO@(-`a37>h)$4&1))))v>xa6CVMTB>JZrt5lyv22&Z4~hsgYhmAT^#ku_8Ph} zAQKRQOS}`y-2~GTnJ*qsvn$XOKD`oRBiBkeH! zE&wU=IDN2mls0WzO7fH8rf1*&MKc6zBgZb%Viwnu`G}VfkDP)chb>!2O%wP^4l|E; zb(iY+1ZV6U1C6yDrx;`J+}vB_t_zYqOl-%%MtXl9s+-q*J5)^ynQH*Udwa_P8f8&AmbQ(X77G-*PjvJM zA2OBPt@ZTs>a{UA3ZvJ)ZfRZ!FfaRs1i#t>K|!ZKhxGifg|6Q_C$3-E zee#J@-l0?D1|84nj^8i!g>6@oI45a2Ukj{)Prp0FJ9I|#kur*kqC!TZPnr%TII0qr zH)*P23YhbWrmq}!rRT?F`}#ft$ATwBX08!vrCZt}Ep+W24ub^;;s*x5DIn4q1DHNP z)~8I*o;r_F=-nR+G(6YZMlt?^ue@9_{Un6e247R!X>nj1KjglV%M_X%k)D6wjuQE43E!vUr0`mV9#Bud2^tUOZqRBqshs z{k`$O!THGw3J4u(w|w$1o=5K`tJ{#8*GPG+1fV~vXTol9*tq@(WWM^CjSRWF=Dx2F zAlpqhs5>*=pfo5;KU8>Gm5vm75%`Tp&8zZA#nt!OI{I2VaUl$WNhi)7Vhj2moniTi zdwrJ84B9_}UF9I&DuCV63blikD5h+4zG>SYOQAl|zrgnIRf4O`rZYQuhbiCyKXE?zNEn#5!e_K(#sS`^i{kwB| z^p!ZFvy*s#Ntes?-WZkOM#_!%p{(;AxZ`OQ(~H8b|5%lOfdi_15fYN?Pw&WTD#86J z7~;?gj^|W+b7tK}7~)SFkbqa$I#3Oy;risGvWO8-S*_Cz`aW9%NL(jiJE-J45`0ai zl4h6b`l82KAPEm!=ShK8iyK;@k6@)IQ?|y0W|*rFLPQvl%>5Cdue_EZBJ$0{QmRZ9 zni0rd+OL2ZtvizSL{64pre!2Yzx(X*?UcKE3{Ho*yC&T|be|zl2|C5iwK%c$gv41?B77lHToJw9 zk&=4w&;O+pk>2>HU(!#F=%4aYeW`&Wbxbl6r5~!83_?Dkshv@#Fib5Pr)n1!O%oB> zqR>0BTi2tYu&KW?KH3n+wP1?L$#>`Pa7_H@wnimb5?7dmeSO3IQ|8Y28c$+2#O%+4 zd09fCCLAurjLEq>|G?Ww1HtvqoSoR&Rp&QaCQgc(S+pE@e~*mPE%#5ZJNj!py0c?S zu;cD2t>%ro+E&Dl=5LcW6%NR3j;Z}Q2kK;e^E9jCBu#hIq#+%t{s+!kpmTggiH&up zqglN-qJf2$p$8{3;xO{l?M3gVL~y?j+H{(ubaq?h3h!k_dLA%*{7F&6x3dK9b|cLq z8<7}fas_{W0l7tl{6U)uY{CM{$2zk5IOtpbEZnXJIi}3UhOegn)R@|qP%Jd*`_!|w z0&?dA_|WKN71a8^$~MHHW;T*cFtCAHxE1|t00JA zz!1+I3F<;rF@TVWP@CO@JmBvKscko*zjnrUuhekx6B^Rtk6*9qb23nbs10TV2QDgJ z^x8`>LSo3|>YTfK*MfQOsB2gMVR(mga&x7oJGgyGty4An`oVXds%9XGU83EaaE1_n zNpv^(`J12Ddpc(IiN$r`{_yfy3~|m$vV+2Q({~QeYJL5RX%JmONpMWvgbkt2HtN(9 z@Y!w`6-4L^Cv1!d_nUg7U#^Bv9swth=nmVOe#^K(VzP$>_tOm?Bc{%fiyU^m5ps%` zS1L6McWY$PzW3RkoOOMozpn2y;^HlE$@jjn3;Z0p3TD_@Sa{{PB)FMw@C1={X1YRY zP^-Uu)}gN`pd02#JBWz%H;D*WsM?+0L_(bINXQ3Qq=*h-nH(hWP;?Ud|MUNcV|}{h z9I!VeDt>lE>qxhr!jygzsP$;tF!)} zl&!p+8bSQIHonE{o;^Qq3i_v8yR&d)SYw3jQ~6kR<9V<|lD*RcHe-p8qR~7}+0aLT z)aG+?AOe113pRTZfp&`wK-b1SDr~wY1KcRvm+Wk#D75o_toygF)@pCJU&%cac5~K^ z<(U3zS267UaW%w^F_}!&fFkWmw)h(gAhWSF4>RUk;mMs$X z0-dVuBV%Q`@g_+`EsY%~>*|jyeC-Gu!q`V?gfX1CO^W*zP&4yG?p&RBci5Y0bo_?t z9;M=cnFG z^J`K{g)=H8JqF(OS$Q+(T*0R9nD_R=S{Thm0N+lY+Kb0o<`2`q5c6g|3}v1c6%AOz zJS9)DdYY5|lN`Hz@p1)x)hy2_qVZ~V3^~Ga0B1h7^g!1#M~_-L41R;PJxOwsHR2@Z zT(?;aqe~n8`2+ac@VNBo%uwh-L7+GT3!>KRzjsnVDnH*Z^(4?}PE9l73g&nNMnm2$ERl)3Q&qi>0UQ*BBn)2y7D z52NhOJtjJTsH0dF77}e^!=ExZjCC-Uk{n$fR8vPi*|fp$g9imZv534En4z1qiH`$s z-RaAFJ^9YQ*irXkvLtvEA+;-)oNLh3*=!;*hi)&iYQ~s8=RmB48>_f_4Ks6yOm0s9036SkZI~WV8dT^rO4Z}&$$eg3 z2%iwFO1C9PE8(RSoL~1gSTgV+1Rznf$rH-Io1rr2__N*}3>_aDAD~hTT|*W(PF00N zdj+e51#+RAh1MY>!p1a=|3&~3fTixLbx|LjH5u^@@uw@Uw(Di1<@P>(4WchblHzMU z`2{3#?|!+}GJkb1AM2L0!^i#5(ab=?%t@%$v46t z-l$Rt775!zF_PKNiSI@1J(Xd}n|O~rWI5P??Q@vFL&ty>d2al5O?=jU-$godX z1n7vGB$Z1-iW``noGUW;PQm)2wX~od$Gr*&jv4UasL~w07sJK1(dEhdwpjkk+wVOw zak~n2LRFcL_*;66b1wE2kFcuO|9_j83i- zU5(svH7NqL6MjyRiuoCtoNfD;(x>&l#(OH_f^1GLzPm5-u(?bKvPvurBTT)=6?Xy=LE?B literal 7622 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 i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return e("end");if(i.tryLoc<=this.prev){var o=b.call(i,"catchLoc"),s=b.call(i,"finallyLoc");if(o&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&b.call(r,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),d(n),O}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;d(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:m(t),resultName:e,nextLoc:n},O}}}("object"==typeof n?n:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,t(190),void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{190:190}],3:[function(t,e,n){e.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],4:[function(t,e,n){var r=t(84)("unscopables"),i=Array.prototype;void 0==i[r]&&t(32)(i,r,{}),e.exports=function(t){i[r][t]=!0}},{32:32,84:84}],5:[function(t,e,n){var r=t(39);e.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},{39:39}],6:[function(t,e,n){"use strict";var r=t(81),i=t(77),a=t(80);e.exports=[].copyWithin||function(t,e){var n=r(this),o=a(n.length),s=i(t,o),u=i(e,o),c=arguments,l=c.length>2?c[2]:void 0,p=Math.min((void 0===l?o:i(l,o))-u,o-s),f=1;for(s>u&&u+p>s&&(f=-1,u+=p-1,s+=p-1);p-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{77:77,80:80,81:81}],7:[function(t,e,n){"use strict";var r=t(81),i=t(77),a=t(80);e.exports=[].fill||function(t){for(var e=r(this),n=a(e.length),o=arguments,s=o.length,u=i(s>1?o[1]:void 0,n),c=s>2?o[2]:void 0,l=void 0===c?n:i(c,n);l>u;)e[u++]=t;return e}},{77:77,80:80,81:81}],8:[function(t,e,n){var r=t(79),i=t(80),a=t(77);e.exports=function(t){return function(e,n,o){var s,u=r(e),c=i(u.length),l=a(o,c);if(t&&n!=n){for(;c>l;)if(s=u[l++],s!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l;return!t&&-1}}},{77:77,79:79,80:80}],9:[function(t,e,n){var r=t(18),i=t(35),a=t(81),o=t(80),s=t(10);e.exports=function(t){var e=1==t,n=2==t,u=3==t,c=4==t,l=6==t,p=5==t||l;return function(f,d,h){for(var m,v,g=a(f),b=i(g),y=r(d,h,3),x=o(b.length),_=0,w=e?s(f,x):n?s(f,0):void 0;x>_;_++)if((p||_ in b)&&(m=b[_],v=y(m,_,g),t))if(e)w[_]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return _;case 2:w.push(m)}else if(c)return!1;return l?-1:u||c?c:w}}},{10:10,18:18,35:35,80:80,81:81}],10:[function(t,e,n){var r=t(39),i=t(37),a=t(84)("species");e.exports=function(t,e){var n;return i(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)||(n=void 0),r(n)&&(n=n[a],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{37:37,39:39,84:84}],11:[function(t,e,n){var r=t(12),i=t(84)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[i])?n:a?r(e):"Object"==(o=r(e))&&"function"==typeof e.callee?"Arguments":o}},{12:12,84:84}],12:[function(t,e,n){var r={}.toString;e.exports=function(t){return r.call(t).slice(8,-1)}},{}],13:[function(t,e,n){"use strict";var r=t(47),i=t(32),a=t(61),o=t(18),s=t(70),u=t(19),c=t(28),l=t(43),p=t(45),f=t(83)("id"),d=t(31),h=t(39),m=t(66),v=t(20),g=Object.isExtensible||h,b=v?"_s":"size",y=0,x=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";i(t,f,++y)}return"O"+t[f]},_=function(t,e){var n,r=x(e);if("F"!==r)return t._i[r];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,i){var l=t(function(t,a){s(t,l,e),t._i=r.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=a&&c(a,n,t[i],t)});return a(l.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=_(e,t);if(n){var r=n.n,i=n.p;delete e._i[n.i],n.r=!0,i&&(i.n=r),r&&(r.p=i),e._f==n&&(e._f=r),e._l==n&&(e._l=i),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!_(this,t)}}),v&&r.setDesc(l.prototype,"size",{get:function(){return u(this[b])}}),l},def:function(t,e,n){var r,i,a=_(t,e);return a?a.v=n:(t._l=a={i:i=x(e,!0),k:e,v:n,p:r=t._l,n:void 0,r:!1},t._f||(t._f=a),r&&(r.n=a),t[b]++,"F"!==i&&(t._i[i]=a)),t},getEntry:_,setStrong:function(t,e,n){l(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?p(0,n.k):"values"==e?p(0,n.v):p(0,[n.k,n.v]):(t._t=void 0,p(1))},n?"entries":"values",!n,!0),m(e)}}},{18:18,19:19,20:20,28:28,31:31,32:32,39:39,43:43,45:45,47:47,61:61,66:66,70:70,83:83}],14:[function(t,e,n){var r=t(28),i=t(11);e.exports=function(t){return function(){if(i(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return r(this,!1,e.push,e),e}}},{11:11,28:28}],15:[function(t,e,n){"use strict";var r=t(32),i=t(61),a=t(5),o=t(39),s=t(70),u=t(28),c=t(9),l=t(31),p=t(83)("weak"),f=Object.isExtensible||o,d=c(5),h=c(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,r){var a=t(function(t,i){s(t,a,e),t._i=m++,t._l=void 0,void 0!=i&&u(i,n,t[r],t)});return i(a.prototype,{"delete":function(t){return o(t)?f(t)?l(t,p)&&l(t[p],this._i)&&delete t[p][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?l(t,p)&&l(t[p],this._i):v(this).has(t):!1}}),a},def:function(t,e,n){return f(a(e))?(l(e,p)||r(e,p,{}),e[p][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:p}},{28:28,31:31,32:32,39:39,5:5,61:61,70:70,83:83,9:9}],16:[function(t,e,n){"use strict";var r=t(30),i=t(23),a=t(62),o=t(61),s=t(28),u=t(70),c=t(39),l=t(25),p=t(44),f=t(67);e.exports=function(t,e,n,d,h,m){var v=r[t],g=v,b=h?"set":"add",y=g&&g.prototype,x={},_=function(t){var e=y[t];a(y,t,"delete"==t?function(t){return m&&!c(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!c(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!c(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!l(function(){(new g).entries().next()}))){var w,k=new g,E=k[b](m?{}:-0,1)!=k,S=l(function(){k.has(1)}),O=p(function(t){new g(t)});O||(g=e(function(e,n){u(e,g,t);var r=new v;return void 0!=n&&s(n,h,r[b],r),r}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(S||w)&&(_("delete"),_("has"),h&&_("get")),(w||E)&&_(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),x[t]=g,i(i.G+i.W+i.F*(g!=v),x),m||d.setStrong(g,t,h),g}},{23:23,25:25,28:28,30:30,39:39,44:44,61:61,62:62,67:67,70:70}],17:[function(t,e,n){var r=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=r)},{}],18:[function(t,e,n){var r=t(3);e.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},{3:3}],19:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],20:[function(t,e,n){e.exports=!t(25)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{25:25}],21:[function(t,e,n){var r=t(39),i=t(30).document,a=r(i)&&r(i.createElement);e.exports=function(t){return a?i.createElement(t):{}}},{30:30,39:39}],22:[function(t,e,n){var r=t(47);e.exports=function(t){var e=r.getKeys(t),n=r.getSymbols;if(n)for(var i,a=n(t),o=r.isEnum,s=0;a.length>s;)o.call(t,i=a[s++])&&e.push(i);return e}},{47:47}],23:[function(t,e,n){var r=t(30),i=t(17),a=t(32),o=t(62),s=t(18),u="prototype",c=function(t,e,n){var l,p,f,d,h=t&c.F,m=t&c.G,v=t&c.S,g=t&c.P,b=t&c.B,y=m?r:v?r[e]||(r[e]={}):(r[e]||{})[u],x=m?i:i[e]||(i[e]={}),_=x[u]||(x[u]={});m&&(n=e);for(l in n)p=!h&&y&&l in y,f=(p?y:n)[l],d=b&&p?s(f,r):g&&"function"==typeof f?s(Function.call,f):f,y&&!p&&o(y,l,f),x[l]!=f&&a(x,l,d),g&&_[l]!=f&&(_[l]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},{17:17,18:18,30:30,32:32,62:62}],24:[function(t,e,n){var r=t(84)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(i){}}return!0}},{84:84}],25:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],26:[function(t,e,n){"use strict";var r=t(32),i=t(62),a=t(25),o=t(19),s=t(84);e.exports=function(t,e,n){var u=s(t),c=""[t];a(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(i(String.prototype,t,n(o,u,c)),r(RegExp.prototype,u,2==e?function(t,e){return c.call(t,this,e)}:function(t){return c.call(t,this)}))}},{19:19,25:25,32:32,62:62,84:84}],27:[function(t,e,n){"use strict";var r=t(5);e.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{5:5}],28:[function(t,e,n){var r=t(18),i=t(41),a=t(36),o=t(5),s=t(80),u=t(85);e.exports=function(t,e,n,c){var l,p,f,d=u(t),h=r(n,c,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(a(d))for(l=s(t.length);l>m;m++)e?h(o(p=t[m])[0],p[1]):h(t[m]);else for(f=d.call(t);!(p=f.next()).done;)i(f,h,p.value,e)}},{18:18,36:36,41:41,5:5,80:80,85:85}],29:[function(t,e,n){var r=t(79),i=t(47).getNames,a={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return i(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==a.call(t)?s(t):i(r(t))}},{47:47,79:79}],30:[function(t,e,n){var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},{}],31:[function(t,e,n){var r={}.hasOwnProperty;e.exports=function(t,e){return r.call(t,e)}},{}],32:[function(t,e,n){var r=t(47),i=t(60);e.exports=t(20)?function(t,e,n){return r.setDesc(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},{20:20,47:47,60:60}],33:[function(t,e,n){e.exports=t(30).document&&document.documentElement},{30:30}],34:[function(t,e,n){e.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],35:[function(t,e,n){var r=t(12);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},{12:12}],36:[function(t,e,n){var r=t(46),i=t(84)("iterator"),a=Array.prototype;e.exports=function(t){return void 0!==t&&(r.Array===t||a[i]===t)}},{46:46,84:84}],37:[function(t,e,n){var r=t(12);e.exports=Array.isArray||function(t){return"Array"==r(t)}},{12:12}],38:[function(t,e,n){var r=t(39),i=Math.floor;e.exports=function(t){return!r(t)&&isFinite(t)&&i(t)===t}},{39:39}],39:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],40:[function(t,e,n){var r=t(39),i=t(12),a=t(84)("match");e.exports=function(t){var e;return r(t)&&(void 0!==(e=t[a])?!!e:"RegExp"==i(t))}},{12:12,39:39,84:84}],41:[function(t,e,n){var r=t(5);e.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){var o=t["return"];throw void 0!==o&&r(o.call(t)),a}}},{5:5}],42:[function(t,e,n){"use strict";var r=t(47),i=t(60),a=t(67),o={};t(32)(o,t(84)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=r.create(o,{next:i(1,n)}),a(t,e+" Iterator")}},{32:32,47:47,60:60,67:67,84:84}],43:[function(t,e,n){"use strict";var r=t(49),i=t(23),a=t(62),o=t(32),s=t(31),u=t(46),c=t(42),l=t(67),p=t(47).getProto,f=t(84)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,x,_){c(n,e,b);var w,k,E=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+" Iterator",O=y==v,C=!1,A=t.prototype,P=A[f]||A[h]||y&&A[y],T=P||E(y);if(P){var j=p(T.call(new t));l(j,S,!0),!r&&s(A,h)&&o(j,f,g),O&&P.name!==v&&(C=!0,T=function(){return P.call(this)})}if(r&&!_||!d&&!C&&A[f]||o(A,f,T),u[e]=T,u[S]=g,y)if(w={values:O?T:E(v),keys:x?T:E(m),entries:O?E("entries"):T},_)for(k in w)k in A||a(A,k,w[k]);else i(i.P+i.F*(d||C),e,w);return w}},{23:23,31:31,32:32,42:42,46:46,47:47,49:49,62:62,67:67,84:84}],44:[function(t,e,n){var r=t(84)("iterator"),i=!1;try{var a=[7][r]();a["return"]=function(){i=!0},Array.from(a,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){n=!0},a[r]=function(){return o},t(a)}catch(s){}return n}},{84:84}],45:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],46:[function(t,e,n){e.exports={}},{}],47:[function(t,e,n){var r=Object;e.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},{}],48:[function(t,e,n){var r=t(47),i=t(79);e.exports=function(t,e){for(var n,a=i(t),o=r.getKeys(a),s=o.length,u=0;s>u;)if(a[n=o[u++]]===e)return n}},{47:47,79:79}],49:[function(t,e,n){e.exports=!1},{}],50:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],51:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],52:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],53:[function(t,e,n){var r,i,a,o=t(30),s=t(76).set,u=o.MutationObserver||o.WebKitMutationObserver,c=o.process,l=o.Promise,p="process"==t(12)(c),f=function(){var t,e,n;for(p&&(t=c.domain)&&(c.domain=null,t.exit());r;)e=r.domain,n=r.fn,e&&e.enter(),n(),e&&e.exit(),r=r.next;i=void 0,t&&t.enter()};if(p)a=function(){c.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),a=function(){h.data=d=-d}}else a=l&&l.resolve?function(){l.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:p&&c.domain};i&&(i.next=e),r||(r=e,a()),i=e}},{12:12,30:30,76:76}],54:[function(t,e,n){var r=t(47),i=t(81),a=t(35);e.exports=t(25)(function(){var t=Object.assign,e={},n={},r=Symbol(),i="abcdefghijklmnopqrst";return e[r]=7,i.split("").forEach(function(t){n[t]=t}),7!=t({},e)[r]||Object.keys(t({},n)).join("")!=i})?function(t,e){for(var n=i(t),o=arguments,s=o.length,u=1,c=r.getKeys,l=r.getSymbols,p=r.isEnum;s>u;)for(var f,d=a(o[u++]),h=l?c(d).concat(l(d)):c(d),m=h.length,v=0;m>v;)p.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{25:25,35:35,47:47,81:81}],55:[function(t,e,n){var r=t(23),i=t(17),a=t(25);e.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],o={};o[t]=e(n),r(r.S+r.F*a(function(){n(1)}),"Object",o)}},{17:17,23:23,25:25}],56:[function(t,e,n){var r=t(47),i=t(79),a=r.isEnum;e.exports=function(t){return function(e){for(var n,o=i(e),s=r.getKeys(o),u=s.length,c=0,l=[];u>c;)a.call(o,n=s[c++])&&l.push(t?[n,o[n]]:o[n]);return l}}},{47:47,79:79}],57:[function(t,e,n){var r=t(47),i=t(5),a=t(30).Reflect;e.exports=a&&a.ownKeys||function(t){var e=r.getNames(i(t)),n=r.getSymbols;return n?e.concat(n(t)):e}},{30:30,47:47,5:5}],58:[function(t,e,n){"use strict";var r=t(59),i=t(34),a=t(3);e.exports=function(){for(var t=a(this),e=arguments.length,n=Array(e),o=0,s=r._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var r,a=this,o=arguments,c=o.length,l=0,p=0;if(!u&&!c)return i(t,n,a);if(r=n.slice(),u)for(;e>l;l++)r[l]===s&&(r[l]=o[p++]);for(;c>p;)r.push(o[p++]);return i(t,r,a)}}},{3:3,34:34,59:59}],59:[function(t,e,n){e.exports=t(30)},{30:30}],60:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],61:[function(t,e,n){var r=t(62);e.exports=function(t,e){for(var n in e)r(t,n,e[n]);return t}},{62:62}],62:[function(t,e,n){var r=t(30),i=t(32),a=t(83)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(17).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(a)||i(n,a,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||i(n,"name",e)),t===r?t[e]=n:(o||delete t[e],i(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[a]||s.call(this)})},{17:17,30:30,32:32,83:83}],63:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],64:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],65:[function(t,e,n){var r=t(47).getDesc,i=t(39),a=t(5),o=function(t,e){if(a(t),!i(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,i){try{i=t(18)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),n=!(e instanceof Array)}catch(a){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:i(t,e),t}}({},!1):void 0),check:o}},{18:18,39:39,47:47,5:5}],66:[function(t,e,n){"use strict";var r=t(30),i=t(47),a=t(20),o=t(84)("species");e.exports=function(t){var e=r[t];a&&e&&!e[o]&&i.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{20:20,30:30,47:47,84:84}],67:[function(t,e,n){var r=t(47).setDesc,i=t(31),a=t(84)("toStringTag");e.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,a)&&r(t,a,{configurable:!0,value:e})}},{31:31,47:47,84:84}],68:[function(t,e,n){var r=t(30),i="__core-js_shared__",a=r[i]||(r[i]={});e.exports=function(t){return a[t]||(a[t]={})}},{30:30}],69:[function(t,e,n){var r=t(5),i=t(3),a=t(84)("species");e.exports=function(t,e){var n,o=r(t).constructor;return void 0===o||void 0==(n=r(o)[a])?e:i(n)}},{3:3,5:5,84:84}],70:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],71:[function(t,e,n){var r=t(78),i=t(19);e.exports=function(t){return function(e,n){var a,o,s=i(e)+"",u=r(n),c=s.length;return 0>u||u>=c?t?"":void 0:(a=s.charCodeAt(u),55296>a||a>56319||u+1===c||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):a:t?s.slice(u,u+2):(a-55296<<10)+(o-56320)+65536)}}},{19:19,78:78}],72:[function(t,e,n){var r=t(40),i=t(19);e.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return i(t)+""}},{19:19,40:40}],73:[function(t,e,n){var r=t(80),i=t(74),a=t(19);e.exports=function(t,e,n,o){var s=a(t)+"",u=s.length,c=void 0===n?" ":n+"",l=r(e);if(u>=l)return s;""==c&&(c=" ");var p=l-u,f=i.call(c,Math.ceil(p/c.length));return f.length>p&&(f=f.slice(0,p)),o?f+s:s+f}},{19:19,74:74,80:80}],74:[function(t,e,n){"use strict";var r=t(78),i=t(19);e.exports=function(t){var e=i(this)+"",n="",a=r(t);if(0>a||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(e+=e))1&a&&(n+=e);return n}},{19:19,78:78}],75:[function(t,e,n){var r=t(23),i=t(19),a=t(25),o=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",s="["+o+"]",u="​…",c=RegExp("^"+s+s+"*"),l=RegExp(s+s+"*$"),p=function(t,e){var n={};n[t]=e(f),r(r.P+r.F*a(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=p.trim=function(t,e){return t=i(t)+"",1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(l,"")),t};e.exports=p},{19:19,23:23,25:25}],76:[function(t,e,n){var r,i,a,o=t(18),s=t(34),u=t(33),c=t(21),l=t(30),p=l.process,f=l.setImmediate,d=l.clearImmediate,h=l.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},r(m),m},d=function(t){delete v[t]},"process"==t(12)(p)?r=function(t){p.nextTick(o(b,t,1))}:h?(i=new h,a=i.port2,i.port1.onmessage=y,r=o(a.postMessage,a,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",y,!1)):r=g in c("script")?function(t){u.appendChild(c("script"))[g]=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{12:12,18:18,21:21,30:30,33:33,34:34}],77:[function(t,e,n){var r=t(78),i=Math.max,a=Math.min;e.exports=function(t,e){return t=r(t),0>t?i(t+e,0):a(t,e)}},{78:78}],78:[function(t,e,n){var r=Math.ceil,i=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?i:r)(t)}},{}],79:[function(t,e,n){var r=t(35),i=t(19);e.exports=function(t){return r(i(t))}},{19:19,35:35}],80:[function(t,e,n){var r=t(78),i=Math.min;e.exports=function(t){return t>0?i(r(t),9007199254740991):0}},{78:78}],81:[function(t,e,n){var r=t(19);e.exports=function(t){return Object(r(t))}},{19:19}],82:[function(t,e,n){var r=t(39);e.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},{39:39}],83:[function(t,e,n){var r=0,i=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+i).toString(36))}},{}],84:[function(t,e,n){var r=t(68)("wks"),i=t(83),a=t(30).Symbol;e.exports=function(t){return r[t]||(r[t]=a&&a[t]||(a||i)("Symbol."+t))}},{30:30,68:68,83:83}],85:[function(t,e,n){var r=t(11),i=t(84)("iterator"),a=t(46);e.exports=t(17).getIteratorMethod=function(t){return void 0!=t?t[i]||t["@@iterator"]||a[r(t)]:void 0}},{11:11,17:17,46:46,84:84}],86:[function(t,e,n){"use strict";var r,i=t(47),a=t(23),o=t(20),s=t(60),u=t(33),c=t(21),l=t(31),p=t(12),f=t(34),d=t(25),h=t(5),m=t(3),v=t(39),g=t(81),b=t(79),y=t(78),x=t(77),_=t(80),w=t(35),k=t(83)("__proto__"),E=t(9),S=t(8)(!1),O=Object.prototype,C=Array.prototype,A=C.slice,P=C.join,T=i.setDesc,j=i.getDesc,M=i.setDescs,L={};o||(r=!d(function(){return 7!=T(c("div"),"a",{get:function(){return 7}}).a}),i.setDesc=function(t,e,n){if(r)try{return T(t,e,n)}catch(i){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},i.getDesc=function(t,e){if(r)try{return j(t,e)}catch(n){}return l(t,e)?s(!O.propertyIsEnumerable.call(t,e),t[e]):void 0},i.setDescs=M=function(t,e){h(t);for(var n,r=i.getKeys(e),a=r.length,o=0;a>o;)i.setDesc(t,n=r[o++],e[n]);return t}),a(a.S+a.F*!o,"Object",{getOwnPropertyDescriptor:i.getDesc,defineProperty:i.setDesc,defineProperties:M});var F="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=F.concat("length","prototype"),R=F.length,D=function(){var t,e=c("iframe"),n=R,r=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("