From 1bfa7850570ad3c2fd1821381d5790dbdd81dcfe Mon Sep 17 00:00:00 2001 From: Lagomorphica <49899119+Lagomorphica@users.noreply.github.com> Date: Sat, 27 Apr 2024 03:08:43 +1000 Subject: [PATCH 01/14] Makes spotter laser designators, scout laser designators, and scout cloak unmeltable + indestructible. (#6193) # About the pull request The spotter laser designator, scout laser designator and scout cloak are now unmeltable + indestructible as other irreplaceable specialist gear is. # Explain why it's good for the game The spotter laser designator stood out to me as the most egregious considering it is mandatory to play the role of spotter effectively - it should not be destroyable or acidable when it is expected for you to carry it and when past attempts have been made to enforce reading the pamphlet and using it. The scout cloak is also OOCly required to be carried and is irreplaceable + a mandatory part of the role. It seems more like an oversight than an intended thing to have them meltable. The scout laser designators I am not entirely certain on making although it is also irreplaceable and important as a major facet of the scouts role. # Testing Photographs and Procedure I did test this PR to ensure it worked by attempting to melt and firing a standard OB at the items. They survived.
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: The spotter laser designators, scout laser designators, and scout cloak are now unmeltable and indestructible to explosions. /:cl: --- code/game/objects/items/devices/binoculars.dm | 5 ++++- code/game/objects/items/storage/backpack.dm | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index 84da7d9acff4..b39526e231b5 100644 --- a/code/game/objects/items/devices/binoculars.dm +++ b/code/game/objects/items/devices/binoculars.dm @@ -354,13 +354,16 @@ /obj/item/device/binoculars/range/designator/scout name = "scout laser designator" desc = "An improved laser designator, issued to USCM scouts, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes." + unacidable = TRUE + indestructible = TRUE cooldown_duration = 80 target_acquisition_delay = 30 /obj/item/device/binoculars/range/designator/spotter name = "spotter's laser designator" desc = "A specially-designed laser designator, issued to USCM spotters, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes. Additionally, a trained spotter can laze targets for a USCM marksman, increasing the speed of target acquisition. A targeting beam will connect the binoculars to the target, but it may inherit the user's cloak, if possible." - + unacidable = TRUE + indestructible = TRUE var/is_spotting = FALSE var/spotting_time = 10 SECONDS var/spotting_cooldown_delay = 5 SECONDS diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 5e4bc8c726bd..4882db3b83ea 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -729,6 +729,8 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r name = "\improper M68 Thermal Cloak" desc = "The lightweight thermal dampeners and optical camouflage provided by this cloak are weaker than those found in standard USCM ghillie suits. In exchange, the cloak can be worn over combat armor and offers the wearer high maneuverability and adaptability to many environments." icon_state = "scout_cloak" + unacidable = TRUE + indestructible = TRUE uniform_restricted = list(/obj/item/clothing/suit/storage/marine/M3S) //Need to wear Scout armor and helmet to equip this. has_gamemode_skin = FALSE //same sprite for all gamemode. var/camo_active = FALSE From 0a0e85ea30c621fb74658adfeb31ef40fd2b69e4 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Fri, 26 Apr 2024 18:13:14 +0100 Subject: [PATCH 02/14] Automatic changelog for PR #6193 [ci skip] --- html/changelogs/AutoChangeLog-pr-6193.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6193.yml diff --git a/html/changelogs/AutoChangeLog-pr-6193.yml b/html/changelogs/AutoChangeLog-pr-6193.yml new file mode 100644 index 000000000000..e82081137783 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6193.yml @@ -0,0 +1,4 @@ +author: "Lagomorphica" +delete-after: True +changes: + - balance: "The spotter laser designators, scout laser designators, and scout cloak are now unmeltable and indestructible to explosions." \ No newline at end of file From e74e9c49e22b40196c7d59ae0fab8238f57277e0 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 27 Apr 2024 01:09:20 +0000 Subject: [PATCH 03/14] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-6193.yml | 4 ---- html/changelogs/archive/2024-04.yml | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-6193.yml diff --git a/html/changelogs/AutoChangeLog-pr-6193.yml b/html/changelogs/AutoChangeLog-pr-6193.yml deleted file mode 100644 index e82081137783..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6193.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Lagomorphica" -delete-after: True -changes: - - balance: "The spotter laser designators, scout laser designators, and scout cloak are now unmeltable and indestructible to explosions." \ No newline at end of file diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml index 9aab61922f48..bf3a3c8de208 100644 --- a/html/changelogs/archive/2024-04.yml +++ b/html/changelogs/archive/2024-04.yml @@ -349,3 +349,7 @@ hand labeler. realforest2001: - spellcheck: Fixes a typo for M4RA AP Ammo in the ASRS menu. +2024-04-27: + Lagomorphica: + - balance: The spotter laser designators, scout laser designators, and scout cloak + are now unmeltable and indestructible to explosions. From 0f67b3a451317e0709e5be54817bc3ba33245ba1 Mon Sep 17 00:00:00 2001 From: HumiliatedGoblin <87675952+HumiliatedGoblin@users.noreply.github.com> Date: Wed, 1 May 2024 18:41:59 +1200 Subject: [PATCH 04/14] Deconstructing walls without repairing them (#6094) # About the pull request You now need to have disarm or above to slice through walls, and help intent to repair walls. # Explain why it's good for the game Comtechs now don't need to spend 30 seconds repairing a wall, waste like 5 units of welding fuel only to deconstruct it. Now you can have choice in what you do! :D # Testing Photographs and Procedure
Screenshots & Videos it works trust
# Changelog :cl: qol: Now needs help intent to repair walls qol: Now needs disarm, grab and harm intent to deconstruct walls /:cl: --------- Co-authored-by: ihatethisengine <115417687+ihatethisengine@users.noreply.github.com> --- code/game/turfs/walls/walls.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm index 251b23ad9c57..1781739176b7 100644 --- a/code/game/turfs/walls/walls.dm +++ b/code/game/turfs/walls/walls.dm @@ -9,7 +9,7 @@ var/hull = 0 var/walltype = WALL_METAL /// when walls smooth with one another, the type of junction each wall is. - var/junctiontype + var/junctiontype var/thermite = 0 var/melting = FALSE var/claws_minimum = CLAW_TYPE_SHARP @@ -24,7 +24,7 @@ var/damage = 0 /// Wall will break down to girders if damage reaches this point - var/damage_cap = HEALTH_WALL + var/damage_cap = HEALTH_WALL var/damage_overlay var/global/damage_overlays[8] @@ -38,7 +38,7 @@ var/d_state = 0 //Normal walls are now as difficult to remove as reinforced walls /// the acid hole inside the wall - var/obj/effect/acid_hole/acided_hole + var/obj/effect/acid_hole/acided_hole var/acided_hole_dir = SOUTH var/special_icon = 0 @@ -178,7 +178,7 @@ switch(d_state) if(WALL_STATE_WELD) - . += SPAN_INFO("The outer plating is intact. A blowtorch should slice it open.") + . += SPAN_INFO("The outer plating is intact. If you are not on help intent, a blowtorch should slice it open.") if(WALL_STATE_SCREW) . += SPAN_INFO("The outer plating has been sliced open. A screwdriver should remove the support lines.") if(WALL_STATE_WIRECUTTER) @@ -482,6 +482,8 @@ /turf/closed/wall/proc/try_weldingtool_usage(obj/item/W, mob/user) if(!damage || !iswelder(W)) return FALSE + if(user.a_intent != INTENT_HELP) + return FALSE var/obj/item/tool/weldingtool/WT = W if(WT.remove_fuel(0, user)) @@ -504,6 +506,8 @@ if(!(WT.remove_fuel(0, user))) to_chat(user, SPAN_WARNING("You need more welding fuel!")) return + if(user.a_intent == INTENT_HELP) + return playsound(src, 'sound/items/Welder.ogg', 25, 1) user.visible_message(SPAN_NOTICE("[user] begins slicing through the outer plating."), From 82186af822d94993aab6c6ca508df0fe2e4f26ae Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 1 May 2024 07:46:38 +0100 Subject: [PATCH 05/14] Automatic changelog for PR #6094 [ci skip] --- html/changelogs/AutoChangeLog-pr-6094.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6094.yml diff --git a/html/changelogs/AutoChangeLog-pr-6094.yml b/html/changelogs/AutoChangeLog-pr-6094.yml new file mode 100644 index 000000000000..24ca7af1b3c4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6094.yml @@ -0,0 +1,5 @@ +author: "HumiliatedGoblin" +delete-after: True +changes: + - qol: "Now needs help intent to repair walls" + - qol: "Now needs disarm, grab and harm intent to deconstruct walls" \ No newline at end of file From 029cdbdae1a118c40b558a75e8171fbd49d560a6 Mon Sep 17 00:00:00 2001 From: ihatethisengine <115417687+ihatethisengine@users.noreply.github.com> Date: Wed, 1 May 2024 10:02:34 +0300 Subject: [PATCH 06/14] Corrupted Queen can set up personal alliances with humans (#6155) # About the pull request Corrupted queen can mark people of her choice (within her view) as allies. Corrupted xenos won't be able to harm them. Just as regular alliances, personal alliances break on queen's death. Synths are human subtypes so you can ally them too. Credits to @SubjectD9341 for the sprites. # Explain why it's good for the game More roleplay :) https://github.com/cmss13-devs/cmss13/assets/115417687/2bd55b2c-c4c5-4859-ab59-1112be9f4951 # Testing Photographs and Procedure # Changelog :cl: ihatethisengine add: Corrupted Queen can set up personal alliances with humans /:cl: --------- Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- code/__DEFINES/mobs.dm | 1 + code/datums/mob_hud.dm | 4 + .../xenomorph/abilities/queen/queen_powers.dm | 124 +++++++++++++++++- .../living/carbon/xenomorph/hive_status.dm | 51 ++++++- icons/mob/hud/hud.dmi | Bin 19425 -> 19605 bytes 5 files changed, 170 insertions(+), 10 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index e2bd868f9a80..dbd8dbe7ce41 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -120,6 +120,7 @@ #define CANDAZE (1<<18) #define CANSLOW (1<<19) #define NO_PERMANENT_DAMAGE (1<<20) +#define CORRUPTED_ALLY (1<<21) // ============================= // hive types diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 5e57b8f5616c..88785474bc23 100644 --- a/code/datums/mob_hud.dm +++ b/code/datums/mob_hud.dm @@ -422,6 +422,10 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( if(hive && hive.color) holder3.color = hive.color + if(status_flags & CORRUPTED_ALLY) + holder4.color = "#80ff80" + holder4.icon_state = "hudalien_ally" + if(stat == DEAD || status_flags & FAKEDEATH) if(revive_enabled) if(!client) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm index 1f37651b2c8e..38e643e0d25c 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm @@ -371,10 +371,17 @@ xeno.use_plasma(plasma_cost_jelly) return /datum/action/xeno_action/onclick/manage_hive/use_ability(atom/Atom) - var/mob/living/carbon/xenomorph/queen/queenbanish = owner + var/mob/living/carbon/xenomorph/queen/queen_manager = owner plasma_cost = 0 - - var/choice = tgui_input_list(queenbanish, "Manage The Hive", "Hive Management", list("Banish (500)", "Re-Admit (100)", "De-evolve (500)", "Reward Jelly (500)", "Exchange larva for evolution (100)",), theme="hive_status") + var/list/options = list("Banish (500)", "Re-Admit (100)", "De-evolve (500)", "Reward Jelly (500)", "Exchange larva for evolution (100)",) + if(queen_manager.hive.hivenumber == XENO_HIVE_CORRUPTED) + var/datum/hive_status/corrupted/hive = queen_manager.hive + options += "Add Personal Ally" + if(length(hive.personal_allies)) + options += "Remove Personal Ally" + options += "Clear Personal Allies" + + var/choice = tgui_input_list(queen_manager, "Manage The Hive", "Hive Management", options, theme="hive_status") switch(choice) if("Banish (500)") banish() @@ -383,9 +390,118 @@ if("De-evolve (500)") de_evolve_other() if("Reward Jelly (500)") - give_jelly_reward(queenbanish.hive) + give_jelly_reward(queen_manager.hive) if("Exchange larva for evolution (100)") give_evo_points() + if("Add Personal Ally") + add_personal_ally() + if("Remove Personal Ally") + remove_personal_ally() + if("Clear Personal Allies") + clear_personal_allies() + +/datum/action/xeno_action/onclick/manage_hive/proc/add_personal_ally() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + + if(!user_xeno.check_state()) + return + + var/datum/hive_status/corrupted/hive = user_xeno.hive + var/list/target_list = list() + if(!user_xeno.client) + return + for(var/mob/living/carbon/human/possible_target in range(7, user_xeno.client.eye)) + if(possible_target.stat == DEAD) + continue + if(possible_target.status_flags & CORRUPTED_ALLY) + continue + if(possible_target.hivenumber) + continue + target_list += possible_target + + if(!length(target_list)) + to_chat(user_xeno, SPAN_WARNING("No talls in view.")) + return + var/mob/living/target_mob = tgui_input_list(usr, "Target", "Set Up a Personal Alliance With...", target_list, theme="hive_status") + + if(!user_xeno.check_state(TRUE)) + return + + if(!target_mob) + return + + if(target_mob.hivenumber) + to_chat(user_xeno, SPAN_WARNING("We cannot set up a personal alliance with a hive cultist.")) + return + + hive.add_personal_ally(target_mob) + +/datum/action/xeno_action/onclick/manage_hive/proc/remove_personal_ally() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + + if(!user_xeno.check_state()) + return + + var/datum/hive_status/corrupted/hive = user_xeno.hive + + if(!length(hive.personal_allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + var/list/mob/living/allies = list() + var/list/datum/weakref/dead_refs = list() + for(var/datum/weakref/ally_ref as anything in hive.personal_allies) + var/mob/living/ally = ally_ref.resolve() + if(ally) + allies += ally + continue + dead_refs += ally_ref + + hive.personal_allies -= dead_refs + + if(!length(allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + var/mob/living/target_mob = tgui_input_list(usr, "Target", "Break the Personal Alliance With...", allies, theme="hive_status") + + if(!target_mob) + return + + var/target_mob_ref = WEAKREF(target_mob) + + if(!(target_mob_ref in hive.personal_allies)) + return + + if(!user_xeno.check_state(TRUE)) + return + + hive.remove_personal_ally(target_mob_ref) + +/datum/action/xeno_action/onclick/manage_hive/proc/clear_personal_allies() + var/mob/living/carbon/xenomorph/queen/user_xeno = owner + if(user_xeno.hive.hivenumber != XENO_HIVE_CORRUPTED) + return + + if(!user_xeno.check_state()) + return + + var/datum/hive_status/corrupted/hive = user_xeno.hive + if(!length(hive.personal_allies)) + to_chat(user_xeno, SPAN_WARNING("We don't have personal allies.")) + return + + if(tgui_alert(user_xeno, "Are you sure you want to clear personal allies?", "Clear Personal Allies", list("No", "Yes"), 10 SECONDS) != "Yes") + return + + if(!length(hive.personal_allies)) + return + + hive.clear_personal_allies() /datum/action/xeno_action/onclick/manage_hive/proc/banish() diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index 22b061715892..baa736382733 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -979,6 +979,7 @@ need_round_end_check = TRUE var/list/defectors = list() + var/list/datum/weakref/personal_allies = list() /datum/hive_status/corrupted/add_xeno(mob/living/carbon/xenomorph/xeno) . = ..() @@ -1253,9 +1254,9 @@ if(living_xeno_queen) if(allies[faction]) - xeno_message(SPAN_XENOANNOUNCE("Your Queen set up an alliance with [faction]!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("Our Queen set up an alliance with [faction]!"), 3, hivenumber) else - xeno_message(SPAN_XENOANNOUNCE("Your Queen broke the alliance with [faction]!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("Our Queen broke the alliance with [faction]!"), 3, hivenumber) for(var/number in GLOB.hive_datum) var/datum/hive_status/target_hive = GLOB.hive_datum[number] @@ -1291,14 +1292,14 @@ addtimer(CALLBACK(src, PROC_REF(handle_defectors), faction), 11 SECONDS) /datum/hive_status/corrupted/proc/give_defection_choice(mob/living/carbon/xenomorph/xeno, faction) - if(tgui_alert(xeno, "Your Queen has broken the alliance with the [faction]. The device inside your carapace begins to suppress your connection with the Hive. Do you remove it and stay loyal to her?", "Alliance broken!", list("Stay loyal", "Obey the talls"), 10 SECONDS) == "Obey the talls") + if(tgui_alert(xeno, "Our Queen has broken the alliance with the [faction]. The device inside our carapace begins to suppress our connection with the Hive. Do we remove it and stay loyal to her?", "Alliance broken!", list("Stay loyal", "Obey the talls"), 10 SECONDS) == "Obey the talls") if(!xeno.iff_tag) to_chat(xeno, SPAN_XENOWARNING("It's too late now. The device is gone and our service to the Queen continues.")) return defectors += xeno xeno.set_hive_and_update(XENO_HIVE_RENEGADE) to_chat(xeno, SPAN_XENOANNOUNCE("You lost the connection with your Hive. Now you have no Queen, only your masters.")) - to_chat(xeno, SPAN_NOTICE("Our instincts have changed, we seem compelled to protect [english_list(xeno.iff_tag.faction_groups, "no one")].")) + to_chat(xeno, SPAN_NOTICE("Your instincts have changed, you seem compelled to protect [english_list(xeno.iff_tag.faction_groups, "no one")].")) return xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("We rip out [xeno.iff_tag]! For the Hive!")) xeno.adjustBruteLoss(50) @@ -1313,20 +1314,58 @@ continue if(!(faction in xeno.iff_tag.faction_groups)) continue - xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("You rip out [xeno.iff_tag]! For the hive!")) + xeno.visible_message(SPAN_XENOWARNING("[xeno] rips out [xeno.iff_tag]!"), SPAN_XENOWARNING("We rip out [xeno.iff_tag]! For the hive!")) xeno.adjustBruteLoss(50) xeno.iff_tag.forceMove(get_turf(xeno)) xeno.iff_tag = null if(!length(defectors)) return - xeno_message(SPAN_XENOANNOUNCE("You sense that [english_list(defectors)] turned their backs against their sisters and the Queen in favor of their slavemasters!"), 3, hivenumber) + xeno_message(SPAN_XENOANNOUNCE("We sense that [english_list(defectors)] turned their backs against their sisters and the Queen in favor of their slavemasters!"), 3, hivenumber) defectors.Cut() +/datum/hive_status/corrupted/proc/add_personal_ally(mob/living/ally) + personal_allies += WEAKREF(ally) + ally.status_flags |= CORRUPTED_ALLY + ally.med_hud_set_status() + xeno_message(SPAN_XENOANNOUNCE("Our Queen proclaimed [ally] our ally! We must not harm them."), 3, hivenumber) + +/datum/hive_status/corrupted/proc/remove_personal_ally(datum/weakref/ally_ref) + personal_allies -= ally_ref + var/mob/living/ally = ally_ref.resolve() + if(ally) + ally.status_flags &= ~CORRUPTED_ALLY + ally.med_hud_set_status() + xeno_message(SPAN_XENOANNOUNCE("Our Queen has declared that [ally] is no longer our ally!"), 3, hivenumber) + +/datum/hive_status/corrupted/proc/clear_personal_allies(death = FALSE) + for(var/datum/weakref/ally_ref in personal_allies) + var/mob/living/ally = ally_ref.resolve() + if(!ally) + continue + ally.status_flags &= ~CORRUPTED_ALLY + ally.med_hud_set_status() + personal_allies.Cut() + if(!death) + xeno_message(SPAN_XENOANNOUNCE("Our Queen has broken all personal alliances with the talls! Favoritism is no more."), 3, hivenumber) + return + xeno_message(SPAN_XENOWARNING("With the death of the Queen, her friends no longer matter to us."), 3, hivenumber) + +/datum/hive_status/corrupted/is_ally(mob/living/living_mob) + if(living_mob.status_flags & CORRUPTED_ALLY) + return TRUE + return ..() + /datum/hive_status/proc/override_evilution(evil, override) if(SSxevolution) SSxevolution.override_power(hivenumber, evil, override) +/datum/hive_status/corrupted/on_queen_death() + ..() + if(!length(personal_allies)) + return + clear_personal_allies(TRUE) + //Xeno Resin Mark Shit, the very best place for it too :0) //Defines at the bottom of this list here will show up at the top in the mark menu /datum/xeno_mark_define diff --git a/icons/mob/hud/hud.dmi b/icons/mob/hud/hud.dmi index 507ec0dd485b0976d8c3e00c3a88c55a87f329dd..8d89fb7812641ce67d21d1cef9030c877f33e7e9 100644 GIT binary patch literal 19605 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 Date: Wed, 1 May 2024 08:06:51 +0100 Subject: [PATCH 07/14] Automatic changelog for PR #6155 [ci skip] --- html/changelogs/AutoChangeLog-pr-6155.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6155.yml diff --git a/html/changelogs/AutoChangeLog-pr-6155.yml b/html/changelogs/AutoChangeLog-pr-6155.yml new file mode 100644 index 000000000000..fddb8491f6d2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6155.yml @@ -0,0 +1,4 @@ +author: "ihatethisengine" +delete-after: True +changes: + - rscadd: "Corrupted Queen can set up personal alliances with humans" \ No newline at end of file From e556b32a33ed5a6929ded49d8be2d24b04f80e61 Mon Sep 17 00:00:00 2001 From: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Date: Wed, 1 May 2024 00:07:50 -0700 Subject: [PATCH 08/14] TGUI: Replaces babel & terser (#6196) # About the pull request Replaces tgui build tools with faster alternatives. There were some issues in build of components using hooks which do not exist, which I removed as well. This is not a required part of the PR but React does not use these Based on two PRs: [Esbuild](https://github.com/tgstation/tgstation/pull/79916) [SWC](https://github.com/tgstation/tgstation/pull/80310) # Explain why it's good for the game Faster build times # Testing Photographs and Procedure
Screenshots & Videos Before ![Screenshot 2024-04-26 155554](https://github.com/cmss13-devs/cmss13/assets/42397676/5a48687e-dc6e-43d7-98d9-354bd3848ff6) After ![Screenshot 2024-04-26 160516](https://github.com/cmss13-devs/cmss13/assets/42397676/b106ad86-25db-4403-b80a-29f4cd1ca38d)
--- tgui/.swcrc | 15 + tgui/babel.config.js | 52 - tgui/jest.config.js | 2 +- tgui/package.json | 16 +- tgui/packages/tgui/components/Button.jsx | 4 +- tgui/packages/tgui/components/Chart.jsx | 3 - tgui/packages/tgui/components/ColorBox.jsx | 4 +- .../tgui/components/DraggableControl.jsx | 2 - tgui/packages/tgui/components/Grid.jsx | 5 - tgui/packages/tgui/components/Icon.jsx | 4 +- tgui/packages/tgui/components/NoticeBox.jsx | 4 +- tgui/packages/tgui/components/Table.jsx | 8 +- tgui/public/tgui-panel.bundle.css | 3 +- tgui/webpack.config.js | 37 +- tgui/yarn.lock | 2067 +++++------------ 15 files changed, 626 insertions(+), 1600 deletions(-) create mode 100644 tgui/.swcrc delete mode 100644 tgui/babel.config.js diff --git a/tgui/.swcrc b/tgui/.swcrc new file mode 100644 index 000000000000..c0402a41f0bf --- /dev/null +++ b/tgui/.swcrc @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "jsc": { + "loose": true, + "parser": { + "syntax": "typescript", + "tsx": true + }, + "transform": { + "react": { + "runtime": "automatic" + } + } + } +} diff --git a/tgui/babel.config.js b/tgui/babel.config.js deleted file mode 100644 index 69a5a401cc77..000000000000 --- a/tgui/babel.config.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const createBabelConfig = (options) => { - const { presets = [], plugins = [], removeConsole } = options; - return { - presets: [ - [ - require.resolve('@babel/preset-typescript'), - { - allowDeclareFields: true, - }, - ], - [ - require.resolve('@babel/preset-env'), - { - modules: 'commonjs', - useBuiltIns: 'entry', - corejs: '3.3.2', - spec: false, - loose: true, - targets: [], - }, - ], - [require.resolve('@babel/preset-react'), { runtime: 'automatic' }], - ...presets, - ].filter(Boolean), - plugins: [ - [ - require.resolve('@babel/plugin-transform-class-properties'), - { - loose: true, - }, - ], - require.resolve('@babel/plugin-transform-jscript'), - removeConsole && require.resolve('babel-plugin-transform-remove-console'), - require.resolve('common/string.babel-plugin.cjs'), - ...plugins, - ].filter(Boolean), - }; -}; - -module.exports = (api) => { - api.cache(true); - const mode = process.env.NODE_ENV; - return createBabelConfig({ mode }); -}; - -module.exports.createBabelConfig = createBabelConfig; diff --git a/tgui/jest.config.js b/tgui/jest.config.js index 8b78818004be..d8b4ac3e41a8 100644 --- a/tgui/jest.config.js +++ b/tgui/jest.config.js @@ -8,7 +8,7 @@ module.exports = { testEnvironment: 'jsdom', testRunner: require.resolve('jest-circus/runner'), transform: { - '^.+\\.(js|cjs|ts|tsx)$': require.resolve('babel-jest'), + '^.+\\.(js|cjs|ts|tsx)$': require.resolve('@swc/jest'), }, moduleFileExtensions: ['js', 'cjs', 'ts', 'tsx', 'json'], resetMocks: true, diff --git a/tgui/package.json b/tgui/package.json index 77ff3be9b01f..1187ab904451 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -20,24 +20,16 @@ "tgui:tsc": "tsc" }, "dependencies": { - "@babel/core": "^7.15.0", - "@babel/eslint-parser": "^7.15.0", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-jscript": "^7.14.5", - "@babel/preset-env": "^7.15.0", - "@babel/preset-react": "^7.23.3", - "@babel/preset-typescript": "^7.15.0", + "@swc/core": "^1.5.0", + "@swc/jest": "^0.2.36", "@types/jest": "^27.0.1", "@types/jsdom": "^16.2.13", "@types/node": "^14.17.9", "@types/webpack": "^5.28.0", "@types/webpack-env": "^1.16.2", "@typescript-eslint/parser": "^4.29.1", - "babel-jest": "^27.0.6", - "babel-loader": "^8.2.2", - "babel-plugin-transform-remove-console": "^6.9.4", - "common": "workspace:*", "css-loader": "^5.2.7", + "esbuild-loader": "^4.1.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-radar": "^0.2.1", @@ -52,7 +44,7 @@ "sass": "^1.37.5", "sass-loader": "^11.1.1", "style-loader": "^2.0.0", - "terser-webpack-plugin": "^5.1.4", + "swc-loader": "^0.2.6", "typescript": "^4.9.4", "url-loader": "^4.1.1", "webpack": "^5.75.0", diff --git a/tgui/packages/tgui/components/Button.jsx b/tgui/packages/tgui/components/Button.jsx index dbffb6a72c95..826ba3309676 100644 --- a/tgui/packages/tgui/components/Button.jsx +++ b/tgui/packages/tgui/components/Button.jsx @@ -5,7 +5,7 @@ */ import { KEY_ENTER, KEY_ESCAPE, KEY_SPACE } from 'common/keycodes'; -import { classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { Component, createRef } from 'react'; import { createLogger } from '../logging'; import { Box, computeBoxClassName, computeBoxProps } from './Box'; @@ -134,8 +134,6 @@ export const Button = (props) => { return buttonContent; }; -Button.defaultHooks = pureComponentHooks; - export const ButtonCheckbox = (props) => { const { checked, ...rest } = props; return ( diff --git a/tgui/packages/tgui/components/Chart.jsx b/tgui/packages/tgui/components/Chart.jsx index b8a9c62f8929..87eacff1e35f 100644 --- a/tgui/packages/tgui/components/Chart.jsx +++ b/tgui/packages/tgui/components/Chart.jsx @@ -5,7 +5,6 @@ */ import { map, zipWith } from 'common/collections'; -import { pureComponentHooks } from 'common/react'; import { Component, createRef } from 'react'; import { Box } from './Box'; @@ -117,8 +116,6 @@ class LineChart extends Component { } } -LineChart.defaultHooks = pureComponentHooks; - const Stub = (props) => null; // IE8: No inline svg support diff --git a/tgui/packages/tgui/components/ColorBox.jsx b/tgui/packages/tgui/components/ColorBox.jsx index a6203ca4694c..ce3c202d8cd6 100644 --- a/tgui/packages/tgui/components/ColorBox.jsx +++ b/tgui/packages/tgui/components/ColorBox.jsx @@ -4,7 +4,7 @@ * @license MIT */ -import { classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { computeBoxClassName, computeBoxProps } from './Box'; export const ColorBox = (props) => { @@ -27,5 +27,3 @@ export const ColorBox = (props) => { ); }; - -ColorBox.defaultHooks = pureComponentHooks; diff --git a/tgui/packages/tgui/components/DraggableControl.jsx b/tgui/packages/tgui/components/DraggableControl.jsx index 018118dd7966..3b4b5380ccb4 100644 --- a/tgui/packages/tgui/components/DraggableControl.jsx +++ b/tgui/packages/tgui/components/DraggableControl.jsx @@ -5,7 +5,6 @@ */ import { clamp } from 'common/math'; -import { pureComponentHooks } from 'common/react'; import { Component, createRef } from 'react'; import { AnimatedNumber } from './AnimatedNumber'; @@ -276,7 +275,6 @@ export class DraggableControl extends Component { } } -DraggableControl.defaultHooks = pureComponentHooks; DraggableControl.defaultProps = { minValue: -Infinity, maxValue: +Infinity, diff --git a/tgui/packages/tgui/components/Grid.jsx b/tgui/packages/tgui/components/Grid.jsx index 7ad3fd1dfdbf..f5593c9e00a5 100644 --- a/tgui/packages/tgui/components/Grid.jsx +++ b/tgui/packages/tgui/components/Grid.jsx @@ -5,7 +5,6 @@ */ import { Table } from './Table'; -import { pureComponentHooks } from 'common/react'; /** @deprecated */ export const Grid = (props) => { @@ -17,8 +16,6 @@ export const Grid = (props) => { ); }; -Grid.defaultHooks = pureComponentHooks; - /** @deprecated */ export const GridColumn = (props) => { const { size = 1, style, ...rest } = props; @@ -33,6 +30,4 @@ export const GridColumn = (props) => { ); }; -Grid.defaultHooks = pureComponentHooks; - Grid.Column = GridColumn; diff --git a/tgui/packages/tgui/components/Icon.jsx b/tgui/packages/tgui/components/Icon.jsx index e9a4d7fd7ba9..5d63782fa72c 100644 --- a/tgui/packages/tgui/components/Icon.jsx +++ b/tgui/packages/tgui/components/Icon.jsx @@ -6,7 +6,7 @@ * @license MIT */ -import { classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { computeBoxClassName, computeBoxProps } from './Box'; const FA_OUTLINE_REGEX = /-o$/; @@ -55,8 +55,6 @@ export const Icon = (props) => { ); }; -Icon.defaultHooks = pureComponentHooks; - export const IconStack = (props) => { const { className, children, ...rest } = props; return ( diff --git a/tgui/packages/tgui/components/NoticeBox.jsx b/tgui/packages/tgui/components/NoticeBox.jsx index 1c3b49b16a53..09e205b46bef 100644 --- a/tgui/packages/tgui/components/NoticeBox.jsx +++ b/tgui/packages/tgui/components/NoticeBox.jsx @@ -4,7 +4,7 @@ * @license MIT */ -import { classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { Box } from './Box'; export const NoticeBox = (props) => { @@ -23,5 +23,3 @@ export const NoticeBox = (props) => { /> ); }; - -NoticeBox.defaultHooks = pureComponentHooks; diff --git a/tgui/packages/tgui/components/Table.jsx b/tgui/packages/tgui/components/Table.jsx index e936b9144808..60e7ea1cd227 100644 --- a/tgui/packages/tgui/components/Table.jsx +++ b/tgui/packages/tgui/components/Table.jsx @@ -4,7 +4,7 @@ * @license MIT */ -import { classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { computeBoxClassName, computeBoxProps } from './Box'; export const Table = (props) => { @@ -23,8 +23,6 @@ export const Table = (props) => { ); }; -Table.defaultHooks = pureComponentHooks; - export const TableRow = (props) => { const { className, header, ...rest } = props; return ( @@ -40,8 +38,6 @@ export const TableRow = (props) => { ); }; -TableRow.defaultHooks = pureComponentHooks; - export const TableCell = (props) => { const { className, collapsing, header, ...rest } = props; return ( @@ -58,7 +54,5 @@ export const TableCell = (props) => { ); }; -TableCell.defaultHooks = pureComponentHooks; - Table.Row = TableRow; Table.Cell = TableCell; diff --git a/tgui/public/tgui-panel.bundle.css b/tgui/public/tgui-panel.bundle.css index 65ed516c5573..4d00b843f41b 100644 --- a/tgui/public/tgui-panel.bundle.css +++ b/tgui/public/tgui-panel.bundle.css @@ -1,2 +1 @@ -html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a !important}.color-white{color:#fff !important}.color-red{color:#df3e3e !important}.color-orange{color:#f37f33 !important}.color-yellow{color:#fbda21 !important}.color-olive{color:#cbe41c !important}.color-green{color:#25ca4c !important}.color-teal{color:#00d6cc !important}.color-blue{color:#2e93de !important}.color-dark-blue{color:#005fa7 !important}.color-violet{color:#7349cf !important}.color-purple{color:#ad45d0 !important}.color-pink{color:#e34da1 !important}.color-brown{color:#b97447 !important}.color-grey{color:#848484 !important}.color-light-grey{color:#b3b3b3 !important}.color-good{color:#68c22d !important}.color-average{color:#f29a29 !important}.color-bad{color:#df3e3e !important}.color-label{color:#8b9bb0 !important}.color-xeno{color:#664573 !important}.color-bg-black{background-color:#000 !important}.color-bg-white{background-color:#d9d9d9 !important}.color-bg-red{background-color:#bd2020 !important}.color-bg-orange{background-color:#d95e0c !important}.color-bg-yellow{background-color:#d9b804 !important}.color-bg-olive{background-color:#9aad14 !important}.color-bg-green{background-color:#1b9638 !important}.color-bg-teal{background-color:#009a93 !important}.color-bg-blue{background-color:#1c71b1 !important}.color-bg-dark-blue{background-color:#003e6e !important}.color-bg-violet{background-color:#552dab !important}.color-bg-purple{background-color:#8b2baa !important}.color-bg-pink{background-color:#cf2082 !important}.color-bg-brown{background-color:#8c5836 !important}.color-bg-grey{background-color:#646464 !important}.color-bg-light-grey{background-color:#919191 !important}.color-bg-good{background-color:#4d9121 !important}.color-bg-average{background-color:#cd7a0d !important}.color-bg-bad{background-color:#bd2020 !important}.color-bg-label{background-color:#657a94 !important}.color-bg-xeno{background-color:#462f4e !important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9) !important;background:rgba(0,0,0,0) !important;outline:1px solid rgba(255,255,255,.5) !important;box-shadow:none !important;filter:none !important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8) !important}.outline-dotted{outline-style:dotted !important}.outline-dashed{outline-style:dashed !important}.outline-solid{outline-style:solid !important}.outline-double{outline-style:double !important}.outline-groove{outline-style:groove !important}.outline-ridge{outline-style:ridge !important}.outline-inset{outline-style:inset !important}.outline-outset{outline-style:outset !important}.outline-color-black{outline:.167rem solid #1a1a1a !important}.outline-color-white{outline:.167rem solid #fff !important}.outline-color-red{outline:.167rem solid #df3e3e !important}.outline-color-orange{outline:.167rem solid #f37f33 !important}.outline-color-yellow{outline:.167rem solid #fbda21 !important}.outline-color-olive{outline:.167rem solid #cbe41c !important}.outline-color-green{outline:.167rem solid #25ca4c !important}.outline-color-teal{outline:.167rem solid #00d6cc !important}.outline-color-blue{outline:.167rem solid #2e93de !important}.outline-color-dark-blue{outline:.167rem solid #005fa7 !important}.outline-color-violet{outline:.167rem solid #7349cf !important}.outline-color-purple{outline:.167rem solid #ad45d0 !important}.outline-color-pink{outline:.167rem solid #e34da1 !important}.outline-color-brown{outline:.167rem solid #b97447 !important}.outline-color-grey{outline:.167rem solid #848484 !important}.outline-color-light-grey{outline:.167rem solid #b3b3b3 !important}.outline-color-good{outline:.167rem solid #68c22d !important}.outline-color-average{outline:.167rem solid #f29a29 !important}.outline-color-bad{outline:.167rem solid #df3e3e !important}.outline-color-label{outline:.167rem solid #8b9bb0 !important}.outline-color-xeno{outline:.167rem solid #664573 !important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:bold}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button .fa,.Button .fas,.Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color 100ms,background-color 100ms}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color 100ms,background-color 100ms}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color 100ms,background-color 100ms}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color 100ms,background-color 100ms}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color 100ms,background-color 100ms}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color 100ms,background-color 100ms}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color 100ms,background-color 100ms}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color 100ms,background-color 100ms}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003e6e;color:#fff}.Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.Button--color--dark-blue:hover,.Button--color--dark-blue:focus{background-color:#135b92;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color 100ms,background-color 100ms}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color 100ms,background-color 100ms}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color 100ms,background-color 100ms}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color 100ms,background-color 100ms}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color 100ms,background-color 100ms}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color 100ms,background-color 100ms}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color 100ms,background-color 100ms}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color 100ms,background-color 100ms}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color 100ms,background-color 100ms}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#462f4e;color:#fff}.Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.Button--color--xeno:hover,.Button--color--xeno:focus{background-color:#64496d;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color 100ms,background-color 100ms}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color 100ms,background-color 100ms}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color 100ms,background-color 100ms}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999 !important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color 100ms,background-color 100ms}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color 100ms ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline{display:inline-block}.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotateZ(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotateZ(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--dark-blue .Knob__ringFill{stroke:#005fa7}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.Knob--color--xeno .Knob__ringFill{stroke:#664573}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-0.25em -0.5em;margin-bottom:0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:bold;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg, transparent, transparent 0.8333333333em, rgba(0, 0, 0, 0.1) 0.8333333333em, rgba(0, 0, 0, 0.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--dark-blue{color:#fff;background-color:#02121f}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--color--xeno{color:#fff;background-color:#19161b}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000 !important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9 !important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020 !important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c !important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804 !important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14 !important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638 !important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93 !important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1 !important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--dark-blue{border-color:#003e6e !important}.ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003e6e}.ProgressBar--color--violet{border-color:#552dab !important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa !important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082 !important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836 !important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464 !important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191 !important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121 !important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d !important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020 !important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94 !important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.ProgressBar--color--xeno{border-color:#462f4e !important}.ProgressBar--color--xeno .ProgressBar__fill{background-color:#462f4e}.Section{position:relative;margin-bottom:.5em;background-color:#131313;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.Section .Section:first-child{margin-top:-0.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:bold;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--dark-blue{color:#008ffd}.Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#005fa7}.Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#005fa7}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Tab--selected.Tab--color--xeno{color:#9366a3}.Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#664573}.Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#664573}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:"Consolas",monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity 150ms ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -0.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:crimson;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom, #202020 0%, #202020 100%)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}em{font-style:normal;font-weight:bold}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited{color:#7c00e6}a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.niche,.medal,.yell{font-weight:bold}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:bold}.ooc{font-weight:bold}.adminobserverooc{color:#09c;font-weight:bold}.adminooc{color:#3d5bc3;font-weight:bold}.adminsay{color:#9611d4;font-weight:bold}.admin{color:#5975da;font-weight:bold}.niche{color:#5975da;font-weight:bold}.name{font-weight:bold}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:lime}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:bold}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:bold;font-size:185%}.bolddanger{color:#c51e1e;font-weight:bold}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:bold}.boldwarning{color:#c51e1e;font-style:italic;font-weight:bold}.announce{color:#c51e1e;font-weight:bold}.boldannounce{color:#c51e1e;font-weight:bold}.bigannounce{font-weight:bold;font-size:115%}.greenannounce{color:#059223;font-weight:bold}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.staff_ic{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:bold}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:bold}.unconscious{color:#a4bad6;font-weight:bold}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.grey{color:#838383}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.boldnicegreen{color:#059223;font-weight:bold}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:bold}.cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.narsie{color:#973e3b;font-weight:bold;font-size:925%}.narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:bold;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:bold}.revenbignotice{color:#c099e2;font-weight:bold;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:bold;font-size:185%}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.ghostalert{color:#60f;font-style:italic;font-weight:bold}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:bold}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:bold}.spider{color:#80f;font-weight:bold;font-size:185%}.interface{color:#750e75}.sans{font-family:"Comic Sans MS",cursive,sans-serif}.papyrus{font-family:"Papyrus",cursive,sans-serif}.robot{font-family:"Courier New",cursive,sans-serif}.tape_recorder{color:red;font-family:"Courier New",cursive,sans-serif}.command_headset{font-weight:bold;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.hypnophrase{color:#202020;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}100%{color:#7adbf3}}.phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}100%{color:#f75a5a}}.icon{height:1em;width:auto}.bigicon{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:bold;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:bold}.text-normal{font-weight:normal;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.xooc{color:#ac04e9;font-weight:bold;font-size:140%}.mooc{color:#090;font-weight:bold;font-size:140%}.yooc{color:#999600;font-weight:bold;font-size:140%}.headminsay{color:#653d78;font-weight:bold}.radio{color:#b4b4b4}.deptradio{color:#939}.comradio{color:#779cc2}.centradio{color:#5c5c8a}.hcradio{color:#318779}.pvstradio{color:#9b0612}.cryoradio{color:#ad6d48}.airadio{color:#f0f}.secradio{color:#a52929}.engradio{color:#a66300}.sentryradio{color:#844300}.medradio{color:#008160}.supradio{color:#ba8e41}.jtacradio{color:#ad3b98}.intelradio{color:#027d02}.wyradio{color:#fe9b24}.pmcradio{color:#4dc5ce}.vairadio{color:#e3580e}.rmcradio{color:#e3580e}.cmbradio{color:#1b748c}.clfradio{color:#8e83ca}.alpharadio{color:#db2626}.bravoradio{color:#c68610}.charlieradio{color:#a5a}.deltaradio{color:#007fcf}.echoradio{color:#3eb489}.medium{font-size:110%}.big{font-size:115%}.large{font-size:125%}.extra_large{font-size:130%}.huge{font-size:150%}.underline{text-decoration:underline}.orange{color:#eca100}.normal{font-style:normal}.attack{color:#ff3838}.moderate{color:#c00}.disarm{color:#900}.passive{color:#600}.helpful{color:#368f31}.scanner{color:#ff3838}.scannerb{color:#ff3838;font-weight:bold}.scannerburn{color:orange}.scannerburnb{color:orange;font-weight:bold}.rose{color:#ff5050}.debuginfo{color:#493d26;font-style:italic}.xenonotice{color:#51a16c}.xenoboldnotice{color:#51a16c;font-weight:bold}.xenowarning{color:#51a16c;font-style:italic}.xenominorwarning{color:#51a16c;font-weight:bold;font-style:italic}.xenodanger{color:#51a16c;font-weight:bold}.avoidharm{color:#72a0e5;font-weight:bold}.highdanger{color:#ff3838;font-weight:bold;font-size:140%}.xenohighdanger{color:#51a16c;font-weight:bold;font-size:140%}.xenoannounce{color:#65c585;font-family:book-antiqua;font-weight:bold;font-size:140%}.yautjabold{color:purple;font-weight:bold}.yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.objectivebig{font-weight:bold;font-size:130%}.objectivegreen{color:lime}.objectivered{color:red}.objectivesuccess{color:lime;font-weight:bold;font-size:110%}.objectivefail{color:red;font-weight:bold;font-size:110%}.xenotalk,.xeno{color:#c048c0;font-style:italic}.xenoleader{color:#996e99;font-style:italic;font-size:125%}.xenoqueen{color:#996e99;font-style:italic;font-weight:bold;font-size:125%}.newscaster{color:maroon}.role_header{color:#e92d2d;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.role_body{color:#3a3ae9;display:block;text-align:center;font-size:125%}.round_header{color:#e92d2d;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.round_body{color:#c5c5c5;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.announce_header{color:#cecece;font-weight:bold;font-size:150%}.announce_header_blue{color:#7575f3;font-weight:bold;font-size:150%}.announce_header_admin{color:#7575f3;font-weight:bold;font-size:150%}.announce_body{color:#e92d2d;font-weight:normal;font-size:125%}.centerbold{display:block;text-align:center;font-weight:bold}.mod{color:#917455;font-weight:bold}.modooc{color:#184880;font-weight:bold}.adminmod{color:#7c440c;font-weight:bold}.mentorsay{color:#d4af57;font-weight:bold}.mentorhelp{color:#090;font-weight:bold}.mentorbody{color:#da6200;font-weight:bold}.mentorstaff{color:#b5850d;font-weight:bold}.staffsay{color:#b5850d;font-weight:bold}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.skrell{color:#00ced1}.soghun{color:#228b22}.changeling{color:purple}.vox{color:#a0a}.monkey{color:#966c47}.german{color:#858f1e;font-family:"Times New Roman",Times,serif}.spanish{color:#cf982b}.japanese{color:#940927}.chinese{color:#fe1919}.zombie{color:#2dacb1;font-style:italic}.rough{font-family:trebuchet-ms,cursive,sans-serif}.commando{color:#fe9b24;font-style:bold}.say_quote{font-family:Georgia,Verdana,sans-serif}.admin .message{color:#314cad}.admin .prefix{font-weight:bolder}.pm{font-size:110%}.deadsay{color:#8b4dff}.retro_translator{font-weight:bold}.yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.examine_block{background:#1b1c1e;border:1px solid #a4bad6;margin:.5em;padding:.5em .75em}.examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.tooltip{font-style:italic;border-bottom:1px dashed #fff} -.theme-light .color-black{color:#000 !important}.theme-light .color-white{color:#e6e6e6 !important}.theme-light .color-red{color:#c82121 !important}.theme-light .color-orange{color:#e6630d !important}.theme-light .color-yellow{color:#e5c304 !important}.theme-light .color-olive{color:#a3b816 !important}.theme-light .color-green{color:#1d9f3b !important}.theme-light .color-teal{color:#00a39c !important}.theme-light .color-blue{color:#1e78bb !important}.theme-light .color-dark-blue{color:#004274 !important}.theme-light .color-violet{color:#5a30b5 !important}.theme-light .color-purple{color:#932eb4 !important}.theme-light .color-pink{color:#db228a !important}.theme-light .color-brown{color:#955d39 !important}.theme-light .color-grey{color:#e6e6e6 !important}.theme-light .color-light-grey{color:#999 !important}.theme-light .color-good{color:#529923 !important}.theme-light .color-average{color:#da810e !important}.theme-light .color-bad{color:#c82121 !important}.theme-light .color-label{color:#353535 !important}.theme-light .color-xeno{color:#4a3253 !important}.theme-light .color-bg-black{background-color:#000 !important}.theme-light .color-bg-white{background-color:#bfbfbf !important}.theme-light .color-bg-red{background-color:#a61c1c !important}.theme-light .color-bg-orange{background-color:#c0530b !important}.theme-light .color-bg-yellow{background-color:#bfa303 !important}.theme-light .color-bg-olive{background-color:#889912 !important}.theme-light .color-bg-green{background-color:#188532 !important}.theme-light .color-bg-teal{background-color:#008882 !important}.theme-light .color-bg-blue{background-color:#19649c !important}.theme-light .color-bg-dark-blue{background-color:#003761 !important}.theme-light .color-bg-violet{background-color:#4b2897 !important}.theme-light .color-bg-purple{background-color:#7a2696 !important}.theme-light .color-bg-pink{background-color:#b61d73 !important}.theme-light .color-bg-brown{background-color:#7c4d2f !important}.theme-light .color-bg-grey{background-color:#bfbfbf !important}.theme-light .color-bg-light-grey{background-color:gray !important}.theme-light .color-bg-good{background-color:#44801d !important}.theme-light .color-bg-average{background-color:#b56b0b !important}.theme-light .color-bg-bad{background-color:#a61c1c !important}.theme-light .color-bg-label{background-color:#2c2c2c !important}.theme-light .color-bg-xeno{background-color:#3e2945 !important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -0.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-0.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0 .25em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--dark-blue{color:#0079d7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#004274}.theme-light .Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#004274}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--light-grey{color:#b3b3b3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#999}.theme-light .Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#999}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Tab--selected.Tab--color--xeno{color:#7e558e}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#4a3253}.theme-light .Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#4a3253}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:bold;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table !important;width:100% !important;height:100% !important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row !important;height:100% !important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-light .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-light .Section .Section{background-color:rgba(0,0,0,0);margin-left:-0.5em;margin-right:-0.5em}.theme-light .Section .Section:first-child{margin-top:-0.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-0.25em;margin-right:-0.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0px;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003761;color:#fff}.theme-light .Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--dark-blue:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--dark-blue:hover,.theme-light .Button--color--dark-blue:focus{background-color:#135283;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:gray;color:#fff}.theme-light .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--light-grey:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--light-grey:hover,.theme-light .Button--color--light-grey:focus{background-color:#a6a6a6;color:#fff}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#3e2945;color:#fff}.theme-light .Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--xeno:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--xeno:hover,.theme-light .Button--color--xeno:focus{background-color:#5a4363;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636 !important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color 100ms,background-color 100ms}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Button--flex{display:inline-flex;flex-direction:column}.theme-light .Button--flex--fluid{width:100%}.theme-light .Button--verticalAlignContent--top{justify-content:flex-start}.theme-light .Button--verticalAlignContent--middle{justify-content:center}.theme-light .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-light .Button__content{display:block;align-self:stretch}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:"Consolas",monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea--noborder{border:0px}.theme-light .TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto;margin-bottom:-0.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%);border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotateZ(135deg)}.theme-light .Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotateZ(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotateZ(270deg)}.theme-light .Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--dark-blue .Knob__ringFill{stroke:#004274}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--light-grey .Knob__ringFill{stroke:#999}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Knob--color--xeno .Knob__ringFill{stroke:#4a3253}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none !important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em !important;border-style:solid !important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color 900ms ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-0.5px;left:0px;bottom:-0.5px}.theme-light .ProgressBar__fill--animated{transition:background-color 900ms ease-out,width 900ms ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border-color:#000 !important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border-color:#a61c1c !important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border-color:#c0530b !important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border-color:#bfa303 !important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border-color:#889912 !important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border-color:#188532 !important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border-color:#008882 !important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border-color:#19649c !important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--dark-blue{border-color:#003761 !important}.theme-light .ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003761}.theme-light .ProgressBar--color--violet{border-color:#4b2897 !important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border-color:#7a2696 !important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border-color:#b61d73 !important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border-color:#7c4d2f !important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border-color:#bfbfbf !important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--light-grey{border-color:gray !important}.theme-light .ProgressBar--color--light-grey .ProgressBar__fill{background-color:gray}.theme-light .ProgressBar--color--good{border-color:#44801d !important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border-color:#b56b0b !important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border-color:#a61c1c !important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border-color:#2c2c2c !important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .ProgressBar--color--xeno{border-color:#3e2945 !important}.theme-light .ProgressBar--color--xeno .ProgressBar__fill{background-color:#3e2945}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:crimson;border-radius:10px;transition:font-size 200ms ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-0.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:bold}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom, #eeeeee 0%, #eeeeee 100%)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color 250ms ease-out,background-color 250ms ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px !important;line-height:2.6666666667rem !important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#fff;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light em{font-style:normal;font-weight:bold}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:blue}.theme-light a.visited{color:#f0f}.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:bold;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:bold}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .niche,.theme-light .medal,.theme-light .yell{font-weight:bold}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:blue;font-family:Georgia,Verdana,sans-serif}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light em{font-style:normal;font-weight:bold}.theme-light .ooc{font-weight:bold}.theme-light .adminobserverooc{color:#09c;font-weight:bold}.theme-light .adminooc{color:#700038;font-weight:bold}.theme-light .adminsay{color:#ff4500;font-weight:bold}.theme-light .admin{color:#4473ff;font-weight:bold}.theme-light .niche{color:#4473ff;font-weight:bold}.theme-light .name{font-weight:bold}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:lime}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .sentryradio{color:#844300}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:blue}.theme-light .greenteamradio{color:lime}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:bold}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:bold;font-size:185%}.theme-light .bolddanger{color:red;font-weight:bold}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:bold}.theme-light .boldwarning{color:red;font-style:italic;font-weight:bold}.theme-light .announce{color:#228b22;font-weight:bold}.theme-light .boldannounce{color:red;font-weight:bold}.theme-light .bigannounce{font-weight:bold;font-size:115%}.theme-light .greenannounce{color:lime;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .staff_ic{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:bold}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:blue}.theme-light .adminhelp{color:red;font-weight:bold}.theme-light .unconscious{color:blue;font-weight:bold}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .grey{color:#838383}.theme-light .red{color:red}.theme-light .blue{color:blue}.theme-light .nicegreen{color:#14a833}.theme-light .boldnicegreen{color:#14a833;font-weight:bold}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:bold}.theme-light .cultboldtalic{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .cultlarge{color:#973e3b;font-weight:bold;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:bold;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:bold;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:bold;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:bold}.theme-light .revenbignotice{color:#1d2953;font-weight:bold;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:bold;font-size:185%}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:bold}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:bold}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:bold}.theme-light .spider{color:#4d004d;font-weight:bold;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:"Comic Sans MS",cursive,sans-serif}.theme-light .papyrus{font-family:"Papyrus",cursive,sans-serif}.theme-light .robot{font-family:"Courier New",cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:"Courier New",cursive,sans-serif}.theme-light .command_headset{font-weight:bold;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:lime;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:"Comic Sans MS",cursive,sans-serif;font-weight:bold}.theme-light .singing{font-family:"Trebuchet MS",cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:"Courier New",cursive,sans-serif;font-style:italic}.theme-light .hypnophrase{color:#0d0d0d;font-weight:bold;animation:hypnocolor 1500ms infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}100%{color:#3bb5d3}}.theme-light .phobia{color:#d00;font-weight:bold;animation:phobia 750ms infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}100%{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .bigicon{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:bold;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:blue;font-weight:bold}.theme-light .text-normal{font-weight:normal;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}.theme-light .xooc{color:#6c0094;font-weight:bold;font-size:140%}.theme-light .mooc{color:#090;font-weight:bold;font-size:140%}.theme-light .yooc{color:#999600;font-weight:bold;font-size:140%}.theme-light .headminsay{color:#5a0a7f;font-weight:bold}.theme-light .radio{color:#4e4e4e}.theme-light .deptradio{color:#939}.theme-light .comradio{color:#004080}.theme-light .centradio{color:#5c5c8a}.theme-light .cryoradio{color:#554e3f}.theme-light .hcradio{color:#318779}.theme-light .pvstradio{color:#9b0612}.theme-light .airadio{color:#f0f}.theme-light .secradio{color:#a30000}.theme-light .engradio{color:#a66300}.theme-light .sentryradio{color:#844300}.theme-light .medradio{color:#008160}.theme-light .supradio{color:#5f4519}.theme-light .jtacradio{color:#702963}.theme-light .intelradio{color:#027d02}.theme-light .wyradio{color:#fe9b24}.theme-light .pmcradio{color:#136957}.theme-light .vairadio{color:#943d0a}.theme-light .cmbradio{color:#1b748c}.theme-light .clfradio{color:#6f679c}.theme-light .alpharadio{color:#ea0000}.theme-light .bravoradio{color:#c68610}.theme-light .charlieradio{color:#a5a}.theme-light .deltaradio{color:#007fcf}.theme-light .echoradio{color:#3a7e65}.theme-light .medium{font-size:110%}.theme-light .big{font-size:115%}.theme-light .large{font-size:125%}.theme-light .extra_large{font-size:130%}.theme-light .huge{font-size:150%}.theme-light .underline{text-decoration:underline}.theme-light .orange{color:#eca100}.theme-light .normal{font-style:normal}.theme-light .attack{color:red}.theme-light .moderate{color:#c00}.theme-light .disarm{color:#900}.theme-light .passive{color:#600}.theme-light .helpful{color:#368f31}.theme-light .scanner{color:red}.theme-light .scannerb{color:red;font-weight:bold}.theme-light .scannerburn{color:orange}.theme-light .scannerburnb{color:orange;font-weight:bold}.theme-light .rose{color:#ff5050}.theme-light .debuginfo{color:#493d26;font-style:italic}.theme-light .xenonotice{color:#2a623d}.theme-light .xenoboldnotice{color:#2a623d;font-weight:bold}.theme-light .xenowarning{color:#2a623d;font-style:italic}.theme-light .xenominorwarning{color:#2a623d;font-weight:bold;font-style:italic}.theme-light .xenodanger{color:#2a623d;font-weight:bold}.theme-light .avoidharm{color:#72a0e5;font-weight:bold}.theme-light .highdanger{color:red;font-weight:bold;font-size:140%}.theme-light .xenohighdanger{color:#2a623d;font-weight:bold;font-size:140%}.theme-light .xenoannounce{color:#1a472a;font-family:book-antiqua;font-weight:bold;font-size:140%}.theme-light .yautjabold{color:purple;font-weight:bold}.theme-light .yautjaboldbig{color:purple;font-weight:bold;font-size:120%}.theme-light .objectivebig{font-weight:bold;font-size:130%}.theme-light .objectivegreen{color:lime}.theme-light .objectivered{color:red}.theme-light .objectivesuccess{color:lime;font-weight:bold;font-size:110%}.theme-light .objectivefail{color:red;font-weight:bold;font-size:110%}.theme-light .xenotalk,.theme-light .xeno{color:#900090;font-style:italic}.theme-light .xenoleader{color:#730d73;font-style:italic;font-size:125%}.theme-light .xenoqueen{color:#730d73;font-style:italic;font-weight:bold;font-size:125%}.theme-light .newscaster{color:maroon}.theme-light .role_header{color:#db0000;display:block;text-align:center;font-weight:bold;font-family:trebuchet-ms;font-size:150%}.theme-light .role_body{color:#009;display:block;text-align:center;font-size:125%}.theme-light .round_header{color:#db0000;display:block;text-align:center;font-family:courier;font-weight:bold;font-size:180%}.theme-light .round_body{color:#001427;display:block;text-align:center;font-family:trebuchet-ms;font-weight:bold;font-size:125%}.theme-light .event_announcement{color:#600d48;font-family:arial-narrow;font-weight:bold;font-size:125%}.theme-light .announce_header{color:#000;font-weight:bold;font-size:150%}.theme-light .announce_header_blue{color:#009;font-weight:bold;font-size:150%}.theme-light .announce_body{color:red;font-weight:normal;font-size:125%}.theme-light .centerbold{display:block;text-align:center;font-weight:bold}.theme-light .mod{color:#735638;font-weight:bold}.theme-light .modooc{color:#184880;font-weight:bold}.theme-light .adminmod{color:#402a14;font-weight:bold}.theme-light .mentorsay{color:#b38c32;font-weight:bold}.theme-light .mentorhelp{color:#007e00;font-weight:bold}.theme-light .mentorbody{color:#da6200;font-weight:bold}.theme-light .mentorstaff{color:#876101;font-weight:bold}.theme-light .staffsay{color:#876101;font-weight:bold}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .skrell{color:#00ced1}.theme-light .soghun{color:#228b22}.theme-light .changeling{color:purple}.theme-light .vox{color:#a0a}.theme-light .monkey{color:#966c47}.theme-light .german{color:#858f1e;font-family:"Times New Roman",Times,serif}.theme-light .spanish{color:#cf982b}.theme-light .japanese{color:#940927}.theme-light .chinese{color:#fe1919}.theme-light .zombie{color:#216163;font-style:italic}.theme-light .commando{color:#fe9b24;font-style:bold}.theme-light .rough{font-family:trebuchet-ms,cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .admin .message{color:#314cad}.theme-light .admin .prefix{font-weight:bolder}.theme-light .pm{font-size:110%}.theme-light .retro_translator{font-weight:bold}.theme-light .yautja_translator{color:#a00;font-weight:bold;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px, -1px)}50%{color:#be0000;transform:translate(1px, -2px)}75%{color:#8d0000;transform:translate(-1px, 2px)}100%{color:#830000;transform:translate(1px, 1px)}}.theme-light .examine_block{background:#f2f7fa;border:1px solid #111a27;margin:.5em;padding:.5em .75em}.theme-light .examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.theme-light .tooltip{font-style:italic;border-bottom:1px dashed #000} +html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a!important}.color-white{color:#fff!important}.color-red{color:#df3e3e!important}.color-orange{color:#f37f33!important}.color-yellow{color:#fbda21!important}.color-olive{color:#cbe41c!important}.color-green{color:#25ca4c!important}.color-teal{color:#00d6cc!important}.color-blue{color:#2e93de!important}.color-dark-blue{color:#005fa7!important}.color-violet{color:#7349cf!important}.color-purple{color:#ad45d0!important}.color-pink{color:#e34da1!important}.color-brown{color:#b97447!important}.color-grey{color:#848484!important}.color-light-grey{color:#b3b3b3!important}.color-good{color:#68c22d!important}.color-average{color:#f29a29!important}.color-bad{color:#df3e3e!important}.color-label{color:#8b9bb0!important}.color-xeno{color:#664573!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-dark-blue{background-color:#003e6e!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-light-grey{background-color:#919191!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.color-bg-xeno{background-color:#462f4e!important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9)!important;background:rgba(0,0,0,0)!important;outline:1px solid rgba(255,255,255,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #1a1a1a!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #df3e3e!important}.outline-color-orange{outline:.167rem solid #f37f33!important}.outline-color-yellow{outline:.167rem solid #fbda21!important}.outline-color-olive{outline:.167rem solid #cbe41c!important}.outline-color-green{outline:.167rem solid #25ca4c!important}.outline-color-teal{outline:.167rem solid #00d6cc!important}.outline-color-blue{outline:.167rem solid #2e93de!important}.outline-color-dark-blue{outline:.167rem solid #005fa7!important}.outline-color-violet{outline:.167rem solid #7349cf!important}.outline-color-purple{outline:.167rem solid #ad45d0!important}.outline-color-pink{outline:.167rem solid #e34da1!important}.outline-color-brown{outline:.167rem solid #b97447!important}.outline-color-grey{outline:.167rem solid #848484!important}.outline-color-light-grey{outline:.167rem solid #b3b3b3!important}.outline-color-good{outline:.167rem solid #68c22d!important}.outline-color-average{outline:.167rem solid #f29a29!important}.outline-color-bad{outline:.167rem solid #df3e3e!important}.outline-color-label{outline:.167rem solid #8b9bb0!important}.outline-color-xeno{outline:.167rem solid #664573!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button .fa,.Button .fas,.Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003e6e;color:#fff}.Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.Button--color--dark-blue:focus{transition:color .1s,background-color .1s}.Button--color--dark-blue:hover,.Button--color--dark-blue:focus{background-color:#135b92;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color .1s,background-color .1s}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#462f4e;color:#fff}.Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.Button--color--xeno:focus{transition:color .1s,background-color .1s}.Button--color--xeno:hover,.Button--color--xeno:focus{background-color:#64496d;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#383838;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;-ms-user-select:none;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;height:1.8333333333em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;overflow-y:scroll;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{position:absolute;overflow-y:auto;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s ease-out}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline,.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0));border-radius:50%;box-shadow:0 .05em .5em rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--dark-blue .Knob__ringFill{stroke:#005fa7}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.Knob--color--xeno .Knob__ringFill{stroke:#664573}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--dark-blue{color:#fff;background-color:#02121f}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--color--xeno{color:#fff;background-color:#19161b}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color .9s ease-out}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--dark-blue{border-color:#003e6e!important}.ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003e6e}.ProgressBar--color--violet{border-color:#552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191!important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.ProgressBar--color--xeno{border-color:#462f4e!important}.ProgressBar--color--xeno .ProgressBar__fill{background-color:#462f4e}.Section{position:relative;margin-bottom:.5em;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.Section .Section:first-child{margin-top:-.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#131313}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--dark-blue{color:#008ffd}.Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#005fa7}.Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#005fa7}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Tab--selected.Tab--color--xeno{color:#9366a3}.Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#664573}.Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#664573}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:Consolas,monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s ease-out}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid rgba(140,140,140,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:#dc143c;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(to bottom,#202020,#202020)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited,a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover{background:#999}.popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:hover,.popup input[type=text]:active,.popup input[type=text]:focus{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.popup input[type=submit]:hover,.popup input[type=submit]:focus,.popup input[type=submit]:active{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:visited,.motd a:active,.motd a:hover{color:#a4bad6}.bold,.name,.prefix,.ooc,.looc,.adminooc,.admin,.niche,.medal,.yell{font-weight:700}.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal;font-weight:700}.ooc{font-weight:700}.adminobserverooc{color:#09c;font-weight:700}.adminooc{color:#3d5bc3;font-weight:700}.adminsay{color:#9611d4;font-weight:700}.admin,.niche{color:#5975da;font-weight:700}.name{font-weight:700}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:#0f0}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.gangradio{color:#ac2ea1}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.greenteamradio{color:#34fd34}.yellowteamradio{color:#fdfd34}.yell{font-weight:700}.alert{color:#d82020}.userdanger{color:#c51e1e;font-weight:700;font-size:185%}.bolddanger{color:#c51e1e;font-weight:700}.danger{color:#c51e1e}.warning{color:#c51e1e;font-style:italic}.alertwarning{color:red;font-weight:700}.boldwarning{color:#c51e1e;font-style:italic;font-weight:700}.announce,.boldannounce{color:#c51e1e;font-weight:700}.bigannounce{font-weight:700;font-size:115%}.greenannounce{color:#059223;font-weight:700}.info{color:#9ab0ff}.notice,.staff_ic{color:#6685f5}.tinynotice{color:#6685f5;font-size:85%}.tinynoticeital{color:#6685f5;font-style:italic;font-size:85%}.smallnotice{color:#6685f5;font-size:90%}.smallnoticeital{color:#6685f5;font-style:italic;font-size:90%}.boldnotice{color:#6685f5;font-weight:700}.hear{color:#6685f5;font-style:italic}.adminnotice{color:#6685f5}.adminhelp{color:red;font-weight:700}.unconscious{color:#a4bad6;font-weight:700}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.grey{color:#838383}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.boldnicegreen{color:#059223;font-weight:700}.cult{color:#973e3b}.cultitalic{color:#973e3b;font-style:italic}.cultbold{color:#973e3b;font-style:italic;font-weight:700}.cultboldtalic,.cultlarge{color:#973e3b;font-weight:700;font-size:185%}.narsie{color:#973e3b;font-weight:700;font-size:925%}.narsiesmall{color:#973e3b;font-weight:700;font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:700;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenboldnotice{color:#c099e2;font-weight:700}.revenbignotice{color:#c099e2;font-weight:700;font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:700;font-size:185%}.deconversion_message{color:#a947ff;font-size:185%;font-style:italic}.ghostalert{color:#60f;font-style:italic;font-weight:700}.alien{color:#855d85}.noticealien{color:#059223}.alertalien{color:#059223;font-weight:700}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red;font-size:185%;font-weight:700}.spider{color:#80f;font-weight:700;font-size:185%}.interface{color:#750e75}.sans{font-family:Comic Sans MS,cursive,sans-serif}.papyrus{font-family:Papyrus,cursive,sans-serif}.robot{font-family:Courier New,cursive,sans-serif}.tape_recorder{color:red;font-family:Courier New,cursive,sans-serif}.command_headset{font-weight:700;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.hypnophrase{color:#202020;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#202020}25%{color:#4b02ac}50%{color:#9f41f1}75%{color:#541c9c}to{color:#7adbf3}}.phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}@keyframes phobia{0%{color:#f75a5a}50%{color:#d00}to{color:#f75a5a}}.icon{height:1em;width:auto}.bigicon{font-size:2.5em}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:700;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:700}.text-normal{font-weight:400;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.xooc{color:#ac04e9;font-weight:700;font-size:140%}.mooc{color:#090;font-weight:700;font-size:140%}.yooc{color:#999600;font-weight:700;font-size:140%}.headminsay{color:#653d78;font-weight:700}.radio{color:#b4b4b4}.deptradio{color:#939}.comradio{color:#779cc2}.centradio{color:#5c5c8a}.hcradio{color:#318779}.pvstradio{color:#9b0612}.cryoradio{color:#ad6d48}.airadio{color:#f0f}.secradio{color:#a52929}.engradio{color:#a66300}.sentryradio{color:#844300}.medradio{color:#008160}.supradio{color:#ba8e41}.jtacradio{color:#ad3b98}.intelradio{color:#027d02}.wyradio{color:#fe9b24}.pmcradio{color:#4dc5ce}.vairadio,.rmcradio{color:#e3580e}.cmbradio{color:#1b748c}.clfradio{color:#8e83ca}.alpharadio{color:#db2626}.bravoradio{color:#c68610}.charlieradio{color:#a5a}.deltaradio{color:#007fcf}.echoradio{color:#3eb489}.medium{font-size:110%}.big{font-size:115%}.large{font-size:125%}.extra_large{font-size:130%}.huge{font-size:150%}.underline{text-decoration:underline}.orange{color:#eca100}.normal{font-style:normal}.attack{color:#ff3838}.moderate{color:#c00}.disarm{color:#900}.passive{color:#600}.helpful{color:#368f31}.scanner{color:#ff3838}.scannerb{color:#ff3838;font-weight:700}.scannerburn{color:orange}.scannerburnb{color:orange;font-weight:700}.rose{color:#ff5050}.debuginfo{color:#493d26;font-style:italic}.xenonotice{color:#51a16c}.xenoboldnotice{color:#51a16c;font-weight:700}.xenowarning{color:#51a16c;font-style:italic}.xenominorwarning{color:#51a16c;font-weight:700;font-style:italic}.xenodanger{color:#51a16c;font-weight:700}.avoidharm{color:#72a0e5;font-weight:700}.highdanger{color:#ff3838;font-weight:700;font-size:140%}.xenohighdanger{color:#51a16c;font-weight:700;font-size:140%}.xenoannounce{color:#65c585;font-family:book-antiqua;font-weight:700;font-size:140%}.yautjabold{color:purple;font-weight:700}.yautjaboldbig{color:purple;font-weight:700;font-size:120%}.objectivebig{font-weight:700;font-size:130%}.objectivegreen{color:#0f0}.objectivered{color:red}.objectivesuccess{color:#0f0;font-weight:700;font-size:110%}.objectivefail{color:red;font-weight:700;font-size:110%}.xenotalk,.xeno{color:#c048c0;font-style:italic}.xenoleader{color:#996e99;font-style:italic;font-size:125%}.xenoqueen{color:#996e99;font-style:italic;font-weight:700;font-size:125%}.newscaster{color:maroon}.role_header{color:#e92d2d;display:block;text-align:center;font-weight:700;font-family:trebuchet-ms;font-size:150%}.role_body{color:#3a3ae9;display:block;text-align:center;font-size:125%}.round_header{color:#e92d2d;display:block;text-align:center;font-family:courier;font-weight:700;font-size:180%}.round_body{color:#c5c5c5;display:block;text-align:center;font-family:trebuchet-ms;font-weight:700;font-size:125%}.event_announcement{color:#600d48;font-family:arial-narrow;font-weight:700;font-size:125%}.announce_header{color:#cecece;font-weight:700;font-size:150%}.announce_header_blue,.announce_header_admin{color:#7575f3;font-weight:700;font-size:150%}.announce_body{color:#e92d2d;font-weight:400;font-size:125%}.centerbold{display:block;text-align:center;font-weight:700}.mod{color:#917455;font-weight:700}.modooc{color:#184880;font-weight:700}.adminmod{color:#7c440c;font-weight:700}.mentorsay{color:#d4af57;font-weight:700}.mentorhelp{color:#090;font-weight:700}.mentorbody{color:#da6200;font-weight:700}.mentorstaff,.staffsay{color:#b5850d;font-weight:700}.tajaran{color:#803b56}.tajaran_signlang{color:#941c1c}.skrell{color:#00ced1}.soghun{color:#228b22}.changeling{color:purple}.vox{color:#a0a}.monkey{color:#966c47}.german{color:#858f1e;font-family:Times New Roman,Times,serif}.spanish{color:#cf982b}.japanese{color:#940927}.chinese{color:#fe1919}.zombie{color:#2dacb1;font-style:italic}.rough{font-family:trebuchet-ms,cursive,sans-serif}.commando{color:#fe9b24;font-style:bold}.say_quote{font-family:Georgia,Verdana,sans-serif}.admin .message{color:#314cad}.admin .prefix{font-weight:bolder}.pm{font-size:110%}.deadsay{color:#8b4dff}.retro_translator{font-weight:700}.yautja_translator{color:#a00;font-weight:700;animation:glitch .5s infinite}.examine_block{background:#1b1c1e;border:1px solid #a4bad6;margin:.5em;padding:.5em .75em}.examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.tooltip{font-style:italic;border-bottom:1px dashed #fff}.theme-light .color-black{color:#000!important}.theme-light .color-white{color:#e6e6e6!important}.theme-light .color-red{color:#c82121!important}.theme-light .color-orange{color:#e6630d!important}.theme-light .color-yellow{color:#e5c304!important}.theme-light .color-olive{color:#a3b816!important}.theme-light .color-green{color:#1d9f3b!important}.theme-light .color-teal{color:#00a39c!important}.theme-light .color-blue{color:#1e78bb!important}.theme-light .color-dark-blue{color:#004274!important}.theme-light .color-violet{color:#5a30b5!important}.theme-light .color-purple{color:#932eb4!important}.theme-light .color-pink{color:#db228a!important}.theme-light .color-brown{color:#955d39!important}.theme-light .color-grey{color:#e6e6e6!important}.theme-light .color-light-grey{color:#999!important}.theme-light .color-good{color:#529923!important}.theme-light .color-average{color:#da810e!important}.theme-light .color-bad{color:#c82121!important}.theme-light .color-label{color:#353535!important}.theme-light .color-xeno{color:#4a3253!important}.theme-light .color-bg-black{background-color:#000!important}.theme-light .color-bg-white{background-color:#bfbfbf!important}.theme-light .color-bg-red{background-color:#a61c1c!important}.theme-light .color-bg-orange{background-color:#c0530b!important}.theme-light .color-bg-yellow{background-color:#bfa303!important}.theme-light .color-bg-olive{background-color:#889912!important}.theme-light .color-bg-green{background-color:#188532!important}.theme-light .color-bg-teal{background-color:#008882!important}.theme-light .color-bg-blue{background-color:#19649c!important}.theme-light .color-bg-dark-blue{background-color:#003761!important}.theme-light .color-bg-violet{background-color:#4b2897!important}.theme-light .color-bg-purple{background-color:#7a2696!important}.theme-light .color-bg-pink{background-color:#b61d73!important}.theme-light .color-bg-brown{background-color:#7c4d2f!important}.theme-light .color-bg-grey{background-color:#bfbfbf!important}.theme-light .color-bg-light-grey{background-color:gray!important}.theme-light .color-bg-good{background-color:#44801d!important}.theme-light .color-bg-average{background-color:#b56b0b!important}.theme-light .color-bg-bad{background-color:#a61c1c!important}.theme-light .color-bg-label{background-color:#2c2c2c!important}.theme-light .color-bg-xeno{background-color:#3e2945!important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:#fff}.theme-light .Tabs--fill{height:100%}.theme-light .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-light .Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.theme-light .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.theme-light .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-light .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-light .Tab--selected{background-color:rgba(255,255,255,.125);color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--dark-blue{color:#0079d7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--dark-blue{border-bottom-color:#004274}.theme-light .Tabs--vertical .Tab--selected.Tab--color--dark-blue{border-right-color:#004274}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--light-grey{color:#b3b3b3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#999}.theme-light .Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#999}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Tab--selected.Tab--color--xeno{color:#7e558e}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--xeno{border-bottom-color:#4a3253}.theme-light .Tabs--vertical .Tab--selected.Tab--color--xeno{border-right-color:#4a3253}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__rest{position:relative}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill>.Section__rest{flex-grow:1}.theme-light .Section--fill>.Section__rest>.Section__content{height:100%}.theme-light .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-light .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-light .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-light .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-light .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-light .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-light .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-light .Section .Section:first-child{margin-top:-.5em}.theme-light .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-light .Section .Section .Section .Section__titleText{font-size:1em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button .fa,.theme-light .Button .fas,.theme-light .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .fas,.theme-light .Button--hasContent .far{margin-right:.25em}.theme-light .Button--hasContent.Button--iconPosition--right .fa,.theme-light .Button--hasContent.Button--iconPosition--right .fas,.theme-light .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--black:hover,.theme-light .Button--color--black:focus{background-color:#131313;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--white:hover,.theme-light .Button--color--white:focus{background-color:#efefef;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--red:hover,.theme-light .Button--color--red:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--orange:hover,.theme-light .Button--color--orange:focus{background-color:#ea7426;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--yellow:hover,.theme-light .Button--color--yellow:focus{background-color:#efce17;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--olive:hover,.theme-light .Button--color--olive:focus{background-color:#afc328;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--green:hover,.theme-light .Button--color--green:focus{background-color:#2fac4c;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--teal:hover,.theme-light .Button--color--teal:focus{background-color:#13afa9;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--blue:hover,.theme-light .Button--color--blue:focus{background-color:#3086c7;color:#fff}.theme-light .Button--color--dark-blue{transition:color 50ms,background-color 50ms;background-color:#003761;color:#fff}.theme-light .Button--color--dark-blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--dark-blue:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--dark-blue:hover,.theme-light .Button--color--dark-blue:focus{background-color:#135283;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--violet:hover,.theme-light .Button--color--violet:focus{background-color:#6a41c1;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--purple:hover,.theme-light .Button--color--purple:focus{background-color:#a03fc0;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--pink:hover,.theme-light .Button--color--pink:focus{background-color:#da3f96;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--brown:hover,.theme-light .Button--color--brown:focus{background-color:#a26c49;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--grey:hover,.theme-light .Button--color--grey:focus{background-color:#efefef;color:#000}.theme-light .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:gray;color:#fff}.theme-light .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--light-grey:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--light-grey:hover,.theme-light .Button--color--light-grey:focus{background-color:#a6a6a6;color:#fff}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--good:hover,.theme-light .Button--color--good:focus{background-color:#62a635;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--average:hover,.theme-light .Button--color--average:focus{background-color:#e48f20;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--bad:hover,.theme-light .Button--color--bad:focus{background-color:#d23333;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--label:hover,.theme-light .Button--color--label:focus{background-color:#464646;color:#fff}.theme-light .Button--color--xeno{transition:color 50ms,background-color 50ms;background-color:#3e2945;color:#fff}.theme-light .Button--color--xeno:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--xeno:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--xeno:hover,.theme-light .Button--color--xeno:focus{background-color:#5a4363;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--default:hover,.theme-light .Button--color--default:focus{background-color:#eaeaea;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--caution:hover,.theme-light .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--danger:hover,.theme-light .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:rgba(238,238,238,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--transparent:hover,.theme-light .Button--color--transparent:focus{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636!important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color .1s,background-color .1s}.theme-light .Button--selected:hover,.theme-light .Button--selected:focus{background-color:#1a8be7;color:#fff}.theme-light .Button--flex{display:inline-flex;flex-direction:column}.theme-light .Button--flex--fluid{width:100%}.theme-light .Button--verticalAlignContent--top{justify-content:flex-start}.theme-light .Button--verticalAlignContent--middle{justify-content:center}.theme-light .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-light .Button__content{display:block;align-self:stretch}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#fff;color:#000;text-align:right}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#000;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea--noborder{border:0px}.theme-light .TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-light .TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0));border-radius:50%;box-shadow:0 .05em .5em rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotate(135deg)}.theme-light .Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotate(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.theme-light .Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--dark-blue .Knob__ringFill{stroke:#004274}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--light-grey .Knob__ringFill{stroke:#999}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Knob--color--xeno .Knob__ringFill{stroke:#4a3253}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color .9s ease-out}.theme-light .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-light .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border-color:#000!important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border-color:#bfbfbf!important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border-color:#a61c1c!important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border-color:#c0530b!important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border-color:#bfa303!important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border-color:#889912!important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border-color:#188532!important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border-color:#008882!important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border-color:#19649c!important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--dark-blue{border-color:#003761!important}.theme-light .ProgressBar--color--dark-blue .ProgressBar__fill{background-color:#003761}.theme-light .ProgressBar--color--violet{border-color:#4b2897!important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border-color:#7a2696!important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border-color:#b61d73!important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border-color:#7c4d2f!important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border-color:#bfbfbf!important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--light-grey{border-color:gray!important}.theme-light .ProgressBar--color--light-grey .ProgressBar__fill{background-color:gray}.theme-light .ProgressBar--color--good{border-color:#44801d!important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border-color:#b56b0b!important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border-color:#a61c1c!important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border-color:#2c2c2c!important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .ProgressBar--color--xeno{border-color:#3e2945!important}.theme-light .ProgressBar--color--xeno .ProgressBar__fill{background-color:#3e2945}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s ease-out}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(to bottom,#eee,#eee)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(252,252,252,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color .25s ease-out,background-color .25s ease-out}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-light .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light html,.theme-light body{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#fff;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:#00f}.theme-light a.visited,.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:hover,.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.theme-light .popup input[type=submit]:hover,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:active{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:link,.theme-light .motd a:visited,.theme-light .motd a:active,.theme-light .motd a:hover{color:#638500}.theme-light .bold,.theme-light .name,.theme-light .prefix,.theme-light .ooc,.theme-light .looc,.theme-light .adminooc,.theme-light .admin,.theme-light .niche,.theme-light .medal,.theme-light .yell{font-weight:700}.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:#00f;font-family:Georgia,Verdana,sans-serif}.theme-light em{font-style:normal;font-weight:700}.theme-light .ooc{font-weight:700}.theme-light .adminobserverooc{color:#09c;font-weight:700}.theme-light .adminooc{color:#700038;font-weight:700}.theme-light .adminsay{color:#ff4500;font-weight:700}.theme-light .admin,.theme-light .niche{color:#4473ff;font-weight:700}.theme-light .name{font-weight:700}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:#0f0}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .gangradio{color:#ac2ea1}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:#00f}.theme-light .greenteamradio{color:#0f0}.theme-light .yellowteamradio{color:#d1ba22}.theme-light .yell{font-weight:700}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .userdanger{color:red;font-weight:700;font-size:185%}.theme-light .bolddanger{color:red;font-weight:700}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:700}.theme-light .boldwarning{color:red;font-style:italic;font-weight:700}.theme-light .announce{color:#228b22;font-weight:700}.theme-light .boldannounce{color:red;font-weight:700}.theme-light .bigannounce{font-weight:700;font-size:115%}.theme-light .greenannounce{color:#0f0;font-weight:700}.theme-light .info{color:#00c}.theme-light .notice,.theme-light .staff_ic{color:#009}.theme-light .tinynotice{color:#009;font-size:85%}.theme-light .tinynoticeital{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:700}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:#00f}.theme-light .adminhelp{color:red;font-weight:700}.theme-light .unconscious{color:#00f;font-weight:700}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .grey{color:#838383}.theme-light .red{color:red}.theme-light .blue{color:#00f}.theme-light .nicegreen{color:#14a833}.theme-light .boldnicegreen{color:#14a833;font-weight:700}.theme-light .cult{color:#973e3b}.theme-light .cultitalic{color:#973e3b;font-style:italic}.theme-light .cultbold{color:#973e3b;font-style:italic;font-weight:700}.theme-light .cultboldtalic,.theme-light .cultlarge{color:#973e3b;font-weight:700;font-size:185%}.theme-light .narsie{color:#973e3b;font-weight:700;font-size:925%}.theme-light .narsiesmall{color:#973e3b;font-weight:700;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{color:#609;font-weight:700;font-style:italic}.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenboldnotice{color:#1d2953;font-weight:700}.theme-light .revenbignotice{color:#1d2953;font-weight:700;font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:700;font-size:185%}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:700}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:700}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:700}.theme-light .spider{color:#4d004d;font-weight:700;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:Comic Sans MS,cursive,sans-serif}.theme-light .papyrus{font-family:Papyrus,cursive,sans-serif}.theme-light .robot{font-family:Courier New,cursive,sans-serif}.theme-light .tape_recorder{color:maroon;font-family:Courier New,cursive,sans-serif}.theme-light .command_headset{font-weight:700;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:#0f0;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.theme-light .singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.theme-light .hypnophrase{color:#0d0d0d;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}to{color:#3bb5d3}}.theme-light .phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}to{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .bigicon{font-size:2.5em}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:700;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:#00f;font-weight:700}.theme-light .text-normal{font-weight:400;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em}.theme-light .xooc{color:#6c0094;font-weight:700;font-size:140%}.theme-light .mooc{color:#090;font-weight:700;font-size:140%}.theme-light .yooc{color:#999600;font-weight:700;font-size:140%}.theme-light .headminsay{color:#5a0a7f;font-weight:700}.theme-light .radio{color:#4e4e4e}.theme-light .deptradio{color:#939}.theme-light .comradio{color:#004080}.theme-light .centradio{color:#5c5c8a}.theme-light .cryoradio{color:#554e3f}.theme-light .hcradio{color:#318779}.theme-light .pvstradio{color:#9b0612}.theme-light .airadio{color:#f0f}.theme-light .secradio{color:#a30000}.theme-light .engradio{color:#a66300}.theme-light .sentryradio{color:#844300}.theme-light .medradio{color:#008160}.theme-light .supradio{color:#5f4519}.theme-light .jtacradio{color:#702963}.theme-light .intelradio{color:#027d02}.theme-light .wyradio{color:#fe9b24}.theme-light .pmcradio{color:#136957}.theme-light .vairadio{color:#943d0a}.theme-light .cmbradio{color:#1b748c}.theme-light .clfradio{color:#6f679c}.theme-light .alpharadio{color:#ea0000}.theme-light .bravoradio{color:#c68610}.theme-light .charlieradio{color:#a5a}.theme-light .deltaradio{color:#007fcf}.theme-light .echoradio{color:#3a7e65}.theme-light .medium{font-size:110%}.theme-light .big{font-size:115%}.theme-light .large{font-size:125%}.theme-light .extra_large{font-size:130%}.theme-light .huge{font-size:150%}.theme-light .underline{text-decoration:underline}.theme-light .orange{color:#eca100}.theme-light .normal{font-style:normal}.theme-light .attack{color:red}.theme-light .moderate{color:#c00}.theme-light .disarm{color:#900}.theme-light .passive{color:#600}.theme-light .helpful{color:#368f31}.theme-light .scanner{color:red}.theme-light .scannerb{color:red;font-weight:700}.theme-light .scannerburn{color:orange}.theme-light .scannerburnb{color:orange;font-weight:700}.theme-light .rose{color:#ff5050}.theme-light .debuginfo{color:#493d26;font-style:italic}.theme-light .xenonotice{color:#2a623d}.theme-light .xenoboldnotice{color:#2a623d;font-weight:700}.theme-light .xenowarning{color:#2a623d;font-style:italic}.theme-light .xenominorwarning{color:#2a623d;font-weight:700;font-style:italic}.theme-light .xenodanger{color:#2a623d;font-weight:700}.theme-light .avoidharm{color:#72a0e5;font-weight:700}.theme-light .highdanger{color:red;font-weight:700;font-size:140%}.theme-light .xenohighdanger{color:#2a623d;font-weight:700;font-size:140%}.theme-light .xenoannounce{color:#1a472a;font-family:book-antiqua;font-weight:700;font-size:140%}.theme-light .yautjabold{color:purple;font-weight:700}.theme-light .yautjaboldbig{color:purple;font-weight:700;font-size:120%}.theme-light .objectivebig{font-weight:700;font-size:130%}.theme-light .objectivegreen{color:#0f0}.theme-light .objectivered{color:red}.theme-light .objectivesuccess{color:#0f0;font-weight:700;font-size:110%}.theme-light .objectivefail{color:red;font-weight:700;font-size:110%}.theme-light .xenotalk,.theme-light .xeno{color:#900090;font-style:italic}.theme-light .xenoleader{color:#730d73;font-style:italic;font-size:125%}.theme-light .xenoqueen{color:#730d73;font-style:italic;font-weight:700;font-size:125%}.theme-light .newscaster{color:maroon}.theme-light .role_header{color:#db0000;display:block;text-align:center;font-weight:700;font-family:trebuchet-ms;font-size:150%}.theme-light .role_body{color:#009;display:block;text-align:center;font-size:125%}.theme-light .round_header{color:#db0000;display:block;text-align:center;font-family:courier;font-weight:700;font-size:180%}.theme-light .round_body{color:#001427;display:block;text-align:center;font-family:trebuchet-ms;font-weight:700;font-size:125%}.theme-light .event_announcement{color:#600d48;font-family:arial-narrow;font-weight:700;font-size:125%}.theme-light .announce_header{color:#000;font-weight:700;font-size:150%}.theme-light .announce_header_blue{color:#009;font-weight:700;font-size:150%}.theme-light .announce_body{color:red;font-weight:400;font-size:125%}.theme-light .centerbold{display:block;text-align:center;font-weight:700}.theme-light .mod{color:#735638;font-weight:700}.theme-light .modooc{color:#184880;font-weight:700}.theme-light .adminmod{color:#402a14;font-weight:700}.theme-light .mentorsay{color:#b38c32;font-weight:700}.theme-light .mentorhelp{color:#007e00;font-weight:700}.theme-light .mentorbody{color:#da6200;font-weight:700}.theme-light .mentorstaff,.theme-light .staffsay{color:#876101;font-weight:700}.theme-light .tajaran{color:#803b56}.theme-light .tajaran_signlang{color:#941c1c}.theme-light .skrell{color:#00ced1}.theme-light .soghun{color:#228b22}.theme-light .changeling{color:purple}.theme-light .vox{color:#a0a}.theme-light .monkey{color:#966c47}.theme-light .german{color:#858f1e;font-family:Times New Roman,Times,serif}.theme-light .spanish{color:#cf982b}.theme-light .japanese{color:#940927}.theme-light .chinese{color:#fe1919}.theme-light .zombie{color:#216163;font-style:italic}.theme-light .commando{color:#fe9b24;font-style:bold}.theme-light .rough{font-family:trebuchet-ms,cursive,sans-serif}.theme-light .say_quote{font-family:Georgia,Verdana,sans-serif}.theme-light .admin .message{color:#314cad}.theme-light .admin .prefix{font-weight:bolder}.theme-light .pm{font-size:110%}.theme-light .retro_translator{font-weight:700}.theme-light .yautja_translator{color:#a00;font-weight:700;animation:glitch .5s infinite}@keyframes glitch{25%{color:#a00;transform:translate(-2px,-1px)}50%{color:#be0000;transform:translate(1px,-2px)}75%{color:#8d0000;transform:translate(-1px,2px)}to{color:#830000;transform:translate(1px,1px)}}.theme-light .examine_block{background:#f2f7fa;border:1px solid #111a27;margin:.5em;padding:.5em .75em}.theme-light .examine_block .icon{width:1.5em;height:1.5em;margin:0;padding:0}.theme-light .tooltip{font-style:italic;border-bottom:1px dashed #000} diff --git a/tgui/webpack.config.js b/tgui/webpack.config.js index f90b80926e44..4a1a3ec61b79 100644 --- a/tgui/webpack.config.js +++ b/tgui/webpack.config.js @@ -7,7 +7,6 @@ const webpack = require('webpack'); const path = require('path'); const ExtractCssPlugin = require('mini-css-extract-plugin'); -const { createBabelConfig } = require('./babel.config.js'); const createStats = (verbose) => ({ assets: verbose, @@ -33,18 +32,9 @@ module.exports = (env = {}, argv) => { context: path.resolve(__dirname), target: ['web', 'es3', 'browserslist:ie 8'], entry: { - 'tgui': [ - './packages/tgui-polyfill', - './packages/tgui', - ], - 'tgui-panel': [ - './packages/tgui-polyfill', - './packages/tgui-panel', - ], - 'tgui-say': [ - './packages/tgui-polyfill', - './packages/tgui-say', - ], + 'tgui': ['./packages/tgui-polyfill', './packages/tgui'], + 'tgui-panel': ['./packages/tgui-polyfill', './packages/tgui-panel'], + 'tgui-say': ['./packages/tgui-polyfill', './packages/tgui-say'], }, output: { path: argv.useTmpFolder @@ -61,13 +51,10 @@ module.exports = (env = {}, argv) => { module: { rules: [ { - test: /\.(js|jsx|cjs|ts|tsx)$/, + test: /\.([tj]s(x)?|cjs)$/, use: [ { - loader: require.resolve('babel-loader'), - options: createBabelConfig({ - removeConsole: !bench, - }), + loader: require.resolve('swc-loader'), }, ], }, @@ -143,17 +130,11 @@ module.exports = (env = {}, argv) => { // Production build specific options if (mode === 'production') { - const TerserPlugin = require('terser-webpack-plugin'); + const { EsbuildPlugin } = require('esbuild-loader'); config.optimization.minimizer = [ - new TerserPlugin({ - extractComments: false, - terserOptions: { - ie8: true, - output: { - ascii_only: true, - comments: false, - }, - }, + new EsbuildPlugin({ + target: 'ie8', + css: true, }), ]; } diff --git a/tgui/yarn.lock b/tgui/yarn.lock index 5c33f5665cb5..4e6d9e3d5fce 100644 --- a/tgui/yarn.lock +++ b/tgui/yarn.lock @@ -61,14 +61,14 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.15.0, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": version: 7.23.7 resolution: "@babel/core@npm:7.23.7" dependencies: @@ -91,20 +91,6 @@ __metadata: languageName: node linkType: hard -"@babel/eslint-parser@npm:^7.15.0": - version: 7.23.3 - resolution: "@babel/eslint-parser@npm:7.23.3" - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 - eslint-visitor-keys: ^2.1.0 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - checksum: 9573daebe21af5123c302c307be80cacf1c2bf236a9497068a14726d3944ef55e1282519d0ccf51882dfc369359a3442299c98cb22a419e209924db39d4030fd - languageName: node - linkType: hard - "@babel/generator@npm:^7.23.6": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -128,25 +114,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -159,53 +127,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": - version: 7.23.7 - resolution: "@babel/helper-create-class-features-plugin@npm:7.23.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 33e60714b856c3816a7965d4c76278cc8f430644a2dfc4eeafad2f7167c4fbd2becdb74cbfeb04b02efd6bbd07176ef53c6683262b588e65d378438e9c55c26b - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.4.4": - version: 0.4.4 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2453cdd79f18a4cb8653d8a7e06b2eb0d8e31bae0d35070fc5abadbddca246a36d82b758064b421cca49b48d0e696d331d54520ba8582c1d61fb706d6d831817 - languageName: node - linkType: hard - "@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" @@ -213,7 +134,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": +"@babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: @@ -232,15 +153,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" - dependencies: - "@babel/types": ^7.23.0 - checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -265,55 +177,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.14.5 resolution: "@babel/helper-plugin-utils@npm:7.14.5" checksum: fe20e90a24d02770a60ebe80ab9f0dfd7258503cea8006c71709ac9af1aa3e47b0de569499673f11ea6c99597f8c0e4880ae1d505986e61101b69716820972fe languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-wrap-function": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-replace-supers@npm:7.22.20" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.22.15 - "@babel/helper-optimise-call-expression": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -323,15 +193,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 - languageName: node - linkType: hard - "@babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -362,24 +223,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": +"@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-wrap-function@npm:7.22.20" - dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.15 - "@babel/types": ^7.22.19 - checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca - languageName: node - linkType: hard - "@babel/helpers@npm:^7.23.7": version: 7.23.8 resolution: "@babel/helpers@npm:7.23.8" @@ -440,51 +290,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.23.3 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: f88e400b548202a6f8c5dfd25bc4949a13ea1ccb64a170d7dea4deaa655a0fcb001d3fd61c35e1ad9c09a3d5f0d43f783400425471fe6d660ccaf33dabea9aba - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": - version: 7.21.0-placeholder-for-preset-env.2 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 - languageName: node - linkType: hard - "@babel/plugin-syntax-async-generators@npm:^7.8.4": version: 7.8.4 resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" @@ -507,7 +312,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.8.3": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -518,62 +323,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": +"@babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -595,18 +345,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: @@ -628,7 +367,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": +"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: @@ -642,893 +381,55 @@ __metadata: "@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.14.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5447d13b31aeeeaa5c2b945e60a598642dedca480f11d3232b0927aeb6a6bb8201a0025f509bc23851da4bf126f69b0522790edbd58f4560f0a4984cabd0d126 - languageName: node - linkType: hard - -"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-generator-functions@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.20 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b1f66b23423933c27336b1161ac92efef46683321caea97e2255a666f992979376f47a5559f64188d3831fa66a4b24c2a7a40838cc0e9737e90eebe20e8e6372 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" - dependencies: - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc - languageName: node - linkType: hard - -"@babel/plugin-transform-class-static-block@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.23.8": - version: 7.23.8 - resolution: "@babel/plugin-transform-classes@npm:7.23.8" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - "@babel/helper-split-export-declaration": ^7.22.6 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7dee6cebe52131d2d16944f36e1fdb9d4b24f44d0e7e450f93a44435d001f17cc0789a4cb6b15ec67c8e484581b8a730b5c3ec374470f29ff0133086955b8c58 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/template": ^7.22.15 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 - languageName: node - linkType: hard - -"@babel/plugin-transform-dynamic-import@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 - languageName: node - linkType: hard - -"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/plugin-transform-for-of@npm:7.23.6" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 228c060aa61f6aa89dc447170075f8214863b94f830624e74ade99c1a09316897c12d76e848460b0b506593e58dbc42739af6dc4cb0fe9b84dffe4a596050a36 - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-function-name@npm:7.23.3" - dependencies: - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 - languageName: node - linkType: hard - -"@babel/plugin-transform-jscript@npm:^7.14.5": - version: 7.23.3 - resolution: "@babel/plugin-transform-jscript@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 07d03d471376c3f86f5900990e787fab2b31940c67df525a36f97faa602742b82289144ec4bfabcbed8aaa7dcc9000a3f3886ed15229c72d74910e3c565f2e8b - languageName: node - linkType: hard - -"@babel/plugin-transform-json-strings@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-json-strings": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.3" - dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0d2fdd993c785aecac9e0850cd5ed7f7d448f0fbb42992a950cc0590167144df25d82af5aac9a5c99ef913d2286782afa44e577af30c10901c5ee8984910fa1f - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-new-target@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-numeric-separator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" - dependencies: - "@babel/compat-data": ^7.23.3 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-object-super@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-parameters@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/types": ^7.23.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - regenerator-transform: ^0.15.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-spread@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.6 - resolution: "@babel/plugin-transform-typescript@npm:7.23.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0462241843d14dff9f1a4c49ab182a6f01a5f7679957c786b08165dac3e8d49184011f05ca204183d164c54b9d3496d1b3005f904fa8708e394e6f15bf5548e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.15.0": - version: 7.23.8 - resolution: "@babel/preset-env@npm:7.23.8" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 - "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.23.3 - "@babel/plugin-syntax-import-attributes": ^7.23.3 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.23.3 - "@babel/plugin-transform-async-generator-functions": ^7.23.7 - "@babel/plugin-transform-async-to-generator": ^7.23.3 - "@babel/plugin-transform-block-scoped-functions": ^7.23.3 - "@babel/plugin-transform-block-scoping": ^7.23.4 - "@babel/plugin-transform-class-properties": ^7.23.3 - "@babel/plugin-transform-class-static-block": ^7.23.4 - "@babel/plugin-transform-classes": ^7.23.8 - "@babel/plugin-transform-computed-properties": ^7.23.3 - "@babel/plugin-transform-destructuring": ^7.23.3 - "@babel/plugin-transform-dotall-regex": ^7.23.3 - "@babel/plugin-transform-duplicate-keys": ^7.23.3 - "@babel/plugin-transform-dynamic-import": ^7.23.4 - "@babel/plugin-transform-exponentiation-operator": ^7.23.3 - "@babel/plugin-transform-export-namespace-from": ^7.23.4 - "@babel/plugin-transform-for-of": ^7.23.6 - "@babel/plugin-transform-function-name": ^7.23.3 - "@babel/plugin-transform-json-strings": ^7.23.4 - "@babel/plugin-transform-literals": ^7.23.3 - "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 - "@babel/plugin-transform-member-expression-literals": ^7.23.3 - "@babel/plugin-transform-modules-amd": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-modules-systemjs": ^7.23.3 - "@babel/plugin-transform-modules-umd": ^7.23.3 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.23.3 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 - "@babel/plugin-transform-numeric-separator": ^7.23.4 - "@babel/plugin-transform-object-rest-spread": ^7.23.4 - "@babel/plugin-transform-object-super": ^7.23.3 - "@babel/plugin-transform-optional-catch-binding": ^7.23.4 - "@babel/plugin-transform-optional-chaining": ^7.23.4 - "@babel/plugin-transform-parameters": ^7.23.3 - "@babel/plugin-transform-private-methods": ^7.23.3 - "@babel/plugin-transform-private-property-in-object": ^7.23.4 - "@babel/plugin-transform-property-literals": ^7.23.3 - "@babel/plugin-transform-regenerator": ^7.23.3 - "@babel/plugin-transform-reserved-words": ^7.23.3 - "@babel/plugin-transform-shorthand-properties": ^7.23.3 - "@babel/plugin-transform-spread": ^7.23.3 - "@babel/plugin-transform-sticky-regex": ^7.23.3 - "@babel/plugin-transform-template-literals": ^7.23.3 - "@babel/plugin-transform-typeof-symbol": ^7.23.3 - "@babel/plugin-transform-unicode-escapes": ^7.23.3 - "@babel/plugin-transform-unicode-property-regex": ^7.23.3 - "@babel/plugin-transform-unicode-regex": ^7.23.3 - "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 - "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.7 - babel-plugin-polyfill-corejs3: ^0.8.7 - babel-plugin-polyfill-regenerator: ^0.5.4 - core-js-compat: ^3.31.0 - semver: ^6.3.1 + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b850f99fc4aed4ba22c7d9207bd2bbc7a729b49ea6f2c2c36e819fe209e309b96fba336096e555b46f791b39f7cdd5ac41246b556283d435a99106eb825a209f + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf languageName: node linkType: hard -"@babel/preset-modules@npm:0.1.6-no-external-plugins": - version: 0.1.6-no-external-plugins - resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 languageName: node linkType: hard -"@babel/preset-react@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/preset-react@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-transform-react-display-name": ^7.23.3 - "@babel/plugin-transform-react-jsx": ^7.22.15 - "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.23.3 +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.15.0": - version: 7.23.3 - resolution: "@babel/preset-typescript@npm:7.23.3" +"@babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-typescript": ^7.23.3 + "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e languageName: node linkType: hard -"@babel/runtime@npm:^7.8.4": - version: 7.15.3 - resolution: "@babel/runtime@npm:7.15.3" +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.14.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.14.5" dependencies: - regenerator-runtime: ^0.13.4 - checksum: 2f0b8d2d4e36035ab1d84af0ec26aafa098536870f27c8e07de0a0e398f7a394fdea68a88165535ffb52ded6a68912bdc3450bdf91f229eb132e1c89470789f5 + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5447d13b31aeeeaa5c2b945e60a598642dedca480f11d3232b0927aeb6a6bb8201a0025f509bc23851da4bf126f69b0522790edbd58f4560f0a4984cabd0d126 languageName: node linkType: hard @@ -1572,7 +473,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.14.5, @babel/types@npm:^7.15.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.14.5, @babel/types@npm:^7.15.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.8.3": version: 7.15.0 resolution: "@babel/types@npm:7.15.0" dependencies: @@ -1582,7 +483,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6": +"@babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6": version: 7.23.6 resolution: "@babel/types@npm:7.23.6" dependencies: @@ -1638,6 +539,167 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/aix-ppc64@npm:0.20.2" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm64@npm:0.20.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm@npm:0.20.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-x64@npm:0.20.2" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-arm64@npm:0.20.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-x64@npm:0.20.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-arm64@npm:0.20.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-x64@npm:0.20.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm64@npm:0.20.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm@npm:0.20.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ia32@npm:0.20.2" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-loong64@npm:0.20.2" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-mips64el@npm:0.20.2" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ppc64@npm:0.20.2" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-riscv64@npm:0.20.2" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-s390x@npm:0.20.2" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-x64@npm:0.20.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/netbsd-x64@npm:0.20.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/openbsd-x64@npm:0.20.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/sunos-x64@npm:0.20.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-arm64@npm:0.20.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-ia32@npm:0.20.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-x64@npm:0.20.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^0.4.3": version: 0.4.3 resolution: "@eslint/eslintrc@npm:0.4.3" @@ -1817,6 +879,15 @@ __metadata: languageName: node linkType: hard +"@jest/create-cache-key-function@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + checksum: 681bc761fa1d6fa3dd77578d444f97f28296ea80755e90e46d1c8fa68661b9e67f54dd38b988742db636d26cf160450dc6011892cec98b3a7ceb58cad8ff3aae + languageName: node + linkType: hard + "@jest/environment@npm:^27.5.1": version: 27.5.1 resolution: "@jest/environment@npm:27.5.1" @@ -1892,6 +963,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + "@jest/source-map@npm:^27.5.1": version: 27.5.1 resolution: "@jest/source-map@npm:27.5.1" @@ -1963,6 +1043,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.0": version: 0.3.2 resolution: "@jridgewell/gen-mapping@npm:0.3.2" @@ -1992,13 +1086,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.1 - resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 - languageName: node - linkType: hard - "@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -2016,16 +1103,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.3": - version: 0.3.5 - resolution: "@jridgewell/source-map@npm:0.3.5" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f - languageName: node - linkType: hard - "@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -2033,13 +1110,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.17": version: 0.3.18 resolution: "@jridgewell/trace-mapping@npm:0.3.18" @@ -2050,16 +1120,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.20": - version: 0.3.21 - resolution: "@jridgewell/trace-mapping@npm:0.3.21" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: e91d3943c6d84687503ba033600d42b2a81d9eaf32758fee06449cd1415c59b944af08841e99f030b71f83bb5f814969e96fc8aa29e469eb3ea1b46597d13cff - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.17 resolution: "@jridgewell/trace-mapping@npm:0.3.17" @@ -2070,88 +1130,231 @@ __metadata: languageName: node linkType: hard -"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": - version: 5.1.1-v1 - resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" - dependencies: - eslint-scope: 5.1.1 - checksum: f2e3b2d6a6e2d9f163ca22105910c9f850dc4897af0aea3ef0a5886b63d8e1ba6505b71c99cb78a3bba24a09557d601eb21c8dede3f3213753fcfef364eb0e57 +"@nodelib/fs.scandir@npm:2.1.4": + version: 2.1.4 + resolution: "@nodelib/fs.scandir@npm:2.1.4" + dependencies: + "@nodelib/fs.stat": 2.0.4 + run-parallel: ^1.1.9 + checksum: 18c2150ab52a042bd65babe5b70106e6586dc036644131c33d253ff99e5eeef2e65858ab40161530a6f22b512a65e7c7629f0f1e0f35c00ee4c606f960d375ba + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.4, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.4 + resolution: "@nodelib/fs.stat@npm:2.0.4" + checksum: d0d9745f878816d041a8b36faf5797d88ba961274178f0ad1f7fe0efef8118ca9bd0e43e4d0d85a9af911bd35122ec1580e626a83d7595fc4d60f2c1c70e2665 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.6 + resolution: "@nodelib/fs.walk@npm:1.2.6" + dependencies: + "@nodelib/fs.scandir": 2.1.4 + fastq: ^1.6.0 + checksum: d156901823b3d3de368ad68047a964523e0ce5f796c0aa7712443b1f748d8e7fc24ce2c0f18d22a177e1f1c6092bca609ab5e4cb1792c41cdc8a6989bc391139 + languageName: node + linkType: hard + +"@npmcli/move-file@npm:^1.0.1": + version: 1.1.2 + resolution: "@npmcli/move-file@npm:1.1.2" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7 + languageName: node + linkType: hard + +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.24 + resolution: "@polka/url@npm:1.0.0-next.24" + checksum: 00baec4458ac86ca27edf7ce807ccfad97cd1d4b67bdedaf3401a9e755757588f3331e891290d1deea52d88df2bf2387caf8d94a6835b614d5b37b638a688273 + languageName: node + linkType: hard + +"@popperjs/core@npm:^2.9.3": + version: 2.9.3 + resolution: "@popperjs/core@npm:2.9.3" + checksum: 4cb94c271eaa13416ab8169c6af778c5b6160614351a79c68e8219d6ee0a40b8f71080ca29e139591c7c0c8e08fc1627d0e18d40a64609713a42b58d683a009d + languageName: node + linkType: hard + +"@simple-dom/interface@npm:^1.4.0": + version: 1.4.0 + resolution: "@simple-dom/interface@npm:1.4.0" + checksum: e0ce8b6174208c5a369c2650094d16080230bf90cb95cc8258f9fd6b93be8afedbffb9d63da7f1d295a4e8d901f5fff907a69e1d55556db9e8544f2615b2f1d7 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^1.7.0": + version: 1.8.6 + resolution: "@sinonjs/commons@npm:1.8.6" + dependencies: + type-detect: 4.0.8 + checksum: 7d3f8c1e85f30cd4e83594fc19b7a657f14d49eb8d95a30095631ce15e906c869e0eff96c5b93dffea7490c00418b07f54582ba49c6560feb2a8c34c0b16832d + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^8.0.1": + version: 8.1.0 + resolution: "@sinonjs/fake-timers@npm:8.1.0" + dependencies: + "@sinonjs/commons": ^1.7.0 + checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-darwin-arm64@npm:1.5.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-darwin-x64@npm:1.5.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm64-gnu@npm:1.5.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-arm64-musl@npm:1.5.0" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nodelib/fs.scandir@npm:2.1.4": - version: 2.1.4 - resolution: "@nodelib/fs.scandir@npm:2.1.4" - dependencies: - "@nodelib/fs.stat": 2.0.4 - run-parallel: ^1.1.9 - checksum: 18c2150ab52a042bd65babe5b70106e6586dc036644131c33d253ff99e5eeef2e65858ab40161530a6f22b512a65e7c7629f0f1e0f35c00ee4c606f960d375ba +"@swc/core-linux-x64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-x64-gnu@npm:1.5.0" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nodelib/fs.stat@npm:2.0.4, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.4 - resolution: "@nodelib/fs.stat@npm:2.0.4" - checksum: d0d9745f878816d041a8b36faf5797d88ba961274178f0ad1f7fe0efef8118ca9bd0e43e4d0d85a9af911bd35122ec1580e626a83d7595fc4d60f2c1c70e2665 +"@swc/core-linux-x64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-linux-x64-musl@npm:1.5.0" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.6 - resolution: "@nodelib/fs.walk@npm:1.2.6" - dependencies: - "@nodelib/fs.scandir": 2.1.4 - fastq: ^1.6.0 - checksum: d156901823b3d3de368ad68047a964523e0ce5f796c0aa7712443b1f748d8e7fc24ce2c0f18d22a177e1f1c6092bca609ab5e4cb1792c41cdc8a6989bc391139 +"@swc/core-win32-arm64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-arm64-msvc@npm:1.5.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@npmcli/move-file@npm:^1.0.1": - version: 1.1.2 - resolution: "@npmcli/move-file@npm:1.1.2" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7 +"@swc/core-win32-ia32-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-ia32-msvc@npm:1.5.0" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@polka/url@npm:^1.0.0-next.24": - version: 1.0.0-next.24 - resolution: "@polka/url@npm:1.0.0-next.24" - checksum: 00baec4458ac86ca27edf7ce807ccfad97cd1d4b67bdedaf3401a9e755757588f3331e891290d1deea52d88df2bf2387caf8d94a6835b614d5b37b638a688273 +"@swc/core-win32-x64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@swc/core-win32-x64-msvc@npm:1.5.0" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@popperjs/core@npm:^2.9.3": - version: 2.9.3 - resolution: "@popperjs/core@npm:2.9.3" - checksum: 4cb94c271eaa13416ab8169c6af778c5b6160614351a79c68e8219d6ee0a40b8f71080ca29e139591c7c0c8e08fc1627d0e18d40a64609713a42b58d683a009d +"@swc/core@npm:^1.5.0": + version: 1.5.0 + resolution: "@swc/core@npm:1.5.0" + dependencies: + "@swc/core-darwin-arm64": 1.5.0 + "@swc/core-darwin-x64": 1.5.0 + "@swc/core-linux-arm-gnueabihf": 1.5.0 + "@swc/core-linux-arm64-gnu": 1.5.0 + "@swc/core-linux-arm64-musl": 1.5.0 + "@swc/core-linux-x64-gnu": 1.5.0 + "@swc/core-linux-x64-musl": 1.5.0 + "@swc/core-win32-arm64-msvc": 1.5.0 + "@swc/core-win32-ia32-msvc": 1.5.0 + "@swc/core-win32-x64-msvc": 1.5.0 + "@swc/counter": ^0.1.2 + "@swc/types": ^0.1.5 + peerDependencies: + "@swc/helpers": ^0.5.0 + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 1abab0b57755020b60ebf2557629c23c65c3546e4cd80f9d02fbdf208d4169c9300a0229c088081b43a01e630c9d86d02f8c240c9fc2842eaed2a517770fcd1d languageName: node linkType: hard -"@simple-dom/interface@npm:^1.4.0": - version: 1.4.0 - resolution: "@simple-dom/interface@npm:1.4.0" - checksum: e0ce8b6174208c5a369c2650094d16080230bf90cb95cc8258f9fd6b93be8afedbffb9d63da7f1d295a4e8d901f5fff907a69e1d55556db9e8544f2615b2f1d7 +"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 languageName: node linkType: hard -"@sinonjs/commons@npm:^1.7.0": - version: 1.8.6 - resolution: "@sinonjs/commons@npm:1.8.6" +"@swc/jest@npm:^0.2.36": + version: 0.2.36 + resolution: "@swc/jest@npm:0.2.36" dependencies: - type-detect: 4.0.8 - checksum: 7d3f8c1e85f30cd4e83594fc19b7a657f14d49eb8d95a30095631ce15e906c869e0eff96c5b93dffea7490c00418b07f54582ba49c6560feb2a8c34c0b16832d + "@jest/create-cache-key-function": ^29.7.0 + "@swc/counter": ^0.1.3 + jsonc-parser: ^3.2.0 + peerDependencies: + "@swc/core": "*" + checksum: 14f2e696ac093e23dae1e2e57d894bbcde4de6fe80341a26c8d0d8cbae5aae31832f8fa32dc698529f128d19a76aeedf2227f59480de6dab5eb3f30bfdf9b71a languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^8.0.1": - version: 8.1.0 - resolution: "@sinonjs/fake-timers@npm:8.1.0" +"@swc/types@npm:^0.1.5": + version: 0.1.6 + resolution: "@swc/types@npm:0.1.6" dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 + "@swc/counter": ^0.1.3 + checksum: fd579fbb9ab220b01b8eec03e32c37d355efbbce12e408e4c2743ca147760b749e068f5d3bec288b26bb10ecf2fe8d061c2554df0985d50d0e56962597262b34 languageName: node linkType: hard @@ -2324,7 +1527,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8": version: 7.0.9 resolution: "@types/json-schema@npm:7.0.9" checksum: 259d0e25f11a21ba5c708f7ea47196bd396e379fddb79c76f9f4f62c945879dc21657904914313ec2754e443c5018ea8372362f323f30e0792897fdb2098a705 @@ -2462,6 +1665,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "*" + checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^4.29.1": version: 4.33.0 resolution: "@typescript-eslint/parser@npm:4.33.0" @@ -2998,7 +2210,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.2.4, acorn@npm:^8.8.2": +"acorn@npm:^8.2.4": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -3390,7 +2602,7 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^27.0.6, babel-jest@npm:^27.5.1": +"babel-jest@npm:^27.5.1": version: 27.5.1 resolution: "babel-jest@npm:27.5.1" dependencies: @@ -3408,21 +2620,6 @@ __metadata: languageName: node linkType: hard -"babel-loader@npm:^8.2.2": - version: 8.3.0 - resolution: "babel-loader@npm:8.3.0" - dependencies: - find-cache-dir: ^3.3.1 - loader-utils: ^2.0.0 - make-dir: ^3.1.0 - schema-utils: ^2.6.5 - peerDependencies: - "@babel/core": ^7.0.0 - webpack: ">=2" - checksum: d48bcf9e030e598656ad3ff5fb85967db2eaaf38af5b4a4b99d25618a2057f9f100e6b231af2a46c1913206db506115ca7a8cbdf52c9c73d767070dae4352ab5 - languageName: node - linkType: hard - "babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" @@ -3448,49 +2645,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.7": - version: 0.4.7 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" - dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.4.4 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b3c84ce44d00211c919a94f76453fb2065861612f3e44862eb7acf854e325c738a7441ad82690deba2b6fddfa2ad2cf2c46960f46fab2e3b17c6ed4fd2d73b38 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.8.7": - version: 0.8.7 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.4 - core-js-compat: ^3.33.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 51bc215ab0c062bbb2225d912f69f8a6705d1837c8e01f9651307b5b937804287c1d73ebd8015689efcc02c3c21f37688b9ee6f5997635619b7a9cc4b7d9908d - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.5.4": - version: 0.5.4 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.4.4 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 461b735c6c0eca3c7b4434d14bfa98c2ab80f00e2bdc1c69eb46d1d300092a9786d76bbd3ee55e26d2d1a2380c14592d8d638e271dfd2a2b78a9eacffa3645d1 - languageName: node - linkType: hard - -"babel-plugin-transform-remove-console@npm:^6.9.4": - version: 6.9.4 - resolution: "babel-plugin-transform-remove-console@npm:6.9.4" - checksum: 1123c3816c6f89c064752199c8796f30265d937f5d8e1e43d3837f1c0e87ed0e6bbd0afa6117ce021c8b93ec1de7154e158674bb22331c7ed6609d10121359df - languageName: node - linkType: hard - "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -4055,13 +3209,6 @@ __metadata: languageName: unknown linkType: soft -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -4117,15 +3264,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": - version: 3.35.0 - resolution: "core-js-compat@npm:3.35.0" - dependencies: - browserslist: ^4.22.2 - checksum: 64c41ce6870aa9130b9d0cb8f00c05204094f46db7e345d520ec2e38f8b6e1d51e921d4974ceb880948f19c0a79e5639e55be0e56f88ea20e32e9a6274da7f82 - languageName: node - linkType: hard - "core-js@npm:^3.16.1": version: 3.16.1 resolution: "core-js@npm:3.16.1" @@ -4819,6 +3957,100 @@ __metadata: languageName: node linkType: hard +"esbuild-loader@npm:^4.1.0": + version: 4.1.0 + resolution: "esbuild-loader@npm:4.1.0" + dependencies: + esbuild: ^0.20.0 + get-tsconfig: ^4.7.0 + loader-utils: ^2.0.4 + webpack-sources: ^1.4.3 + peerDependencies: + webpack: ^4.40.0 || ^5.0.0 + checksum: 51e76c36dd1fb70545889b07e3c4b4a437aaf1a2acc836e83141f06bcb8fbf96af778cf21b37355ea724c30504ad288ba76b0554ff94af260bb12ece647de861 + languageName: node + linkType: hard + +"esbuild@npm:^0.20.0": + version: 0.20.2 + resolution: "esbuild@npm:0.20.2" + dependencies: + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -4967,7 +4199,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": +"eslint-visitor-keys@npm:^2.0.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d @@ -5390,17 +4622,6 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.3.1": - version: 3.3.1 - resolution: "find-cache-dir@npm:3.3.1" - dependencies: - commondir: ^1.0.1 - make-dir: ^3.0.2 - pkg-dir: ^4.1.0 - checksum: 0f7c22b65e07f9b486b4560227d014fab1e79ffbbfbafb87d113a2e878510bd620ef6fdff090e5248bb2846d28851d19e42bfdc7c50687966acc106328e7abf1 - languageName: node - linkType: hard - "find-my-way@npm:^4.5.0": version: 4.5.1 resolution: "find-my-way@npm:4.5.1" @@ -5689,6 +4910,15 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.7.0": + version: 4.7.3 + resolution: "get-tsconfig@npm:4.7.3" + dependencies: + resolve-pkg-maps: ^1.0.0 + checksum: d124e6900f8beb3b71f215941096075223158d0abb09fb5daa8d83299f6c17d5e95a97d12847b387e9e716bb9bd256a473f918fb8020f3b1acc0b1e5c2830bbf + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -7336,15 +6566,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 - languageName: node - linkType: hard - "json-parse-better-errors@npm:^1.0.2": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -7414,6 +6635,13 @@ __metadata: languageName: node linkType: hard +"jsonc-parser@npm:^3.2.0": + version: 3.2.1 + resolution: "jsonc-parser@npm:3.2.1" + checksum: 656d9027b91de98d8ab91b3aa0d0a4cab7dc798a6830845ca664f3e76c82d46b973675bbe9b500fae1de37fd3e81aceacbaa2a57884bf2f8f29192150d2d1ef7 + languageName: node + linkType: hard + "jsprim@npm:^1.2.2": version: 1.4.1 resolution: "jsprim@npm:1.4.1" @@ -7543,6 +6771,17 @@ __metadata: languageName: node linkType: hard +"loader-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^2.1.2 + checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -7559,13 +6798,6 @@ __metadata: languageName: node linkType: hard -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 - languageName: node - linkType: hard - "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -7644,7 +6876,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": +"make-dir@npm:^3.0.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -8556,7 +7788,7 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": +"pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: @@ -9088,38 +8320,13 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" - dependencies: - regenerate: ^1.4.2 - checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.9": +"regenerator-runtime@npm:^0.13.9": version: 0.13.9 resolution: "regenerator-runtime@npm:0.13.9" checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e languageName: node linkType: hard -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - "regexp-util@npm:1.2.2, regexp-util@npm:^1.2.0, regexp-util@npm:^1.2.1": version: 1.2.2 resolution: "regexp-util@npm:1.2.2" @@ -9147,31 +8354,6 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": ^0.8.0 - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc - languageName: node - linkType: hard - "remark-footnotes@npm:2.0.0": version: 2.0.0 resolution: "remark-footnotes@npm:2.0.0" @@ -9265,6 +8447,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 + languageName: node + linkType: hard + "resolve.exports@npm:^1.1.0": version: 1.1.1 resolution: "resolve.exports@npm:1.1.1" @@ -9272,7 +8461,7 @@ __metadata: languageName: node linkType: hard -"resolve@^1.14.2, resolve@^1.20.0, resolve@npm:1.20.0": +"resolve@^1.20.0, resolve@npm:1.20.0": version: 1.20.0 resolution: "resolve@npm:1.20.0" dependencies: @@ -9308,7 +8497,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@1.20.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin": +"resolve@patch:resolve@1.20.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin": version: 1.20.0 resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin::version=1.20.0&hash=c3c19d" dependencies: @@ -9505,17 +8694,6 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^2.6.5": - version: 2.7.1 - resolution: "schema-utils@npm:2.7.1" - dependencies: - "@types/json-schema": ^7.0.5 - ajv: ^6.12.4 - ajv-keywords: ^3.5.2 - checksum: 32c62fc9e28edd101e1bd83453a4216eb9bd875cc4d3775e4452b541908fa8f61a7bbac8ffde57484f01d7096279d3ba0337078e85a918ecbeb72872fb09fb2b - languageName: node - linkType: hard - "schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.0": version: 3.1.1 resolution: "schema-utils@npm:3.1.1" @@ -10290,6 +9468,18 @@ __metadata: languageName: node linkType: hard +"swc-loader@npm:^0.2.6": + version: 0.2.6 + resolution: "swc-loader@npm:0.2.6" + dependencies: + "@swc/counter": ^0.1.3 + peerDependencies: + "@swc/core": ^1.2.147 + webpack: ">=2" + checksum: fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -10358,28 +9548,6 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.4": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" - dependencies: - "@jridgewell/trace-mapping": ^0.3.20 - jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.1 - terser: ^5.26.0 - peerDependencies: - webpack: ^5.1.0 - peerDependenciesMeta: - "@swc/core": - optional: true - esbuild: - optional: true - uglify-js: - optional: true - checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea - languageName: node - linkType: hard - "terser-webpack-plugin@npm:^5.3.7": version: 5.3.7 resolution: "terser-webpack-plugin@npm:5.3.7" @@ -10430,20 +9598,6 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.26.0": - version: 5.26.0 - resolution: "terser@npm:5.26.0" - dependencies: - "@jridgewell/source-map": ^0.3.3 - acorn: ^8.8.2 - commander: ^2.20.0 - source-map-support: ~0.5.20 - bin: - terser: bin/terser - checksum: 02a9bb896f04df828025af8f0eced36c315d25d310b6c2418e7dad2bed19ddeb34a9cea9b34e7c24789830fa51e1b6a9be26679980987a9c817a7e6d9cd4154b - languageName: node - linkType: hard - "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -10538,24 +9692,16 @@ __metadata: version: 0.0.0-use.local resolution: "tgui-workspace@workspace:." dependencies: - "@babel/core": ^7.15.0 - "@babel/eslint-parser": ^7.15.0 - "@babel/plugin-transform-class-properties": ^7.23.3 - "@babel/plugin-transform-jscript": ^7.14.5 - "@babel/preset-env": ^7.15.0 - "@babel/preset-react": ^7.23.3 - "@babel/preset-typescript": ^7.15.0 + "@swc/core": ^1.5.0 + "@swc/jest": ^0.2.36 "@types/jest": ^27.0.1 "@types/jsdom": ^16.2.13 "@types/node": ^14.17.9 "@types/webpack": ^5.28.0 "@types/webpack-env": ^1.16.2 "@typescript-eslint/parser": ^4.29.1 - babel-jest: ^27.0.6 - babel-loader: ^8.2.2 - babel-plugin-transform-remove-console: ^6.9.4 - common: "workspace:*" css-loader: ^5.2.7 + esbuild-loader: ^4.1.0 eslint: ^7.32.0 eslint-config-prettier: ^8.5.0 eslint-plugin-radar: ^0.2.1 @@ -10570,7 +9716,7 @@ __metadata: sass: ^1.37.5 sass-loader: ^11.1.1 style-loader: ^2.0.0 - terser-webpack-plugin: ^5.1.4 + swc-loader: ^0.2.6 typescript: ^4.9.4 url-loader: ^4.1.1 webpack: ^5.75.0 @@ -10987,37 +10133,6 @@ __metadata: languageName: node linkType: hard -"unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: ^2.0.0 - unicode-property-aliases-ecmascript: ^2.0.0 - checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - "unicode-regex@npm:3.0.0": version: 3.0.0 resolution: "unicode-regex@npm:3.0.0" @@ -11438,7 +10553,7 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^1.1.0": +"webpack-sources@npm:^1.1.0, webpack-sources@npm:^1.4.3": version: 1.4.3 resolution: "webpack-sources@npm:1.4.3" dependencies: From aedf6a933b7f0b15a62292e016c713e71df22c20 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Wed, 1 May 2024 10:10:36 +0300 Subject: [PATCH 09/14] Command announcements for survivors (#6192) # About the pull request Allows survivors to view tacmap and hear command announcements once they get IFF and marine headsets. # Explain why it's good for the game When you redeploy as a survivor (which is what you do 90% of the time) it is extremely painful to play without knowing what's going on, no announcements, no tacmap no anything. It is also makes sense that you will have access to those once temporarily enlisting with the marines and having the proper equipment. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Survivors can now receive command announcements with IFF and a marine headset. /:cl: --- code/defines/procs/announcement.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/defines/procs/announcement.dm b/code/defines/procs/announcement.dm index 2ebba6a774e8..d6251748f3a0 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -42,6 +42,11 @@ continue if(is_mainship_level(H.z)) // People on ship see everything continue + + // If they have iff AND a marine headset they will recieve announcements + if ((FACTION_MARINE in H.wear_id?.faction_group) && (istype(H.wear_l_ear, /obj/item/device/radio/headset/almayer) || istype(H.wear_r_ear, /obj/item/device/radio/headset/almayer))) + continue + if((H.faction != faction_to_display && !add_PMCs) || (H.faction != faction_to_display && add_PMCs && !(H.faction in FACTION_LIST_WY)) && !(faction_to_display in H.faction_group)) //faction checks targets.Remove(H) From 18bb1d9e832df6fa549e07a5565f6b72617b0432 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Wed, 1 May 2024 08:16:42 +0100 Subject: [PATCH 10/14] Automatic changelog for PR #6192 [ci skip] --- html/changelogs/AutoChangeLog-pr-6192.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-6192.yml diff --git a/html/changelogs/AutoChangeLog-pr-6192.yml b/html/changelogs/AutoChangeLog-pr-6192.yml new file mode 100644 index 000000000000..4e3fc164c00b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6192.yml @@ -0,0 +1,4 @@ +author: "Git-Nivrak" +delete-after: True +changes: + - rscadd: "Survivors can now receive command announcements with IFF and a marine headset." \ No newline at end of file From 6d78d51911aed7ab1afa4cee84d5207dee05dfc3 Mon Sep 17 00:00:00 2001 From: forest2001 <41653574+realforest2001@users.noreply.github.com> Date: Wed, 1 May 2024 08:29:31 +0100 Subject: [PATCH 11/14] Project ARES: Lockdown System (#6173) # About the pull request Changes the AI Core lockdown to the same system as the Research Containment Lockdown, with all the bells and whistles. Will likely change it to be more modular :soonTM: rather than duplicating some parts of code. I also added (again I think? I'm sure I added them before) directional sprites from Thwomper for the wall blended black shutters. # Explain why it's good for the game The AI Core Lockdown is currently too easy to toggle on-off-on-off. This makes it a bit more meaningful, and thematic. # Testing Photographs and Procedure All systems nominal! Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Changed the AI Core Lockdown to the same system as Research Lockdown. add: Added a subtype of desk bell for the AI Core reception desk that sends an alert over APOLLO Link. imageadd: Added directional blast door sprites from Thwomper for blended black shutters. code: Renamed operator var in apollo console code to user. /:cl: --------- Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- code/__DEFINES/dcs/signals/signals_global.dm | 3 + code/game/machinery/ARES/ARES_interface.dm | 7 + .../machinery/ARES/ARES_interface_apollo.dm | 97 +++--- code/game/machinery/ARES/ARES_procs.dm | 4 + code/game/machinery/ARES/apollo_pda.dm | 83 ++--- code/game/machinery/aicore_lockdown.dm | 118 +++++++ code/game/machinery/biohazard_lockdown.dm | 20 +- code/game/turfs/floor_types.dm | 11 +- code/modules/admin/admin_verbs.dm | 1 + code/modules/paperwork/desk_bell.dm | 9 + colonialmarines.dme | 1 + .../structures/doors/blastdoors_shutters.dmi | Bin 13021 -> 14340 bytes maps/map_files/USS_Almayer/USS_Almayer.dmm | 296 ++++++++++-------- .../tgui/interfaces/AresInterface.jsx | 14 + tgui/packages/tgui/interfaces/WorkingJoe.jsx | 14 + 15 files changed, 453 insertions(+), 225 deletions(-) create mode 100644 code/game/machinery/aicore_lockdown.dm diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index f975a67824ef..306f37deb8cb 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -69,6 +69,9 @@ /// From /proc/biohazard_lockdown() #define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed" #define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened" +/// From /proc/aicore_lockdown() +#define COMSIG_GLOB_AICORE_LOCKDOWN "!aicore_lockdown_closed" +#define COMSIG_GLOB_AICORE_LIFT "!aicore_lockdown_opened" /// From /obj/structure/machinery/power/reactor/proc/set_overloading() : (set_overloading) #define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading" diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index 341e6a05acf4..6905c47febb8 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -522,5 +522,12 @@ sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) + return TRUE + if(playsound) playsound(src, "keyboard_alt", 15, 1) diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm index 48fcad588574..37b2fbda0ecb 100644 --- a/code/game/machinery/ARES/ARES_interface_apollo.dm +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -158,29 +158,29 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = ui.user + var/mob/living/carbon/human/user = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(user, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder if("login") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id + else if(user.wear_id) + idcard = user.wear_id if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name else - to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + to_chat(user, SPAN_WARNING("You require an ID card to access this terminal!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(authentication) @@ -222,23 +222,23 @@ if("new_report") var/priority_report = FALSE - var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) switch(maint_type) if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") priority_report = TRUE if(!maint_type) return FALSE - var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE) if(!details) return FALSE if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) - var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) if(is_priority == "Yes") priority_report = TRUE - var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") if(confirm == "Yes") if(link) var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) @@ -247,7 +247,7 @@ ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") else send_notifcation() - log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") return TRUE return FALSE @@ -259,14 +259,14 @@ var/assigned = ticket.ticket_assignee if(assigned) if(assigned == last_login) - var/prompt = tgui_alert(operator, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + var/prompt = tgui_alert(user, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) if(prompt != "Yes") return FALSE /// set ticket back to pending ticket.ticket_assignee = null ticket.ticket_status = TICKET_PENDING return claim - var/choice = tgui_alert(operator, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) if(choice != "Yes") claim = FALSE if(claim) @@ -279,9 +279,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_submitter != last_login) - to_chat(operator, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) return FALSE - to_chat(operator, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) ticket.ticket_status = TICKET_CANCELLED if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") @@ -294,9 +294,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE - var/choice = tgui_alert(operator, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) switch(choice) if(TICKET_COMPLETED) ticket.ticket_status = TICKET_COMPLETED @@ -308,39 +308,39 @@ ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") else send_notifcation() - to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() var/has_id = FALSE if(istype(idcard)) has_id = TRUE - else if(operator.wear_id) - idcard = operator.wear_id + else if(user.wear_id) + idcard = user.wear_id if(istype(idcard)) has_id = TRUE if(!has_id) - to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(idcard.registered_name != last_login) - to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + to_chat(user, SPAN_WARNING("This ID card does not match the active login!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) if(!details) return FALSE - var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") if(confirm != "Yes" || !link) return FALSE var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) link.waiting_ids += idcard link.tickets_access += access_ticket - log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") - message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(user)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(user)] created a new ARES Access Ticket."), 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") return TRUE @@ -361,9 +361,9 @@ access_ticket.ticket_status = TICKET_RETURNED identification.access -= ACCESS_MARINE_AI_TEMP - identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + identification.modification_log += "Temporary AI Access self-returned by [key_name(user)]." - to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + to_chat(user, SPAN_NOTICE("Temporary Access Ticket surrendered.")) playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") @@ -372,7 +372,7 @@ datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." return TRUE - to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + to_chat(user, SPAN_WARNING("This ID card does not have an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE @@ -384,7 +384,7 @@ for(var/obj/item/card/id/identification in link.waiting_ids) if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_GRANTED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") @@ -392,7 +392,7 @@ for(var/obj/item/card/id/identification in link.active_ids) if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_REVOKED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") @@ -404,10 +404,10 @@ if(!istype(access_ticket)) return FALSE if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE access_ticket.ticket_status = TICKET_REJECTED - to_chat(operator, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") for(var/obj/item/card/id/identification in link.waiting_ids) if(identification.registered_gid != access_ticket.user_id_num) @@ -422,36 +422,41 @@ playsound = FALSE var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) if(!istype(sec_vent) || sec_vent.welded) - to_chat(operator, SPAN_WARNING("ERROR: Gas release failure.")) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) - to_chat(operator, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - to_chat(operator, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) playsound(src, 'sound/machines/chime.ogg', 15, 1) COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") log_ares_security("Nerve Gas Release", "[last_login] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) - log_admin("[key_name(operator)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) + return TRUE if(playsound) playsound(src, "keyboard_alt", 15, 1) /obj/item/card/id/proc/handle_ares_access(logged_in = MAIN_AI_SYSTEM, mob/user) - var/operator = key_name(user) + var/changer = logged_in + if(user) + changer = key_name(user) var/datum/ares_link/link = GLOB.ares_link - if(logged_in == MAIN_AI_SYSTEM) - if(!user) - operator = "[MAIN_AI_SYSTEM] (Automated)" - else - operator = "[user.ckey]/([MAIN_AI_SYSTEM])" + if(ACCESS_MARINE_AI_TEMP in access) access -= ACCESS_MARINE_AI_TEMP link.active_ids -= src - modification_log += "Temporary AI access revoked by [operator]" + log_idmod(src, "Temporary AI access revoked by [logged_in]", changer) to_chat(user, SPAN_NOTICE("Access revoked from [registered_name].")) var/mob/living/carbon/human/id_owner = registered_ref?.resolve() if(id_owner) @@ -459,7 +464,7 @@ playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) else access += ACCESS_MARINE_AI_TEMP - modification_log += "Temporary AI access granted by [operator]" + log_idmod(src, "Temporary AI access granted by [logged_in]", changer) to_chat(user, SPAN_NOTICE("Access granted to [registered_name].")) link.waiting_ids -= src link.active_ids += src diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index 05f110ec1a0c..8ecb711e9fb7 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -106,9 +106,13 @@ GLOBAL_LIST_INIT(maintenance_categories, list( /// Is nuke request usable or not? var/nuke_available = TRUE + /// Status of the AI Core Lockdown + var/ai_lockdown_active = FALSE + COOLDOWN_DECLARE(ares_distress_cooldown) COOLDOWN_DECLARE(ares_nuclear_cooldown) COOLDOWN_DECLARE(ares_quarters_cooldown) + COOLDOWN_DECLARE(aicore_lockdown) // ------ ARES Logging Procs ------ // /proc/ares_is_active() diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index e447bb6f7ee7..2f18a5ba0522 100644 --- a/code/game/machinery/ARES/apollo_pda.dm +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -181,29 +181,29 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = ui.user + var/mob/living/carbon/human/user = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(user, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder if("login") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name - else if(operator.wear_id) - idcard = operator.wear_id + else if(user.wear_id) + idcard = user.wear_id if(istype(idcard)) authentication = get_ares_access(idcard) last_login = idcard.registered_name else - to_chat(operator, SPAN_WARNING("You require an ID card to access this terminal!")) + to_chat(user, SPAN_WARNING("You require an ID card to access this terminal!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(authentication) @@ -248,23 +248,23 @@ if("new_report") var/priority_report = FALSE - var/maint_type = tgui_input_list(operator, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) + var/maint_type = tgui_input_list(user, "What is the type of maintenance item you wish to report?", "Report Category", GLOB.maintenance_categories, 30 SECONDS) switch(maint_type) if("Major Structural Damage", "Fire", "Communications Failure", "Power Generation Failure") priority_report = TRUE if(!maint_type) return FALSE - var/details = tgui_input_text(operator, "What are the details for this report?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What are the details for this report?", "Ticket Details", encode = FALSE) if(!details) return FALSE if((authentication >= APOLLO_ACCESS_REPORTER) && !priority_report) - var/is_priority = tgui_alert(operator, "Is this a priority report?", "Priority designation", list("Yes", "No")) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) if(is_priority == "Yes") priority_report = TRUE - var/confirm = alert(operator, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your maintenance report. \n\n Priority: [priority_report ? "Yes" : "No"]\n Category: '[maint_type]'\n Details: '[details]'\n\n Is this correct?", "Confirmation", "Yes", "No") if(confirm == "Yes") if(link) var/datum/ares_ticket/maintenance/maint_ticket = new(last_login, maint_type, details, priority_report) @@ -273,7 +273,7 @@ ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") else send_notifcation() - log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(operator)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") + log_game("ARES: Maintenance Ticket '\ref[maint_ticket]' created by [key_name(user)] as [last_login] with Category '[maint_type]' and Details of '[details]'.") return TRUE return FALSE @@ -285,14 +285,14 @@ var/assigned = ticket.ticket_assignee if(assigned) if(assigned == last_login) - var/prompt = tgui_alert(operator, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) + var/prompt = tgui_alert(user, "You already claimed this ticket! Do you wish to drop your claim?", "Unclaim ticket", list("Yes", "No")) if(prompt != "Yes") return FALSE /// set ticket back to pending ticket.ticket_assignee = null ticket.ticket_status = TICKET_PENDING return claim - var/choice = tgui_alert(operator, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) + var/choice = tgui_alert(user, "This ticket has already been claimed by [assigned]! Do you wish to override their claim?", "Claim Override", list("Yes", "No")) if(choice != "Yes") claim = FALSE if(claim) @@ -305,9 +305,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_submitter != last_login) - to_chat(operator, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to you!")) return FALSE - to_chat(operator, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) + to_chat(user, SPAN_WARNING("[ticket.ticket_type] [ticket.ticket_id] has been cancelled.")) ticket.ticket_status = TICKET_CANCELLED if(ticket.ticket_priority) ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been cancelled.") @@ -320,9 +320,9 @@ if(!istype(ticket)) return FALSE if(ticket.ticket_assignee != last_login && ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE - var/choice = tgui_alert(operator, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", list(TICKET_COMPLETED, TICKET_REJECTED), 20 SECONDS) switch(choice) if(TICKET_COMPLETED) ticket.ticket_status = TICKET_COMPLETED @@ -334,39 +334,39 @@ ares_apollo_talk("Priority [ticket.ticket_type] [ticket.ticket_id] has been [choice] by [last_login].") else send_notifcation() - to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") - var/obj/item/card/id/idcard = operator.get_active_hand() + var/obj/item/card/id/idcard = user.get_active_hand() var/has_id = FALSE if(istype(idcard)) has_id = TRUE - else if(operator.wear_id) - idcard = operator.wear_id + else if(user.wear_id) + idcard = user.wear_id if(istype(idcard)) has_id = TRUE if(!has_id) - to_chat(operator, SPAN_WARNING("You require an ID card to request an access ticket!")) + to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(idcard.registered_name != last_login) - to_chat(operator, SPAN_WARNING("This ID card does not match the active login!")) + to_chat(user, SPAN_WARNING("This ID card does not match the active login!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - var/details = tgui_input_text(operator, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) + var/details = tgui_input_text(user, "What is the purpose of this access ticket?", "Ticket Details", encode = FALSE) if(!details) return FALSE - var/confirm = alert(operator, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") + var/confirm = alert(user, "Please confirm the submission of your access ticket request.\n\nHolder: '[last_login]'\nDetails: '[details]'\n\nIs this correct?", "Confirmation", "Yes", "No") if(confirm != "Yes" || !link) return FALSE var/datum/ares_ticket/access/access_ticket = new(last_login, details, FALSE, idcard.registered_gid) link.waiting_ids += idcard link.tickets_access += access_ticket - log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(operator)] as [last_login] with Details of '[details]'.") - message_admins(SPAN_STAFF_IC("[key_name_admin(operator)] created a new ARES Access Ticket."), 1) + log_game("ARES: Access Ticket '\ref[access_ticket]' created by [key_name(user)] as [last_login] with Details of '[details]'.") + message_admins(SPAN_STAFF_IC("[key_name_admin(user)] created a new ARES Access Ticket."), 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] requesting access for '[details].") return TRUE @@ -387,9 +387,9 @@ access_ticket.ticket_status = TICKET_RETURNED identification.access -= ACCESS_MARINE_AI_TEMP - identification.modification_log += "Temporary AI Access self-returned by [key_name(operator)]." + identification.modification_log += "Temporary AI Access self-returned by [key_name(user)]." - to_chat(operator, SPAN_NOTICE("Temporary Access Ticket surrendered.")) + to_chat(user, SPAN_NOTICE("Temporary Access Ticket surrendered.")) playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] surrendered their access.") @@ -398,7 +398,7 @@ datacore.apollo_login_list += "[last_login] at [worldtime2text()], Surrendered Temporary Access Ticket." return TRUE - to_chat(operator, SPAN_WARNING("This ID card does not have an access ticket!")) + to_chat(user, SPAN_WARNING("This ID card does not have an access ticket!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE @@ -410,7 +410,7 @@ for(var/obj/item/card/id/identification in link.waiting_ids) if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_GRANTED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was granted access by [last_login].") @@ -418,7 +418,7 @@ for(var/obj/item/card/id/identification in link.active_ids) if(identification.registered_gid != access_ticket.user_id_num) continue - identification.handle_ares_access(last_login, operator) + identification.handle_ares_access(last_login, user) access_ticket.ticket_status = TICKET_REVOKED playsound(src, 'sound/machines/chime.ogg', 15, 1) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] had access revoked by [last_login].") @@ -430,10 +430,10 @@ if(!istype(access_ticket)) return FALSE if(access_ticket.ticket_assignee != last_login && access_ticket.ticket_assignee) //must be claimed by you or unclaimed.) - to_chat(operator, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) + to_chat(user, SPAN_WARNING("You cannot update a ticket that is not assigned to you!")) return FALSE access_ticket.ticket_status = TICKET_REJECTED - to_chat(operator, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] was rejected access by [last_login].") for(var/obj/item/card/id/identification in link.waiting_ids) if(identification.registered_gid != access_ticket.user_id_num) @@ -448,20 +448,27 @@ playsound = FALSE var/obj/structure/pipes/vents/pump/no_boom/gas/sec_vent = locate(params["vent"]) if(!istype(sec_vent) || sec_vent.welded) - to_chat(operator, SPAN_WARNING("ERROR: Gas release failure.")) + to_chat(user, SPAN_WARNING("ERROR: Gas release failure.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE if(!COOLDOWN_FINISHED(sec_vent, vent_trigger_cooldown)) - to_chat(operator, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) + to_chat(user, SPAN_WARNING("ERROR: Insufficient gas reserve for this vent.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - to_chat(operator, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) + to_chat(user, SPAN_WARNING("Initiating gas release from [sec_vent.vent_tag].")) playsound(src, 'sound/machines/chime.ogg', 15, 1) COOLDOWN_START(sec_vent, vent_trigger_cooldown, COOLDOWN_ARES_VENT) ares_apollo_talk("Nerve Gas release imminent from [sec_vent.vent_tag].") log_ares_security("Nerve Gas Release", "[last_login] released Nerve Gas from Vent '[sec_vent.vent_tag]'.") sec_vent.create_gas(VENT_GAS_CN20_XENO, 6, 5 SECONDS) - log_admin("[key_name(operator)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + log_admin("[key_name(user)] released nerve gas from Vent '[sec_vent.vent_tag]' via ARES.") + + if("security_lockdown") + if(!COOLDOWN_FINISHED(datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(datacore, aicore_lockdown)] seconds!")) + return FALSE + aicore_lockdown(user) + return TRUE if(playsound) var/sound = pick('sound/machines/pda_button1.ogg', 'sound/machines/pda_button2.ogg') diff --git a/code/game/machinery/aicore_lockdown.dm b/code/game/machinery/aicore_lockdown.dm new file mode 100644 index 000000000000..aaedf0fbfd63 --- /dev/null +++ b/code/game/machinery/aicore_lockdown.dm @@ -0,0 +1,118 @@ +/obj/structure/machinery/aicore_lockdown + name = "AI Core Lockdown" + icon_state = "big_red_button_tablev" + unslashable = TRUE + unacidable = TRUE + +/obj/structure/machinery/aicore_lockdown/ex_act(severity) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attack_remote(mob/user as mob) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attack_alien(mob/user as mob) + return FALSE + +/obj/structure/machinery/aicore_lockdown/attackby(obj/item/attacking_item, mob/user) + return attack_hand(user) + +/obj/structure/machinery/aicore_lockdown/attack_hand(mob/living/user) + if(isxeno(user)) + return FALSE + if(!allowed(user)) + to_chat(user, SPAN_DANGER("Access Denied")) + flick(initial(icon_state) + "-denied", src) + return FALSE + + if(!COOLDOWN_FINISHED(GLOB.ares_datacore, aicore_lockdown)) + to_chat(user, SPAN_BOLDWARNING("AI Core Lockdown procedures are on cooldown! They will be ready in [COOLDOWN_SECONDSLEFT(GLOB.ares_datacore, aicore_lockdown)] seconds!")) + return FALSE + + add_fingerprint(user) + aicore_lockdown(user) + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown + name = "ARES Emergency Lockdown Shutter" + density = FALSE + open_layer = 1.9 + plane = FLOOR_PLANE + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore + icon_state = "aidoor1" + base_icon_state = "aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/aicore/white + icon_state = "w_aidoor1" + base_icon_state = "w_aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/white + icon_state = "w_almayer_pdoor1" + base_icon_state = "w_almayer_pdoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/ai_lockdown/Initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(close)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(open)) + + +/client/proc/admin_aicore_alert() + set name = "AI Core Lockdown" + set category = "Admin.Ship" + + if(!admin_holder ||!check_rights(R_EVENT)) + return FALSE + + var/prompt = "Are you sure you want to trigger an AI Core lockdown? This will raise to red alert, and lockdown the AI Core." + + if(GLOB.ares_datacore.ai_lockdown_active == TRUE) + prompt = "Are you sure you want to lift the AI Core lockdown? This will lower to blue alert." + + var/choice = tgui_alert(src, prompt, "Choose.", list("Yes", "No"), 20 SECONDS) + if(choice != "Yes") + return FALSE + + choice = tgui_alert(src, "Do you want to use a custom announcement?", "Choose.", list("Yes", "No"), 20 SECONDS) + if(choice == "Yes") + var/message = tgui_input_text(src, "Please enter announcement text.", "what?") + aicore_lockdown(usr, message, admin = TRUE) + else + aicore_lockdown(usr, admin = TRUE) + return TRUE + +/proc/aicore_lockdown(mob/user, message, admin = FALSE) + if(IsAdminAdvancedProcCall()) + return PROC_BLOCKED + + var/log = "[key_name(user)] triggered AI core lockdown!" + var/ares_log = "[user.name] triggered triggered AI Core Emergency Lockdown." + if(message) + log = "[key_name(user)] triggered AI core emergency lockdown! (Using a custom announcement)." + if(admin) + log += " (Admin Triggered)." + ares_log = "[MAIN_AI_SYSTEM] triggered AI Core Emergency Lockdown." + + if(GLOB.ares_datacore.ai_lockdown_active) + GLOB.ares_datacore.ai_lockdown_active = FALSE + if(!message) + message = "ATTENTION! \n\nAI CORE EMERGENCY LOCKDOWN LIFTED." + log = "[key_name(user)] lifted AI core lockdown!" + ares_log = "[user.name] lifted AI Core Emergency Lockdown." + if(admin) + log += " (Admin Triggered)." + ares_log = "[MAIN_AI_SYSTEM] lifted AI Core Emergency Lockdown." + + if(GLOB.security_level > SEC_LEVEL_GREEN) + set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_AICORE_LIFT) + else + GLOB.ares_datacore.ai_lockdown_active = TRUE + if(!message) + message = "ATTENTION! \n\nCORE SECURITY ALERT. \n\nAI CORE UNDER LOCKDOWN." + if(GLOB.security_level < SEC_LEVEL_RED) + set_security_level(SEC_LEVEL_RED, TRUE, FALSE) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_AICORE_LOCKDOWN) + + COOLDOWN_START(GLOB.ares_datacore, aicore_lockdown, 2 MINUTES) + shipwide_ai_announcement(message, MAIN_AI_SYSTEM, 'sound/effects/biohazard.ogg') + message_admins(log) + log_ares_security("AI Core Lockdown", ares_log) diff --git a/code/game/machinery/biohazard_lockdown.dm b/code/game/machinery/biohazard_lockdown.dm index 2e3cbf6de234..fdf7c026185d 100644 --- a/code/game/machinery/biohazard_lockdown.dm +++ b/code/game/machinery/biohazard_lockdown.dm @@ -1,6 +1,6 @@ #define LOCKDOWN_READY 0 #define LOCKDOWN_ACTIVE 1 -GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) +GLOBAL_VAR_INIT(med_lockdown_state, LOCKDOWN_READY) /obj/structure/machinery/biohazard_lockdown name = "Emergency Containment Breach" @@ -51,7 +51,7 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) base_icon_state = "w_almayer_pdoor" /client/proc/admin_biohazard_alert() - set name = "Containment Breach Alert" + set name = "Research Containment Lockdown" set category = "Admin.Ship" if(!admin_holder ||!check_rights(R_EVENT)) @@ -63,8 +63,8 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) prompt = tgui_alert(src, "Do you want to use a custom announcement?", "Choose.", list("Yes", "No"), 20 SECONDS) if(prompt == "Yes") - var/whattoannounce = tgui_input_text(src, "Please enter announcement text.", "what?") - biohazard_lockdown(usr, whattoannounce, TRUE) + var/message = tgui_input_text(src, "Please enter announcement text.", "what?") + biohazard_lockdown(usr, message, admin = TRUE) else biohazard_lockdown(usr, admin = TRUE) return TRUE @@ -83,13 +83,14 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) log += " (Admin Triggered)." ares_log = "[MAIN_AI_SYSTEM] triggered Medical Research Biohazard Containment Lockdown." - switch(GLOB.lockdown_state) + switch(GLOB.med_lockdown_state) if(LOCKDOWN_READY) - GLOB.lockdown_state = LOCKDOWN_ACTIVE - set_security_level(SEC_LEVEL_RED, TRUE, FALSE) + GLOB.med_lockdown_state = LOCKDOWN_ACTIVE + if(GLOB.security_level < SEC_LEVEL_RED) + set_security_level(SEC_LEVEL_RED, TRUE, FALSE) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_RESEARCH_LOCKDOWN) if(LOCKDOWN_ACTIVE) - GLOB.lockdown_state = LOCKDOWN_READY + GLOB.med_lockdown_state = LOCKDOWN_READY message = "ATTENTION! \n\nBIOHAZARD CONTAINMENT LOCKDOWN LIFTED." log = "[key_name(user)] lifted research bio lockdown!" ares_log = "[user.name] lifted Medical Research Biohazard Containment Lockdown." @@ -97,7 +98,8 @@ GLOBAL_VAR_INIT(lockdown_state, LOCKDOWN_READY) log += " (Admin Triggered)." ares_log = "[MAIN_AI_SYSTEM] lifted Medical Research Biohazard Containment Lockdown." - set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) + if(GLOB.security_level > SEC_LEVEL_GREEN) + set_security_level(SEC_LEVEL_BLUE, TRUE, FALSE) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_RESEARCH_LIFT) shipwide_ai_announcement(message, MAIN_AI_SYSTEM, 'sound/effects/biohazard.ogg') diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm index 8a8698d0c047..0a1842134480 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -325,12 +325,21 @@ /turf/open/floor/almayer/aicore/glowing icon_state = "ai_floor2" light_color = "#d69c46" - light_range = 2 + light_range = 3 /turf/open/floor/almayer/aicore/glowing/Initialize(mapload, ...) . = ..() set_light_on(TRUE) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(start_emergency_light_on)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(start_emergency_light_off)) + +/turf/open/floor/almayer/aicore/glowing/proc/start_emergency_light_on() + set_light(l_color = "#c70f0f") + +/turf/open/floor/almayer/aicore/glowing/proc/start_emergency_light_off() + set_light(l_color = "#d69c46") + /turf/open/floor/almayer/aicore/no_build allow_construction = FALSE hull_floor = TRUE diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 626758fc2a5a..da95fc090da8 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -138,6 +138,7 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/adminpanelweapons, /client/proc/admin_general_quarters, /client/proc/admin_biohazard_alert, + /client/proc/admin_aicore_alert, /client/proc/toggle_hardcore_perma, /client/proc/toggle_bypass_joe_restriction, /client/proc/toggle_joe_respawns, diff --git a/code/modules/paperwork/desk_bell.dm b/code/modules/paperwork/desk_bell.dm index 6e7de1101ae7..ddd4a9dc5d58 100644 --- a/code/modules/paperwork/desk_bell.dm +++ b/code/modules/paperwork/desk_bell.dm @@ -93,3 +93,12 @@ flick("desk_bell_activate", src) times_rang++ return TRUE + +/obj/item/desk_bell/ares + name = "AI core reception bell" + +/obj/item/desk_bell/ares/ring_bell(mob/living/user) + if(broken_ringer) + return FALSE + ares_apollo_talk("Attendence requested at AI Core Reception.") + return ..() diff --git a/colonialmarines.dme b/colonialmarines.dme index 9392e74febea..cab62dffd2fc 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -822,6 +822,7 @@ #include "code\game\jobs\job\special\provost.dm" #include "code\game\jobs\job\special\uaac.dm" #include "code\game\jobs\job\special\uscm.dm" +#include "code\game\machinery\aicore_lockdown.dm" #include "code\game\machinery\air_alarm.dm" #include "code\game\machinery\air_sensor.dm" #include "code\game\machinery\autolathe.dm" diff --git a/icons/obj/structures/doors/blastdoors_shutters.dmi b/icons/obj/structures/doors/blastdoors_shutters.dmi index 8c63d0580922a59a7aa55ba77b7e9a6aa74f2d2b..1fe1df44b23a6dc76cbc8e8216d2e7dbb976b25f 100644 GIT binary patch literal 14340 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