diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 487499f697..281d7e48f7 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -165,14 +165,14 @@ if(welded) vent_icon += "weld" - playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) + playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) else if(!use_power || !node || (stat & (NOPOWER|BROKEN))) vent_icon += "off" - playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) + playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) else vent_icon += "[pump_direction ? "out" : "in"]" - playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) + playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon)) diff --git a/code/__defines/logging.dm b/code/__defines/logging.dm index c0e2ce9977..07a121d9bb 100644 --- a/code/__defines/logging.dm +++ b/code/__defines/logging.dm @@ -1,3 +1,2 @@ #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) -#define READ_FILE(file, text) DIRECT_INPUT(file, text) diff --git a/code/__defines/preferences.dm b/code/__defines/preferences.dm index 14adeb62bb..ba0abca8cf 100644 --- a/code/__defines/preferences.dm +++ b/code/__defines/preferences.dm @@ -15,38 +15,3 @@ #define MULTILINGUAL_MODE_MAX 4 #define SAVE_RESET -1 - -// Values for /datum/preference/savefile_identifier -/// This preference is character specific. -#define PREFERENCE_CHARACTER "character" -/// This preference is account specific. -#define PREFERENCE_PLAYER "player" - -// Values for /datum/preferences/current_tab -/// Open the character preference window -#define PREFERENCE_TAB_CHARACTER_PREFERENCES 0 - -/// Open the game preferences window -#define PREFERENCE_TAB_GAME_PREFERENCES 1 - -/// These will be shown in the character sidebar, but at the bottom. -#define PREFERENCE_CATEGORY_FEATURES "features" - -/// Any preferences that will show to the sides of the character in the setup menu. -#define PREFERENCE_CATEGORY_CLOTHING "clothing" - -/// Preferences that will be put into the 3rd list, and are not contextual. -#define PREFERENCE_CATEGORY_NON_CONTEXTUAL "non_contextual" - -/// Will be put under the game preferences window. -#define PREFERENCE_CATEGORY_GAME_PREFERENCES "game_preferences" - -/// These will show in the list to the right of the character preview. -#define PREFERENCE_CATEGORY_SECONDARY_FEATURES "secondary_features" - -/// These are preferences that are supplementary for main features, -/// such as hair color being affixed to hair. -#define PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES "supplemental_features" - -/// These preferences will not be rendered on the preferences page, and are practically invisible unless specifically rendered. Used for quirks, currently. -#define PREFERENCE_CATEGORY_MANUALLY_RENDERED "manually_rendered_features" diff --git a/code/__defines/text.dm b/code/__defines/text.dm index b48754dd32..4b520e5771 100644 --- a/code/__defines/text.dm +++ b/code/__defines/text.dm @@ -8,6 +8,3 @@ * because DM does it so it copies until the char BEFORE the `end` arg, so we need to bump `end` by 1 in these cases. */ #define PREVENT_CHARACTER_TRIM_LOSS(integer) (integer + 1) - -/// Simply removes the < and > characters, and limits the length of the message. -#define STRIP_HTML_SIMPLE(text, limit) (GLOB.angular_brackets.Replace(copytext(text, 1, limit), "")) diff --git a/code/_global_vars/_regexes.dm b/code/_global_vars/_regexes.dm index 1d92bc8c52..46e78a28fa 100644 --- a/code/_global_vars/_regexes.dm +++ b/code/_global_vars/_regexes.dm @@ -2,8 +2,3 @@ GLOBAL_DATUM_INIT(is_http_protocol, /regex, regex("^https?://")) GLOBAL_DATUM_INIT(is_valid_url, /regex, regex("((?:https://)\[-a-zA-Z0-9@:%._+~#=]{1,256}.\[-a-zA-Z0-9@:%._+~#=]{1,256}\\b(?:\[-a-zA-Z0-9@():%_+.,~#?&/=]*\[^.,!?:; ()<>{}\\[]\n\"'ยด`]))", "gm")) - -//All < and > characters -GLOBAL_DATUM_INIT(angular_brackets, /regex, regex(@"[<>]", "g")) - -GLOBAL_DATUM_INIT(is_color, /regex, regex("^#\[0-9a-fA-F]{6}$")) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 488b31d2a2..812c0d5fe7 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -259,7 +259,7 @@ return R // radio, true, false, what's the difference /mob/observer/dead/can_hear_radio(var/list/hearturfs) - return client?.prefs?.read_preference(/datum/preference/toggle/ghost_radio) + return is_preference_enabled(/datum/client_preference/ghost_radio) //Uses dview to quickly return mobs and objects in view, @@ -313,10 +313,10 @@ if(M && M.stat == DEAD && remote_ghosts && !M.forbid_seeing_deadchat) switch(type) if(1) //Audio messages use ghost_ears - if(M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + if(M.is_preference_enabled(/datum/client_preference/ghost_ears)) mobs |= M if(2) //Visual messages use ghost_sight - if(M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_sight)) + if(M.is_preference_enabled(/datum/client_preference/ghost_sight)) mobs |= M //For objects below the top level who still want to hear diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index 9348231911..d5e9bd841c 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -45,7 +45,7 @@ WRITE_LOG(debug_log, "DEBUG: [sanitize(text)]") for(var/client/C in GLOB.admins) - if(C.prefs?.read_preference(/datum/preference/toggle/show_debug_logs)) + if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs)) to_chat(C, type = MESSAGE_TYPE_DEBUG, html = "DEBUG: [text]") diff --git a/code/_helpers/sanitize_values.dm b/code/_helpers/sanitize_values.dm index 7cc687d7ce..c74176043c 100644 --- a/code/_helpers/sanitize_values.dm +++ b/code/_helpers/sanitize_values.dm @@ -6,13 +6,6 @@ return number return default -/proc/sanitize_float(number, min=0, max=1, accuracy=1, default=0) - if(isnum(number)) - number = round(number, accuracy) - if(round(min, accuracy) <= number && number <= round(max, accuracy)) - return number - return default - // Checks if the given input is a valid list index; returns true/false and doesn't change anything. /proc/is_valid_index(input, list/given_list) if(!isnum(input)) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 4d8968ad4e..2ded9ae75a 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -345,7 +345,7 @@ /var/icon/text_tag_icons = 'icons/chattags.dmi' /var/list/text_tag_cache = list() /proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null) - if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) + if(!(C && C.is_preference_enabled(/datum/client_preference/chat_tags))) return tagdesc if(!text_tag_cache[tagname]) var/icon/tag = icon(text_tag_icons, tagname) @@ -355,7 +355,7 @@ return icon2html(text_tag_cache[tagname], C, extra_classes = "text_tag") /proc/create_text_tag_old(var/tagname, var/tagdesc = tagname, var/client/C = null) - if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) + if(!(C && C.is_preference_enabled(/datum/client_preference/chat_tags))) return tagdesc return "[tagdesc]" diff --git a/code/_macros.dm b/code/_macros.dm index 2ff9da5e76..b37d24fa0d 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -26,7 +26,6 @@ // From TG, might be useful to have. // Didn't port SEND_TEXT() since to_chat() appears to serve the same purpose. #define DIRECT_OUTPUT(A, B) A << B -#define DIRECT_INPUT(A, B) A >> B #define SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image) #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) //#define WRITE_LOG is in logging.dm diff --git a/code/controllers/subsystems/ping.dm b/code/controllers/subsystems/ping.dm index 20cf8dd446..0b76d7dea1 100644 --- a/code/controllers/subsystems/ping.dm +++ b/code/controllers/subsystems/ping.dm @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(ping) var/client/client = currentrun[currentrun.len] currentrun.len-- - if(!client?.prefs?.read_preference(/datum/preference/toggle/vchat_enable)) + if(!client?.is_preference_enabled(/datum/client_preference/vchat_enable)) winset(client, "output", "on-show=&is-disabled=0&is-visible=1") winset(client, "browseroutput", "is-disabled=1;is-visible=0") client.tgui_panel.oldchat = TRUE diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 4aac042789..e38b78ab4d 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -27,7 +27,7 @@ if (nref) ref = nref // If a client exists, but they have disabled fancy windowing, disable it! - if(!user?.client?.prefs?.read_preference(/datum/preference/toggle/browser_style)) + if(user && user.client && !user.client.is_preference_enabled(/datum/client_preference/browser_style)) return add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index 376f87ed5e..3a95ba1db5 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -109,7 +109,7 @@ var/list/runechat_image_cache = list() owned_by = owner.client RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(unregister_qdel_self)) // this should only call owned_by if the client is destroyed - var/extra_length = owned_by.prefs?.read_preference(/datum/preference/toggle/runechat_long_messages) + var/extra_length = owned_by.is_preference_enabled(/datum/client_preference/runechat_long_messages) var/maxlen = extra_length ? CHAT_MESSAGE_EXT_LENGTH : CHAT_MESSAGE_LENGTH var/msgwidth = extra_length ? CHAT_MESSAGE_EXT_WIDTH : CHAT_MESSAGE_WIDTH @@ -244,10 +244,10 @@ var/list/runechat_image_cache = list() return // Doesn't want to hear - if(ismob(speaker) && !client.prefs?.read_preference(/datum/preference/toggle/runechat_mob)) + if(ismob(speaker) && !client.is_preference_enabled(/datum/client_preference/runechat_mob)) return // I know the pref is 'obj' but people dunno what turfs are - else if(!client.prefs?.read_preference(/datum/preference/toggle/runechat_obj)) + else if(!client.is_preference_enabled(/datum/client_preference/runechat_obj)) return // Incapable of receiving @@ -270,7 +270,7 @@ var/list/runechat_image_cache = list() if(italics) extra_classes |= "italics" - if(client.prefs?.read_preference(/datum/preference/toggle/runechat_border)) + if(client.is_preference_enabled(/datum/client_preference/runechat_border)) extra_classes |= "black_outline" var/dist = get_dist(src, speaker) diff --git a/code/datums/json_savefile.dm b/code/datums/json_savefile.dm deleted file mode 100644 index f93c885687..0000000000 --- a/code/datums/json_savefile.dm +++ /dev/null @@ -1,116 +0,0 @@ -/** - * A savefile implementation that handles all data using json. - * Also saves it using JSON too, fancy. - * If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved. - */ -/datum/json_savefile - var/path = "" - VAR_PRIVATE/list/tree - /// If this is set to true, calling set_entry or remove_entry will automatically call save(), this does not catch modifying a sub-tree, nor do I know how to do that - var/auto_save = FALSE - /// Cooldown that tracks the time between attempts to download the savefile. - COOLDOWN_DECLARE(download_cooldown) - -GENERAL_PROTECT_DATUM(/datum/json_savefile) - -/datum/json_savefile/New(path) - src.path = path - tree = list() - if(path && fexists(path)) - load() - -/** - * Gets an entry from the json tree, with an optional default value. - * If no key is specified it throws the entire tree at you instead - */ -/datum/json_savefile/proc/get_entry(key, default_value) - if(!key) - return tree - return (key in tree) ? tree[key] : default_value - -/// Sets an entry in the tree to the given value -/datum/json_savefile/proc/set_entry(key, value) - tree[key] = value - if(auto_save) - save() - -/// Removes the given key from the tree -/datum/json_savefile/proc/remove_entry(key) - if(key) - tree -= key - if(auto_save) - save() - -/// Wipes the entire tree -/datum/json_savefile/proc/wipe() - tree?.Cut() - -/datum/json_savefile/proc/load() - if(!path || !fexists(path)) - return FALSE - try - tree = json_decode(rustg_file_read(path)) - return TRUE - catch(var/exception/err) - stack_trace("failed to load json savefile at '[path]': [err]") - return FALSE - -/datum/json_savefile/proc/save() - if(path) - rustg_file_write(json_encode(tree, JSON_PRETTY_PRINT), path) - -/// Traverses the entire dir tree of the given savefile and dynamically assembles the tree from it -/datum/json_savefile/proc/import_byond_savefile(savefile/savefile) - tree.Cut() - var/list/dirs_to_go = list("/" = tree) - while(length(dirs_to_go)) - var/dir = dirs_to_go[1] - var/list/region = dirs_to_go[dir] - dirs_to_go.Cut(1, 2) - savefile.cd = dir - for(var/entry in savefile.dir) - var/entry_value - savefile.cd = "[dir]/[entry]" - //eof refers to the path you are cd'ed into, not the savefile as a whole. being false right after cding into an entry means this entry has no buffer, which only happens with nested save file directories - if (savefile.eof) - region[entry] = list() - dirs_to_go["[dir]/[entry]"] = region[entry] - continue - READ_FILE(savefile, entry_value) //we are cd'ed to the entry, so we don't need to specify a path to read from - region[entry] = entry_value - -/// Proc that handles generating a JSON file (prettified if 515 and over!) of a user's preferences and showing it to them. -/// Requester is passed in to the ftp() and tgui_alert() procs, and account_name is just used to generate the filename. -/// We don't _need_ to pass in account_name since this is reliant on the json_savefile datum already knowing what we correspond to, but it's here to help people keep track of their stuff. -/datum/json_savefile/proc/export_json_to_client(mob/requester, account_name) - if(!istype(requester) || !path) - return - - if(!json_export_checks(requester)) - return - - // COOLDOWN_START(src, download_cooldown, (CONFIG_GET(number/seconds_cooldown_for_preferences_export) * (1 SECONDS))) - COOLDOWN_START(src, download_cooldown, (10 SECONDS)) - var/file_name = "[account_name ? "[account_name]_" : ""]preferences_[time2text(world.timeofday, "MMM_DD_YYYY_hh-mm-ss")].json" - var/temporary_file_storage = "data/preferences_export_working_directory/[file_name]" - - if(!text2file(json_encode(tree, JSON_PRETTY_PRINT), temporary_file_storage)) - tgui_alert(requester, "Failed to export preferences to JSON! You might need to try again later.", "Export Preferences JSON") - return - - var/exportable_json = file(temporary_file_storage) - - DIRECT_OUTPUT(requester, ftp(exportable_json, file_name)) - fdel(temporary_file_storage) - -/// Proc that just handles all of the checks for exporting a preferences file, returns TRUE if all checks are passed, FALSE otherwise. -/// Just done like this to make the code in the export_json_to_client() proc a bit cleaner. -/datum/json_savefile/proc/json_export_checks(mob/requester) - if(!COOLDOWN_FINISHED(src, download_cooldown)) - tgui_alert(requester, "You must wait [DisplayTimeText(COOLDOWN_TIMELEFT(src, download_cooldown))] before exporting your preferences again!", "Export Preferences JSON") - return FALSE - - if(tgui_alert(requester, "Are you sure you want to export your preferences as a JSON file? This will save to a file on your computer.", "Export Preferences JSON", list("Cancel", "Yes")) == "Yes") - return TRUE - - return FALSE diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 3b48fc1a84..078db317d5 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -100,7 +100,7 @@ if(direct) if(ismob(thing)) var/mob/M = thing - if(M.check_sound_preference(pref_check)) + if(pref_check && !M.is_preference_enabled(pref_check)) continue SEND_SOUND(thing, S) else diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 3c0c8c15d2..8005d95016 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -13,7 +13,7 @@ mid_length = 60 volume = 40 extra_range = 10 - pref_check = /datum/preference/toggle/supermatter_hum + pref_check = /datum/client_preference/supermatter_hum /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -104,7 +104,7 @@ mid_length = 70 end_sound = 'sound/machines/air_pump/airpumpshutdown.ogg' volume = 15 - pref_check = /datum/preference/toggle/air_pump_noise + pref_check = /datum/client_preference/air_pump_noise //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/datums/looping_sounds/weather_sounds.dm b/code/datums/looping_sounds/weather_sounds.dm index 41210df105..db8396f3a3 100644 --- a/code/datums/looping_sounds/weather_sounds.dm +++ b/code/datums/looping_sounds/weather_sounds.dm @@ -1,5 +1,5 @@ /datum/looping_sound/weather - pref_check = /datum/preference/toggle/weather_sounds + pref_check = /datum/client_preference/weather_sounds /datum/looping_sound/weather/outside_blizzard mid_sounds = list( @@ -95,4 +95,4 @@ volume = 20 //Sound is already quieter in file /datum/looping_sound/weather/rain/indoors/heavy - volume = 40 + volume = 40 \ No newline at end of file diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index b0825c6329..8da8d7c000 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -41,7 +41,7 @@ progress = CLAMP(progress, 0, goal) bar.icon_state = "prog_bar_[round(((progress / goal) * 100), 5)]" - if(!shown && user.client?.prefs?.read_preference(/datum/preference/toggle/show_progress_bar)) + if(!shown && user.is_preference_enabled(/datum/client_preference/show_progress_bar)) user.client.images += bar shown = 1 @@ -66,4 +66,4 @@ qdel(bar) . = ..() -#undef PROGRESSBAR_HEIGHT +#undef PROGRESSBAR_HEIGHT \ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 7d63de088f..2be00fb258 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -394,7 +394,7 @@ var/list/mob/living/forced_ambiance_list = new /area/proc/play_ambience(var/mob/living/L, initial = TRUE) // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch - if(!L?.read_preference(/datum/preference/toggle/play_ambience)) + if(!(L && L.is_preference_enabled(/datum/client_preference/play_ambiance))) return var/volume_mod = L.get_preference_volume_channel(VOLUME_CHANNEL_AMBIENCE) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 0daa11598d..9386f531d6 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1277,8 +1277,8 @@ About the new airlock wires panel: for(var/mob/M as anything in player_list) if(!M || !M.client) continue - var/old_sounds = M.read_preference(/datum/preference/toggle/old_door_sounds) - var/department_door_sounds = M.read_preference(/datum/preference/toggle/department_door_sounds) + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) var/sound var/volume if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled. @@ -1405,8 +1405,8 @@ About the new airlock wires panel: for(var/mob/M as anything in player_list) if(!M || !M.client) continue - var/old_sounds = M.read_preference(/datum/preference/toggle/old_door_sounds) - var/department_door_sounds = M.read_preference(/datum/preference/toggle/department_door_sounds) + var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) + var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) var/sound var/volume if(old_sounds) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 48f9e1bff2..5fee77b9e3 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -406,16 +406,14 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept for (var/mob/R in receive) /* --- Loop through the receivers and categorize them --- */ - // Allows admins to disable radio - if(R?.client?.holder) - if(!R.client?.prefs?.read_preference(/datum/preference/toggle/holder/hear_radio)) - continue + if(!R.is_preference_enabled(/datum/client_preference/holder/hear_radio)) + continue if(istype(R, /mob/new_player)) // we don't want new players to hear messages. rare but generates runtimes. continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == DATA_ANTAG && istype(R, /mob/observer/dead) && R.client?.prefs?.read_preference(/datum/preference/toggle/ghost_radio)) + if(data == DATA_ANTAG && istype(R, /mob/observer/dead) && R.is_preference_enabled(/datum/client_preference/ghost_radio)) continue // --- Check for compression --- @@ -515,21 +513,21 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept if(length(heard_masked)) for (var/mob/R in heard_masked) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, name) - if(R.read_preference(/datum/preference/toggle/radio_sounds)) + if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard the voice normally (understood) --- */ if(length(heard_normal)) for (var/mob/R in heard_normal) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, realname) - if(R.read_preference(/datum/preference/toggle/radio_sounds)) + if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard the voice normally (did not understand) --- */ if(length(heard_voice)) for (var/mob/R in heard_voice) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M,0, vname) - if(R.read_preference(/datum/preference/toggle/radio_sounds)) + if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard a garbled voice (did not understand) --- */ @@ -537,14 +535,14 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept if(length(heard_garbled)) for (var/mob/R in heard_garbled) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1, vname) - if(R.read_preference(/datum/preference/toggle/radio_sounds)) + if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Complete gibberish. Usually happens when there's a compressed message --- */ if(length(heard_gibberish)) for (var/mob/R in heard_gibberish) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1) - if(R.read_preference(/datum/preference/toggle/radio_sounds)) + if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' return 1 @@ -619,10 +617,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept for (var/mob/R in receive) /* --- Loop through the receivers and categorize them --- */ - // Allow admins to disable radios completely - if(R?.client?.holder) - if(!R.client?.prefs?.read_preference(/datum/preference/toggle/holder/hear_radio)) - continue + + if(!R.is_preference_enabled(/datum/client_preference/holder/hear_radio)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. + continue + // --- Check for compression --- if(compression > 0) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 83a53c1537..83844f7995 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -326,7 +326,7 @@ else playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) else - playsound(src, drop_sound, 30, preference = /datum/preference/toggle/drop_sounds) + playsound(src, drop_sound, 30, preference = /datum/client_preference/drop_sounds) // apparently called whenever an item is removed from a slot, container, or anything else. /obj/item/proc/dropped(mob/user as mob) @@ -364,11 +364,11 @@ if(user.pulling == src) user.stop_pulling() if(("[slot]" in slot_flags_enumeration) && (slot_flags & slot_flags_enumeration["[slot]"])) if(equip_sound) - playsound(src, equip_sound, 20, preference = /datum/preference/toggle/pickup_sounds) + playsound(src, equip_sound, 20, preference = /datum/client_preference/pickup_sounds) else - playsound(src, drop_sound, 20, preference = /datum/preference/toggle/pickup_sounds) + playsound(src, drop_sound, 20, preference = /datum/client_preference/pickup_sounds) else if(slot == slot_l_hand || slot == slot_r_hand) - playsound(src, pickup_sound, 20, preference = /datum/preference/toggle/pickup_sounds) + playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds) return // As above but for items being equipped to an active module on a robot. @@ -948,7 +948,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. /obj/item/MouseEntered(location,control,params) . = ..() - if(usr?.read_preference(/datum/preference/toggle/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at + if(usr.is_preference_enabled(/datum/client_preference/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at var/user = usr tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), 5, TIMER_STOPPABLE) diff --git a/code/game/objects/items/devices/communicator/UI_tgui.dm b/code/game/objects/items/devices/communicator/UI_tgui.dm index e6c099ad45..fb59fd2a32 100644 --- a/code/game/objects/items/devices/communicator/UI_tgui.dm +++ b/code/game/objects/items/devices/communicator/UI_tgui.dm @@ -384,7 +384,7 @@ var/obj/item/device/communicator/comm = exonet.get_atom_from_address(their_address) to_chat(usr, "[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/device/communicator) ? comm.owner : comm.name], \"[text]\" (Reply)") for(var/mob/M in player_list) - if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat) continue if(exonet.get_atom_from_address(their_address) == M) diff --git a/code/game/objects/items/devices/communicator/messaging.dm b/code/game/objects/items/devices/communicator/messaging.dm index a060cf96c1..84c930479e 100644 --- a/code/game/objects/items/devices/communicator/messaging.dm +++ b/code/game/objects/items/devices/communicator/messaging.dm @@ -161,7 +161,7 @@ exonet_messages.Add("To [chosen_communicator]:
[text_message]") log_pda("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", src) for(var/mob/M in player_list) - if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat) continue if(M == src) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 49a4dab9b4..b253e93056 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -62,10 +62,12 @@ /obj/item/device/radio/headset/receive_range(freq, level, aiOverride = 0) if (aiOverride) + //playsound(loc, 'sound/effects/radio_common.ogg', 20, 1, 1, preference = /datum/client_preference/radio_sounds) return ..(freq, level) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc if(H.l_ear == src || H.r_ear == src) + //playsound(loc, 'sound/effects/radio_common.ogg', 20, 1, 1, preference = /datum/client_preference/radio_sounds) return ..(freq, level) return -1 diff --git a/code/game/objects/structures/low_wall.dm b/code/game/objects/structures/low_wall.dm index c96e7d8848..8d0d035b96 100644 --- a/code/game/objects/structures/low_wall.dm +++ b/code/game/objects/structures/low_wall.dm @@ -108,7 +108,7 @@ if(W.loc != user) // This should stop mounted modules ending up outside the module. return - if(can_place_items() && user.unEquip(W, 0, src.loc) && user.client?.prefs?.read_preference(/datum/preference/toggle/precision_placement)) + if(can_place_items() && user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement)) auto_align(W, click_parameters) return 1 @@ -662,4 +662,4 @@ /obj/effect/low_wall_spawner/eris/reinforced/rphoron icon_state = "spr_rphoron" - window_type = /obj/structure/window/eris/phoronreinforced + window_type = /obj/structure/window/eris/phoronreinforced \ No newline at end of file diff --git a/code/game/sound.dm b/code/game/sound.dm index dfdd85bfce..256dae7597 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -33,21 +33,10 @@ if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, is_global, channel, pressure_affected, S, preference, volume_channel) -/mob/proc/check_sound_preference(list/preference) - if(!islist(preference)) - preference = list(preference) - - for(var/p in preference) - if(!read_preference(p)) - return FALSE - - return TRUE - /mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, is_global, channel = 0, pressure_affected = TRUE, sound/S, preference, volume_channel = null) if(!client || ear_deaf > 0) return - - if(!check_sound_preference(preference)) + if(preference && !client.is_preference_enabled(preference)) return if(!S) @@ -133,7 +122,7 @@ /client/proc/playtitlemusic() if(!ticker || !SSmedia_tracks.lobby_tracks.len || !media) return - if(prefs?.read_preference(/datum/preference/toggle/play_lobby_music)) + if(is_preference_enabled(/datum/client_preference/play_lobby_music)) var/datum/track/T = pick(SSmedia_tracks.lobby_tracks) media.push_music(T.url, world.time, 0.85) to_chat(src,"Lobby music: [T.title] by [T.artist].") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index b57ebeee73..9135a5c067 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -17,7 +17,7 @@ var/global/floorIsLava = 0 var/rendered = "ATTACK: [text]" for(var/client/C in GLOB.admins) if((R_ADMIN|R_MOD) & C.holder.rights) - if(C.prefs?.read_preference(/datum/preference/toggle/show_attack_logs)) + if(C.is_preference_enabled(/datum/client_preference/mod/show_attack_logs)) var/msg = rendered to_chat(C, type = MESSAGE_TYPE_ATTACKLOG, diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index 75aff00da3..aad0440423 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -18,6 +18,8 @@ var/list/admin_verbs_default = list( // /client/proc/cmd_mod_say, // /client/proc/deadchat //toggles deadchat on/off, // /client/proc/toggle_ahelp_sound, + /client/proc/toggle_admin_global_looc, + /client/proc/toggle_admin_deadchat ) var/list/admin_verbs_admin = list( @@ -116,6 +118,8 @@ var/list/admin_verbs_admin = list( /client/proc/change_security_level, /client/proc/view_chemical_reaction_logs, /client/proc/makepAI, + /client/proc/toggle_debug_logs, + /client/proc/toggle_attack_logs, /datum/admins/proc/paralyze_mob, /client/proc/fixatmos, /datum/admins/proc/quick_nif, //VOREStation Add, @@ -261,6 +265,7 @@ var/list/admin_verbs_debug = list( /client/proc/jumptomob, /client/proc/jumptocoord, /client/proc/dsay, + /client/proc/toggle_debug_logs, /client/proc/admin_ghost, //allows us to ghost/reenter body at will, /datum/admins/proc/show_player_panel, //shows an interface for individual players, with various links (links require additional flags, //VOREStation Add, /client/proc/player_panel_new, //shows an interface for all players, with links to various panels, //VOREStation Add, @@ -404,6 +409,7 @@ var/list/admin_verbs_mod = list( /client/proc/check_antagonists, /client/proc/aooc, /client/proc/jobbans, + /client/proc/toggle_attack_logs, /client/proc/cmd_admin_subtle_message, //send an message to somebody as a 'voice in their head', /datum/admins/proc/paralyze_mob, /client/proc/cmd_admin_direct_narrate, @@ -539,6 +545,8 @@ var/list/admin_verbs_event_manager = list( /client/proc/change_human_appearance_self, // Allows the human-based mob itself change its basic appearance , /client/proc/change_security_level, /client/proc/makepAI, + /client/proc/toggle_debug_logs, + /client/proc/toggle_attack_logs, /datum/admins/proc/paralyze_mob, /client/proc/fixatmos, /datum/admins/proc/sendFax, diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 395620e1ea..52eaede877 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -251,7 +251,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) for(var/client/X in GLOB.admins) if(!check_rights(R_ADMIN, 0, X)) continue - if(X.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) + if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) X << 'sound/effects/adminhelp.ogg' window_flash(X) to_chat(X, chat_msg) @@ -362,7 +362,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) return if(initiator) - if(initiator.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) + if(initiator.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) initiator << 'sound/effects/adminhelp.ogg' to_chat(initiator, "[span_red("- AdminHelp Rejected! -")]
\ diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 0a0fd04b98..c250eb8c4a 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -165,7 +165,7 @@ to_chat(src, "PM to-Admins: [msg]") //play the recieving admin the adminhelp sound (if they have them enabled) - if(recipient.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) + if(recipient.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) recipient << 'sound/effects/adminhelp.ogg' else diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 1d6cead98c..7e70eba8e5 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -11,7 +11,7 @@ to_chat(src, "You cannot send DSAY messages (muted).") return - if(!prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(!is_preference_enabled(/datum/client_preference/show_dsay)) to_chat(src, "You have deadchat muted.") return diff --git a/code/modules/admin/verbs/lightning_strike.dm b/code/modules/admin/verbs/lightning_strike.dm index 091cd6ca33..15bf773829 100644 --- a/code/modules/admin/verbs/lightning_strike.dm +++ b/code/modules/admin/verbs/lightning_strike.dm @@ -65,7 +65,7 @@ var/sound = get_sfx("thunder") for(var/mob/M in player_list) if( (P && (M.z in P.expected_z_levels)) || M.z == T.z) - if(M.check_sound_preference(/datum/preference/toggle/weather_sounds)) + if(M.is_preference_enabled(/datum/client_preference/weather_sounds)) M.playsound_local(get_turf(M), soundin = sound, vol = 70, vary = FALSE, is_global = TRUE) if(cosmetic) // Everything beyond here involves potentially damaging things. If we don't want to do that, stop now. diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 0a378344d4..c57ad0b706 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -40,7 +40,7 @@ var/list/sounds_cache = list() message_admins("[key_name_admin(src)] played sound [S]", 1) for(var/mob/M in player_list) - if(M.read_preference(/datum/preference/toggle/play_admin_midis)) + if(M.is_preference_enabled(/datum/client_preference/play_admin_midis)) admin_sound.volume = vol * M.client.admin_music_volume SEND_SOUND(M, admin_sound) admin_sound.volume = vol @@ -89,7 +89,7 @@ var/list/sounds_cache = list() log_admin("[key_name(src)] played sound [S] on Z[target_z]") message_admins("[key_name_admin(src)] played sound [S] on Z[target_z]", 1) for(var/mob/M in player_list) - if(M.read_preference(/datum/preference/toggle/play_admin_midis) && M.z == target_z) + if(M.is_preference_enabled(/datum/client_preference/play_admin_midis) && M.z == target_z) M << uploaded_sound feedback_add_details("admin_verb", "Play Z Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -202,7 +202,7 @@ var/list/sounds_cache = list() for(var/m in player_list) var/mob/M = m var/client/C = M.client - if(C.prefs?.read_preference(/datum/preference/toggle/play_admin_midis)) + if(C.is_preference_enabled(/datum/client_preference/play_admin_midis)) if(!stop_web_sounds) C.tgui_panel?.play_music(web_sound_url, music_extra_data) else diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index f5035673a9..d4a405e35c 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -21,7 +21,7 @@ for(var/client/C in GLOB.admins) if(R_ADMIN|R_EVENT & C.holder.rights) - if(C.prefs?.read_preference(/datum/preference/toggle/show_chat_prayers)) + if(C.is_preference_enabled(/datum/client_preference/admin/show_chat_prayers)) to_chat(C, msg, type = MESSAGE_TYPE_PRAYER, confidential = TRUE) C << 'sound/effects/ding.ogg' to_chat(usr, "Your prayers have been received by the gods.", confidential = TRUE) diff --git a/code/modules/asset_cache/assets/preferences.dm b/code/modules/asset_cache/assets/preferences.dm deleted file mode 100644 index 3d01471a38..0000000000 --- a/code/modules/asset_cache/assets/preferences.dm +++ /dev/null @@ -1,22 +0,0 @@ -/// Sends information needed for shared details on individual preferences -/datum/asset/json/preferences - name = "preferences" - -/datum/asset/json/preferences/generate() - var/list/preference_data = list() - - for(var/middleware_type in subtypesof(/datum/preference_middleware)) - var/datum/preference_middleware/middleware = new middleware_type - var/data = middleware.get_constant_data() - if(!isnull(data)) - preference_data[middleware.key] = data - - qdel(middleware) - - for(var/preference_type in GLOB.preference_entries) - var/datum/preference/preference_entry = GLOB.preference_entries[preference_type] - var/data = preference_entry.compile_constant_data() - if(!isnull(data)) - preference_data[preference_entry.savefile_key] = data - - return preference_data diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index f56b56f3b2..6a08f8c16f 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -201,15 +201,12 @@ //preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum) prefs = preferences_datums[ckey] - if(prefs) - prefs.client = src - prefs.load_savefile() // just to make sure we have the latest data - prefs.apply_all_client_preferences() - else + if(!prefs) prefs = new /datum/preferences(src) preferences_datums[ckey] = prefs prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning + prefs.client = src // Only relevant if we reloaded it from the global list, otherwise prefs/New sets it hook_vr("client_new",list(src)) //VOREStation Code. For now this only loads vore prefs, so better put before mob.Login() call but after normal prefs are loaded. @@ -274,7 +271,7 @@ alert = TRUE if(alert) for(var/client/X in GLOB.admins) - if(X.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) + if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) X << 'sound/effects/tones/newplayerping.ogg' window_flash(X) //VOREStation Edit end. @@ -490,12 +487,6 @@ if(prefs) prefs.ShowChoices(usr) -/client/verb/game_options() - set name = "Game Options" - set category = "Preferences" - if(prefs) - prefs.tgui_interact(usr) - /client/proc/findJoinDate() var/list/http = world.Export("http://byond.com/members/[ckey]?format=text") if(!http) diff --git a/code/modules/client/preference_setup/antagonism/01_basic.dm b/code/modules/client/preference_setup/antagonism/01_basic.dm index 3572a2fd62..8dc760a00f 100644 --- a/code/modules/client/preference_setup/antagonism/01_basic.dm +++ b/code/modules/client/preference_setup/antagonism/01_basic.dm @@ -4,17 +4,17 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None") name = "Basic" sort_order = 1 -/datum/category_item/player_setup_item/antagonism/basic/load_character(list/save_data) - pref.uplinklocation = save_data["uplinklocation"] - pref.exploit_record = save_data["exploit_record"] - pref.antag_faction = save_data["antag_faction"] - pref.antag_vis = save_data["antag_vis"] +/datum/category_item/player_setup_item/antagonism/basic/load_character(var/savefile/S) + S["uplinklocation"] >> pref.uplinklocation + S["exploit_record"] >> pref.exploit_record + S["antag_faction"] >> pref.antag_faction + S["antag_vis"] >> pref.antag_vis -/datum/category_item/player_setup_item/antagonism/basic/save_character(list/save_data) - save_data["uplinklocation"] = pref.uplinklocation - save_data["exploit_record"] = pref.exploit_record - save_data["antag_faction"] = pref.antag_faction - save_data["antag_vis"] = pref.antag_vis +/datum/category_item/player_setup_item/antagonism/basic/save_character(var/savefile/S) + S["uplinklocation"] << pref.uplinklocation + S["exploit_record"] << pref.exploit_record + S["antag_faction"] << pref.antag_faction + S["antag_vis"] << pref.antag_vis /datum/category_item/player_setup_item/antagonism/basic/sanitize_character() pref.uplinklocation = sanitize_inlist(pref.uplinklocation, uplink_locations, initial(pref.uplinklocation)) diff --git a/code/modules/client/preference_setup/antagonism/02_candidacy.dm b/code/modules/client/preference_setup/antagonism/02_candidacy.dm index f4eed30278..945491ed0d 100644 --- a/code/modules/client/preference_setup/antagonism/02_candidacy.dm +++ b/code/modules/client/preference_setup/antagonism/02_candidacy.dm @@ -31,11 +31,11 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set name = "Candidacy" sort_order = 2 -/datum/category_item/player_setup_item/antagonism/candidacy/load_character(list/save_data) - pref.be_special = save_data["be_special"] +/datum/category_item/player_setup_item/antagonism/candidacy/load_character(var/savefile/S) + S["be_special"] >> pref.be_special -/datum/category_item/player_setup_item/antagonism/candidacy/save_character(list/save_data) - save_data["be_special"] = pref.be_special +/datum/category_item/player_setup_item/antagonism/candidacy/save_character(var/savefile/S) + S["be_special"] << pref.be_special /datum/category_item/player_setup_item/antagonism/candidacy/sanitize_character() pref.be_special = sanitize_integer(pref.be_special, 0, 16777215, initial(pref.be_special)) //VOREStation Edit - 24 bits of support diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index fb7b5ed4eb..dc4202f912 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -10,37 +10,37 @@ name = "Basic" sort_order = 1 -/datum/category_item/player_setup_item/general/basic/load_character(list/save_data) - pref.real_name = save_data["real_name"] - pref.nickname = save_data["nickname"] - pref.be_random_name = save_data["name_is_always_random"] - pref.biological_gender = save_data["gender"] - pref.identifying_gender = save_data["id_gender"] - pref.age = save_data["age"] - pref.bday_month = save_data["bday_month"] - pref.bday_day = save_data["bday_day"] - pref.last_birthday_notification = save_data["last_bday_note"] - pref.bday_announce = save_data["bday_announce"] - pref.spawnpoint = save_data["spawnpoint"] - pref.metadata = save_data["OOC_Notes"] - pref.metadata_likes = save_data["OOC_Notes_Likes"] - pref.metadata_dislikes = save_data["OOC_Notes_Disikes"] +/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S) + S["real_name"] >> pref.real_name + S["nickname"] >> pref.nickname + S["name_is_always_random"] >> pref.be_random_name + S["gender"] >> pref.biological_gender + S["id_gender"] >> pref.identifying_gender + S["age"] >> pref.age + S["bday_month"] >> pref.bday_month + S["bday_day"] >> pref.bday_day + S["last_bday_note"] >> pref.last_birthday_notification + S["bday_announce"] >> pref.bday_announce + S["spawnpoint"] >> pref.spawnpoint + S["OOC_Notes"] >> pref.metadata + S["OOC_Notes_Likes"] >> pref.metadata_likes + S["OOC_Notes_Disikes"] >> pref.metadata_dislikes -/datum/category_item/player_setup_item/general/basic/save_character(list/save_data) - save_data["real_name"] = pref.real_name - save_data["nickname"] = pref.nickname - save_data["name_is_always_random"] = pref.be_random_name - save_data["gender"] = pref.biological_gender - save_data["id_gender"] = pref.identifying_gender - save_data["age"] = pref.age - save_data["bday_month"] = pref.bday_month - save_data["bday_day"] = pref.bday_day - save_data["last_bday_note"] = pref.last_birthday_notification - save_data["bday_announce"] = pref.bday_announce - save_data["spawnpoint"] = pref.spawnpoint - save_data["OOC_Notes"] = pref.metadata - save_data["OOC_Notes_Likes"] = pref.metadata_likes - save_data["OOC_Notes_Disikes"] = pref.metadata_dislikes +/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S) + S["real_name"] << pref.real_name + S["nickname"] << pref.nickname + S["name_is_always_random"] << pref.be_random_name + S["gender"] << pref.biological_gender + S["id_gender"] << pref.identifying_gender + S["age"] << pref.age + S["bday_month"] << pref.bday_month + S["bday_day"] << pref.bday_day + S["last_bday_note"] << pref.last_birthday_notification + S["bday_announce"] << pref.bday_announce + S["spawnpoint"] << pref.spawnpoint + S["OOC_Notes"] << pref.metadata + S["OOC_Notes_Likes"] << pref.metadata_likes + S["OOC_Notes_Disikes"] << pref.metadata_dislikes /datum/category_item/player_setup_item/general/basic/sanitize_character() pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age)) diff --git a/code/modules/client/preference_setup/general/02_language.dm b/code/modules/client/preference_setup/general/02_language.dm index 4c7f408239..0b86c67b04 100644 --- a/code/modules/client/preference_setup/general/02_language.dm +++ b/code/modules/client/preference_setup/general/02_language.dm @@ -7,19 +7,25 @@ sort_order = 2 var/static/list/forbidden_prefixes = list(";", ":", ".", "!", "*", "^", "-") -/datum/category_item/player_setup_item/general/language/load_character(list/save_data) - pref.alternate_languages = save_data["language"] - pref.extra_languages = save_data["extra_languages"] - pref.language_prefixes = save_data["language_prefixes"] - pref.preferred_language = save_data["preflang"] - pref.language_custom_keys = save_data["language_custom_keys"] +/datum/category_item/player_setup_item/general/language/load_character(var/savefile/S) + S["language"] >> pref.alternate_languages + S["extra_languages"] >> pref.extra_languages + if(islist(pref.alternate_languages)) // Because aparently it may not be? + testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") + S["language_prefixes"] >> pref.language_prefixes + //VORE Edit Begin + S["preflang"] >> pref.preferred_language + //VORE Edit End + S["language_custom_keys"] >> pref.language_custom_keys -/datum/category_item/player_setup_item/general/language/save_character(list/save_data) - save_data["language"] = pref.alternate_languages - save_data["extra_languages"] = pref.extra_languages - save_data["language_prefixes"] = pref.language_prefixes - save_data["language_custom_keys"] = pref.language_custom_keys - save_data["preflang"] = pref.preferred_language +/datum/category_item/player_setup_item/general/language/save_character(var/savefile/S) + S["language"] << pref.alternate_languages + S["extra_languages"] << pref.extra_languages + if(islist(pref.alternate_languages)) // Because aparently it may not be? + testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") + S["language_prefixes"] << pref.language_prefixes + S["language_custom_keys"] << pref.language_custom_keys + S["preflang"] << pref.preferred_language // VOREStation Edit /datum/category_item/player_setup_item/general/language/sanitize_character() if(!islist(pref.alternate_languages)) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index dbdd5352e5..e416121034 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -90,135 +90,135 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O name = "Body" sort_order = 3 -/datum/category_item/player_setup_item/general/body/load_character(list/save_data) - pref.species = save_data["species"] - pref.r_hair = save_data["hair_red"] - pref.g_hair = save_data["hair_green"] - pref.b_hair = save_data["hair_blue"] - pref.r_facial = save_data["facial_red"] - pref.r_grad = save_data["grad_red"] - pref.g_grad = save_data["grad_green"] - pref.b_grad = save_data["grad_blue"] - pref.g_facial = save_data["facial_green"] - pref.b_facial = save_data["facial_blue"] - pref.s_tone = save_data["skin_tone"] - pref.r_skin = save_data["skin_red"] - pref.g_skin = save_data["skin_green"] - pref.b_skin = save_data["skin_blue"] - pref.h_style = save_data["hair_style_name"] - pref.f_style = save_data["facial_style_name"] - pref.grad_style = save_data["grad_style_name"] - pref.r_eyes = save_data["eyes_red"] - pref.g_eyes = save_data["eyes_green"] - pref.b_eyes = save_data["eyes_blue"] - pref.b_type = save_data["b_type"] - pref.disabilities = save_data["disabilities"] - pref.organ_data = save_data["organ_data"] - pref.rlimb_data = save_data["rlimb_data"] - pref.body_markings = save_data["body_markings"] - pref.synth_color = save_data["synth_color"] - pref.r_synth = save_data["synth_red"] - pref.g_synth = save_data["synth_green"] - pref.b_synth = save_data["synth_blue"] - pref.synth_markings = save_data["synth_markings"] - pref.bgstate = save_data["bgstate"] - pref.body_descriptors = save_data["body_descriptors"] - pref.ear_style = save_data["ear_style"] - pref.r_ears = save_data["r_ears"] - pref.g_ears = save_data["g_ears"] - pref.b_ears = save_data["b_ears"] - pref.r_ears2 = save_data["r_ears2"] - pref.g_ears2 = save_data["g_ears2"] - pref.b_ears2 = save_data["b_ears2"] - pref.r_ears3 = save_data["r_ears3"] - pref.g_ears3 = save_data["g_ears3"] - pref.b_ears3 = save_data["b_ears3"] - pref.tail_style = save_data["tail_style"] - pref.r_tail = save_data["r_tail"] - pref.g_tail = save_data["g_tail"] - pref.b_tail = save_data["b_tail"] - pref.r_tail2 = save_data["r_tail2"] - pref.g_tail2 = save_data["g_tail2"] - pref.b_tail2 = save_data["b_tail2"] - pref.r_tail3 = save_data["r_tail3"] - pref.g_tail3 = save_data["g_tail3"] - pref.b_tail3 = save_data["b_tail3"] - pref.wing_style = save_data["wing_style"] - pref.r_wing = save_data["r_wing"] - pref.g_wing = save_data["g_wing"] - pref.b_wing = save_data["b_wing"] - pref.r_wing2 = save_data["r_wing2"] - pref.g_wing2 = save_data["g_wing2"] - pref.b_wing2 = save_data["b_wing2"] - pref.r_wing3 = save_data["r_wing3"] - pref.g_wing3 = save_data["g_wing3"] - pref.b_wing3 = save_data["b_wing3"] - pref.digitigrade = save_data["digitigrade"] +/datum/category_item/player_setup_item/general/body/load_character(var/savefile/S) + S["species"] >> pref.species + S["hair_red"] >> pref.r_hair + S["hair_green"] >> pref.g_hair + S["hair_blue"] >> pref.b_hair + S["facial_red"] >> pref.r_facial + S["grad_red"] >> pref.r_grad + S["grad_green"] >> pref.g_grad + S["grad_blue"] >> pref.b_grad + S["facial_green"] >> pref.g_facial + S["facial_blue"] >> pref.b_facial + S["skin_tone"] >> pref.s_tone + S["skin_red"] >> pref.r_skin + S["skin_green"] >> pref.g_skin + S["skin_blue"] >> pref.b_skin + S["hair_style_name"] >> pref.h_style + S["facial_style_name"] >> pref.f_style + S["grad_style_name"] >> pref.grad_style + S["eyes_red"] >> pref.r_eyes + S["eyes_green"] >> pref.g_eyes + S["eyes_blue"] >> pref.b_eyes + S["b_type"] >> pref.b_type + S["disabilities"] >> pref.disabilities + S["organ_data"] >> pref.organ_data + S["rlimb_data"] >> pref.rlimb_data + S["body_markings"] >> pref.body_markings + S["synth_color"] >> pref.synth_color + S["synth_red"] >> pref.r_synth + S["synth_green"] >> pref.g_synth + S["synth_blue"] >> pref.b_synth + S["synth_markings"] >> pref.synth_markings + S["bgstate"] >> pref.bgstate + S["body_descriptors"] >> pref.body_descriptors + S["ear_style"] >> pref.ear_style + S["r_ears"] >> pref.r_ears + S["g_ears"] >> pref.g_ears + S["b_ears"] >> pref.b_ears + S["r_ears2"] >> pref.r_ears2 + S["g_ears2"] >> pref.g_ears2 + S["b_ears2"] >> pref.b_ears2 + S["r_ears3"] >> pref.r_ears3 + S["g_ears3"] >> pref.g_ears3 + S["b_ears3"] >> pref.b_ears3 + S["tail_style"] >> pref.tail_style + S["r_tail"] >> pref.r_tail + S["g_tail"] >> pref.g_tail + S["b_tail"] >> pref.b_tail + S["r_tail2"] >> pref.r_tail2 + S["g_tail2"] >> pref.g_tail2 + S["b_tail2"] >> pref.b_tail2 + S["r_tail3"] >> pref.r_tail3 + S["g_tail3"] >> pref.g_tail3 + S["b_tail3"] >> pref.b_tail3 + S["wing_style"] >> pref.wing_style + S["r_wing"] >> pref.r_wing + S["g_wing"] >> pref.g_wing + S["b_wing"] >> pref.b_wing + S["r_wing2"] >> pref.r_wing2 + S["g_wing2"] >> pref.g_wing2 + S["b_wing2"] >> pref.b_wing2 + S["r_wing3"] >> pref.r_wing3 + S["g_wing3"] >> pref.g_wing3 + S["b_wing3"] >> pref.b_wing3 + S["digitigrade"] >> pref.digitigrade -/datum/category_item/player_setup_item/general/body/save_character(list/save_data) - save_data["species"] = pref.species - save_data["hair_red"] = pref.r_hair - save_data["hair_green"] = pref.g_hair - save_data["hair_blue"] = pref.b_hair - save_data["grad_red"] = pref.r_grad - save_data["grad_green"] = pref.g_grad - save_data["grad_blue"] = pref.b_grad - save_data["facial_red"] = pref.r_facial - save_data["facial_green"] = pref.g_facial - save_data["facial_blue"] = pref.b_facial - save_data["skin_tone"] = pref.s_tone - save_data["skin_red"] = pref.r_skin - save_data["skin_green"] = pref.g_skin - save_data["skin_blue"] = pref.b_skin - save_data["hair_style_name"] = pref.h_style - save_data["facial_style_name"] = pref.f_style - save_data["grad_style_name"] = pref.grad_style - save_data["eyes_red"] = pref.r_eyes - save_data["eyes_green"] = pref.g_eyes - save_data["eyes_blue"] = pref.b_eyes - save_data["b_type"] = pref.b_type - save_data["disabilities"] = pref.disabilities - save_data["organ_data"] = pref.organ_data - save_data["rlimb_data"] = pref.rlimb_data - save_data["body_markings"] = pref.body_markings - save_data["synth_color"] = pref.synth_color - save_data["synth_red"] = pref.r_synth - save_data["synth_green"] = pref.g_synth - save_data["synth_blue"] = pref.b_synth - save_data["synth_markings"] = pref.synth_markings - save_data["bgstate"] = pref.bgstate - save_data["body_descriptors"] = pref.body_descriptors - save_data["ear_style"] = pref.ear_style - save_data["r_ears"] = pref.r_ears - save_data["g_ears"] = pref.g_ears - save_data["b_ears"] = pref.b_ears - save_data["r_ears2"] = pref.r_ears2 - save_data["g_ears2"] = pref.g_ears2 - save_data["b_ears2"] = pref.b_ears2 - save_data["r_ears3"] = pref.r_ears3 - save_data["g_ears3"] = pref.g_ears3 - save_data["b_ears3"] = pref.b_ears3 - save_data["tail_style"] = pref.tail_style - save_data["r_tail"] = pref.r_tail - save_data["g_tail"] = pref.g_tail - save_data["b_tail"] = pref.b_tail - save_data["r_tail2"] = pref.r_tail2 - save_data["g_tail2"] = pref.g_tail2 - save_data["b_tail2"] = pref.b_tail2 - save_data["r_tail3"] = pref.r_tail3 - save_data["g_tail3"] = pref.g_tail3 - save_data["b_tail3"] = pref.b_tail3 - save_data["wing_style"] = pref.wing_style - save_data["r_wing"] = pref.r_wing - save_data["g_wing"] = pref.g_wing - save_data["b_wing"] = pref.b_wing - save_data["r_wing2"] = pref.r_wing2 - save_data["g_wing2"] = pref.g_wing2 - save_data["b_wing2"] = pref.b_wing2 - save_data["r_wing3"] = pref.r_wing3 - save_data["g_wing3"] = pref.g_wing3 - save_data["b_wing3"] = pref.b_wing3 - save_data["digitigrade"] = pref.digitigrade +/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S) + S["species"] << pref.species + S["hair_red"] << pref.r_hair + S["hair_green"] << pref.g_hair + S["hair_blue"] << pref.b_hair + S["grad_red"] << pref.r_grad + S["grad_green"] << pref.g_grad + S["grad_blue"] << pref.b_grad + S["facial_red"] << pref.r_facial + S["facial_green"] << pref.g_facial + S["facial_blue"] << pref.b_facial + S["skin_tone"] << pref.s_tone + S["skin_red"] << pref.r_skin + S["skin_green"] << pref.g_skin + S["skin_blue"] << pref.b_skin + S["hair_style_name"] << pref.h_style + S["facial_style_name"] << pref.f_style + S["grad_style_name"] << pref.grad_style + S["eyes_red"] << pref.r_eyes + S["eyes_green"] << pref.g_eyes + S["eyes_blue"] << pref.b_eyes + S["b_type"] << pref.b_type + S["disabilities"] << pref.disabilities + S["organ_data"] << pref.organ_data + S["rlimb_data"] << pref.rlimb_data + S["body_markings"] << pref.body_markings + S["synth_color"] << pref.synth_color + S["synth_red"] << pref.r_synth + S["synth_green"] << pref.g_synth + S["synth_blue"] << pref.b_synth + S["synth_markings"] << pref.synth_markings + S["bgstate"] << pref.bgstate + S["body_descriptors"] << pref.body_descriptors + S["ear_style"] << pref.ear_style + S["r_ears"] << pref.r_ears + S["g_ears"] << pref.g_ears + S["b_ears"] << pref.b_ears + S["r_ears2"] << pref.r_ears2 + S["g_ears2"] << pref.g_ears2 + S["b_ears2"] << pref.b_ears2 + S["r_ears3"] << pref.r_ears3 + S["g_ears3"] << pref.g_ears3 + S["b_ears3"] << pref.b_ears3 + S["tail_style"] << pref.tail_style + S["r_tail"] << pref.r_tail + S["g_tail"] << pref.g_tail + S["b_tail"] << pref.b_tail + S["r_tail2"] << pref.r_tail2 + S["g_tail2"] << pref.g_tail2 + S["b_tail2"] << pref.b_tail2 + S["r_tail3"] << pref.r_tail3 + S["g_tail3"] << pref.g_tail3 + S["b_tail3"] << pref.b_tail3 + S["wing_style"] << pref.wing_style + S["r_wing"] << pref.r_wing + S["g_wing"] << pref.g_wing + S["b_wing"] << pref.b_wing + S["r_wing2"] << pref.r_wing2 + S["g_wing2"] << pref.g_wing2 + S["b_wing2"] << pref.b_wing2 + S["r_wing3"] << pref.r_wing3 + S["g_wing3"] << pref.g_wing3 + S["b_wing3"] << pref.b_wing3 + S["digitigrade"] << pref.digitigrade /datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S) if(!pref.species || !(pref.species in GLOB.playable_species)) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 57146e5832..692e4f7d57 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -6,23 +6,23 @@ name = "Clothing" sort_order = 4 -/datum/category_item/player_setup_item/general/equipment/load_character(list/save_data) - pref.all_underwear = save_data["all_underwear"] - pref.all_underwear_metadata = save_data["all_underwear_metadata"] - pref.backbag = save_data["backbag"] - pref.pdachoice = save_data["pdachoice"] - pref.communicator_visibility = save_data["communicator_visibility"] - pref.ringtone = save_data["ringtone"] - pref.shoe_hater = save_data["shoe_hater"] +/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S) + S["all_underwear"] >> pref.all_underwear + S["all_underwear_metadata"] >> pref.all_underwear_metadata + S["backbag"] >> pref.backbag + S["pdachoice"] >> pref.pdachoice + S["communicator_visibility"] >> pref.communicator_visibility + S["ringtone"] >> pref.ringtone + S["shoe_hater"] >> pref.shoe_hater //RS ADD -/datum/category_item/player_setup_item/general/equipment/save_character(list/save_data) - save_data["all_underwear"] = pref.all_underwear - save_data["all_underwear_metadata"] = pref.all_underwear_metadata - save_data["backbag"] = pref.backbag - save_data["pdachoice"] = pref.pdachoice - save_data["communicator_visibility"] = pref.communicator_visibility - save_data["ringtone"] = pref.ringtone - save_data["shoe_hater"] = pref.shoe_hater +/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S) + S["all_underwear"] << pref.all_underwear + S["all_underwear_metadata"] << pref.all_underwear_metadata + S["backbag"] << pref.backbag + S["pdachoice"] << pref.pdachoice + S["communicator_visibility"] << pref.communicator_visibility + S["ringtone"] << pref.ringtone + S["shoe_hater"] << pref.shoe_hater //RS ADD var/global/list/valid_ringtones = list( "beep", diff --git a/code/modules/client/preference_setup/general/05_background.dm b/code/modules/client/preference_setup/general/05_background.dm index 03efdf9f86..70b2e130bd 100644 --- a/code/modules/client/preference_setup/general/05_background.dm +++ b/code/modules/client/preference_setup/general/05_background.dm @@ -1,27 +1,28 @@ /datum/category_item/player_setup_item/general/background name = "Background" sort_order = 5 -/datum/category_item/player_setup_item/general/background/load_character(list/save_data) - pref.med_record = save_data["med_record"] - pref.sec_record = save_data["sec_record"] - pref.gen_record = save_data["gen_record"] - pref.home_system = save_data["home_system"] - pref.birthplace = save_data["birthplace"] - pref.citizenship = save_data["citizenship"] - pref.faction = save_data["faction"] - pref.religion = save_data["religion"] - pref.economic_status = save_data["economic_status"] -/datum/category_item/player_setup_item/general/background/save_character(list/save_data) - save_data["med_record"] = pref.med_record - save_data["sec_record"] = pref.sec_record - save_data["gen_record"] = pref.gen_record - save_data["home_system"] = pref.home_system - save_data["birthplace"] = pref.birthplace - save_data["citizenship"] = pref.citizenship - save_data["faction"] = pref.faction - save_data["religion"] = pref.religion - save_data["economic_status"] = pref.economic_status +/datum/category_item/player_setup_item/general/background/load_character(var/savefile/S) + S["med_record"] >> pref.med_record + S["sec_record"] >> pref.sec_record + S["gen_record"] >> pref.gen_record + S["home_system"] >> pref.home_system + S["birthplace"] >> pref.birthplace + S["citizenship"] >> pref.citizenship + S["faction"] >> pref.faction + S["religion"] >> pref.religion + S["economic_status"] >> pref.economic_status + +/datum/category_item/player_setup_item/general/background/save_character(var/savefile/S) + S["med_record"] << pref.med_record + S["sec_record"] << pref.sec_record + S["gen_record"] << pref.gen_record + S["home_system"] << pref.home_system + S["birthplace"] << pref.birthplace + S["citizenship"] << pref.citizenship + S["faction"] << pref.faction + S["religion"] << pref.religion + S["economic_status"] << pref.economic_status /datum/category_item/player_setup_item/general/background/sanitize_character() if(!pref.home_system) pref.home_system = "Unset" diff --git a/code/modules/client/preference_setup/general/06_flavor.dm b/code/modules/client/preference_setup/general/06_flavor.dm index fa14cce603..76af38f5dc 100644 --- a/code/modules/client/preference_setup/general/06_flavor.dm +++ b/code/modules/client/preference_setup/general/06_flavor.dm @@ -2,37 +2,37 @@ name = "Flavor" sort_order = 6 -/datum/category_item/player_setup_item/general/flavor/load_character(list/save_data) - pref.flavor_texts["general"] = save_data["flavor_texts_general"] - pref.flavor_texts["head"] = save_data["flavor_texts_head"] - pref.flavor_texts["face"] = save_data["flavor_texts_face"] - pref.flavor_texts["eyes"] = save_data["flavor_texts_eyes"] - pref.flavor_texts["torso"] = save_data["flavor_texts_torso"] - pref.flavor_texts["arms"] = save_data["flavor_texts_arms"] - pref.flavor_texts["hands"] = save_data["flavor_texts_hands"] - pref.flavor_texts["legs"] = save_data["flavor_texts_legs"] - pref.flavor_texts["feet"] = save_data["flavor_texts_feet"] - pref.custom_link = save_data["custom_link"] +/datum/category_item/player_setup_item/general/flavor/load_character(var/savefile/S) + S["flavor_texts_general"] >> pref.flavor_texts["general"] + S["flavor_texts_head"] >> pref.flavor_texts["head"] + S["flavor_texts_face"] >> pref.flavor_texts["face"] + S["flavor_texts_eyes"] >> pref.flavor_texts["eyes"] + S["flavor_texts_torso"] >> pref.flavor_texts["torso"] + S["flavor_texts_arms"] >> pref.flavor_texts["arms"] + S["flavor_texts_hands"] >> pref.flavor_texts["hands"] + S["flavor_texts_legs"] >> pref.flavor_texts["legs"] + S["flavor_texts_feet"] >> pref.flavor_texts["feet"] + S["custom_link"] >> pref.custom_link //Flavour text for robots. - pref.flavour_texts_robot["Default"] = save_data["flavour_texts_robot_Default"] + S["flavour_texts_robot_Default"] >> pref.flavour_texts_robot["Default"] for(var/module in robot_module_types) - pref.flavour_texts_robot[module] = save_data["flavour_texts_robot_[module]"] + S["flavour_texts_robot_[module]"] >> pref.flavour_texts_robot[module] -/datum/category_item/player_setup_item/general/flavor/save_character(list/save_data) - save_data["flavor_texts_general"] = pref.flavor_texts["general"] - save_data["flavor_texts_head"] = pref.flavor_texts["head"] - save_data["flavor_texts_face"] = pref.flavor_texts["face"] - save_data["flavor_texts_eyes"] = pref.flavor_texts["eyes"] - save_data["flavor_texts_torso"] = pref.flavor_texts["torso"] - save_data["flavor_texts_arms"] = pref.flavor_texts["arms"] - save_data["flavor_texts_hands"] = pref.flavor_texts["hands"] - save_data["flavor_texts_legs"] = pref.flavor_texts["legs"] - save_data["flavor_texts_feet"] = pref.flavor_texts["feet"] - save_data["custom_link"] = pref.custom_link +/datum/category_item/player_setup_item/general/flavor/save_character(var/savefile/S) + S["flavor_texts_general"] << pref.flavor_texts["general"] + S["flavor_texts_head"] << pref.flavor_texts["head"] + S["flavor_texts_face"] << pref.flavor_texts["face"] + S["flavor_texts_eyes"] << pref.flavor_texts["eyes"] + S["flavor_texts_torso"] << pref.flavor_texts["torso"] + S["flavor_texts_arms"] << pref.flavor_texts["arms"] + S["flavor_texts_hands"] << pref.flavor_texts["hands"] + S["flavor_texts_legs"] << pref.flavor_texts["legs"] + S["flavor_texts_feet"] << pref.flavor_texts["feet"] + S["custom_link"] << pref.custom_link - save_data["flavour_texts_robot_Default"] = pref.flavour_texts_robot["Default"] + S["flavour_texts_robot_Default"] << pref.flavour_texts_robot["Default"] for(var/module in robot_module_types) - save_data["flavour_texts_robot_[module]"] = pref.flavour_texts_robot[module] + S["flavour_texts_robot_[module]"] << pref.flavour_texts_robot[module] /datum/category_item/player_setup_item/general/flavor/sanitize_character() return diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm index 91bbfea86a..3130aade42 100644 --- a/code/modules/client/preference_setup/global/01_ui.dm +++ b/code/modules/client/preference_setup/global/01_ui.dm @@ -2,41 +2,41 @@ name = "UI" sort_order = 1 -/datum/category_item/player_setup_item/player_global/ui/load_preferences(datum/json_savefile/savefile) - pref.UI_style = savefile.get_entry("UI_style") - pref.UI_style_color = savefile.get_entry("UI_style_color") - pref.UI_style_alpha = savefile.get_entry("UI_style_alpha") - pref.ooccolor = savefile.get_entry("ooccolor") - pref.tooltipstyle = savefile.get_entry("tooltipstyle") - pref.client_fps = savefile.get_entry("client_fps") - pref.ambience_freq = savefile.get_entry("ambience_freq") - pref.ambience_chance = savefile.get_entry("ambience_chance") - pref.tgui_fancy = savefile.get_entry("tgui_fancy") - pref.tgui_lock = savefile.get_entry("tgui_lock") - pref.tgui_input_mode = savefile.get_entry("tgui_input_mode") - pref.tgui_large_buttons = savefile.get_entry("tgui_large_buttons") - pref.tgui_swapped_buttons = savefile.get_entry("tgui_swapped_buttons") - pref.obfuscate_key = savefile.get_entry("obfuscate_key") - pref.obfuscate_job = savefile.get_entry("obfuscate_job") - pref.chat_timestamp = savefile.get_entry("chat_timestamp") +/datum/category_item/player_setup_item/player_global/ui/load_preferences(var/savefile/S) + S["UI_style"] >> pref.UI_style + S["UI_style_color"] >> pref.UI_style_color + S["UI_style_alpha"] >> pref.UI_style_alpha + S["ooccolor"] >> pref.ooccolor + S["tooltipstyle"] >> pref.tooltipstyle + S["client_fps"] >> pref.client_fps + S["ambience_freq"] >> pref.ambience_freq + S["ambience_chance"] >> pref.ambience_chance + S["tgui_fancy"] >> pref.tgui_fancy + S["tgui_lock"] >> pref.tgui_lock + S["tgui_input_mode"] >> pref.tgui_input_mode + S["tgui_large_buttons"] >> pref.tgui_large_buttons + S["tgui_swapped_buttons"] >> pref.tgui_swapped_buttons + S["obfuscate_key"] >> pref.obfuscate_key + S["obfuscate_job"] >> pref.obfuscate_job + S["chat_timestamp"] >> pref.chat_timestamp -/datum/category_item/player_setup_item/player_global/ui/save_preferences(datum/json_savefile/savefile) - savefile.set_entry("UI_style", pref.UI_style) - savefile.set_entry("UI_style_color", pref.UI_style_color) - savefile.set_entry("UI_style_alpha", pref.UI_style_alpha) - savefile.set_entry("ooccolor", pref.ooccolor) - savefile.set_entry("tooltipstyle", pref.tooltipstyle) - savefile.set_entry("client_fps", pref.client_fps) - savefile.set_entry("ambience_freq", pref.ambience_freq) - savefile.set_entry("ambience_chance", pref.ambience_chance) - savefile.set_entry("tgui_fancy", pref.tgui_fancy) - savefile.set_entry("tgui_lock", pref.tgui_lock) - savefile.set_entry("tgui_input_mode", pref.tgui_input_mode) - savefile.set_entry("tgui_large_buttons", pref.tgui_large_buttons) - savefile.set_entry("tgui_swapped_buttons", pref.tgui_swapped_buttons) - savefile.set_entry("obfuscate_key", pref.obfuscate_key) - savefile.set_entry("obfuscate_job", pref.obfuscate_job) - savefile.set_entry("chat_timestamp", pref.chat_timestamp) +/datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S) + S["UI_style"] << pref.UI_style + S["UI_style_color"] << pref.UI_style_color + S["UI_style_alpha"] << pref.UI_style_alpha + S["ooccolor"] << pref.ooccolor + S["tooltipstyle"] << pref.tooltipstyle + S["client_fps"] << pref.client_fps + S["ambience_freq"] << pref.ambience_freq + S["ambience_chance"] << pref.ambience_chance + S["tgui_fancy"] << pref.tgui_fancy + S["tgui_lock"] << pref.tgui_lock + S["tgui_input_mode"] << pref.tgui_input_mode + S["tgui_large_buttons"] << pref.tgui_large_buttons + S["tgui_swapped_buttons"] << pref.tgui_swapped_buttons + S["obfuscate_key"] << pref.obfuscate_key + S["obfuscate_job"] << pref.obfuscate_job + S["chat_timestamp"] << pref.chat_timestamp /datum/category_item/player_setup_item/player_global/ui/sanitize_preferences() pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style)) diff --git a/code/modules/client/preference_setup/global/02_settings.dm b/code/modules/client/preference_setup/global/02_settings.dm index 3a63b9f0cc..71ff5d0a09 100644 --- a/code/modules/client/preference_setup/global/02_settings.dm +++ b/code/modules/client/preference_setup/global/02_settings.dm @@ -1,20 +1,141 @@ +/datum/preferences + var/preferences_enabled = null + var/preferences_disabled = null + /datum/category_item/player_setup_item/player_global/settings name = "Settings" sort_order = 2 -/datum/category_item/player_setup_item/player_global/settings/load_preferences(datum/json_savefile/savefile) - pref.lastchangelog = savefile.get_entry("lastchangelog") - pref.lastnews = savefile.get_entry("lastnews") - pref.lastlorenews = savefile.get_entry("lastlorenews") - pref.default_slot = savefile.get_entry("default_slot") +/datum/category_item/player_setup_item/player_global/settings/load_preferences(var/savefile/S) + S["lastchangelog"] >> pref.lastchangelog + S["lastnews"] >> pref.lastnews + S["lastlorenews"] >> pref.lastlorenews + S["default_slot"] >> pref.default_slot + S["preferences"] >> pref.preferences_enabled + S["preferences_disabled"] >> pref.preferences_disabled -/datum/category_item/player_setup_item/player_global/settings/save_preferences(datum/json_savefile/savefile) - savefile.set_entry("lastchangelog", pref.lastchangelog) - savefile.set_entry("lastnews", pref.lastnews) - savefile.set_entry("lastlorenews", pref.lastlorenews) - savefile.set_entry("default_slot", pref.default_slot) +/datum/category_item/player_setup_item/player_global/settings/save_preferences(var/savefile/S) + S["lastchangelog"] << pref.lastchangelog + S["lastnews"] << pref.lastnews + S["lastlorenews"] << pref.lastlorenews + S["default_slot"] << pref.default_slot + S["preferences"] << pref.preferences_enabled + S["preferences_disabled"] << pref.preferences_disabled /datum/category_item/player_setup_item/player_global/settings/sanitize_preferences() + // Ensure our preferences are lists. + if(!istype(pref.preferences_enabled, /list)) + pref.preferences_enabled = list() + if(!istype(pref.preferences_disabled, /list)) + pref.preferences_disabled = list() + + // Arrange preferences that have never been enabled/disabled. + var/list/client_preference_keys = list() + for(var/datum/client_preference/client_pref as anything in get_client_preferences()) + client_preference_keys += client_pref.key + if((client_pref.key in pref.preferences_enabled) || (client_pref.key in pref.preferences_disabled)) + continue + + if(client_pref.enabled_by_default) + pref.preferences_enabled += client_pref.key + else + pref.preferences_disabled += client_pref.key + + // Clean out preferences that no longer exist. + for(var/key in pref.preferences_enabled) + if(!(key in client_preference_keys)) + pref.preferences_enabled -= key + for(var/key in pref.preferences_disabled) + if(!(key in client_preference_keys)) + pref.preferences_disabled -= key + pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog)) pref.lastnews = sanitize_text(pref.lastnews, initial(pref.lastnews)) pref.default_slot = sanitize_integer(pref.default_slot, 1, config.character_slots, initial(pref.default_slot)) + +/datum/category_item/player_setup_item/player_global/settings/content(var/mob/user) + . = list() + . += "Preferences
" + . += "" + var/mob/pref_mob = preference_mob() + for(var/datum/client_preference/client_pref as anything in get_client_preferences()) + if(!client_pref.may_toggle(pref_mob)) + continue + + . += "" + if(pref_mob.is_preference_enabled(client_pref.key)) + . += "" + else + . += "" + . += "" + + . += "
[client_pref.description]: [client_pref.enabled_description] [client_pref.disabled_description][client_pref.enabled_description] [client_pref.disabled_description]
" + return jointext(., "") + +/datum/category_item/player_setup_item/player_global/settings/OnTopic(var/href,var/list/href_list, var/mob/user) + var/mob/pref_mob = preference_mob() + if(href_list["toggle_on"]) + . = pref_mob.set_preference(href_list["toggle_on"], TRUE) + else if(href_list["toggle_off"]) + . = pref_mob.set_preference(href_list["toggle_off"], FALSE) + if(.) + return TOPIC_REFRESH + + return ..() + +/** + * This can take either a single preference datum or a list of preferences, and will return true if *all* preferences in the arguments are enabled. + */ +/client/proc/is_preference_enabled(var/preference) + if(!islist(preference)) + preference = list(preference) + for(var/p in preference) + var/datum/client_preference/cp = get_client_preference(p) + if(!prefs || !cp || !istype(cp, /datum/client_preference) || !(cp.key in prefs.preferences_enabled)) + return FALSE + return TRUE + +/client/proc/set_preference(var/preference, var/set_preference) + var/datum/client_preference/cp = get_client_preference(preference) + if(!cp) + return FALSE + preference = cp.key + + if(set_preference && !(preference in prefs.preferences_enabled)) + return toggle_preference(cp) + else if(!set_preference && (preference in prefs.preferences_enabled)) + return toggle_preference(cp) + +/client/proc/toggle_preference(var/preference, var/set_preference) + var/datum/client_preference/cp = get_client_preference(preference) + if(!cp) + return FALSE + preference = cp.key + + var/enabled + if(preference in prefs.preferences_disabled) + prefs.preferences_enabled |= preference + prefs.preferences_disabled -= preference + enabled = TRUE + . = TRUE + else if(preference in prefs.preferences_enabled) + prefs.preferences_enabled -= preference + prefs.preferences_disabled |= preference + enabled = FALSE + . = TRUE + if(.) + cp.toggled(mob, enabled) + +/mob/proc/is_preference_enabled(var/preference) + if(!client) + return FALSE + return client.is_preference_enabled(preference) + +/mob/proc/set_preference(var/preference, var/set_preference) + if(!client) + return FALSE + if(!client.prefs) + log_debug("Client prefs found to be null for mob [src] and client [ckey], this should be investigated.") + return FALSE + + return client.set_preference(preference, set_preference) diff --git a/code/modules/client/preference_setup/global/03_pai.dm b/code/modules/client/preference_setup/global/03_pai.dm index d9b20873d8..c4d81e552b 100644 --- a/code/modules/client/preference_setup/global/03_pai.dm +++ b/code/modules/client/preference_setup/global/03_pai.dm @@ -4,7 +4,7 @@ var/datum/paiCandidate/candidate -/datum/category_item/player_setup_item/player_global/pai/load_preferences(datum/json_savefile/savefile) +/datum/category_item/player_setup_item/player_global/pai/load_preferences(var/savefile/S) if(!candidate) candidate = new() var/preference_mob = preference_mob() @@ -18,7 +18,7 @@ candidate.savefile_load(preference_mob) -/datum/category_item/player_setup_item/player_global/pai/save_preferences(datum/json_savefile/savefile) +/datum/category_item/player_setup_item/player_global/pai/save_preferences(var/savefile/S) if(!candidate) return diff --git a/code/modules/client/preference_setup/global/04_ooc.dm b/code/modules/client/preference_setup/global/04_ooc.dm index c375107754..e695bee677 100644 --- a/code/modules/client/preference_setup/global/04_ooc.dm +++ b/code/modules/client/preference_setup/global/04_ooc.dm @@ -2,12 +2,12 @@ name = "OOC" sort_order = 4 -/datum/category_item/player_setup_item/player_global/ooc/load_preferences(datum/json_savefile/savefile) - pref.ignored_players = savefile.get_entry("ignored_players") +/datum/category_item/player_setup_item/player_global/ooc/load_preferences(var/savefile/S) + S["ignored_players"] >> pref.ignored_players -/datum/category_item/player_setup_item/player_global/ooc/save_preferences(datum/json_savefile/savefile) - savefile.set_entry("ignored_players", pref.ignored_players) +/datum/category_item/player_setup_item/player_global/ooc/save_preferences(var/savefile/S) + S["ignored_players"] << pref.ignored_players /* /datum/category_item/player_setup_item/player_global/ooc/sanitize_preferences() @@ -39,4 +39,4 @@ return TOPIC_REFRESH return ..() -*/ +*/ \ No newline at end of file diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm new file mode 100644 index 0000000000..7d74e5bd0d --- /dev/null +++ b/code/modules/client/preference_setup/global/setting_datums.dm @@ -0,0 +1,481 @@ +var/list/_client_preferences +var/list/_client_preferences_by_key +var/list/_client_preferences_by_type + +/proc/get_client_preferences() + if(!_client_preferences) + _client_preferences = list() + for(var/datum/client_preference/client_type as anything in subtypesof(/datum/client_preference)) + if(initial(client_type.description)) + _client_preferences += new client_type() + return _client_preferences + +/proc/get_client_preference(var/datum/client_preference/preference) + if(istype(preference)) + return preference + if(ispath(preference)) + return get_client_preference_by_type(preference) + return get_client_preference_by_key(preference) + +/proc/get_client_preference_by_key(var/preference) + if(!_client_preferences_by_key) + _client_preferences_by_key = list() + for(var/datum/client_preference/client_pref as anything in get_client_preferences()) + _client_preferences_by_key[client_pref.key] = client_pref + return _client_preferences_by_key[preference] + +/proc/get_client_preference_by_type(var/preference) + if(!_client_preferences_by_type) + _client_preferences_by_type = list() + for(var/datum/client_preference/client_pref as anything in get_client_preferences()) + _client_preferences_by_type[client_pref.type] = client_pref + return _client_preferences_by_type[preference] + +/datum/client_preference + var/description + var/key + var/enabled_by_default = TRUE + var/enabled_description = "Yes" + var/disabled_description = "No" + +/datum/client_preference/proc/may_toggle(var/mob/preference_mob) + return TRUE + +/datum/client_preference/proc/toggled(var/mob/preference_mob, var/enabled) + return + +/********************* +* Player Preferences * +*********************/ + +/datum/client_preference/play_admin_midis + description ="Play admin midis" + key = "SOUND_MIDI" + +/datum/client_preference/play_lobby_music + description ="Play lobby music" + key = "SOUND_LOBBY" + +/datum/client_preference/play_lobby_music/toggled(var/mob/preference_mob, var/enabled) + if(!preference_mob.client || !preference_mob.client.media) + return + + if(enabled) + preference_mob.client.playtitlemusic() + else + preference_mob.client.media.stop_music() + +/datum/client_preference/play_ambiance + description ="Play ambience" + key = "SOUND_AMBIENCE" + +/datum/client_preference/play_ambiance/toggled(var/mob/preference_mob, var/enabled) + if(!enabled) + preference_mob << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1) + preference_mob << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) +//VOREStation Add - Need to put it here because it should be ordered riiiight here. +/datum/client_preference/play_jukebox + description ="Play jukebox music" + key = "SOUND_JUKEBOX" + +/datum/client_preference/play_jukebox/toggled(var/mob/preference_mob, var/enabled) + if(!enabled) + preference_mob.stop_all_music() + else + preference_mob.update_music() + +/datum/client_preference/eating_noises + description = "Eating Noises" + key = "EATING_NOISES" + enabled_description = "Noisy" + disabled_description = "Silent" + +/datum/client_preference/digestion_noises + description = "Digestion Noises" + key = "DIGEST_NOISES" + enabled_description = "Noisy" + disabled_description = "Silent" + +/datum/client_preference/belch_noises // Belching noises - pref toggle for 'em + description = "Burping" + key = "BELCH_NOISES" + enabled_description = "Noisy" + disabled_description = "Silent" + +/datum/client_preference/emote_noises + description = "Emote Noises" //MERP + key = "EMOTE_NOISES" + enabled_description = "Noisy" + disabled_description = "Silent" +/datum/client_preference/whisubtle_vis + description = "Whi/Subtles Ghost Visible" + key = "WHISUBTLE_VIS" + enabled_description = "Visible" + disabled_description = "Hidden" + enabled_by_default = FALSE + +/datum/client_preference/ghost_see_whisubtle + description = "See subtles/whispers as ghost" + key = "GHOST_SEE_WHISUBTLE" + enabled_description = "Visible" + disabled_description = "Hidden" + enabled_by_default = TRUE +//VOREStation Add End +/datum/client_preference/weather_sounds + description ="Weather sounds" + key = "SOUND_WEATHER" + enabled_description = "Audible" + disabled_description = "Silent" + +/datum/client_preference/supermatter_hum + description ="Supermatter hum" + key = "SOUND_SUPERMATTER" + enabled_description = "Audible" + disabled_description = "Silent" + +/datum/client_preference/ghost_ears + description ="Ghost ears" + key = "CHAT_GHOSTEARS" + enabled_description = "All Speech" + disabled_description = "Nearby" + +/datum/client_preference/ghost_sight + description ="Ghost sight" + key = "CHAT_GHOSTSIGHT" + enabled_description = "All Emotes" + disabled_description = "Nearby" + +/datum/client_preference/ghost_radio + description ="Ghost radio" + key = "CHAT_GHOSTRADIO" + enabled_description = "All Chatter" + disabled_description = "Nearby" + +/datum/client_preference/chat_tags + description ="Chat tags" + key = "CHAT_SHOWICONS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/air_pump_noise + description ="Air Pump Ambient Noise" + key = "SOUND_AIRPUMP" + enabled_description = "Audible" + disabled_description = "Silent" + +/datum/client_preference/old_door_sounds + description ="Old Door Sounds" + key = "SOUND_OLDDOORS" + enabled_description = "Old" + disabled_description = "New" + +/datum/client_preference/department_door_sounds + description ="Department-Specific Door Sounds" + key = "SOUND_DEPARTMENTDOORS" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/pickup_sounds + description = "Picked Up Item Sounds" + key = "SOUND_PICKED" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/drop_sounds + description = "Dropped Item Sounds" + key = "SOUND_DROPPED" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/mob_tooltips + description ="Mob tooltips" + key = "MOB_TOOLTIPS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/inv_tooltips + description ="Inventory tooltips" + key = "INV_TOOLTIPS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/attack_icons + description ="Attack icons" + key = "ATTACK_ICONS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/precision_placement + description ="Precision Placement" + key = "PRECISE_PLACEMENT" + enabled_description = "Active" + disabled_description = "Inactive" + +/datum/client_preference/hotkeys_default + description ="Hotkeys Default" + key = "HUD_HOTKEYS" + enabled_description = "Enabled" + disabled_description = "Disabled" + enabled_by_default = FALSE // Backwards compatibility + +/datum/client_preference/show_typing_indicator + description ="Typing indicator" + key = "SHOW_TYPING" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/show_typing_indicator/toggled(var/mob/preference_mob, var/enabled) + if(!enabled) + preference_mob.client?.stop_thinking() + +/datum/client_preference/show_typing_indicator_subtle + description ="Typing indicator (subtle)" + key = "SHOW_TYPING_SUBTLE" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/show_ooc + description ="OOC chat" + key = "CHAT_OOC" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/show_looc + description ="LOOC chat" + key = "CHAT_LOOC" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/show_dsay + description ="Dead chat" + key = "CHAT_DEAD" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/check_mention + description ="Emphasize Name Mention" + key = "CHAT_MENTION" + enabled_description = "Emphasize" + disabled_description = "Normal" + +/datum/client_preference/show_progress_bar + description ="Progress Bar" + key = "SHOW_PROGRESS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/safefiring + description = "Gun Firing Intent Requirement" + key = "SAFE_FIRING" + enabled_description = "Safe" + disabled_description = "Dangerous" + +/datum/client_preference/browser_style + description = "Fake NanoUI Browser Style" + key = "BROWSER_STYLED" + enabled_description = "Fancy" + disabled_description = "Plain" + +/datum/client_preference/ambient_occlusion + description = "Fake Ambient Occlusion" + key = "AMBIENT_OCCLUSION_PREF" + enabled_by_default = FALSE + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/ambient_occlusion/toggled(var/mob/preference_mob, var/enabled) + . = ..() + if(preference_mob && preference_mob.plane_holder) + var/datum/plane_holder/PH = preference_mob.plane_holder + PH.set_ao(VIS_OBJS, enabled) + PH.set_ao(VIS_MOBS, enabled) + +/datum/client_preference/instrument_toggle + description ="Hear In-game Instruments" + key = "SOUND_INSTRUMENT" + +/datum/client_preference/vchat_enable + description = "Enable/Disable TGChat" + key = "VCHAT_ENABLE" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/status_indicators + description = "Status Indicators" + key = "SHOW_STATUS" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/radio_sounds + description = "Radio Sounds" + key = "RADIO_SOUNDS" + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/say_sounds + description = "Say Sounds" + key = "SAY_SOUNDS" + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/emote_sounds + description = "Me Sounds" + key = "EMOTE_SOUNDS" + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/whisper_sounds + description = "Whisper Sounds" + key = "WHISPER_SOUNDS" + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/subtle_sounds + description = "Subtle Sounds" + key = "SUBTLE_SOUNDS" + enabled_description = "On" + disabled_description = "Off" + +/datum/client_preference/vore_health_bars + description = "Vore Health Bars" + key = "VORE_HEALTH_BARS" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/runechat_mob + description = "Runechat (Mobs)" + key = "RUNECHAT_MOB" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/runechat_obj + description = "Runechat (Objs)" + key = "RUNECHAT_OBJ" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/runechat_border + description = "Runechat Message Border" + key = "RUNECHAT_BORDER" + enabled_description = "Show" + disabled_description = "Hide" + enabled_by_default = TRUE + +/datum/client_preference/runechat_long_messages + description = "Runechat Message Length" + key = "RUNECHAT_LONG" + enabled_description = "Long" + disabled_description = "Short" + enabled_by_default = FALSE + +/datum/client_preference/status_indicators/toggled(mob/preference_mob, enabled) + . = ..() + if(preference_mob && preference_mob.plane_holder) + var/datum/plane_holder/PH = preference_mob.plane_holder + PH.set_vis(VIS_STATUS, enabled) + +/datum/client_preference/show_lore_news + description = "Lore News Popup" + key = "NEWS_POPUP" + enabled_by_default = TRUE + enabled_description = "Popup New On Login" + disabled_description = "Do Nothing" + +/datum/client_preference/play_mentorhelp_ping + description = "Mentorhelps" + key = "SOUND_MENTORHELP" + enabled_description = "Hear" + disabled_description = "Silent" + +/datum/client_preference/player_tips + description = "Receive Tips Periodically" + key = "RECEIVE_TIPS" + enabled_description = "Enabled" + disabled_description = "Disabled" + +/datum/client_preference/pain_frequency + description = "Pain Messages Cooldown" + key = "PAIN_FREQUENCY" + enabled_by_default = FALSE + enabled_description = "Extended" + disabled_description = "Default" + +/datum/client_preference/auto_afk + description = "Automatic AFK Status" + key = "AUTO_AFK" + enabled_by_default = TRUE + enabled_description = "Automatic" + disabled_description = "Manual Only" + +/datum/client_preference/tgui_say + description = "TGUI Say: Use TGUI For Say Input" + key = "TGUI_SAY" + enabled_by_default = TRUE + enabled_description = "Yes" + disabled_description = "No" + +/datum/client_preference/tgui_say_light + description = "TGUI Say: Use Light Mode" + key = "TGUI_SAY_LIGHT_MODE" + enabled_by_default = FALSE + enabled_description = "Yes" + disabled_description = "No" + +/******************** +* Staff Preferences * +********************/ +/datum/client_preference/admin/may_toggle(var/mob/preference_mob) + return check_rights(R_ADMIN|R_EVENT, 0, preference_mob) + +/datum/client_preference/mod/may_toggle(var/mob/preference_mob) + return check_rights(R_MOD|R_ADMIN, 0, preference_mob) + +/datum/client_preference/debug/may_toggle(var/mob/preference_mob) + return check_rights(R_DEBUG|R_ADMIN, 0, preference_mob) + +/datum/client_preference/mod/show_attack_logs + description = "Attack Log Messages" + key = "CHAT_ATTACKLOGS" + enabled_description = "Show" + disabled_description = "Hide" + enabled_by_default = FALSE + +/datum/client_preference/debug/show_debug_logs + description = "Debug Log Messages" + key = "CHAT_DEBUGLOGS" + enabled_description = "Show" + disabled_description = "Hide" + enabled_by_default = FALSE + +/datum/client_preference/admin/show_chat_prayers + description = "Chat Prayers" + key = "CHAT_PRAYER" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/holder/may_toggle(var/mob/preference_mob) + return preference_mob && preference_mob.client && preference_mob.client.holder + +/datum/client_preference/holder/play_adminhelp_ping + description = "Adminhelps" + key = "SOUND_ADMINHELP" + enabled_description = "Hear" + disabled_description = "Silent" + +/datum/client_preference/holder/hear_radio + description = "Radio chatter" + key = "CHAT_RADIO" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/holder/show_rlooc + description ="Remote LOOC chat" + key = "CHAT_RLOOC" + enabled_description = "Show" + disabled_description = "Hide" + +/datum/client_preference/holder/show_staff_dsay + description ="Staff Deadchat" + key = "CHAT_ADSAY" + enabled_description = "Show" + disabled_description = "Hide" diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index fd92052458..21e6602863 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -45,19 +45,19 @@ var/list/gear_datums = list() sort_order = 1 var/current_tab = "General" -/datum/category_item/player_setup_item/loadout/load_character(list/save_data) - pref.gear_list = save_data["gear_list"] - pref.gear_slot = save_data["gear_slot"] +/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S) + from_file(S["gear_list"], pref.gear_list) + from_file(S["gear_slot"], pref.gear_slot) if(pref.gear_list!=null && pref.gear_slot!=null) pref.gear = pref.gear_list["[pref.gear_slot]"] else - pref.gear = save_data["gear"] + from_file(S["gear"], pref.gear) pref.gear_slot = 1 -/datum/category_item/player_setup_item/loadout/save_character(list/save_data) +/datum/category_item/player_setup_item/loadout/save_character(var/savefile/S) pref.gear_list["[pref.gear_slot]"] = pref.gear - save_data["gear_list"] = pref.gear_list - save_data["gear_slot"] = pref.gear_slot + to_file(S["gear_list"], pref.gear_list) + to_file(S["gear_slot"], pref.gear_slot) /datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost) . = list() diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 48516c11d4..9ce7f08026 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -2,41 +2,41 @@ name = "Occupation" sort_order = 1 -/datum/category_item/player_setup_item/occupation/load_character(list/save_data) - pref.alternate_option = save_data["alternate_option"] - pref.job_civilian_high = save_data["job_civilian_high"] - pref.job_civilian_med = save_data["job_civilian_med"] - pref.job_civilian_low = save_data["job_civilian_low"] - pref.job_medsci_high = save_data["job_medsci_high"] - pref.job_medsci_med = save_data["job_medsci_med"] - pref.job_medsci_low = save_data["job_medsci_low"] - pref.job_engsec_high = save_data["job_engsec_high"] - pref.job_engsec_med = save_data["job_engsec_med"] - pref.job_engsec_low = save_data["job_engsec_low"] +/datum/category_item/player_setup_item/occupation/load_character(var/savefile/S) + S["alternate_option"] >> pref.alternate_option + S["job_civilian_high"] >> pref.job_civilian_high + S["job_civilian_med"] >> pref.job_civilian_med + S["job_civilian_low"] >> pref.job_civilian_low + S["job_medsci_high"] >> pref.job_medsci_high + S["job_medsci_med"] >> pref.job_medsci_med + S["job_medsci_low"] >> pref.job_medsci_low + S["job_engsec_high"] >> pref.job_engsec_high + S["job_engsec_med"] >> pref.job_engsec_med + S["job_engsec_low"] >> pref.job_engsec_low //VOREStation Add - pref.job_talon_low = save_data["job_talon_low"] - pref.job_talon_med = save_data["job_talon_med"] - pref.job_talon_high = save_data["job_talon_high"] + S["job_talon_low"] >> pref.job_talon_low + S["job_talon_med"] >> pref.job_talon_med + S["job_talon_high"] >> pref.job_talon_high //VOREStation Add End - pref.player_alt_titles = save_data["player_alt_titles"] + S["player_alt_titles"] >> pref.player_alt_titles -/datum/category_item/player_setup_item/occupation/save_character(list/save_data) - save_data["alternate_option"] = pref.alternate_option - save_data["job_civilian_high"] = pref.job_civilian_high - save_data["job_civilian_med"] = pref.job_civilian_med - save_data["job_civilian_low"] = pref.job_civilian_low - save_data["job_medsci_high"] = pref.job_medsci_high - save_data["job_medsci_med"] = pref.job_medsci_med - save_data["job_medsci_low"] = pref.job_medsci_low - save_data["job_engsec_high"] = pref.job_engsec_high - save_data["job_engsec_med"] = pref.job_engsec_med - save_data["job_engsec_low"] = pref.job_engsec_low +/datum/category_item/player_setup_item/occupation/save_character(var/savefile/S) + S["alternate_option"] << pref.alternate_option + S["job_civilian_high"] << pref.job_civilian_high + S["job_civilian_med"] << pref.job_civilian_med + S["job_civilian_low"] << pref.job_civilian_low + S["job_medsci_high"] << pref.job_medsci_high + S["job_medsci_med"] << pref.job_medsci_med + S["job_medsci_low"] << pref.job_medsci_low + S["job_engsec_high"] << pref.job_engsec_high + S["job_engsec_med"] << pref.job_engsec_med + S["job_engsec_low"] << pref.job_engsec_low //VOREStation Add - save_data["job_talon_low"] = pref.job_talon_low - save_data["job_talon_med"] = pref.job_talon_med - save_data["job_talon_high"] = pref.job_talon_high + S["job_talon_low"] << pref.job_talon_low + S["job_talon_med"] << pref.job_talon_med + S["job_talon_high"] << pref.job_talon_high //VOREStation Add End - save_data["player_alt_titles"] = pref.player_alt_titles + S["player_alt_titles"] << pref.player_alt_titles /datum/category_item/player_setup_item/occupation/sanitize_character() pref.alternate_option = sanitize_integer(pref.alternate_option, 0, 2, initial(pref.alternate_option)) diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 1aa899e744..5a8e31c324 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -59,21 +59,21 @@ for(var/datum/category_group/player_setup_category/PS in categories) PS.sanitize_setup() -/datum/category_collection/player_setup_collection/proc/load_character(list/save_data) +/datum/category_collection/player_setup_collection/proc/load_character(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) - PS.load_character(save_data) + PS.load_character(S) -/datum/category_collection/player_setup_collection/proc/save_character(list/save_data) +/datum/category_collection/player_setup_collection/proc/save_character(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) - PS.save_character(save_data) + PS.save_character(S) -/datum/category_collection/player_setup_collection/proc/load_preferences(datum/json_savefile/savefile) +/datum/category_collection/player_setup_collection/proc/load_preferences(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) - PS.load_preferences(savefile) + PS.load_preferences(S) -/datum/category_collection/player_setup_collection/proc/save_preferences(datum/json_savefile/savefile) +/datum/category_collection/player_setup_collection/proc/save_preferences(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) - PS.save_preferences(savefile) + PS.save_preferences(S) /datum/category_collection/player_setup_collection/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_group/player_setup_category/PS in categories) @@ -86,7 +86,6 @@ dat += "[PS.name] " // TODO: Check how to properly mark a href/button selected in a classic browser window else dat += "[PS.name] " - dat += "Game Options" return dat /datum/category_collection/player_setup_collection/proc/content(var/mob/user) @@ -106,9 +105,6 @@ selected_category = category . = 1 - else if(href_list["game_prefs"]) - user.client.prefs.tgui_interact(user) - if(.) user.client.prefs.ShowChoices(user) @@ -127,29 +123,29 @@ for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() -/datum/category_group/player_setup_category/proc/load_character(list/save_data) +/datum/category_group/player_setup_category/proc/load_character(var/savefile/S) // Load all data, then sanitize it. // Need due to, for example, the 01_basic module relying on species having been loaded to sanitize correctly but that isn't loaded until module 03_body. for(var/datum/category_item/player_setup_item/PI in items) - PI.load_character(save_data) + PI.load_character(S) -/datum/category_group/player_setup_category/proc/save_character(list/save_data) +/datum/category_group/player_setup_category/proc/save_character(var/savefile/S) // Sanitize all data, then save it for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_character(save_data) + PI.save_character(S) -/datum/category_group/player_setup_category/proc/load_preferences(datum/json_savefile/savefile) +/datum/category_group/player_setup_category/proc/load_preferences(var/savefile/S) for(var/datum/category_item/player_setup_item/PI in items) - PI.load_preferences(savefile) + PI.load_preferences(S) -/datum/category_group/player_setup_category/proc/save_preferences(datum/json_savefile/savefile) +/datum/category_group/player_setup_category/proc/save_preferences(var/savefile/S) for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_preferences() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_preferences(savefile) + PI.save_preferences(S) /datum/category_group/player_setup_category/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_item/player_setup_item/PI in items) @@ -192,25 +188,25 @@ /* * Called when the item is asked to load per character settings */ -/datum/category_item/player_setup_item/proc/load_character(list/save_data) +/datum/category_item/player_setup_item/proc/load_character(var/savefile/S) return /* * Called when the item is asked to save per character settings */ -/datum/category_item/player_setup_item/proc/save_character(list/save_data) +/datum/category_item/player_setup_item/proc/save_character(var/savefile/S) return /* * Called when the item is asked to load user/global settings */ -/datum/category_item/player_setup_item/proc/load_preferences(datum/json_savefile/savefile) +/datum/category_item/player_setup_item/proc/load_preferences(var/savefile/S) return /* * Called when the item is asked to save user/global settings */ -/datum/category_item/player_setup_item/proc/save_preferences(datum/json_savefile/savefile) +/datum/category_item/player_setup_item/proc/save_preferences(var/savefile/S) return /* diff --git a/code/modules/client/preference_setup/skills/skills.dm b/code/modules/client/preference_setup/skills/skills.dm index eef0512acc..645314ab59 100644 --- a/code/modules/client/preference_setup/skills/skills.dm +++ b/code/modules/client/preference_setup/skills/skills.dm @@ -2,15 +2,15 @@ name = "Skills" sort_order = 1 -/datum/category_item/player_setup_item/skills/load_character(list/save_data) - pref.skills = save_data["skills"] - pref.used_skillpoints = save_data["used_skillpoints"] - pref.skill_specialization = save_data["skill_specialization"] +/datum/category_item/player_setup_item/skills/load_character(var/savefile/S) + S["skills"] >> pref.skills + S["used_skillpoints"] >> pref.used_skillpoints + S["skill_specialization"] >> pref.skill_specialization -/datum/category_item/player_setup_item/skills/save_character(list/save_data) - save_data["skills"] = pref.skills - save_data["used_skillpoints"] = pref.used_skillpoints - save_data["skill_specialization"] = pref.skill_specialization +/datum/category_item/player_setup_item/skills/save_character(var/savefile/S) + S["skills"] << pref.skills + S["used_skillpoints"] << pref.used_skillpoints + S["skill_specialization"] << pref.skill_specialization /datum/category_item/player_setup_item/skills/sanitize_character() if(SKILLS == null) setup_skills() diff --git a/code/modules/client/preference_setup/traits/traits.dm b/code/modules/client/preference_setup/traits/traits.dm index 60369ff0c0..4102a04f74 100644 --- a/code/modules/client/preference_setup/traits/traits.dm +++ b/code/modules/client/preference_setup/traits/traits.dm @@ -35,11 +35,11 @@ var/list/trait_categories = list() // The categories available for the trait men sort_order = 1 var/current_tab = "Physical" -/datum/category_item/player_setup_item/traits/load_character(list/save_data) - pref.traits = save_data["traits"] +/datum/category_item/player_setup_item/traits/load_character(var/savefile/S) + S["traits"] >> pref.traits -/datum/category_item/player_setup_item/traits/save_character(list/save_data) - save_data["traits"] = pref.traits +/datum/category_item/player_setup_item/traits/save_character(var/savefile/S) + S["traits"] << pref.traits /datum/category_item/player_setup_item/traits/content() diff --git a/code/modules/client/preference_setup/volume_sliders/01_volume.dm b/code/modules/client/preference_setup/volume_sliders/01_volume.dm index fef2b04356..7dea5d2053 100644 --- a/code/modules/client/preference_setup/volume_sliders/01_volume.dm +++ b/code/modules/client/preference_setup/volume_sliders/01_volume.dm @@ -7,11 +7,11 @@ name = "General Volume" sort_order = 1 -/datum/category_item/player_setup_item/volume_sliders/volume/load_preferences(datum/json_savefile/savefile) - pref.volume_channels = savefile.get_entry("volume_channels") +/datum/category_item/player_setup_item/volume_sliders/volume/load_preferences(var/savefile/S) + S["volume_channels"] >> pref.volume_channels -/datum/category_item/player_setup_item/volume_sliders/volume/save_preferences(datum/json_savefile/savefile) - savefile.set_entry("volume_channels", pref.volume_channels) +/datum/category_item/player_setup_item/volume_sliders/volume/save_preferences(var/savefile/S) + S["volume_channels"] << pref.volume_channels /datum/category_item/player_setup_item/volume_sliders/volume/sanitize_preferences() if(isnull(pref.volume_channels)) @@ -74,7 +74,7 @@ /datum/volume_panel/tgui_data(mob/user) if(!user.client || !user.client.prefs) return list("error" = TRUE) - + var/list/data = ..() data["volume_channels"] = user.client.prefs.volume_channels return data diff --git a/code/modules/client/preference_setup/volume_sliders/02_media.dm b/code/modules/client/preference_setup/volume_sliders/02_media.dm index 007edcbf01..98f7bb4cfe 100644 --- a/code/modules/client/preference_setup/volume_sliders/02_media.dm +++ b/code/modules/client/preference_setup/volume_sliders/02_media.dm @@ -6,13 +6,13 @@ name = "Media" sort_order = 2 -/datum/category_item/player_setup_item/volume_sliders/media/load_preferences(datum/json_savefile/savefile) - pref.media_volume = savefile.get_entry("media_volume") - pref.media_player = savefile.get_entry("media_player") +/datum/category_item/player_setup_item/volume_sliders/media/load_preferences(var/savefile/S) + S["media_volume"] >> pref.media_volume + S["media_player"] >> pref.media_player -/datum/category_item/player_setup_item/volume_sliders/media/save_preferences(datum/json_savefile/savefile) - savefile.set_entry("media_volume", pref.media_volume) - savefile.set_entry("media_player", pref.media_player) +/datum/category_item/player_setup_item/volume_sliders/media/save_preferences(var/savefile/S) + S["media_volume"] << pref.media_volume + S["media_player"] << pref.media_player /datum/category_item/player_setup_item/volume_sliders/media/sanitize_preferences() pref.media_volume = isnum(pref.media_volume) ? CLAMP(pref.media_volume, 0, 1) : initial(pref.media_volume) diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm index b9d0450c37..599424723c 100644 --- a/code/modules/client/preference_setup/vore/02_size.dm +++ b/code/modules/client/preference_setup/vore/02_size.dm @@ -22,27 +22,27 @@ name = "Size" sort_order = 2 -/datum/category_item/player_setup_item/vore/size/load_character(list/save_data) - pref.size_multiplier = save_data["size_multiplier"] - pref.weight_vr = save_data["weight_vr"] - pref.weight_gain = save_data["weight_gain"] - pref.weight_loss = save_data["weight_loss"] - pref.fuzzy = save_data["fuzzy"] - pref.offset_override = save_data["offset_override"] - pref.voice_freq = save_data["voice_freq"] - pref.voice_sound = save_data["voice_sound"] - pref.custom_speech_bubble = save_data["custom_speech_bubble"] +/datum/category_item/player_setup_item/vore/size/load_character(var/savefile/S) + S["size_multiplier"] >> pref.size_multiplier + S["weight_vr"] >> pref.weight_vr + S["weight_gain"] >> pref.weight_gain + S["weight_loss"] >> pref.weight_loss + S["fuzzy"] >> pref.fuzzy + S["offset_override"] >> pref.offset_override + S["voice_freq"] >> pref.voice_freq + S["voice_sound"] >> pref.voice_sound + S["custom_speech_bubble"] >> pref.custom_speech_bubble -/datum/category_item/player_setup_item/vore/size/save_character(list/save_data) - save_data["size_multiplier"] = pref.size_multiplier - save_data["weight_vr"] = pref.weight_vr - save_data["weight_gain"] = pref.weight_gain - save_data["weight_loss"] = pref.weight_loss - save_data["fuzzy"] = pref.fuzzy - save_data["offset_override"] = pref.offset_override - save_data["voice_freq"] = pref.voice_freq - save_data["voice_sound"] = pref.voice_sound - save_data["custom_speech_bubble"] = pref.custom_speech_bubble +/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S) + S["size_multiplier"] << pref.size_multiplier + S["weight_vr"] << pref.weight_vr + S["weight_gain"] << pref.weight_gain + S["weight_loss"] << pref.weight_loss + S["fuzzy"] << pref.fuzzy + S["offset_override"] << pref.offset_override + S["voice_freq"] << pref.voice_freq + S["voice_sound"] << pref.voice_sound + S["custom_speech_bubble"] << pref.custom_speech_bubble /datum/category_item/player_setup_item/vore/size/sanitize_character() pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr)) diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm index f330d419ce..5ad651fbf9 100644 --- a/code/modules/client/preference_setup/vore/03_egg.dm +++ b/code/modules/client/preference_setup/vore/03_egg.dm @@ -14,13 +14,13 @@ name = "Egg appearance." sort_order = 3 -/datum/category_item/player_setup_item/vore/egg/load_character(list/save_data) - pref.vore_egg_type = save_data["vore_egg_type"] - pref.autohiss = save_data["autohiss"] +/datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S) + S["vore_egg_type"] >> pref.vore_egg_type + S["autohiss"] >> pref.autohiss // VOREStation Add -/datum/category_item/player_setup_item/vore/egg/save_character(list/save_data) - save_data["vore_egg_type"] = pref.vore_egg_type - save_data["autohiss"] = pref.autohiss +/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S) + S["vore_egg_type"] << pref.vore_egg_type + S["autohiss"] << pref.autohiss // VOREStation Add /datum/category_item/player_setup_item/vore/egg/sanitize_character() pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type)) diff --git a/code/modules/client/preference_setup/vore/04_resleeving.dm b/code/modules/client/preference_setup/vore/04_resleeving.dm index ccb6991c35..22fba4e6a7 100644 --- a/code/modules/client/preference_setup/vore/04_resleeving.dm +++ b/code/modules/client/preference_setup/vore/04_resleeving.dm @@ -8,14 +8,14 @@ name = "Resleeving" sort_order = 4 -/datum/category_item/player_setup_item/vore/resleeve/load_character(list/save_data) - pref.resleeve_lock = save_data["resleeve_lock"] - pref.resleeve_scan = save_data["resleeve_scan"] +/datum/category_item/player_setup_item/vore/resleeve/load_character(var/savefile/S) + S["resleeve_lock"] >> pref.resleeve_lock + S["resleeve_scan"] >> pref.resleeve_scan -/datum/category_item/player_setup_item/vore/resleeve/save_character(list/save_data) - save_data["resleeve_lock"] = pref.resleeve_lock - save_data["resleeve_scan"] = pref.resleeve_scan +/datum/category_item/player_setup_item/vore/resleeve/save_character(var/savefile/S) + S["resleeve_lock"] << pref.resleeve_lock + S["resleeve_scan"] << pref.resleeve_scan /datum/category_item/player_setup_item/vore/resleeve/sanitize_character() pref.resleeve_lock = sanitize_integer(pref.resleeve_lock, 0, 1, initial(pref.resleeve_lock)) diff --git a/code/modules/client/preference_setup/vore/05_persistence.dm b/code/modules/client/preference_setup/vore/05_persistence.dm index bb2535f44b..330a21a73b 100644 --- a/code/modules/client/preference_setup/vore/05_persistence.dm +++ b/code/modules/client/preference_setup/vore/05_persistence.dm @@ -7,12 +7,12 @@ name = "Persistence" sort_order = 5 -/datum/category_item/player_setup_item/vore/persistence/load_character(list/save_data) - pref.persistence_settings = save_data["persistence_settings"] +/datum/category_item/player_setup_item/vore/persistence/load_character(var/savefile/S) + S["persistence_settings"] >> pref.persistence_settings sanitize_character() // Don't let new characters start off with nulls -/datum/category_item/player_setup_item/vore/persistence/save_character(list/save_data) - save_data["persistence_settings"] = pref.persistence_settings +/datum/category_item/player_setup_item/vore/persistence/save_character(var/savefile/S) + S["persistence_settings"] << pref.persistence_settings /datum/category_item/player_setup_item/vore/persistence/sanitize_character() pref.persistence_settings = sanitize_integer(pref.persistence_settings, 0, (1<<(PERSIST_COUNT+1)-1), initial(pref.persistence_settings)) diff --git a/code/modules/client/preference_setup/vore/06_vantag.dm b/code/modules/client/preference_setup/vore/06_vantag.dm index 78d801a75e..c402f1f277 100644 --- a/code/modules/client/preference_setup/vore/06_vantag.dm +++ b/code/modules/client/preference_setup/vore/06_vantag.dm @@ -8,13 +8,13 @@ name = "VS Events" sort_order = 6 -/datum/category_item/player_setup_item/vore/vantag/load_character(list/save_data) - pref.vantag_volunteer = save_data["vantag_volunteer"] - pref.vantag_preference = save_data["vantag_preference"] +/datum/category_item/player_setup_item/vore/vantag/load_character(var/savefile/S) + S["vantag_volunteer"] >> pref.vantag_volunteer + S["vantag_preference"] >> pref.vantag_preference -/datum/category_item/player_setup_item/vore/vantag/save_character(list/save_data) - save_data["vantag_volunteer"] = pref.vantag_volunteer - save_data["vantag_preference"] = pref.vantag_preference +/datum/category_item/player_setup_item/vore/vantag/save_character(var/savefile/S) + S["vantag_volunteer"] << pref.vantag_volunteer + S["vantag_preference"] << pref.vantag_preference /datum/category_item/player_setup_item/vore/vantag/sanitize_character() pref.vantag_volunteer = sanitize_integer(pref.vantag_volunteer, 0, 1, initial(pref.vantag_volunteer)) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 4027f771b3..85c97bcbb7 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -107,47 +107,47 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s name = "Traits" sort_order = 7 -/datum/category_item/player_setup_item/vore/traits/load_character(list/save_data) - pref.custom_species = save_data["custom_species"] - pref.custom_base = save_data["custom_base"] - pref.pos_traits = save_data["pos_traits"] - pref.neu_traits = save_data["neu_traits"] - pref.neg_traits = save_data["neg_traits"] - pref.blood_color = save_data["blood_color"] - pref.blood_reagents = save_data["blood_reagents"] +/datum/category_item/player_setup_item/vore/traits/load_character(var/savefile/S) + S["custom_species"] >> pref.custom_species + S["custom_base"] >> pref.custom_base + S["pos_traits"] >> pref.pos_traits + S["neu_traits"] >> pref.neu_traits + S["neg_traits"] >> pref.neg_traits + S["blood_color"] >> pref.blood_color + S["blood_reagents"] >> pref.blood_reagents - pref.traits_cheating = save_data["traits_cheating"] - pref.max_traits = save_data["max_traits"] - pref.starting_trait_points = save_data["trait_points"] + S["traits_cheating"] >> pref.traits_cheating + S["max_traits"] >> pref.max_traits + S["trait_points"] >> pref.starting_trait_points - pref.custom_say = save_data["custom_say"] - pref.custom_whisper = save_data["custom_whisper"] - pref.custom_ask = save_data["custom_ask"] - pref.custom_exclaim = save_data["custom_exclaim"] + S["custom_say"] >> pref.custom_say + S["custom_whisper"] >> pref.custom_whisper + S["custom_ask"] >> pref.custom_ask + S["custom_exclaim"] >> pref.custom_exclaim - pref.custom_heat = save_data["custom_heat"] - pref.custom_cold = save_data["custom_cold"] + S["custom_heat"] >> pref.custom_heat + S["custom_cold"] >> pref.custom_cold -/datum/category_item/player_setup_item/vore/traits/save_character(list/save_data) - save_data["custom_species"] = pref.custom_species - save_data["custom_base"] = pref.custom_base - save_data["pos_traits"] = pref.pos_traits - save_data["neu_traits"] = pref.neu_traits - save_data["neg_traits"] = pref.neg_traits - save_data["blood_color"] = pref.blood_color - save_data["blood_reagents"] = pref.blood_reagents +/datum/category_item/player_setup_item/vore/traits/save_character(var/savefile/S) + S["custom_species"] << pref.custom_species + S["custom_base"] << pref.custom_base + S["pos_traits"] << pref.pos_traits + S["neu_traits"] << pref.neu_traits + S["neg_traits"] << pref.neg_traits + S["blood_color"] << pref.blood_color + S["blood_reagents"] << pref.blood_reagents - save_data["traits_cheating"] = pref.traits_cheating - save_data["max_traits"] = pref.max_traits - save_data["trait_points"] = pref.starting_trait_points + S["traits_cheating"] << pref.traits_cheating + S["max_traits"] << pref.max_traits + S["trait_points"] << pref.starting_trait_points - save_data["custom_say"] = pref.custom_say - save_data["custom_whisper"] = pref.custom_whisper - save_data["custom_ask"] = pref.custom_ask - save_data["custom_exclaim"] = pref.custom_exclaim + S["custom_say"] << pref.custom_say + S["custom_whisper"] << pref.custom_whisper + S["custom_ask"] << pref.custom_ask + S["custom_exclaim"] << pref.custom_exclaim - save_data["custom_heat"] = pref.custom_heat - save_data["custom_cold"] = pref.custom_cold + S["custom_heat"] << pref.custom_heat + S["custom_cold"] << pref.custom_cold /datum/category_item/player_setup_item/vore/traits/sanitize_character() if(!pref.pos_traits) pref.pos_traits = list() diff --git a/code/modules/client/preference_setup/vore/08_nif.dm b/code/modules/client/preference_setup/vore/08_nif.dm index 11e1f563dc..d502fb447b 100644 --- a/code/modules/client/preference_setup/vore/08_nif.dm +++ b/code/modules/client/preference_setup/vore/08_nif.dm @@ -9,15 +9,15 @@ name = "NIF Data" sort_order = 8 -/datum/category_item/player_setup_item/vore/nif/load_character(list/save_data) - pref.nif_path = save_data["nif_path"] - pref.nif_durability = save_data["nif_durability"] - pref.nif_savedata = save_data["nif_savedata"] +/datum/category_item/player_setup_item/vore/nif/load_character(var/savefile/S) + S["nif_path"] >> pref.nif_path + S["nif_durability"] >> pref.nif_durability + S["nif_savedata"] >> pref.nif_savedata -/datum/category_item/player_setup_item/vore/nif/save_character(list/save_data) - save_data["nif_path"] = pref.nif_path - save_data["nif_durability"] = pref.nif_durability - save_data["nif_savedata"] = pref.nif_savedata +/datum/category_item/player_setup_item/vore/nif/save_character(var/savefile/S) + S["nif_path"] << pref.nif_path + S["nif_durability"] << pref.nif_durability + S["nif_savedata"] << pref.nif_savedata /datum/category_item/player_setup_item/vore/nif/sanitize_character() if(pref.nif_path && !ispath(pref.nif_path)) //We have at least a text string that should be a path. diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm index 2cb867488d..963354baea 100644 --- a/code/modules/client/preference_setup/vore/09_misc.dm +++ b/code/modules/client/preference_setup/vore/09_misc.dm @@ -2,27 +2,27 @@ name = "Misc Settings" sort_order = 9 -/datum/category_item/player_setup_item/vore/misc/load_character(list/save_data) - pref.show_in_directory = save_data["show_in_directory"] - pref.directory_tag = save_data["directory_tag"] - pref.directory_erptag = save_data["directory_erptag"] - pref.directory_ad = save_data["directory_ad"] - pref.sensorpref = save_data["sensorpref"] - pref.capture_crystal = save_data["capture_crystal"] - pref.auto_backup_implant = save_data["auto_backup_implant"] - pref.borg_petting = save_data["borg_petting"] - pref.stomach_vision = save_data["stomach_vision"] +/datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S) + S["show_in_directory"] >> pref.show_in_directory + S["directory_tag"] >> pref.directory_tag + S["directory_erptag"] >> pref.directory_erptag + S["directory_ad"] >> pref.directory_ad + S["sensorpref"] >> pref.sensorpref + S["capture_crystal"] >> pref.capture_crystal + S["auto_backup_implant"] >> pref.auto_backup_implant + S["borg_petting"] >> pref.borg_petting + S["stomach_vision"] >> pref.stomach_vision -/datum/category_item/player_setup_item/vore/misc/save_character(list/save_data) - save_data["show_in_directory"] = pref.show_in_directory - save_data["directory_tag"] = pref.directory_tag - save_data["directory_erptag"] = pref.directory_erptag - save_data["directory_ad"] = pref.directory_ad - save_data["sensorpref"] = pref.sensorpref - save_data["capture_crystal"] = pref.capture_crystal - save_data["auto_backup_implant"] = pref.auto_backup_implant - save_data["borg_petting"] = pref.borg_petting - save_data["stomach_vision"] = pref.stomach_vision +/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S) + S["show_in_directory"] << pref.show_in_directory + S["directory_tag"] << pref.directory_tag + S["directory_erptag"] << pref.directory_erptag + S["directory_ad"] << pref.directory_ad + S["sensorpref"] << pref.sensorpref + S["capture_crystal"] << pref.capture_crystal + S["auto_backup_implant"] << pref.auto_backup_implant + S["borg_petting"] << pref.borg_petting + S["stomach_vision"] << pref.stomach_vision /datum/category_item/player_setup_item/vore/misc/copy_to_mob(var/mob/living/carbon/human/character) if(pref.sensorpref > 5 || pref.sensorpref < 1) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index fe950956e7..86613af1fd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1,12 +1,10 @@ var/list/preferences_datums = list() /datum/preferences - /// The path to the general savefile for this datum + //doohickeys for savefiles var/path - /// Whether or not we allow saving/loading. Used for guests, if they're enabled - var/load_and_save = TRUE - /// Ensures that we always load the last used save, QOL - var/default_slot = 1 + var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used + var/savefile_version = 0 //non-preference stuff var/warns = 0 @@ -178,55 +176,29 @@ var/list/preferences_datums = list() ///If they are currently in the process of swapping slots, don't let them open 999 windows for it and get confused var/selecting_slots = FALSE - /// The json savefile for this datum - var/datum/json_savefile/savefile /datum/preferences/New(client/C) - client = C - - for(var/middleware_type in subtypesof(/datum/preference_middleware)) - middleware += new middleware_type(src) - - if(istype(C)) // IS_CLIENT_OR_MOCK - client_ckey = C.ckey - load_and_save = !IsGuestKey(C.key) - load_path(C.ckey) - if(load_and_save && !fexists(path)) - try_savefile_type_migration() - else - CRASH("attempted to create a preferences datum without a client or mock!") - load_savefile() - - // Legacy code - gear = list() - gear_list = list() - gear_slot = 1 - // End legacy code - player_setup = new(src) - - var/loaded_preferences_successfully = load_preferences() - if(loaded_preferences_successfully) - if(load_character()) - return - - // Didn't load a character, so let's randomize set_biological_gender(pick(MALE, FEMALE)) real_name = random_name(identifying_gender,species) b_type = RANDOM_BLOOD_TYPE - if(client) - apply_all_client_preferences() + gear = list() + gear_list = list() + gear_slot = 1 + + if(istype(C)) + client = C + client_ckey = C.ckey + if(!IsGuestKey(C.key)) + load_path(C.ckey) + if(load_preferences()) + load_character() - if(!loaded_preferences_successfully) - save_preferences() - save_character() // Save random character /datum/preferences/Destroy() + . = ..() QDEL_LIST_ASSOC_VAL(char_render_holders) - QDEL_NULL(middleware) - value_cache = null - return ..() /datum/preferences/proc/ZeroSkills(var/forced = 0) for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V]) @@ -385,8 +357,8 @@ var/list/preferences_datums = list() return 1 if(href_list["save"]) - save_character() save_preferences() + save_character() else if(href_list["reload"]) load_preferences() load_character() @@ -401,7 +373,7 @@ var/list/preferences_datums = list() return 0 if("Yes" != tgui_alert(usr, "Are you completely sure that you want to reset this character slot?", "Reset current slot?", list("No", "Yes"))) return 0 - reset_slot() + load_character(SAVE_RESET) sanitize_preferences() else if(href_list["copy"]) if(!IsGuestKey(usr.key)) @@ -430,12 +402,6 @@ var/list/preferences_datums = list() // Ask the preferences datums to apply their own settings to the new mob player_setup.copy_to_mob(character) - for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) - if(preference.savefile_identifier != PREFERENCE_CHARACTER) - continue - - preference.apply_to_human(character, read_preference(preference.type)) - // VOREStation Edit - Sync up all their organs and species one final time character.force_update_organs() @@ -454,23 +420,26 @@ var/list/preferences_datums = list() if(selecting_slots) to_chat(user, "You already have a slot selection dialog open!") return - if(!savefile) + var/savefile/S = new /savefile(path) + if(!S) + error("Somehow missing savefile path?! [path]") return - var/default + var/name + var/nickname //vorestation edit - This set appends nicknames to the save slot var/list/charlist = list() - - for(var/i = 1 to config.character_slots) - var/list/save_data = savefile.get_entry("character[i]", list()) - var/name = save_data["real_name"] - var/nickname = save_data["nickname"] + var/default //VOREStation edit + for(var/i=1, i<= config.character_slots, i++) + S.cd = "/character[i]" + S["real_name"] >> name + S["nickname"] >> nickname //vorestation edit if(!name) name = "[i] - \[Unused Slot\]" else if(i == default_slot) name = "โ–บ[i] - [name]" else name = "[i] - [name]" - if(i == default_slot) + if (i == default_slot) //VOREStation edit default = "[name][nickname ? " ([nickname])" : ""]" charlist["[name][nickname ? " ([nickname])" : ""]"] = i @@ -494,23 +463,24 @@ var/list/preferences_datums = list() if(selecting_slots) to_chat(user, "You already have a slot selection dialog open!") return - if(!savefile) + var/savefile/S = new /savefile(path) + if(!S) + error("Somehow missing savefile path?! [path]") return + var/name + var/nickname //vorestation edit - This set appends nicknames to the save slot var/list/charlist = list() - - for(var/i in 1 to config.character_slots) - var/list/save_data = savefile.get_entry("character[i]", list()) - var/name = save_data["real_name"] - var/nickname = save_data["nickname"] - + for(var/i=1, i<= config.character_slots, i++) + S.cd = "/character[i]" + S["real_name"] >> name + S["nickname"] >> nickname //vorestation edit if(!name) name = "[i] - \[Unused Slot\]" if(i == default_slot) name = "โ–บ[i] - [name]" else name = "[i] - [name]" - charlist["[name][nickname ? " ([nickname])" : ""]"] = i selecting_slots = TRUE @@ -524,7 +494,7 @@ var/list/preferences_datums = list() error("Player picked [choice] slot to copy to, but that wasn't one we sent.") return - if(tgui_alert(user, "Are you sure you want to override slot [slotnum], [choice]'s savedata?", "Confirm Override", list("No", "Yes")) == "Yes") + if(tgui_alert(user, "Are you sure you want to override slot [slotnum], [name][nickname ? " ([nickname])" : ""]'s savedata?", "Confirm Override", list("No", "Yes")) == "Yes") overwrite_character(slotnum) sanitize_preferences() save_preferences() diff --git a/code/modules/client/preferences/README.md b/code/modules/client/preferences/README.md deleted file mode 100644 index fabfb779c9..0000000000 --- a/code/modules/client/preferences/README.md +++ /dev/null @@ -1,456 +0,0 @@ -# Preferences (by Mothblocks) - -This does not contain all the information on specific values--you can find those as doc-comments in relevant paths, such as `/datum/preference`. Rather, this gives you an overview for creating *most* preferences, and getting your foot in the door to create more advanced ones. - -## Anatomy of a preference (A.K.A. how do I make one?) - -Most preferences consist of two parts: - -1. A `/datum/preference` type. -2. A tgui representation in a TypeScript file. - -Every `/datum/preference` requires these three values be set: -1. `category` - See [Categories](#Categories). -2. `savefile_key` - The value which will be saved in the savefile. This will also be the identifier for tgui. -3. `savefile_identifier` - Whether or not this is a character specific preference (`PREFERENCE_CHARACTER`) or one that affects the player (`PREFERENCE_PLAYER`). As an example: hair color is `PREFERENCE_CHARACTER` while your UI settings are `PREFERENCE_PLAYER`, since they do not change between characters. - -For the tgui representation, most preferences will create a `.tsx` file in `tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/`. If your preference is a character preference, make a new file in `character_preferences`. Otherwise, put it in `game_preferences`. The filename does not matter, and this file can hold multiple relevant preferences if you would like. - -From here, you will want to write code resembling: - -```ts -import { Feature } from "../base"; - -export const savefile_key_here: Feature = { - name: "Preference Name Here", - component: Component, - - // Necessary for game preferences, unused for others - category: "CATEGORY", - - // Optional, shown as a tooltip - description: "This preference will blow your mind!", -} -``` - -`T` and `Component` depend on the type of preference you're making. Here are all common examples... - -## Numeric preferences - -Examples include age and FPS. - -A numeric preference derives from `/datum/preference/numeric`. - -```dm -/datum/preference/numeric/legs - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "legs" - - minimum = 1 - maximum = 8 -``` - -You can optionally provide a `step` field. This value is 1 by default, meaning only integers are accepted. - -Your `.tsx` file would look like: - -```ts -import { Feature, FeatureNumberInput } from "../base"; - -export const legs: Feature = { - name: "Legs", - component: FeatureNumberInput, -} -``` - -## Toggle preferences - -Examples include enabling tooltips. - -```dm -/datum/preference/toggle/enable_breathing - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "enable_breathing" - - // Optional, TRUE by default - default_value = FALSE -``` - -Your `.tsx` file would look like: - -```ts -import { CheckboxInput, FeatureToggle } from "../base"; - -export const enable_breathing: FeatureToggle = { - name: "Enable breathing", - component: CheckboxInput, -} -``` - -## Choiced preferences -A choiced preference is one where the only options are in a distinct few amount of choices. Examples include skin tone, shirt, and UI style. - -To create one, derive from `/datum/preference/choiced`. - -```dm -/datum/preference/choiced/favorite_drink - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "favorite_drink" -``` - -Now we need to tell the game what the choices are. We do this by overriding `init_possible_values()`. This will return a list of possible options. - -```dm -/datum/preference/choiced/favorite_drink/init_possible_values() - return list( - "Milk", - "Cola", - "Water", - ) -``` - -Your `.tsx` file would then look like: - -```tsx -import { FeatureChoiced, FeatureDropdownInput } from "../base"; - -export const favorite_drink: FeatureChoiced = { - name: "Favorite drink", - component: FeatureDropdownInput, -}; -``` - -This will create a dropdown input for your preference. - -### Choiced preferences - Icons -Choiced preferences can generate icons. This is how the clothing/species preferences work, for instance. However, if we just want a basic dropdown input with icons, it would look like this: - -```dm -/datum/preference/choiced/favorite_drink - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "favorite_drink" - should_generate_icons = TRUE // NEW! This is necessary. - -/datum/preference/choiced/favorite_drink/init_possible_values() - return list("Milk", "Cola", "Water") - -// New! This proc will get called for every value. -/datum/preference/choiced/favorite_drink/icon_for(value) - switch (value) - if ("Milk") - return icon('drinks.dmi', "milk") - if ("Cola") - return icon('drinks.dmi', "cola") - if ("Water") - return icon('drinks.dmi', "water") -``` - -Then, change your `.tsx` file to look like: - -```tsx -import { FeatureChoiced, FeatureIconnedDropdownInput } from "../base"; - -export const favorite_drink: FeatureChoiced = { - name: "Favorite drink", - component: FeatureIconnedDropdownInput, -}; -``` - -### Choiced preferences - Display names -Sometimes the values you want to save in code aren't the same as the ones you want to display. You can specify display names to change this. - -The only thing you will add is "compiled data". - -```dm -/datum/preference/choiced/favorite_drink/compile_constant_data() - var/list/data = ..() - - // An assoc list of values to display names - data[CHOICED_PREFERENCE_DISPLAY_NAMES] = list( - "Milk" = "Delicious Milk", - "Cola" = "Crisp Cola", - "Water" = "Plain Ol' Water", - ) - - return data -``` - -Your `.tsx` file does not change. The UI will figure it out for you! - -## Color preferences -These refer to colors, such as your OOC color. When read, these values will be given as 6 hex digits, *without* the pound sign. - -```dm -/datum/preference/color/eyeliner_color - category = PREFERENCE_CATEGORY_NON_CONTEXTUAL - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "eyeliner_color" -``` - -Your `.tsx` file would look like: - -```ts -import { FeatureColorInput, Feature } from "../base"; - -export const eyeliner_color: Feature = { - name: "Eyeliner color", - component: FeatureColorInput, -}; -``` - -## Name preferences -These refer to an alternative name. Examples include AI names and backup human names. - -These exist in `code/modules/client/preferences/names.dm`. - -These do not need a `.ts` file, and will be created in the UI automatically. - -```dm -/datum/preference/name/doctor - savefile_key = "doctor_name" - - // The name on the UI - explanation = "Doctor name" - - // This groups together with anything else with the same group - group = "medicine" - - // Optional, if specified the UI will show this name actively - // when the player is a medical doctor. - relevant_job = /datum/job/medical_doctor -``` - -## Making your preference do stuff - -There are a handful of procs preferences can use to act on their own: - -```dm -/// Apply this preference onto the given client. -/// Called when the savefile_identifier == PREFERENCE_PLAYER. -/datum/preference/proc/apply_to_client(client/client, value) - -/// Fired when the preference is updated. -/// Calls apply_to_client by default, but can be overridden. -/datum/preference/proc/apply_to_client_updated(client/client, value) - -/// Apply this preference onto the given human. -/// Must be overriden by subtypes. -/// Called when the savefile_identifier == PREFERENCE_CHARACTER. -/datum/preference/proc/apply_to_human(mob/living/carbon/human/target, value) -``` - -For example, `/datum/preference/numeric/age` contains: - -```dm -/datum/preference/numeric/age/apply_to_human(mob/living/carbon/human/target, value) - target.age = value -``` - -If your preference is `PREFERENCE_CHARACTER`, it MUST override `apply_to_human`, even if just to immediately `return`. - -You can also read preferences directly with `prefs.read_preference(/datum/preference/type/here)`, which will return the stored value. - -## Categories -Every preference needs to be in a `category`. These can be found in `code/__DEFINES/preferences.dm`. - -```dm -/// These will be shown in the character sidebar, but at the bottom. -#define PREFERENCE_CATEGORY_FEATURES "features" - -/// Any preferences that will show to the sides of the character in the setup menu. -#define PREFERENCE_CATEGORY_CLOTHING "clothing" - -/// Preferences that will be put into the 3rd list, and are not contextual. -#define PREFERENCE_CATEGORY_NON_CONTEXTUAL "non_contextual" - -/// Will be put under the game preferences window. -#define PREFERENCE_CATEGORY_GAME_PREFERENCES "game_preferences" - -/// These will show in the list to the right of the character preview. -#define PREFERENCE_CATEGORY_SECONDARY_FEATURES "secondary_features" - -/// These are preferences that are supplementary for main features, -/// such as hair color being affixed to hair. -#define PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES "supplemental_features" -``` - -![Preference categories for the main page](https://raw.githubusercontent.com/tgstation/documentation-assets/main/preferences/preference_categories.png) - -> SECONDARY_FEATURES or NON_CONTEXTUAL? - -Secondary features tend to be species specific. Non contextual features shouldn't change much from character to character. - -## Default values and randomization - -There are three procs to be aware of in regards to this topic: - -- `create_default_value()`. This is used when a value deserializes improperly or when a new character is created. -- `create_informed_default_value(datum/preferences/preferences)` - Used for more complicated default values, like how names require the gender. Will call `create_default_value()` by default. -- `create_random_value(datum/preferences/preferences)` - Explicitly used for random values, such as when a character is being randomized. - -`create_default_value()` in most preferences will create a random value. If this is a problem (like how default characters should always be human), you can override `create_default_value()`. By default (without overriding `create_random_value`), random values are just default values. - -## Advanced - Server data - -As previewed in [the display names implementation](#Choiced-preferences---Display-names), there exists a `compile_constant_data()` proc you can override. - -Compiled data is used wherever the server needs to give the client some value it can't figure out on its own. Skin tones use this to tell the client what colors they represent, for example. - -Compiled data is sent to the `serverData` field in the `FeatureValueProps`. - -## Advanced - Creating your own tgui component - -If you have good knowledge with tgui (especially TypeScript), you'll be able to create your own component to represent preferences. - -The `component` field in a feature accepts __any__ component that accepts `FeatureValueProps`. - -This will give you the fields: - -```ts -act: typeof sendAct, -featureId: string, -handleSetValue: (newValue: TSending) => void, -serverData: TServerData | undefined, -shrink?: boolean, -value: TReceiving, -``` - -`act` is the same as the one you get from `useBackend`. - -`featureId` is the savefile_key of the feature. - -`handleSetValue` is a function that, when called, will tell the server the new value, as well as changing the value immediately locally. - -`serverData` is the [server data](#Advanced---Server-data), if it has been fetched yet (and exists). - -`shrink` is whether or not the UI should appear smaller. This is only used for supplementary features. - -`value` is the current value, could be predicted (meaning that the value was changed locally, but has not yet reached the server). - -For a basic example of how this can look, observe `CheckboxInput`: - -```tsx -export const CheckboxInput = ( - props: FeatureValueProps -) => { - return ( { - props.handleSetValue(!props.value); - }} - />); -}; -``` - -## Advanced - Middleware -A `/datum/preference_middleware` is a way to inject your own data at specific points, as well as hijack actions. - -Middleware can hijack actions by specifying `action_delegations`: - -```dm -/datum/preference_middleware/congratulations - action_delegations = list( - "congratulate_me" = PROC_REF(congratulate_me), - ) - -/datum/preference_middleware/congratulations/proc/congratulate_me(list/params, mob/user) - to_chat(user, span_notice("Wow, you did a great job learning about middleware!")) - - return TRUE -``` - -Middleware can inject its own data at several points, such as providing new UI assets, compiled data (used by middleware such as quirks to tell the client what quirks exist), etc. Look at `code/modules/client/preferences/middleware/_middleware.dm` for full information. - ---- - -## Antagonists - -In order to make an antagonist selectable, you must do a few things: - -1. Your antagonist needs an icon. -2. Your antagonist must be in a Dynamic ruleset. The ruleset must specify the antagonist as its `antag_flag`. -3. Your antagonist needs a file in `tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/filename.ts`. This file name MUST be the `antag_flag` of your ruleset, with nothing but letters remaining (e.g. "Nuclear Operative" -> `nuclearoperative`). -4. Add it to `special_roles`. - -## Creating icons - -If you are satisfied with your icon just being a dude with some clothes, then you can specify `preview_outfit` in your `/datum/antagonist`. - -Space Ninja, for example, looks like: - -```dm -/datum/antagonist/ninja - preview_outift = /datum/outfit/ninja -``` - -However, if you want to get creative, you can override `/get_preview_icon()`. This proc should return an icon of size `ANTAGONIST_PREVIEW_ICON_SIZE`x`ANTAGONIST_PREVIEW_ICON_SIZE`. - -There are some helper procs you can use as well. `render_preview_outfit(outfit_type)` will take an outfit and give you an icon of someone wearing those clothes. `finish_preview_outfit` will, given an icon, resize it appropriately and zoom in on the head. Note that this will look bad on anything that isn't a human, so if you have a non-human antagonist (such as sentient disease), just run `icon.Scale(ANTAGONIST_PREVIEW_ICON_SIZE, ANTAGONIST_PREVIEW_ICON_SIZE)`. - -For inspiration, here is changeling's: - -```dm -/datum/antagonist/changeling/get_preview_icon() - var/icon/final_icon = render_preview_outfit(/datum/outfit/changeling) - var/icon/split_icon = render_preview_outfit(/datum/outfit/job/engineer) - - final_icon.Shift(WEST, world.icon_size / 2) - final_icon.Shift(EAST, world.icon_size / 2) - - split_icon.Shift(EAST, world.icon_size / 2) - split_icon.Shift(WEST, world.icon_size / 2) - - final_icon.Blend(split_icon, ICON_OVERLAY) - - return finish_preview_icon(final_icon) -``` - -...which creates: - -![Changeling icon](https://raw.githubusercontent.com/tgstation/documentation-assets/main/preferences/changeling.png) - -## Creating the tgui representation - -In the `.ts` file you created earlier, you must now give the information of your antagonist. For reference, this is the changeling's: - -```ts -import { Antagonist, Category } from "../base"; -import { multiline } from "common/string"; - -const Changeling: Antagonist = { - key: "changeling", // This must be the same as your filename - name: "Changeling", - description: [ - multiline` - A highly intelligent alien predator that is capable of altering their - shape to flawlessly resemble a human. - `, - - multiline` - Transform yourself or others into different identities, and buy from an - arsenal of biological weaponry with the DNA you collect. - `, - ], - category: Category.Roundstart, // Category.Roundstart, Category.Midround, or Category.Latejoin -}; - -export default Changeling; -``` - -## Readying the Dynamic ruleset - -You already need to create a Dynamic ruleset, so in order to get your antagonist recognized, you just need to specify `antag_flag`. This must be unique per ruleset. - -Two other values to note are `antag_flag_override` and `antag_preference`. - -`antag_flag_override` exists for cases where you want the banned antagonist to be separate from `antag_flag`. As an example: roundstart, midround, and latejoin traitors have separate `antag_flag`, but all have `antag_flag_override = ROLE_TRAITOR`. This is because admins want to ban a player from Traitor altogether, not specific rulesets. - -If `antag_preference` is set, it will refer to that preference instead of `antag_flag`. This is used for clown operatives, which we want to be on the same preference as standard nuke ops, but must specify a unique `antag_flag` for. - -## Updating special_roles - -In `code/__DEFINES/role_preferences.dm` (the same place you'll need to make your ROLE_\* defined), simply add your antagonist to the `special_roles` assoc list. The key is your ROLE, the value is the number of days since your first game in order to play as that antagonist. diff --git a/code/modules/client/preferences/_preference.dm b/code/modules/client/preferences/_preference.dm deleted file mode 100644 index d3ad859249..0000000000 --- a/code/modules/client/preferences/_preference.dm +++ /dev/null @@ -1,546 +0,0 @@ -// Priorities must be in order! -/// The default priority level -#define PREFERENCE_PRIORITY_DEFAULT 1 - -/// The priority at which species runs, needed for external organs to apply properly. -#define PREFERENCE_PRIORITY_SPECIES 2 - -/** - * Some preferences get applied directly to bodyparts (anything head_flags related right now). - * These must apply after species, as species gaining might replace the bodyparts of the human. - */ -#define PREFERENCE_PRIORITY_BODYPARTS 3 - -/// The priority at which gender is determined, needed for proper randomization. -#define PREFERENCE_PRIORITY_GENDER 4 - -/// The priority at which body type is decided, applied after gender so we can -/// support the "use gender" option. -#define PREFERENCE_PRIORITY_BODY_TYPE 5 - -/// Used for preferences that rely on body setup being finalized. -#define PREFERENCE_PRORITY_LATE_BODY_TYPE 6 - -/// Equpping items based on preferences. -/// Should happen after species and body type to make sure it looks right. -/// Mostly redundant, but a safety net for saving/loading. -#define PREFERENCE_PRIORITY_LOADOUT 7 - -/// The priority at which names are decided, needed for proper randomization. -#define PREFERENCE_PRIORITY_NAMES 8 - -/// Preferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES. -#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 9 - -/// The maximum preference priority, keep this updated, but don't use it for `priority`. -#define MAX_PREFERENCE_PRIORITY PREFERENCE_PRIORITY_NAME_MODIFICATIONS - -/// For choiced preferences, this key will be used to set display names in constant data. -#define CHOICED_PREFERENCE_DISPLAY_NAMES "display_names" - -/// For main feature preferences, this key refers to a feature considered supplemental. -/// For instance, hair color being supplemental to hair. -#define SUPPLEMENTAL_FEATURE_KEY "supplemental_feature" - -/// An assoc list list of types to instantiated `/datum/preference` instances -GLOBAL_LIST_INIT(preference_entries, init_preference_entries()) - -/// An assoc list of preference entries by their `savefile_key` -GLOBAL_LIST_INIT(preference_entries_by_key, init_preference_entries_by_key()) - -/proc/init_preference_entries() - var/list/output = list() - for(var/datum/preference/preference_type as anything in subtypesof(/datum/preference)) - if(is_abstract(preference_type)) - continue - output[preference_type] = new preference_type - return output - -/proc/init_preference_entries_by_key() - var/list/output = list() - for(var/datum/preference/preference_type as anything in subtypesof(/datum/preference)) - if(is_abstract(preference_type)) - continue - output[initial(preference_type.savefile_key)] = GLOB.preference_entries[preference_type] - return output - -/// Returns a flat list of preferences in order of their priority -/proc/get_preferences_in_priority_order() - var/list/preferences[MAX_PREFERENCE_PRIORITY] - - for(var/preference_type in GLOB.preference_entries) - var/datum/preference/preference = GLOB.preference_entries[preference_type] - LAZYADD(preferences[preference.priority], preference) - - var/list/flattened = list() - for(var/index in 1 to MAX_PREFERENCE_PRIORITY) - // Don't add nulls to the list if there's no preferences in a given priority level - if(LAZYLEN(preferences[index])) - flattened += preferences[index] - return flattened - -/// Represents an individual preference. -/datum/preference - /// The key inside the savefile to use. - /// This is also sent to the UI. - /// Once you pick this, don't change it. - var/savefile_key - - /// The category of preference, for use by the PreferencesMenu. - /// This isn't used for anything other than as a key for UI data. - /// It is up to the PreferencesMenu UI itself to interpret it. - var/category = "misc" - - /// Do not instantiate if type matches this. - abstract_type = /datum/preference - - /// What savefile should this preference be read from? - /// Valid values are PREFERENCE_CHARACTER and PREFERENCE_PLAYER. - /// See the documentation in [code/__DEFINES/preferences.dm]. - var/savefile_identifier - - /// The priority of when to apply this preference. - /// Used for when you need to rely on another preference. - var/priority = PREFERENCE_PRIORITY_DEFAULT - - /// If set, will be available to randomize, but only if the preference - /// is for PREFERENCE_CHARACTER. - var/can_randomize = TRUE - - /// If randomizable (PREFERENCE_CHARACTER and can_randomize), whether - /// or not to enable randomization by default. - /// This doesn't mean it'll always be random, but rather if a player - /// DOES have random body on, will this already be randomized? - var/randomize_by_default = TRUE - - /// If the selected species has this in its /datum/species/mutant_bodyparts, - /// will show the feature as selectable. - var/relevant_mutant_bodypart = null - - /// If the selected species has this in its /datum/species/body_markings, - /// will show the feature as selectable. - var/relevant_body_markings = null - - /// If the selected species has this in its /datum/species/inherent_traits, - /// will show the feature as selectable. - var/relevant_inherent_trait = null - - /// If the selected species has this in its /datum/species/var/external_organs, - /// will show the feature as selectable. - var/relevant_external_organ = null - - /// If the selected species has this head_flag by default, - /// will show the feature as selectable. - var/relevant_head_flag = null - -/// Called on the saved input when retrieving. -/// Also called by the value sent from the user through UI. Do not trust it. -/// Input is the value inside the savefile, output is to tell other code -/// what the value is. -/// This is useful either for more optimal data saving or for migrating -/// older data. -/// Must be overridden by subtypes. -/// Can return null if no value was found. -/datum/preference/proc/pref_deserialize(input, datum/preferences/preferences) - SHOULD_NOT_SLEEP(TRUE) - SHOULD_CALL_PARENT(FALSE) - CRASH("`pref_deserialize()` was not implemented on [type]!") - -/// Called on the input while saving. -/// Input is the current value, output is what to save in the savefile. -/datum/preference/proc/pref_serialize(input) - SHOULD_NOT_SLEEP(TRUE) - return input - -/// Produce a default, potentially random value for when no value for this -/// preference is found in the savefile. -/// Either this or create_informed_default_value must be overriden by subtypes. -/datum/preference/proc/create_default_value() - SHOULD_NOT_SLEEP(TRUE) - SHOULD_CALL_PARENT(FALSE) - CRASH("`create_default_value()` was not implemented on [type]!") - -/// Produce a default, potentially random value for when no value for this -/// preference is found in the savefile. -/// Unlike create_default_value(), will provide the preferences object if you -/// need to use it. -/// If not overriden, will call create_default_value() instead. -/datum/preference/proc/create_informed_default_value(datum/preferences/preferences) - return create_default_value() - -/// Produce a random value for the purposes of character randomization. -/// Will just create a default value by default. -/datum/preference/proc/create_random_value(datum/preferences/preferences) - return create_informed_default_value(preferences) - -/// Returns whether or not a preference can be randomized. -/datum/preference/proc/is_randomizable() - SHOULD_NOT_OVERRIDE(TRUE) - return savefile_identifier == PREFERENCE_CHARACTER && can_randomize - -/// Given a savefile, return either the saved data or an acceptable default. -/// This will write to the savefile if a value was not found with the new value. -/datum/preference/proc/read(list/save_data, datum/preferences/preferences) - SHOULD_NOT_OVERRIDE(TRUE) - - var/value - - if(!isnull(save_data)) - value = save_data[savefile_key] - - if(isnull(value)) - return null - else - return pref_deserialize(value, preferences) - -/// Given a savefile, writes the inputted value. -/// Returns TRUE for a successful application. -/// Return FALSE if it is invalid. -/datum/preference/proc/write(list/save_data, value) - SHOULD_NOT_OVERRIDE(TRUE) - - if(!is_valid(value)) - return FALSE - - if(!isnull(save_data)) - save_data[savefile_key] = pref_serialize(value) - - return TRUE - -/// Apply this preference onto the given client. -/// Called when the savefile_identifier == PREFERENCE_PLAYER. -/datum/preference/proc/apply_to_client(client/client, value) - SHOULD_NOT_SLEEP(TRUE) - SHOULD_CALL_PARENT(FALSE) - return - -/// Fired when the preference is updated. -/// Calls apply_to_client by default, but can be overridden. -/datum/preference/proc/apply_to_client_updated(client/client, value) - SHOULD_NOT_SLEEP(TRUE) - apply_to_client(client, value) - -/// Apply this preference onto the given human. -/// Must be overriden by subtypes. -/// Called when the savefile_identifier == PREFERENCE_CHARACTER. -/datum/preference/proc/apply_to_human(mob/living/carbon/human/target, value) - SHOULD_NOT_SLEEP(TRUE) - SHOULD_CALL_PARENT(FALSE) - CRASH("`apply_to_human()` was not implemented for [type]!") - -/// Returns which savefile to use for a given savefile identifier -/datum/preferences/proc/get_save_data_for_savefile_identifier(savefile_identifier) - RETURN_TYPE(/list) - - if(!client) - return null - if(!savefile) - CRASH("Attempted to get the savedata for [savefile_identifier] of [client] without a savefile. This should have been handled by load_preferences()") - - // Both of these will cache savefiles, but only for a tick. - // This is because storing a savefile will lock it, causing later issues down the line. - // Do not change them to addtimer, since the timer SS might not be running at this time. - switch (savefile_identifier) - if(PREFERENCE_CHARACTER) - return savefile.get_entry("character[default_slot]") - if(PREFERENCE_PLAYER) - return savefile.get_entry() - else - CRASH("Unknown savefile identifier [savefile_identifier]") - -/// Read a /datum/preference type and return its value. -/// This will write to the savefile if a value was not found with the new value. -/datum/preferences/proc/read_preference(preference_type) - var/datum/preference/preference_entry = GLOB.preference_entries[preference_type] - if(isnull(preference_entry)) - var/extra_info = "" - - // Current initializing subsystem is important to know because it might be a problem with - // things running pre-assets-initialization. - // if(!isnull(Master.current_initializing_subsystem)) - // extra_info = "Info was attempted to be retrieved while [Master.current_initializing_subsystem] was initializing." - // else if(!MC_RUNNING()) - // extra_info = "Info was attempted to be retrieved before the MC started, but not while it was actively initializing a subsystem" - - CRASH("Preference type `[preference_type]` is invalid! [extra_info]") - - if(preference_type in value_cache) - return value_cache[preference_type] - - var/value = preference_entry.read(get_save_data_for_savefile_identifier(preference_entry.savefile_identifier), src) - if(isnull(value)) - value = preference_entry.create_informed_default_value(src) - if(write_preference(preference_entry, value)) - return value - else - CRASH("Couldn't write the default value for [preference_type] (received [value])") - value_cache[preference_type] = value - return value - -/// Read a /datum/preference type and return its value. -/mob/proc/read_preference(preference_type) - return client?.prefs?.read_preference(preference_type) - -/// Set a /datum/preference entry. -/// Returns TRUE for a successful preference application. -/// Returns FALSE if it is invalid. -/datum/preferences/proc/write_preference(datum/preference/preference, preference_value) - var/save_data = get_save_data_for_savefile_identifier(preference.savefile_identifier) - var/new_value = preference.pref_deserialize(preference_value, src) - var/success = preference.write(save_data, new_value) - if(success) - value_cache[preference.type] = new_value - return success - -/// Will perform an update on the preference, but not write to the savefile. -/// This will, for instance, update the character preference view. -/// Performs sanity checks. -/datum/preferences/proc/update_preference(datum/preference/preference, preference_value) - if(!preference.is_accessible(src)) - return FALSE - - var/new_value = preference.pref_deserialize(preference_value, src) - var/success = preference.write(null, new_value) - - if(!success) - return FALSE - - recently_updated_keys |= preference.type - value_cache[preference.type] = new_value - - if(preference.savefile_identifier == PREFERENCE_PLAYER) - preference.apply_to_client_updated(client, read_preference(preference.type)) - else - update_preview_icon() - - return TRUE - -/// Checks that a given value is valid. -/// Must be overriden by subtypes. -/// Any type can be passed through. -/datum/preference/proc/is_valid(value) - SHOULD_NOT_SLEEP(TRUE) - SHOULD_CALL_PARENT(FALSE) - CRASH("`is_valid()` was not implemented for [type]!") - -/// Returns data to be sent to users in the menu -/datum/preference/proc/compile_ui_data(mob/user, value) - SHOULD_NOT_SLEEP(TRUE) - - return pref_serialize(value) - -/// Returns data compiled into the preferences JSON asset -/datum/preference/proc/compile_constant_data() - SHOULD_NOT_SLEEP(TRUE) - - return null - -/// Returns whether or not this preference is accessible. -/// If FALSE, will not show in the UI and will not be editable (by update_preference). -/datum/preference/proc/is_accessible(datum/preferences/preferences) - SHOULD_CALL_PARENT(TRUE) - SHOULD_NOT_SLEEP(TRUE) - - // if( - // !isnull(relevant_mutant_bodypart) - // || !isnull(relevant_inherent_trait) - // || !isnull(relevant_external_organ) - // || !isnull(relevant_head_flag) - // || !isnull(relevant_body_markings) - // ) - // var/species_type = preferences.read_preference(/datum/preference/choiced/species) - - // var/datum/species/species = GLOB.species_prototypes[species_type] - // if(!(savefile_key in species.get_features())) - // return FALSE - - if(!should_show_on_page(preferences.current_window)) - return FALSE - - return TRUE - -/// Returns whether or not, given the PREFERENCE_TAB_*, this preference should -/// appear. -/datum/preference/proc/should_show_on_page(preference_tab) - var/is_on_character_page = preference_tab == PREFERENCE_TAB_CHARACTER_PREFERENCES - var/is_character_preference = savefile_identifier == PREFERENCE_CHARACTER - return is_on_character_page == is_character_preference - -/// A preference that is a choice of one option among a fixed set. -/// Used for preferences such as clothing. -/datum/preference/choiced - /// If this is TRUE, an icon will be generated for every value. - /// If you implement this, you must implement `icon_for(value)` for every possible value. - var/should_generate_icons = FALSE - - var/list/cached_values - - /// If the preference is a main feature (PREFERENCE_CATEGORY_FEATURES or PREFERENCE_CATEGORY_CLOTHING) - /// this is the name of the feature that will be presented. - var/main_feature_name - - abstract_type = /datum/preference/choiced - -/// Returns a list of every possible value. -/// The first time this is called, will run `init_values()`. -/// Return value can be in the form of: -/// - A flat list of raw values, such as list(MALE, FEMALE, PLURAL). -/// - An assoc list of raw values to atoms/icons. -/datum/preference/choiced/proc/get_choices() - // Override `init_values()` instead. - SHOULD_NOT_OVERRIDE(TRUE) - - if(isnull(cached_values)) - cached_values = init_possible_values() - ASSERT(cached_values.len) - - return cached_values - -/// Returns a list of every possible value, serialized. -/datum/preference/choiced/proc/get_choices_serialized() - // Override `init_values()` instead. - SHOULD_NOT_OVERRIDE(TRUE) - - var/list/serialized_choices = list() - - for(var/choice in get_choices()) - serialized_choices += pref_serialize(choice) - - return serialized_choices - -/// Returns a list of every possible value. -/// This must be overriden by `/datum/preference/choiced` subtypes. -/// If `should_generate_icons` is TRUE, then you will also need to implement `icon_for(value)` -/// for every possible value. -/datum/preference/choiced/proc/init_possible_values() - CRASH("`init_possible_values()` was not implemented for [type]!") - -/// When `should_generate_icons` is TRUE, this proc is called for every value. -/// It can return either an icon or a typepath to an atom to create. -/datum/preference/choiced/proc/icon_for(value) - SHOULD_CALL_PARENT(FALSE) - SHOULD_NOT_SLEEP(TRUE) - CRASH("`icon_for()` was not implemented for [type], even though should_generate_icons = TRUE!") - -/datum/preference/choiced/is_valid(value) - return value in get_choices() - -/datum/preference/choiced/pref_deserialize(input, datum/preferences/preferences) - return sanitize_inlist(input, get_choices(), create_default_value()) - -/datum/preference/choiced/create_default_value() - return pick(get_choices()) - -/datum/preference/choiced/compile_constant_data() - var/list/data = list() - - var/list/choices = list() - - for(var/choice in get_choices()) - choices += choice - - data["choices"] = choices - - if(should_generate_icons) - var/list/icons = list() - - // for(var/choice in choices) // TODO: Pref spritesheet asset - // icons[choice] = get_spritesheet_key(choice) - - data["icons"] = icons - - if(!isnull(main_feature_name)) - data["name"] = main_feature_name - - return data - -/// A preference that represents an RGB color of something. -/// Will give the value as 6 hex digits, without a hash. -/datum/preference/color - abstract_type = /datum/preference/color - -/datum/preference/color/pref_deserialize(input, datum/preferences/preferences) - return sanitize_hexcolor(input) - -/datum/preference/color/create_default_value() - return random_color() - -/datum/preference/color/pref_serialize(input) - return sanitize_hexcolor(input) - -/datum/preference/color/is_valid(value) - return findtext(value, GLOB.is_color) - -/// A numeric preference with a minimum and maximum value -/datum/preference/numeric - /// The minimum value - var/minimum - - /// The maximum value - var/maximum - - /// The step of the number, such as 1 for integers or 0.5 for half-steps. - var/step = 1 - - abstract_type = /datum/preference/numeric - -/datum/preference/numeric/pref_deserialize(input, datum/preferences/preferences) - if(istext(input)) // Sometimes TGUI will return a string instead of a number, so we take that into account. - input = text2num(input) // Worst case, it's null, it'll just use create_default_value() - return sanitize_float(input, minimum, maximum, step, create_default_value()) - -/datum/preference/numeric/pref_serialize(input) - return sanitize_float(input, minimum, maximum, step, create_default_value()) - -/datum/preference/numeric/create_default_value() - return rand(minimum, maximum) - -/datum/preference/numeric/is_valid(value) - return isnum(value) && value >= round(minimum, step) && value <= round(maximum, step) - -/datum/preference/numeric/compile_constant_data() - return list( - "minimum" = minimum, - "maximum" = maximum, - "step" = step, - ) - -/// A preference whose value is always TRUE or FALSE -/datum/preference/toggle - abstract_type = /datum/preference/toggle - - /// The default value of the toggle, if create_default_value is not specified - var/default_value = TRUE - -/datum/preference/toggle/create_default_value() - return default_value - -/datum/preference/toggle/pref_deserialize(input, datum/preferences/preferences) - return !!input - -/datum/preference/toggle/is_valid(value) - return value == TRUE || value == FALSE - - -/// A string-based preference accepting arbitrary string values entered by the user, with a maximum length. -/datum/preference/text - abstract_type = /datum/preference/text - - /// What is the maximum length of the value allowed in this field? - var/maximum_value_length = 256 - - /// Should we strip HTML the input or simply restrict it to the maximum_value_length? - var/should_strip_html = TRUE - - -/datum/preference/text/pref_deserialize(input, datum/preferences/preferences) - return should_strip_html ? STRIP_HTML_SIMPLE(input, maximum_value_length) : copytext(input, 1, maximum_value_length) - -/datum/preference/text/create_default_value() - return "" - -/datum/preference/text/is_valid(value) - return istext(value) && length(value) < maximum_value_length - -/datum/preference/text/compile_constant_data() - return list("maximum_length" = maximum_value_length) diff --git a/code/modules/client/preferences/middleware/_middleware.dm b/code/modules/client/preferences/middleware/_middleware.dm deleted file mode 100644 index 8f47f73642..0000000000 --- a/code/modules/client/preferences/middleware/_middleware.dm +++ /dev/null @@ -1,52 +0,0 @@ -/// Preference middleware is code that helps to decentralize complicated preference features. -/datum/preference_middleware - /// The preferences datum - var/datum/preferences/preferences - - /// The key that will be used for get_constant_data(). - /// If null, will use the typepath minus /datum/preference_middleware. - var/key = null - - /// Map of ui_act actions -> proc paths to call. - /// Signature is `(list/params, mob/user) -> TRUE/FALSE. - /// Return output is the same as ui_act--TRUE if it should update, FALSE if it should not - var/list/action_delegations = list() - -/datum/preference_middleware/New(datum/preferences) - src.preferences = preferences - - if (isnull(key)) - // + 2 coming from the off-by-one of copytext, and then another from the slash - key = copytext("[type]", length("[parent_type]") + 2) - -/datum/preference_middleware/Destroy() - preferences = null - return ..() - -/// Append all of these into ui_data -/datum/preference_middleware/proc/get_ui_data(mob/user) - return list() - -/// Append all of these into ui_static_data -/datum/preference_middleware/proc/get_ui_static_data(mob/user) - return list() - -/// Append all of these into ui_assets -/datum/preference_middleware/proc/get_ui_assets() - return list() - -/// Append all of these into /datum/asset/json/preferences. -/datum/preference_middleware/proc/get_constant_data() - return null - -/// Merge this into the result of compile_character_preferences. -/datum/preference_middleware/proc/get_character_preferences(mob/user) - return null - -/// Called every set_preference, returns TRUE if this handled it. -/datum/preference_middleware/proc/pre_set_preference(mob/user, preference, value) - return FALSE - -/// Called when a character is changed. -/datum/preference_middleware/proc/on_new_character(mob/user) - return diff --git a/code/modules/client/preferences/migrations/13_preferences.dm b/code/modules/client/preferences/migrations/13_preferences.dm deleted file mode 100644 index e2a8bfaa84..0000000000 --- a/code/modules/client/preferences/migrations/13_preferences.dm +++ /dev/null @@ -1,9 +0,0 @@ -/// Transforms the bay style `"preferences": ["SOUND_MIDI", ...]` to `"SOUND_MIDI": 1` and `"preferences_disabled": [...]` to `0`. -/datum/preferences/proc/migration_13_preferences(datum/json_savefile/S) - var/list/preferences_enabled = S.get_entry("preferences") - for(var/key in preferences_enabled) - S.set_entry("[key]", TRUE) - - var/list/preferences_disabled = S.get_entry("preferences_disabled") - for(var/key in preferences_disabled) - S.set_entry("[key]", FALSE) diff --git a/code/modules/client/preferences/preferences_tg.dm b/code/modules/client/preferences/preferences_tg.dm deleted file mode 100644 index 944bffc039..0000000000 --- a/code/modules/client/preferences/preferences_tg.dm +++ /dev/null @@ -1,28 +0,0 @@ -// Contains all of the variables and such to make tg prefs work -/datum/preferences - /// The savefile relating to character preferences, PREFERENCE_CHARACTER - var/list/character_data - - /// A list of keys that have been updated since the last save. - var/list/recently_updated_keys = list() - - /// A cache of preference entries to values. - /// Used to avoid expensive READ_FILE every time a preference is retrieved. - var/value_cache = list() - - /// If set to TRUE, will update character_profiles on the next ui_data tick. - var/tainted_character_profiles = FALSE - - var/current_window = PREFERENCE_TAB_GAME_PREFERENCES - - /// A list of instantiated middleware - var/list/datum/preference_middleware/middleware = list() - -/// Applies all PREFERENCE_PLAYER preferences -/datum/preferences/proc/apply_all_client_preferences() - for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) - if(preference.savefile_identifier != PREFERENCE_PLAYER) - continue - - value_cache -= preference.type - preference.apply_to_client(client, read_preference(preference.type)) diff --git a/code/modules/client/preferences/types/admin.dm b/code/modules/client/preferences/types/admin.dm deleted file mode 100644 index f066bc041e..0000000000 --- a/code/modules/client/preferences/types/admin.dm +++ /dev/null @@ -1,73 +0,0 @@ -/datum/preference/toggle/show_attack_logs - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_ATTACKLOGS" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_attack_logs/is_accessible(datum/preferences/preferences) - . = ..() - if(!.) - return - - return check_rights(R_MOD|R_ADMIN, FALSE, preferences.client) - -/datum/preference/toggle/show_debug_logs - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_DEBUGLOGS" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_debug_logs/is_accessible(datum/preferences/preferences) - . = ..() - if(!.) - return - - return check_rights(R_DEBUG|R_ADMIN, FALSE, preferences.client) - -/datum/preference/toggle/show_chat_prayers - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_PRAYER" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_chat_prayers/is_accessible(datum/preferences/preferences) - . = ..() - if(!.) - return - - return check_rights(R_EVENT|R_ADMIN, FALSE, preferences.client) - -// General holder prefs -/datum/preference/toggle/holder - abstract_type = /datum/preference/toggle/holder - -/datum/preference/toggle/holder/is_accessible(datum/preferences/preferences) - . = ..(preferences) - if(!.) - return - - return preferences.client.holder - -/datum/preference/toggle/holder/play_adminhelp_ping - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_ADMINHELP" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/holder/hear_radio - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_RADIO" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/holder/show_rlooc - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_RLOOC" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/holder/show_staff_dsay - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_ADSAY" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/chat.dm b/code/modules/client/preferences/types/chat.dm deleted file mode 100644 index 4bf527a1cf..0000000000 --- a/code/modules/client/preferences/types/chat.dm +++ /dev/null @@ -1,69 +0,0 @@ -/datum/preference/toggle/chat_tags - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_SHOWICONS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_typing_indicator - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SHOW_TYPING" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_typing_indicator/apply_to_client(client/client, value) - if(!value) - client.stop_thinking() - -/datum/preference/toggle/show_typing_indicator_subtle - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SHOW_TYPING_SUBTLE" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_ooc - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_OOC" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_looc - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_LOOC" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_dsay - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_DEAD" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/check_mention - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_MENTION" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/vore_health_bars - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "VORE_HEALTH_BARS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_lore_news - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "NEWS_POPUP" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/player_tips - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RECEIVE_TIPS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/pain_frequency - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "PAIN_FREQUENCY" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/ghost.dm b/code/modules/client/preferences/types/ghost.dm deleted file mode 100644 index 8ae51631ed..0000000000 --- a/code/modules/client/preferences/types/ghost.dm +++ /dev/null @@ -1,29 +0,0 @@ -/datum/preference/toggle/whisubtle_vis - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "WHISUBTLE_VIS" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/ghost_see_whisubtle - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "GHOST_SEE_WHISUBTLE" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/ghost_ears - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_GHOSTEARS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/ghost_sight - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_GHOSTSIGHT" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/ghost_radio - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "CHAT_GHOSTRADIO" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/misc.dm b/code/modules/client/preferences/types/misc.dm deleted file mode 100644 index b1ec621671..0000000000 --- a/code/modules/client/preferences/types/misc.dm +++ /dev/null @@ -1,71 +0,0 @@ -/// Whether or not to toggle ambient occlusion, the shadows around people -/datum/preference/toggle/ambient_occlusion - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "AMBIENT_OCCLUSION_PREF" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/ambient_occlusion/apply_to_client(client/client, value) - var/datum/plane_holder/PH = client?.mob?.plane_holder - if(PH) - PH.set_ao(VIS_OBJS, value) - PH.set_ao(VIS_MOBS, value) - -/datum/preference/toggle/mob_tooltips - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "MOB_TOOLTIPS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/inv_tooltips - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "INV_TOOLTIPS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/attack_icons - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "ATTACK_ICONS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/precision_placement - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "PRECISE_PLACEMENT" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/hotkeys_default - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "HUD_HOTKEYS" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/show_progress_bar - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SHOW_PROGRESS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/safefiring - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SAFE_FIRING" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/status_indicators - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SHOW_STATUS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/status_indicators/apply_to_client(client/client, value) - var/datum/plane_holder/PH = client?.mob?.plane_holder - if(PH) - PH.set_vis(VIS_STATUS, value) - -/datum/preference/toggle/auto_afk - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "AUTO_AFK" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/runechat.dm b/code/modules/client/preferences/types/runechat.dm deleted file mode 100644 index 1c6ea10fb3..0000000000 --- a/code/modules/client/preferences/types/runechat.dm +++ /dev/null @@ -1,23 +0,0 @@ -/datum/preference/toggle/runechat_mob - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RUNECHAT_MOB" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/runechat_obj - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RUNECHAT_OBJ" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/runechat_border - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RUNECHAT_BORDER" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/runechat_long_messages - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RUNECHAT_LONG" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/sound.dm b/code/modules/client/preferences/types/sound.dm deleted file mode 100644 index 83c4109bd0..0000000000 --- a/code/modules/client/preferences/types/sound.dm +++ /dev/null @@ -1,149 +0,0 @@ -/datum/preference/toggle/play_admin_midis - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_MIDI" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/play_lobby_music - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_LOBBY" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/play_lobby_music/apply_to_client(client/client, value) - if(value) - client?.playtitlemusic() - else - client?.media?.stop_music() - -/datum/preference/toggle/play_ambience - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_AMBIENCE" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/play_ambience/apply_to_client(client/client, value) - if(!value) - client << sound(null, repeat = 0, wait = 0, volume = 0, channel = CHANNEL_AMBIENCE_FORCED) - client << sound(null, repeat = 0, wait = 0, volume = 0, channel = CHANNEL_AMBIENCE) - -/datum/preference/toggle/play_jukebox - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_JUKEBOX" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/play_jukebox/apply_to_client(client/client, value) - if(value) - client?.mob?.update_music() - else - client?.mob?.stop_all_music() - -/datum/preference/toggle/instrument_toggle - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_INSTRUMENT" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/emote_noises - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "EMOTE_NOISES" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/radio_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "RADIO_SOUNDS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/say_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SAY_SOUNDS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/emote_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "EMOTE_SOUNDS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/whisper_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "WHISPER_SOUNDS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/subtle_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SUBTLE_SOUNDS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/air_pump_noise - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_AIRPUMP" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/old_door_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_OLDDOORS" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/department_door_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_DEPARTMENTDOORS" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/pickup_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_PICKED" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/drop_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_DROPPED" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/weather_sounds - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_WEATHER" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/supermatter_hum - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_SUPERMATTER" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/play_mentorhelp_ping - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "SOUND_MENTORHELP" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -// Vorey sounds -/datum/preference/toggle/belch_noises // Belching noises - pref toggle for 'em - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "BELCH_NOISES" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/eating_noises - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "EATING_NOISES" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/digestion_noises - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "DIGEST_NOISES" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/ui.dm b/code/modules/client/preferences/types/ui.dm deleted file mode 100644 index b2372b8937..0000000000 --- a/code/modules/client/preferences/types/ui.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/preference/toggle/browser_style - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "BROWSER_STYLED" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/vchat_enable - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "VCHAT_ENABLE" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/vchat_enable/apply_to_client(client/client, value) - if(value) - client.tgui_panel.oldchat = FALSE - else - client.tgui_panel.oldchat = TRUE - - client.nuke_chat() - -/datum/preference/toggle/tgui_say - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "TGUI_SAY" - default_value = TRUE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/tgui_say_light - category = PREFERENCE_CATEGORY_GAME_PREFERENCES - savefile_key = "TGUI_SAY_LIGHT_MODE" - default_value = FALSE - savefile_identifier = PREFERENCE_PLAYER - -/datum/preference/toggle/tgui_say_light/apply_to_client(client/client, value) - client.tgui_say?.load() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 0f3aecbf84..e98e7de352 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,244 +1,121 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 13 +#define SAVEFILE_VERSION_MAX 11 -/* -SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn - This proc checks if the current directory of the savefile S needs updating - It is to be used by the load_character and load_preferences procs. - (S.cd == "/" is preferences, S.cd == "/character[integer]" is a character slot, etc) +//handles converting savefiles to new formats +//MAKE SURE YOU KEEP THIS UP TO DATE! +//If the sanity checks are capable of handling any issues. Only increase SAVEFILE_VERSION_MAX, +//this will mean that savefile_version will still be over SAVEFILE_VERSION_MIN, meaning +//this savefile update doesn't run everytime we load from the savefile. +//This is mainly for format changes, such as the bitflags in toggles changing order or something. +//if a file can't be updated, return 0 to delete it and start again +//if a file was updated, return 1 +/datum/preferences/proc/savefile_update() + if(savefile_version < 8) //lazily delete everything + additional files so they can be saved in the new format + for(var/ckey in preferences_datums) + var/datum/preferences/D = preferences_datums[ckey] + if(D == src) + var/delpath = "data/player_saves/[copytext(ckey,1,2)]/[ckey]/" + if(delpath && fexists(delpath)) + fdel(delpath) + break + return 0 - if the current directory's version is below SAVEFILE_VERSION_MIN it will simply wipe everything in that directory - (if we're at root "/" then it'll just wipe the entire savefile, for instance.) + if(savefile_version == SAVEFILE_VERSION_MAX) //update successful. + save_preferences() + save_character() + return 1 + return 0 - if its version is below SAVEFILE_VERSION_MAX but above the minimum, it will load data but later call the - respective update_preferences() or update_character() proc. - Those procs allow coders to specify format changes so users do not lose their setups and have to redo them again. - - Failing all that, the standard sanity checks are performed. They simply check the data is suitable, reverting to - initial() values if necessary. -*/ -/datum/preferences/proc/save_data_needs_update(list/save_data) - if(!save_data) // empty list, either savefile isnt loaded or its a new char - return -1 - if(!save_data["version"]) // special case: if there is no version key, such as in character slots before v12 - return -3 - if(save_data["version"] < SAVEFILE_VERSION_MIN) - return -2 - if(save_data["version"] < SAVEFILE_VERSION_MAX) - return save_data["version"] - return -1 - -//should these procs get fairly long -//just increase SAVEFILE_VERSION_MIN so it's not as far behind -//SAVEFILE_VERSION_MAX and then delete any obsolete if clauses -//from these procs. -//This only really meant to avoid annoying frequent players -//if your savefile is 3 months out of date, then 'tough shit'. - -/datum/preferences/proc/update_preferences(current_version, datum/json_savefile/S) - // Migration from BYOND savefiles to JSON: Important milemark. - // if(current_version < 11) - - // Migration for client preferences - if(current_version < 13) - migration_13_preferences(S) - - -/datum/preferences/proc/update_character(current_version, list/save_data) - // Migration from BYOND savefiles to JSON: Important milemark. - if(current_version == -3) - // Add a version field inside each character - save_data["version"] = SAVEFILE_VERSION_MAX - -/// Migrates from byond savefile to json savefile -/datum/preferences/proc/try_savefile_type_migration() - load_path(client.ckey, "preferences.sav") // old save file - var/old_path = path - load_path(client.ckey) - if(!fexists(old_path)) - return - var/datum/json_savefile/json_savefile = new(path) - json_savefile.import_byond_savefile(new /savefile(old_path)) - json_savefile.save() - return TRUE - -/datum/preferences/proc/load_path(ckey, filename = "preferences.json") - if(!ckey || !load_and_save) - return +/datum/preferences/proc/load_path(ckey,filename="preferences.sav") + if(!ckey) return path = "data/player_saves/[copytext(ckey,1,2)]/[ckey]/[filename]" - -/datum/preferences/proc/load_savefile() - if(load_and_save && !path) - CRASH("Attempted to load savefile without first loading a path!") - savefile = new /datum/json_savefile(load_and_save ? path : null) + savefile_version = SAVEFILE_VERSION_MAX /datum/preferences/proc/load_preferences() - if(!savefile) - stack_trace("Attempted to load the preferences of [client] without a savefile; did you forget to call load_savefile?") - load_savefile() - if(!savefile) - stack_trace("Failed to load the savefile for [client] after manually calling load_savefile; something is very wrong.") - return FALSE + if(!path) return 0 + if(!fexists(path)) return 0 + var/savefile/S = new /savefile(path) + if(!S) return 0 + S.cd = "/" - var/needs_update = save_data_needs_update(savefile.get_entry()) - if(load_and_save && (needs_update <= -2)) //fatal, can't load any data - var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup - if(fexists(bacpath)) - fdel(bacpath) //only keep 1 version of backup - fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. - return FALSE + S["version"] >> savefile_version + //Conversion + if(!savefile_version || !isnum(savefile_version) || savefile_version < SAVEFILE_VERSION_MIN || savefile_version > SAVEFILE_VERSION_MAX) + if(!savefile_update()) //handles updates + savefile_version = SAVEFILE_VERSION_MAX + save_preferences() + save_character() + return 0 - apply_all_client_preferences() - - //try to fix any outdated data if necessary - if(needs_update >= 0) - var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup - if(fexists(bacpath)) - fdel(bacpath) //only keep 1 version of backup - fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. - update_preferences(needs_update, savefile) //needs_update = savefile_version if we need an update (positive integer) - - // Load general prefs after applying migrations - player_setup.load_preferences(savefile) - - //save the updated version - var/old_default_slot = default_slot - // var/old_max_save_slots = max_save_slots - - for(var/slot in savefile.get_entry()) //but first, update all current character slots. - if (copytext(slot, 1, 10) != "character") - continue - var/slotnum = text2num(copytext(slot, 10)) - if (!slotnum) - continue - // max_save_slots = max(max_save_slots, slotnum) //so we can still update byond member slots after they lose memeber status - default_slot = slotnum - if(load_character()) - save_character() - default_slot = old_default_slot - // max_save_slots = old_max_save_slots - save_preferences() - else - // Load general prefs - player_setup.load_preferences(savefile) - - return TRUE + player_setup.load_preferences(S) + return 1 /datum/preferences/proc/save_preferences() - if(!savefile) - CRASH("Attempted to save the preferences of [client] without a savefile. This should have been handled by load_preferences()") - savefile.set_entry("version", SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date + if(!path) return 0 + var/savefile/S = new /savefile(path) + if(!S) return 0 + S.cd = "/" - player_setup.save_preferences(savefile) - - for(var/preference_type in GLOB.preference_entries) - var/datum/preference/preference = GLOB.preference_entries[preference_type] - if(preference.savefile_identifier != PREFERENCE_PLAYER) - continue - - if(!(preference.type in recently_updated_keys)) - continue - - recently_updated_keys -= preference.type - - if(preference_type in value_cache) - write_preference(preference, preference.pref_serialize(value_cache[preference_type])) - - savefile.save() - - return TRUE - -/datum/preferences/proc/reset_slot() - var/bacpath = "[path].resetbac" - if(fexists(bacpath)) - fdel(bacpath) //only keep 1 version of backup - fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. - - savefile.remove_entry("character[default_slot]") - default_slot = 1 - - clear_character_previews() - - // Load slot 1 character - load_character() - // And save them immediately, in case we load an empty slot - save_character() - save_preferences() - return TRUE + S["version"] << savefile_version + player_setup.save_preferences(S) + return 1 /datum/preferences/proc/load_character(slot) - SHOULD_NOT_SLEEP(TRUE) - if(!slot) - slot = default_slot - - slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) - if(slot != default_slot) - default_slot = slot - savefile.set_entry("default_slot", slot) - - var/list/save_data = savefile.get_entry("character[slot]") // This is allowed to be null and will give a -1 in needs_update - - var/needs_update = save_data_needs_update(save_data) - if(needs_update == -2) //fatal, can't load any data - return FALSE - - // Read everything into cache (pre-migrations, as migrations should have access to deserialized data) - // Uses priority order as some values may rely on others for creating default values - for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) - if(preference.savefile_identifier != PREFERENCE_CHARACTER) - continue - - value_cache -= preference.type - read_preference(preference.type) - - // It has to be a list or load_character freaks out - if(!save_data) - player_setup.load_character(list()) + if(!path) return 0 + if(!fexists(path)) return 0 + var/savefile/S = new /savefile(path) + if(!S) return 0 + S.cd = "/" + if(!slot) slot = default_slot + if(slot != SAVE_RESET) // SAVE_RESET will reset the slot as though it does not exist, but keep the current slot for saving purposes. + slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) + if(slot != default_slot) + default_slot = slot + S["default_slot"] << slot else - player_setup.load_character(save_data) + S["default_slot"] << default_slot - //try to fix any outdated data if necessary - //preference updating will handle saving the updated data for us. - if(needs_update >= 0 || needs_update == -3) - update_character(needs_update, save_data) //needs_update == savefile_version if we need an update (positive integer + if(slot != SAVE_RESET) + S.cd = "/character[slot]" + player_setup.load_character(S) + else + player_setup.load_character(S) + S.cd = "/character[default_slot]" + player_setup.save_character(S) - clear_character_previews() - return TRUE + clear_character_previews() // VOREStation Edit + return 1 /datum/preferences/proc/save_character() - SHOULD_NOT_SLEEP(TRUE) - if(!savefile) - return FALSE + if(!path) return 0 + var/savefile/S = new /savefile(path) + if(!S) return 0 + S.cd = "/character[default_slot]" - var/tree_key = "character[default_slot]" - if(!(tree_key in savefile.get_entry())) - savefile.set_entry(tree_key, list()) - var/save_data = savefile.get_entry(tree_key) - - save_data["version"] = SAVEFILE_VERSION_MAX //load_character will sanitize any bad data, so assume up-to-date. - player_setup.save_character(save_data) - - return TRUE + player_setup.save_character(S) + return 1 /datum/preferences/proc/overwrite_character(slot) - if(!savefile) - return FALSE - if(!slot) - slot = default_slot + if(!path) return 0 + if(!fexists(path)) return 0 + var/savefile/S = new /savefile(path) + if(!S) return 0 + if(!slot) slot = default_slot + if(slot != SAVE_RESET) + slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) + if(slot != default_slot) + default_slot = slot + nif_path = nif_durability = nif_savedata = null //VOREStation Add - Don't copy NIF + S["default_slot"] << slot - // This basically just changes default_slot without loading the correct data, so the next save call will overwrite - // the slot - slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) - if(slot != default_slot) - default_slot = slot - nif_path = nif_durability = nif_savedata = null //VOREStation Add - Don't copy NIF - savefile.set_entry("default_slot", slot) + else + S["default_slot"] << default_slot - return TRUE + return 1 /datum/preferences/proc/sanitize_preferences() player_setup.sanitize_setup() - return TRUE + return 1 #undef SAVEFILE_VERSION_MAX #undef SAVEFILE_VERSION_MIN diff --git a/code/modules/client/preferences_tgui.dm b/code/modules/client/preferences_tgui.dm deleted file mode 100644 index a7f1567497..0000000000 --- a/code/modules/client/preferences_tgui.dm +++ /dev/null @@ -1,138 +0,0 @@ -/datum/preferences/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, custom_state) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "PreferencesMenu", "Preferences") - ui.set_autoupdate(FALSE) - ui.open() - -/datum/preferences/tgui_state(mob/user) - return GLOB.tgui_always_state - -/datum/preferences/tgui_status(mob/user, datum/tgui_state/state) - return user.client == client ? STATUS_INTERACTIVE : STATUS_CLOSE - -/datum/preferences/ui_assets(mob/user) - var/list/assets = list( - // get_asset_datum(/datum/asset/spritesheet/preferences), - get_asset_datum(/datum/asset/json/preferences), - ) - - for (var/datum/preference_middleware/preference_middleware as anything in middleware) - assets += preference_middleware.get_ui_assets() - - return assets - -/datum/preferences/tgui_data(mob/user) - var/list/data = list() - - if(tainted_character_profiles) - data["character_profiles"] = create_character_profiles() - tainted_character_profiles = FALSE - - data["character_preferences"] = compile_character_preferences(user) - - data["active_slot"] = default_slot - - for(var/datum/preference_middleware/preference_middleware as anything in middleware) - data += preference_middleware.get_ui_data(user) - - return data - -/datum/preferences/tgui_static_data(mob/user) - var/list/data = list() - - data["character_profiles"] = create_character_profiles() - - // data["character_preview_view"] = character_preview_view.assigned_map - // data["overflow_role"] = SSjob.GetJobType(SSjob.overflow_role).title - data["window"] = current_window - - for(var/datum/preference_middleware/preference_middleware as anything in middleware) - data += preference_middleware.get_ui_static_data(user) - - return data - -/datum/preferences/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state) - . = ..() - if(.) - return - - switch(action) - if("set_preference") - var/requested_preference_key = params["preference"] - var/value = params["value"] - - for(var/datum/preference_middleware/preference_middleware as anything in middleware) - if(preference_middleware.pre_set_preference(usr, requested_preference_key, value)) - return TRUE - - var/datum/preference/requested_preference = GLOB.preference_entries_by_key[requested_preference_key] - if(isnull(requested_preference)) - return FALSE - - // SAFETY: `update_preference` performs validation checks - if(!update_preference(requested_preference, value)) - return FALSE - - // if(istype(requested_preference, /datum/preference/name)) // TODO: do this - // tainted_character_profiles = TRUE - - return TRUE - - for(var/datum/preference_middleware/preference_middleware as anything in middleware) - var/delegation = preference_middleware.action_delegations[action] - if(!isnull(delegation)) - return call(preference_middleware, delegation)(params, usr) - - return FALSE - -/datum/preferences/tgui_close(mob/user) - save_character() - save_preferences() - -/datum/preferences/proc/create_character_profiles() - var/list/profiles = list() - - for(var/index in 1 to config.character_slots) - // TODO: It won't be updated in the savefile yet, so just read the name directly - // if(index == default_slot) - // profiles += read_preference(/datum/preference/name/real_name) - // continue - - var/tree_key = "character[index]" - var/save_data = savefile.get_entry(tree_key) - var/name = save_data?["real_name"] - - if(isnull(name)) - profiles += null - continue - - profiles += name - - return profiles - -/datum/preferences/proc/compile_character_preferences(mob/user) - var/list/preferences = list() - - for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) - if(!preference.is_accessible(src)) - continue - - var/value = read_preference(preference.type) - var/data = preference.compile_ui_data(user, value) - - LAZYINITLIST(preferences[preference.category]) - preferences[preference.category][preference.savefile_key] = data - - for(var/datum/preference_middleware/preference_middleware as anything in middleware) - var/list/append_character_preferences = preference_middleware.get_character_preferences(user) - if(isnull(append_character_preferences)) - continue - - for(var/category in append_character_preferences) - if(category in preferences) - preferences[category] += append_character_preferences[category] - else - preferences[category] = append_character_preferences[category] - - return preferences diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index 6b34f88a59..97e33d66c9 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -1,4 +1,229 @@ //Toggles for preferences, normal clients +/client/verb/toggle_ghost_ears() + set name = "Toggle Ghost Ears" + set category = "Preferences" + set desc = "Toggles between seeing all mob speech and only nearby mob speech as an observer." + + var/pref_path = /datum/client_preference/ghost_ears + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all mob speech as a ghost.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TGEars") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_vision() + set name = "Toggle Ghost Sight" + set category = "Preferences" + set desc = "Toggles between seeing all mob emotes and only nearby mob emotes as an observer." + + var/pref_path = /datum/client_preference/ghost_sight + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] see all emotes as a ghost.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TGVision") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_radio() + set name = "Toggle Ghost Radio" + set category = "Preferences" + set desc = "Toggles between seeing all radio chat and only nearby radio chatter as an observer." + + var/pref_path = /datum/client_preference/ghost_radio + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all radios as a ghost.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TGRadio") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_deadchat() + set name = "Toggle Deadchat" + set category = "Preferences" + set desc = "Toggles visibility of dead chat." + + var/pref_path = /datum/client_preference/show_dsay + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear dead chat as a ghost.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TDeadChat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ooc() + set name = "Toggle OOC" + set category = "Preferences" + set desc = "Toggles visibility of global out of character chat." + + var/pref_path = /datum/client_preference/show_ooc + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(/datum/client_preference/show_ooc)) ? "now" : "no longer"] hear global out of character chat.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_looc() + set name = "Toggle LOOC" + set category = "Preferences" + set desc = "Toggles visibility of local out of character chat." + + var/pref_path = /datum/client_preference/show_looc + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear local out of character chat.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_precision_placement() + set name = "Toggle Precision Placement" + set category = "Preferences" + set desc = "Toggles whether objects placed on table will be on cursor position or centered." + + var/pref_path = /datum/client_preference/precision_placement + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] place items where your cursor is on the table.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TPIP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_typing() + set name = "Toggle Typing Indicator" + set category = "Preferences" + set desc = "Toggles you having the speech bubble typing indicator." + + var/pref_path = /datum/client_preference/show_typing_indicator + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] have the speech indicator.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TTIND") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ahelp_sound() + set name = "Toggle Admin Help Sound" + set category = "Preferences" + set desc = "Toggles the ability to hear a noise broadcasted when you get an admin message." + + var/pref_path = /datum/client_preference/holder/play_adminhelp_ping + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive noise from admin messages.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAHelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_lobby_music() + set name = "Toggle Lobby Music" + set category = "Preferences" + set desc = "Toggles the ability to hear the music in the lobby." + + var/pref_path = /datum/client_preference/play_lobby_music + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music in the lobby.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TLobMusic") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_admin_midis() + set name = "Toggle Admin Music" + set category = "Preferences" + set desc = "Toggles the ability to hear music played by admins." + + var/pref_path = /datum/client_preference/play_admin_midis + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music from admins.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAMidis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ambience() + set name = "Toggle Ambience" + set category = "Preferences" + set desc = "Toggles the ability to hear local ambience." + + var/pref_path = /datum/client_preference/play_ambiance + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear ambient noise.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAmbience") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_weather_sounds() + set name = "Toggle Weather Sounds" + set category = "Preferences" + set desc = "Toggles the ability to hear weather sounds while on a planet." + + var/pref_path = /datum/client_preference/weather_sounds + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear weather sounds.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TWeatherSounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_supermatter_hum() + set name = "Toggle SM Hum" // Avoiding using the full 'Supermatter' name to not conflict with the Setup-Supermatter adminverb. + set category = "Preferences" + set desc = "Toggles the ability to hear supermatter hums." + + var/pref_path = /datum/client_preference/supermatter_hum + + toggle_preference(pref_path) + + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear a hum from the supermatter.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TSupermatterHum") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_jukebox() + set name = "Toggle Jukebox" + set category = "Preferences" + set desc = "Toggles the ability to hear jukebox music." + + var/pref_path = /datum/client_preference/play_jukebox + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear jukebox music.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TJukebox") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/verb/toggle_be_special(role in be_special_flags) set name = "Toggle Special Role Candidacy" set category = "Preferences" @@ -14,6 +239,146 @@ feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/verb/toggle_air_pump_hum() + set name = "Toggle Air Vent Noise" + set category = "Preferences" + set desc = "Toggles the ability to hear air vent humming." + + var/pref_path = /datum/client_preference/air_pump_noise + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear air vents hum, start, and stop.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAirPumpNoise") + +/client/verb/toggle_old_door_sounds() + set name = "Toggle Old Door Sounds" + set category = "Preferences" + set desc = "Toggles door sounds between old and new." + + var/pref_path = /datum/client_preference/old_door_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear the legacy door sounds.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TOldDoorSounds") + +/client/verb/toggle_department_door_sounds() + set name = "Toggle Department Door Sounds" + set category = "Preferences" + set desc = "Toggles hearing of department-specific door sounds." + + var/pref_path = /datum/client_preference/department_door_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear per-department door sounds.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TDepartmentDoorSounds") + +/client/verb/toggle_pickup_sounds() + set name = "Toggle Picked Up Item Sounds" + set category = "Preferences" + set desc = "Toggles the ability to hear sounds when items are picked up." + + var/pref_path = /datum/client_preference/pickup_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are picked up.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb", "TPickupSounds") + +/client/verb/toggle_drop_sounds() + set name = "Toggle Dropped Item Sounds" + set category = "Preferences" + set desc = "Toggles the ability to hear sounds when items are dropped or thrown." + + var/pref_path = /datum/client_preference/drop_sounds + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are dropped or thrown.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb", "TDropSounds") + +/client/verb/toggle_safe_firing() + set name = "Toggle Gun Firing Intent Requirement" + set category = "Preferences" + set desc = "Toggles between safe and dangerous firing. Safe requires a non-help intent to fire, dangerous can be fired on help intent." + + var/pref_path = /datum/client_preference/safefiring + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src,"You will now use [(is_preference_enabled(/datum/client_preference/safefiring)) ? "safe" : "dangerous"] firearms firing.") + + feedback_add_details("admin_verb","TFiringMode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_mob_tooltips() + set name = "Toggle Mob Tooltips" + set category = "Preferences" + set desc = "Toggles displaying name/species over mobs when they are moused over." + + var/pref_path = /datum/client_preference/mob_tooltips + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src,"You will now [(is_preference_enabled(/datum/client_preference/mob_tooltips)) ? "see" : "not see"] mob tooltips.") + + feedback_add_details("admin_verb","TMobTooltips") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_inv_tooltips() + set name = "Toggle Item Tooltips" + set category = "Preferences" + set desc = "Toggles displaying name/desc over items when they are moused over (only applies in inventory)." + + var/pref_path = /datum/client_preference/inv_tooltips + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src,"You will now [(is_preference_enabled(/datum/client_preference/inv_tooltips)) ? "see" : "not see"] inventory tooltips.") + + feedback_add_details("admin_verb","TInvTooltips") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_hear_instruments() + set name = "Toggle Hear/Ignore Instruments" + set category = "Preferences" + set desc = "Toggles the ability to hear instruments playing." + + var/pref_path = /datum/client_preference/instrument_toggle + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/instrument_toggle)) ? "hear" : "not hear"] instruments being played.") + + feedback_add_details("admin_verb","THInstm") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_vchat() + set name = "Toggle TGChat" + set category = "Preferences" + set desc = "Toggles TGChat. Reloading TGChat and/or reconnecting required to affect changes." + + var/pref_path = /datum/client_preference/vchat_enable + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You have toggled TGChat [is_preference_enabled(pref_path) ? "on" : "off"]. \ + You will have to reload TGChat and/or reconnect to the server for these changes to take place. \ + TGChat message persistence is not guaranteed if you change this again before the start of the next round.") + /client/verb/toggle_chat_timestamps() set name = "Toggle Chat Timestamps" set category = "Preferences" @@ -24,6 +389,98 @@ to_chat(src, span_notice("You have toggled chat timestamps: [prefs.chat_timestamp ? "ON" : "OFF"].")) +/client/verb/toggle_status_indicators() + set name = "Toggle Status Indicators" + set category = "Preferences" + set desc = "Toggles seeing status indicators over peoples' heads." + + var/pref_path = /datum/client_preference/status_indicators + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/status_indicators)) ? "see" : "not see"] status indicators.") + + feedback_add_details("admin_verb","TStatusIndicators") + + +/client/verb/toggle_radio_sounds() + set name = "Toggle Radio Sounds" + set category = "Preferences" + set desc = "Toggle hearing a sound when somebody speaks over your headset." + + var/pref_path = /datum/client_preference/radio_sounds + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/radio_sounds)) ? "hear" : "not hear"] radio sounds.") + + feedback_add_details("admin_verb","TRadioSounds") + +/client/verb/toggle_say_sounds() + set name = "Sound-Toggle-Say" + set category = "Preferences" + set desc = "Toggle hearing a sound when somebody speaks using say." + + var/pref_path = /datum/client_preference/say_sounds + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/say_sounds)) ? "hear" : "not hear"] say sounds.") + + feedback_add_details("admin_verb","TSaySounds") + +/client/verb/toggle_emote_sounds() + set name = "Sound-Toggle-Me" + set category = "Preferences" + set desc = "Toggle hearing a sound when somebody speaks using me ." + + var/pref_path = /datum/client_preference/emote_sounds + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/emote_sounds)) ? "hear" : "not hear"] me sounds.") + + feedback_add_details("admin_verb","TMeSounds") + +/client/verb/toggle_whisper_sounds() + set name = "Sound-Toggle-Whisper" + set category = "Preferences" + set desc = "Toggle hearing a sound when somebody speaks using whisper." + + var/pref_path = /datum/client_preference/whisper_sounds + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/whisper_sounds)) ? "hear" : "not hear"] whisper sounds.") + + feedback_add_details("admin_verb","TWhisperSounds") + +/client/verb/toggle_subtle_sounds() + set name = "Sound-Toggle-Subtle" + set category = "Preferences" + set desc = "Toggle hearing a sound when somebody uses subtle." + + var/pref_path = /datum/client_preference/subtle_sounds + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/subtle_sounds)) ? "hear" : "not hear"] subtle sounds.") + + feedback_add_details("admin_verb","TSubtleSounds") + +/client/verb/toggle_vore_health_bars() + set name = "Toggle Vore Health Bars" + set category = "Preferences" + set desc = "Toggle the display of vore related health bars" + + var/pref_path = /datum/client_preference/vore_health_bars + toggle_preference(pref_path) + SScharacter_setup.queue_preferences_save(prefs) + + to_chat(src, "Vore related health bars - [(is_preference_enabled(/datum/client_preference/vore_health_bars)) ? "Enabled" : "Disabled"]") + + feedback_add_details("admin_verb","TVoreHealthBars") + // Not attached to a pref datum because those are strict binary toggles /client/verb/toggle_examine_mode() set name = "Toggle Examine Mode" @@ -58,3 +515,65 @@ to_chat(src, "Multilingual parsing will enforce the a language delimiter after the delimiter-key combination (,0,galcom -2 still galcom). The extra delimiter will be consumed by the pattern-matching.") if(MULTILINGUAL_OFF) to_chat(src, "Multilingual parsing is now disabled. Entire messages will be in the language specified at the start of the message.") + + +//Toggles for Staff +//Developers + +/client/proc/toggle_debug_logs() + set name = "Toggle Debug Logs" + set category = "Preferences" + set desc = "Toggles seeing debug logs." + + var/pref_path = /datum/client_preference/debug/show_debug_logs + + if(check_rights(R_ADMIN|R_DEBUG)) + toggle_preference(pref_path) + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive debug logs.") + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TADebugLogs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//Mods +/client/proc/toggle_attack_logs() + set name = "Toggle Attack Logs" + set category = "Preferences" + set desc = "Toggles seeing attack logs." + + var/pref_path = /datum/client_preference/mod/show_attack_logs + + if(check_rights(R_ADMIN|R_MOD)) + toggle_preference(pref_path) + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive attack logs.") + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAAttackLogs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +//General +/client/proc/toggle_admin_global_looc() + set name = "Toggle Admin Global LOOC Visibility" + set category = "Preferences" + set desc = "Toggles seeing LOOC messages outside your actual LOOC range." + + var/pref_path = /datum/client_preference/holder/show_rlooc + + if(holder) + toggle_preference(pref_path) + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear global LOOC.") + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TAGlobalLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/toggle_admin_deadchat() + set name = "Toggle Admin Living Deadchat" + set category = "Preferences" + set desc = "Toggles seeing deadchat while not observing." + + var/pref_path = /datum/client_preference/holder/show_staff_dsay + + if(holder) + toggle_preference(pref_path) + to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear deadchat while not observing.") + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TADeadchat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm index 9ee5ed0b24..f1cfc4413a 100644 --- a/code/modules/client/preferences_vr.dm +++ b/code/modules/client/preferences_vr.dm @@ -14,6 +14,97 @@ var/job_talon_low = 0 //Why weren't these in game toggles already? +/client/verb/toggle_eating_noises() + set name = "Toggle Eating Noises" + set category = "Preferences" + set desc = "Toggles hearing Vore Eating noises." + + var/pref_path = /datum/client_preference/eating_noises + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear eating related vore noises.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TEatNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + +/client/verb/toggle_digestion_noises() + set name = "Toggle Digestion Noises" + set category = "Preferences" + set desc = "Toggles hearing Vore Digestion noises." + + var/pref_path = /datum/client_preference/digestion_noises + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear digestion related vore noises.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TDigestNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_belch_noises() + set name = "Toggle Audible Belching" + set category = "Preferences" + set desc = "Toggles hearing audible belches." + + var/pref_path = /datum/client_preference/belch_noises + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear belching.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TBelchNoise") + +/client/verb/toggle_emote_noises() + set name = "Toggle Emote Noises" + set category = "Preferences" + set desc = "Toggles hearing emote noises." + + var/pref_path = /datum/client_preference/emote_noises + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear emote-related noises.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TEmoteNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_quiets() + set name = "Toggle Ghost Privacy" + set category = "Preferences" + set desc = "Toggles ghosts being able to see your subtles/whispers." + + var/pref_path = /datum/client_preference/whisubtle_vis + + toggle_preference(pref_path) + + to_chat(src, "Ghosts will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear subtles/whispers made by you.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TWhisubtleVis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_ghost_privacyvision() + set name = "Toggle Ghost Private Eyes/ears" + set category = "Preferences" + set desc = "Toggles your ability to see subtles/whispers. Overrides admin status. Respects Ghost Privacy" + + var/pref_path = /datum/client_preference/ghost_see_whisubtle + + toggle_preference(pref_path) + + to_chat(src, "As a ghost, you will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear subtles/whispers made by players.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb","TGhostSeeWhisSubtle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/verb/toggle_capture_crystal() set name = "Toggle Catchable" set category = "Preferences" @@ -32,3 +123,55 @@ SScharacter_setup.queue_preferences_save(prefs) feedback_add_details("admin_verb","TCaptureCrystal") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/verb/toggle_mentorhelp_ping() + set name = "Toggle Mentorhelp Ping" + set category = "Preferences" + set desc = "Toggles the mentorhelp ping" + + var/pref_path = /datum/client_preference/play_mentorhelp_ping + + toggle_preference(pref_path) + + to_chat(src, "Mentorhelp pings are now [ is_preference_enabled(pref_path) ? "enabled" : "disabled"]") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb", "TSoundMentorhelps") + +/client/verb/toggle_player_tips() + set name = "Toggle Receiving Player Tips" + set category = "Preferences" + set desc = "When toggled on, you receive tips periodically on roleplay and gameplay." + + var/pref_path = /datum/client_preference/player_tips + + toggle_preference(pref_path) + + to_chat(src, "You are [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] periodically receiving advice on gameplay and roleplay.") + + SScharacter_setup.queue_preferences_save(prefs) + + feedback_add_details("admin_verb", "TReceivePlayerTips") + +/client/verb/toggle_pain_frequency() + set name = "Toggle Pain Frequency" + set category = "Preferences" + set desc = "When toggled on, increases the cooldown of pain messages sent to chat for minor injuries" + + var/pref_path = /datum/client_preference/pain_frequency + + toggle_preference(pref_path) + + to_chat(src, "The cooldown between pain messages for minor (under 20/5 injury. Multi-limb injuries are still faster) is now [ (is_preference_enabled(pref_path)) ? "extended" : "default"].") + +/client/verb/toggle_automatic_afk() + set name = "Toggle Automatic AFK" + set category = "Preferences" + set desc = "When enabled, causes you to be automatically marked as AFK if you are idle for too long." + + var/pref_path = /datum/client_preference/auto_afk + + toggle_preference(pref_path) + + to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "not"] be automatically marked as AFK if you are idle for ten minutes or more.") diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 947c486922..a020840f21 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -15,7 +15,7 @@ msg = sanitize(msg) if(!msg) return - if(!prefs?.read_preference(/datum/preference/toggle/show_ooc)) + if(!is_preference_enabled(/datum/client_preference/show_ooc)) to_chat(src, "You have OOC muted.") return @@ -66,7 +66,7 @@ msg = GLOB.is_valid_url.Replace(msg,"$1") for(var/client/target in GLOB.clients) - if(target.prefs?.read_preference(/datum/preference/toggle/show_ooc)) + if(target.is_preference_enabled(/datum/client_preference/show_ooc)) if(target.is_key_ignored(key)) // If we're ignored by this person, then do nothing. continue var/display_name = src.key @@ -101,7 +101,7 @@ if(!msg) return - if(!prefs?.read_preference(/datum/preference/toggle/show_looc)) + if(!is_preference_enabled(/datum/client_preference/show_looc)) to_chat(src, "You have LOOC muted.") return @@ -159,7 +159,7 @@ // Everyone in normal viewing range of the LOOC for(var/mob/viewer in m_viewers) - if(viewer.client && viewer.client.prefs?.read_preference(/datum/preference/toggle/show_looc)) + if(viewer.client && viewer.client.is_preference_enabled(/datum/client_preference/show_looc)) receivers |= viewer.client else if(istype(viewer,/mob/observer/eye)) // For AI eyes and the like var/mob/observer/eye/E = viewer @@ -168,7 +168,7 @@ // Admins with RLOOC displayed who weren't already in for(var/client/admin in GLOB.admins) - if(!(admin in receivers) && admin.prefs?.read_preference(/datum/preference/toggle/holder/show_rlooc)) + if(!(admin in receivers) && admin.is_preference_enabled(/datum/client_preference/holder/show_rlooc)) if(check_rights(R_SERVER, FALSE, admin)) //Stop rLOOC showing for retired staff r_receivers |= admin diff --git a/code/modules/client/verbs/typing.dm b/code/modules/client/verbs/typing.dm index 50704f6c93..4845a40e32 100644 --- a/code/modules/client/verbs/typing.dm +++ b/code/modules/client/verbs/typing.dm @@ -7,7 +7,7 @@ src << output('html/typing_indicator.html', "commandbar_spy") /client/proc/handle_commandbar_typing(href_list) - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator)) return if(length(href_list["verb"]) < 1 || !(lowertext(href_list["verb"]) in IC_VERBS) || text2num(href_list["argument_length"]) < 1) @@ -31,10 +31,10 @@ /** Sets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait */ /client/proc/start_thinking(channel) - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) return FALSE ADD_TRAIT(mob, TRAIT_THINKING_IN_CHARACTER, CURRENTLY_TYPING_TRAIT) mob.create_thinking_indicator() @@ -50,10 +50,10 @@ /client/proc/start_typing(channel) var/mob/client_mob = mob client_mob.remove_thinking_indicator() - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) return FALSE client_mob.create_typing_indicator() addtimer(CALLBACK(src, PROC_REF(stop_typing), channel), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_STOPPABLE) @@ -67,10 +67,10 @@ return FALSE var/mob/client_mob = mob client_mob.remove_typing_indicator() - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) + if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) return FALSE client_mob.create_thinking_indicator() diff --git a/code/modules/emotes/definitions/audible_belch.dm b/code/modules/emotes/definitions/audible_belch.dm index 25db0333cb..3bb3b6a17c 100644 --- a/code/modules/emotes/definitions/audible_belch.dm +++ b/code/modules/emotes/definitions/audible_belch.dm @@ -2,7 +2,7 @@ key = "belch" emote_message_3p = "belches." message_type = AUDIBLE_MESSAGE - sound_preferences = list(/datum/preference/toggle/emote_noises, /datum/preference/toggle/belch_noises) + sound_preferences = list(/datum/client_preference/emote_noises,/datum/client_preference/belch_noises) /decl/emote/audible/belch/get_emote_sound(var/atom/user) return list( diff --git a/code/modules/emotes/emote_define.dm b/code/modules/emotes/emote_define.dm index 94812dea26..7aed1e982f 100644 --- a/code/modules/emotes/emote_define.dm +++ b/code/modules/emotes/emote_define.dm @@ -29,8 +29,8 @@ var/global/list/emotes_by_key var/emote_message_radio_synthetic // As above, but for synthetics. var/emote_message_muffled // A message to show if the emote is audible and the user is muzzled. - var/list/emote_sound // A sound for the emote to play. - // Can either be a single sound, a list of sounds to pick from, or an + var/list/emote_sound // A sound for the emote to play. + // Can either be a single sound, a list of sounds to pick from, or an // associative array of gender to single sounds/a list of sounds. var/list/emote_sound_synthetic // As above, but used when check_synthetic() is true. var/emote_volume = 50 // Volume of sound to play. @@ -42,8 +42,8 @@ var/global/list/emotes_by_key var/check_range // falsy, or a range outside which the emote will not work var/conscious = TRUE // Do we need to be awake to emote this? var/emote_range = 0 // If >0, restricts emote visibility to viewers within range. - - var/sound_preferences = list(/datum/preference/toggle/emote_noises) // Default emote sound_preferences is just emote_noises. Belch emote overrides this list for pref-checks. + + var/sound_preferences = list(/datum/client_preference/emote_noises) // Default emote sound_preferences is just emote_noises. Belch emote overrides this list for pref-checks. var/sound_vary = FALSE /decl/emote/Initialize() diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm index e729cb3e1a..642af69152 100644 --- a/code/modules/emotes/emote_mob.dm +++ b/code/modules/emotes/emote_mob.dm @@ -211,7 +211,7 @@ if(!T) return if(client) - playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/emote_sounds) + playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds) var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE) var/list/m_viewers = in_range["mobs"] diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index 13c3b74453..bd964765cb 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -89,5 +89,5 @@ if(!M) hearing_mobs -= M continue - M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/preference/toggle/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) + M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/client_preference/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) // Could do environment and echo later but not for now diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index bbabdb9370..a838a75615 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -79,7 +79,7 @@ channel = channel, pressure_affected = null, S = copy, - preference = /datum/preference/toggle/instrument_toggle, + preference = /datum/client_preference/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) // Could do environment and echo later but not for now diff --git a/code/modules/media/mediamanager.dm b/code/modules/media/mediamanager.dm index 7ab12e909e..adc522546f 100644 --- a/code/modules/media/mediamanager.dm +++ b/code/modules/media/mediamanager.dm @@ -137,9 +137,9 @@ // Tell the player to play something via JS. /datum/media_manager/proc/send_update() - if(!owner.prefs) + if(!(owner.prefs)) return - if(!owner.prefs.read_preference(/datum/preference/toggle/play_jukebox) && url != "") + if(!owner.is_preference_enabled(/datum/client_preference/play_jukebox) && url != "") return // Don't send anything other than a cancel to people with SOUND_STREAMING pref disabled MP_DEBUG("Sending update to mediapanel ([url], [(world.time - start_time) / 10], [volume * source_volume])...") owner << output(list2params(list(url, (world.time - start_time) / 10, volume * source_volume)), "[WINDOW_ID]:SetMusic") diff --git a/code/modules/mentor/mentor.dm b/code/modules/mentor/mentor.dm index 44736e0895..e28202745e 100644 --- a/code/modules/mentor/mentor.dm +++ b/code/modules/mentor/mentor.dm @@ -252,7 +252,7 @@ var/list/mentor_verbs_default = list( log_admin("[key_name(src)]->[key_name(recipient)]: [msg]") - if(recipient.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) + if(recipient.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) recipient << 'sound/effects/mentorhelp.mp3' for(var/client/C in GLOB.mentors) diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm index 01eb13af94..5b23a244af 100644 --- a/code/modules/mentor/mentorhelp.dm +++ b/code/modules/mentor/mentorhelp.dm @@ -194,10 +194,10 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new) var/chat_msg = "(ESCALATE) Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)]: [msg]" AddInteraction("[LinkedReplyName(ref_src)]: [msg]") for (var/client/C in GLOB.mentors) - if (C.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) + if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) C << 'sound/effects/mentorhelp.mp3' for (var/client/C in GLOB.admins) - if (C.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) + if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) C << 'sound/effects/mentorhelp.mp3' message_mentors(chat_msg) diff --git a/code/modules/mob/animations.dm b/code/modules/mob/animations.dm index 3e1d2b5045..9e6efaed9c 100644 --- a/code/modules/mob/animations.dm +++ b/code/modules/mob/animations.dm @@ -238,7 +238,8 @@ note dizziness decrements automatically in the mob's Life() proc. //Check for clients with pref enabled var/list/viewing = list() for(var/mob/M as anything in viewers(A)) - if(M.client?.prefs?.read_preference(/datum/preference/toggle/attack_icons)) + var/client/C = M.client + if(C && C.is_preference_enabled(/datum/client_preference/attack_icons)) viewing += M.client //Animals attacking each other in the distance, probably. Forgeddaboutit. diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 0325ccf80f..712393fd21 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -11,7 +11,7 @@ to_chat(src, "You cannot send deadchat emotes (muted).") return - if(!client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(!is_preference_enabled(/datum/client_preference/show_dsay)) to_chat(src, "You have deadchat muted.") return diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index cd861a63f8..b0f04e6247 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -66,7 +66,7 @@ if(!client && !teleop) return FALSE - if(isobserver(src) && client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + if(isobserver(src) && is_preference_enabled(/datum/client_preference/ghost_ears)) if(speaker && !speaker.client && !(speaker in view(src))) //Does the speaker have a client? It's either random stuff that observers won't care about (Experiment 97B says, 'EHEHEHEHEHEHEHE') //Or someone snoring. So we make it where they won't hear it. @@ -108,7 +108,7 @@ if(speaker_name != speaker.real_name && speaker.real_name) speaker_name = "[speaker.real_name] ([speaker_name])" track = "([ghost_follow_link(speaker, src)]) " - if(client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears) && (speaker in view(src))) + if(is_preference_enabled(/datum/client_preference/ghost_ears) && (speaker in view(src))) message = "[message]" if(is_deaf()) @@ -119,7 +119,7 @@ else var/message_to_send = null message_to_send = "[speaker_name][speaker.GetAltName()] [track][message]" - if(check_mentioned(multilingual_to_message(message_pieces)) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(check_mentioned(multilingual_to_message(message_pieces)) && is_preference_enabled(/datum/client_preference/check_mention)) message_to_send = "[message_to_send]" on_hear_say(message_to_send, speaker) @@ -227,7 +227,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" - if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -238,7 +238,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][track][part_c][formatted][part_d]" - if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -249,7 +249,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" - if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -260,7 +260,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][track][part_c][formatted][part_d]" - if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 0d301117bb..6a4ccd494d 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -26,7 +26,7 @@ for (var/mob/M in dead_mob_list) if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping var/message_to_send = span_binary("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]") - if(M.check_mentioned(message) && M.client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(M.check_mentioned(message) && M.is_preference_enabled(/datum/client_preference/check_mention)) message_to_send = "[message_to_send]" M.show_message(message_to_send, 2) @@ -39,7 +39,7 @@ continue var/message_to_send = span_binary("[message_start] [message_body]") - if(S.check_mentioned(message) && S.client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) + if(S.check_mentioned(message) && S.is_preference_enabled(/datum/client_preference/check_mention)) message_to_send = "[message_to_send]" S.show_message(message_to_send, 2) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 095d3815d4..a34cce9cb1 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -84,7 +84,7 @@ if(mind) // SSgame_master.adjust_danger(gibbed ? 40 : 20) // VOREStation Edit - We don't use SSgame_master yet. for(var/mob/observer/dead/O in mob_list) - if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(O.client && O.client.is_preference_enabled(/datum/client_preference/show_dsay)) to_chat(O, "[src] has died in [get_area(src)]. [ghost_follow_link(src, O)] ") if(!gibbed && species.death_sound) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 8473a39b1b..6a75c780f2 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1167,7 +1167,7 @@ if(noisy == TRUE && nutrition < 250 && prob(10)) //VOREStation edit for hunger noises. var/sound/growlsound = sound(get_sfx("hunger_sounds")) var/growlmultiplier = 100 - (nutrition / 250 * 100) - playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) + playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) // VOREStation Edit End if((CE_DARKSIGHT in chem_effects) && chemical_darksight == 0) @@ -1248,7 +1248,7 @@ if(fear) fear = (fear - 1) - if(fear >= 80 && client?.prefs?.read_preference(/datum/preference/toggle/play_ambience)) + if(fear >= 80 && is_preference_enabled(/datum/client_preference/play_ambiance)) if(last_fear_sound + 51 SECONDS <= world.time) src << sound('sound/effects/Heart Beat.ogg',0,0,0,25) last_fear_sound = world.time @@ -1989,7 +1989,7 @@ if(!H || (H.robotic >= ORGAN_ROBOT)) return - if(pulse >= PULSE_2FAST || shock_stage >= 10 || (istype(get_turf(src), /turf/space) && read_preference(/datum/preference/toggle/play_ambience))) + if(pulse >= PULSE_2FAST || shock_stage >= 10 || (istype(get_turf(src), /turf/space) && is_preference_enabled(/datum/client_preference/play_ambiance))) //PULSE_THREADY - maximum value for pulse, currently it 5. //High pulse value corresponds to a fast rate of heartbeat. //Divided by 2, otherwise it is too slow. diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm index 1e493dda99..eb93f679e3 100644 --- a/code/modules/mob/living/inventory.dm +++ b/code/modules/mob/living/inventory.dm @@ -48,7 +48,7 @@ item_dropped = r_hand . = drop_r_hand(Target) - if (istype(item_dropped) && !QDELETED(item_dropped) && check_sound_preference(/datum/preference/toggle/drop_sounds)) + if (istype(item_dropped) && !QDELETED(item_dropped) && is_preference_enabled(/datum/client_preference/drop_sounds)) addtimer(CALLBACK(src, PROC_REF(make_item_drop_sound), item_dropped), 1) /mob/proc/make_item_drop_sound(obj/item/I) @@ -56,7 +56,7 @@ return if(I.drop_sound) - playsound(I, I.drop_sound, 25, 0, preference = /datum/preference/toggle/drop_sounds) + playsound(I, I.drop_sound, 25, 0, preference = /datum/client_preference/drop_sounds) //Drops the item in our left hand diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 58240e4ab0..e012097056 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -39,7 +39,7 @@ if(client) var/idle_limit = 10 MINUTES - if(client.inactivity >= idle_limit && !away_from_keyboard && client.prefs?.read_preference(/datum/preference/toggle/auto_afk)) //if we're not already afk and we've been idle too long, and we have automarking enabled... then automark it + if(client.inactivity >= idle_limit && !away_from_keyboard && src.is_preference_enabled(/datum/client_preference/auto_afk)) //if we're not already afk and we've been idle too long, and we have automarking enabled... then automark it add_status_indicator("afk") to_chat(src, "You have been idle for too long, and automatically marked as AFK.") away_from_keyboard = TRUE diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 83acf1d11c..e6e20d231f 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -363,14 +363,14 @@ var/list/channel_to_radio_key = new if(M && src) //If we still exist, when the spawn processes //VOREStation Add - Ghosts don't hear whispers - if(whispering && isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ - (!client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder))) + if(whispering && isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ + (!is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder))) M.show_message("[src.name] [w_not_heard].", 2) return //VOREStation Add End var/dst = get_dist(get_turf(M),get_turf(src)) - var/runechat_enabled = M.client?.prefs?.read_preference(/datum/preference/toggle/runechat_mob) + var/runechat_enabled = M.client?.is_preference_enabled(/datum/client_preference/runechat_mob) if(dst <= message_range || (M.stat == DEAD && !forbid_seeing_deadchat)) //Inside normal message range, or dead with ears (handled in the view proc) if(M.hear_say(message_pieces, verb, italics, src, speech_sound, sound_vol)) @@ -413,12 +413,12 @@ var/list/channel_to_radio_key = new message = "([message_mode == "headset" ? "Common" : capitalize(message_mode)]) [message]" //Adds radio keys used if available if(whispering) if(do_sound && message) - playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/whisper_sounds) + playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/whisper_sounds) log_whisper(message, src) else if(do_sound && message) - playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/say_sounds) + playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/say_sounds) log_say(message, src) return 1 diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index 6b562128d2..86d9d83334 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -512,9 +512,9 @@ for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) - if((client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) && \ - G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle)) + else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears)) + if((is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) && \ + G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle)) to_chat(G, "[src.name]'s screen prints, \"[message]\"") /mob/living/silicon/pai/proc/touch_window(soft_name) //This lets us touch TGUI procs and windows that may be nested behind other TGUI procs and windows diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index fe632a206c..a7a9386c39 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -91,7 +91,7 @@ if(do_after(user, 30, target) && length(contents) < max_item_count) target.forceMove(src) user.visible_message("[hound.name]'s [src.name] groans lightly as [target.name] slips inside.", "Your [src.name] groans lightly as [target] slips inside.") - playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) + playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) if(analyzer && istype(target,/obj/item)) var/obj/item/tech_item = target var/list/tech_levels = list() @@ -111,7 +111,7 @@ trashmouse.forceMove(src) trashmouse.reset_view(src) user.visible_message("[hound.name]'s [src.name] groans lightly as [trashmouse] slips inside.", "Your [src.name] groans lightly as [trashmouse] slips inside.") - playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) + playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) if(delivery) if(islist(deliverylists[delivery_tag])) deliverylists[delivery_tag] |= trashmouse @@ -133,7 +133,7 @@ START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s [src.name] groans lightly as [trashman] slips inside.", "Your [src.name] groans lightly as [trashman] slips inside.") log_admin("[key_name(hound)] has eaten [key_name(patient)] with a cyborg belly. ([hound ? "JMP" : "null"])") - playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) + playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) if(delivery) if(islist(deliverylists[delivery_tag])) deliverylists[delivery_tag] |= trashman @@ -164,7 +164,7 @@ START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s [src.name] lights up as [H.name] slips inside.", "Your [src] lights up as [H] slips inside. Life support functions engaged.") log_admin("[key_name(hound)] has eaten [key_name(patient)] with a cyborg belly. ([hound ? "JMP" : "null"])") - playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) + playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) /obj/item/device/dogborg/sleeper/proc/ingest_atom(var/atom/ingesting) if (!ingesting || ingesting == hound) @@ -551,11 +551,11 @@ 'sound/vore/death8.ogg', 'sound/vore/death9.ogg', 'sound/vore/death10.ogg') - playsound(src, finisher, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) + playsound(src, finisher, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) to_chat(hound, "Your [src.name] is now clean. Ending self-cleaning cycle.") cleaning = 0 update_patient() - playsound(src, 'sound/machines/ding.ogg', vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) + playsound(src, 'sound/machines/ding.ogg', vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) return if(prob(20)) @@ -572,7 +572,7 @@ 'sound/vore/digest10.ogg', 'sound/vore/digest11.ogg', 'sound/vore/digest12.ogg') - playsound(src, churnsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) + playsound(src, churnsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) //If the timing is right, and there are items to be touched if(air_master.current_cycle%3==1 && length(touchable_items)) @@ -606,7 +606,7 @@ 'sound/vore/death8.ogg', 'sound/vore/death9.ogg', 'sound/vore/death10.ogg') - playsound(src, deathsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) + playsound(src, deathsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) if(is_vore_predator(T)) for(var/obj/belly/B as anything in T.vore_organs) for(var/atom/movable/thing in B) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_say.dm b/code/modules/mob/living/silicon/robot/drone/drone_say.dm index d35e87fff6..5e8dd6dc74 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_say.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_say.dm @@ -32,8 +32,8 @@ for (var/mob/M in player_list) if (istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) if(M.client) to_chat(M, "[src] transmits, \"[message]\"") return 1 - return ..() + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm index 2abb3b52df..633df96ec8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm @@ -500,14 +500,14 @@ for(var/mob/M as anything in vis_mobs) if(isnewplayer(M)) continue - if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ - !L.client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ + !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) /decl/flooring/fur @@ -930,7 +930,7 @@ spawnstuff = FALSE /area/redgate/stardog/flesh_abyss/play_ambience(var/mob/living/L, initial = TRUE) - if(!L.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(!L.is_preference_enabled(/datum/client_preference/digestion_noises)) return ..() @@ -1172,14 +1172,14 @@ for(var/mob/M as anything in vis_mobs) if(isnewplayer(M)) continue - if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ - !L.client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ + !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) /area/redgate/stardog/eyes @@ -1335,8 +1335,8 @@ var/go = FALSE if(isobserver(AM)) return - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) - playsound(target, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(target, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) if(isliving(AM)) var/mob/living/L = AM if(teleport_message && L.client) @@ -1374,7 +1374,7 @@ var/mob/living/simple_mob/vore/overmap/stardog/dog = s.parent dog.adjust_nutrition(I.reagents.total_volume) dog.adjust_affinity(25) - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) visible_message("The dog gobbles up \the [I]!") if(dog.client) to_chat(dog, "[I.thrower ? "\The [I.thrower]" : "Someone"] feeds \the [I] to you!") @@ -1699,7 +1699,7 @@ /obj/structure/auto_flesh_door/proc/Open() isSwitchingStates = 1 var/oursound = pick(open_sounds) - playsound(src, oursound, 100, 1, preference = /datum/preference/toggle/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, oursound, 100, 1, preference = /datum/client_preference/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) flick("flesh-opening",src) sleep(8) density = FALSE @@ -1715,7 +1715,7 @@ /obj/structure/auto_flesh_door/proc/Close() isSwitchingStates = 1 var/oursound = pick(open_sounds) - playsound(src, oursound, 100, 1, preference = /datum/preference/toggle/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, oursound, 100, 1, preference = /datum/client_preference/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) flick("flesh-closing",src) sleep(8) density = TRUE diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm index 649a206306..50e54cf8aa 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm @@ -266,7 +266,7 @@ for(var/mob/M in player_list) if(istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) to_chat(M, "[src.true_name] whispers to [host], \"[message]\"") diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm index c4ee2ce60d..ab1d9cfbfe 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm @@ -28,7 +28,7 @@ for (var/mob/M in player_list) if (istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) to_chat(M, "The captive mind of [src] whispers, \"[message]\"") /mob/living/captive_brain/me_verb(message as text) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 4ff396fd0a..14a3c56e8c 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -63,12 +63,12 @@ recalculate_vis() // AO support - var/ao_enabled = client.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion) + var/ao_enabled = client.is_preference_enabled(/datum/client_preference/ambient_occlusion) plane_holder.set_ao(VIS_OBJS, ao_enabled) plane_holder.set_ao(VIS_MOBS, ao_enabled) // Status indicators - var/status_enabled = client.prefs?.read_preference(/datum/preference/toggle/status_indicators) + var/status_enabled = client.is_preference_enabled(/datum/client_preference/status_indicators) plane_holder.set_vis(VIS_STATUS, status_enabled) //set macro to normal incase it was overriden (like cyborg currently does) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 47ccb71bfe..0cfa747e4c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1305,18 +1305,20 @@ return TRUE /mob/MouseEntered(location, control, params) - if(usr != src && will_show_tooltip()) - if(usr?.read_preference(/datum/preference/toggle/mob_tooltips)) - openToolTip(usr, src, params, title = get_nametag_name(usr), content = get_nametag_desc(usr)) - . = ..() + if(usr != src && usr.is_preference_enabled(/datum/client_preference/mob_tooltips) && src.will_show_tooltip()) + openToolTip(user = usr, tip_src = src, params = params, title = get_nametag_name(usr), content = get_nametag_desc(usr)) + + ..() /mob/MouseDown() closeToolTip(usr) //No reason not to, really - . = ..() + + ..() /mob/MouseExited() closeToolTip(usr) //No reason not to, really - . = ..() + + ..() // Manages a global list of mobs with clients attached, indexed by z-level. /mob/proc/update_client_z(new_z) // +1 to register, null to unregister. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index eea78a94c7..61d9c6020d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -409,7 +409,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) return // Can't talk in deadchat if you can't see it. for(var/mob/M in player_list) - if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.client?.prefs?.read_preference(/datum/preference/toggle/holder/show_staff_dsay))) && M.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.is_preference_enabled(/datum/client_preference/holder/show_staff_dsay))) && M.is_preference_enabled(/datum/client_preference/show_dsay)) var/follow var/lname if(M.forbid_seeing_deadchat && !M.client.holder) @@ -439,7 +439,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) /proc/say_dead_object(var/message, var/obj/subject = null) for(var/mob/M in player_list) - if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.client?.prefs?.read_preference(/datum/preference/toggle/holder/show_staff_dsay))) && M.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.is_preference_enabled(/datum/client_preference/holder/show_staff_dsay))) && M.is_preference_enabled(/datum/client_preference/show_dsay)) var/follow var/lname = "Game Master" if(M.forbid_seeing_deadchat && !M.client.holder) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 37e447761e..01a74aea44 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -100,7 +100,7 @@ if (client.prefs.lastlorenews == GLOB.news_data.newsindex) client.seen_news = 1 - if(GLOB.news_data.station_newspaper && !client.seen_news && client.prefs?.read_preference(/datum/preference/toggle/show_lore_news)) + if(GLOB.news_data.station_newspaper && !client.seen_news && client.is_preference_enabled(/datum/client_preference/show_lore_news)) show_latest_news(GLOB.news_data.station_newspaper) client.prefs.lastlorenews = GLOB.news_data.newsindex SScharacter_setup.queue_preferences_save(client.prefs) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index f0c494266d..f2624a91be 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -68,7 +68,7 @@ to_chat(src, "Deadchat is globally muted.") return - if(!client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) + if(!is_preference_enabled(/datum/client_preference/show_dsay)) to_chat(usr, "You have deadchat muted.") return diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 95d4acc8fb..00fef766c9 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -203,14 +203,14 @@ continue if(src.client && M && !(get_z(src) == get_z(M))) message = "[message]" - if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ - !client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ + !is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for(var/obj/O as anything in vis_objs) @@ -291,13 +291,13 @@ else pb = db.pred_body to_chat(pb, "The captive mind of \the [M] thinks, \"[message]\"") //To our pred if dominated brain - if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) + if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE else if(M.absorbed && isbelly(M.loc)) pb = M.loc.loc to_chat(pb, "\The [M] thinks, \"[message]\"") //To our pred if absorbed - if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) + if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -307,14 +307,14 @@ if(istype(I, /mob/living/dominated_brain) && I != M) var/mob/living/dominated_brain/db = I to_chat(db, "The captive mind of \the [M] thinks, \"[message]\"") //To any dominated brains in the pred - if(db.read_preference(/datum/preference/toggle/subtle_sounds)) + if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in pb.vore_organs) for(var/mob/living/L in B) if(L.absorbed && L != M && L.ckey) to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people in the pred - if(L.read_preference(/datum/preference/toggle/subtle_sounds)) + if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -323,32 +323,32 @@ if(istype(I, /mob/living/dominated_brain)) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] thinks, \"[message]\"") //To any dominated brains inside us - if(db.read_preference(/datum/preference/toggle/subtle_sounds)) + if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in M.vore_organs) for(var/mob/living/L in B) if(L.absorbed) to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people inside us - if(L.read_preference(/datum/preference/toggle/subtle_sounds)) + if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE if(f) //We found someone to send the message to if(pb) to_chat(M, "You think \"[message]\"") //To us if we are the prey - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) else to_chat(M, "You think \"[message]\"") //To us if we are the pred - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears && \ - G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))) - if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) + else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears && \ + G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle))) + if(is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) to_chat(G, "\The [M] thinks, \"[message]\"") log_say(message,M) else //There wasn't anyone to send the message to, pred or prey, so let's just say it instead and correct our psay just in case. @@ -388,14 +388,14 @@ else pb = db.pred_body to_chat(pb, "\The [M] [message]") //To our pred if dominated brain - if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) + if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE else if(M.absorbed && isbelly(M.loc)) pb = M.loc.loc to_chat(pb, "\The [M] [message]") //To our pred if absorbed - if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) + if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -405,14 +405,14 @@ if(istype(I, /mob/living/dominated_brain) && I != M) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] [message]") //To any dominated brains in the pred - if(db.read_preference(/datum/preference/toggle/subtle_sounds)) + if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in pb.vore_organs) for(var/mob/living/L in B) if(L.absorbed && L != M && L.ckey) to_chat(L, "\The [M] [message]") //To any absorbed people in the pred - if(L.read_preference(/datum/preference/toggle/subtle_sounds)) + if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -421,32 +421,32 @@ if(istype(I, /mob/living/dominated_brain)) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] [message]") //To any dominated brains inside us - if(db.read_preference(/datum/preference/toggle/subtle_sounds)) + if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in M.vore_organs) for(var/mob/living/L in B) if(L.absorbed) to_chat(L, "\The [M] [message]") //To any absorbed people inside us - if(L.read_preference(/datum/preference/toggle/subtle_sounds)) + if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE if(f) //We found someone to send the message to if(pb) to_chat(M, "\The [M] [message]") //To us if we are the prey - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) else to_chat(M, "\The [M] [message]") //To us if we are the pred - if(M.read_preference(/datum/preference/toggle/subtle_sounds)) + if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears && \ - G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))) - if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) + else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears && \ + G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle))) + if(is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) to_chat(G, "\The [M] [message]") log_say(message,M) else //There wasn't anyone to send the message to, pred or prey, so let's just emote it instead and correct our psay just in case. @@ -484,7 +484,7 @@ ourfreq = voice_freq if(client) - playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/emote_sounds) + playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds) var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,2,remote_ghosts = client ? TRUE : FALSE) var/list/m_viewers = in_range["mobs"] diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index f4a36083a4..ec1a0be6d6 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -15,7 +15,7 @@ set name = "Say verb" set category = "IC" - if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) + if(is_preference_enabled(/datum/client_preference/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(SAY_CHANNEL)]") return @@ -31,7 +31,7 @@ set name = "Me verb" set category = "IC" - if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) + if(is_preference_enabled(/datum/client_preference/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(ME_CHANNEL)]") return @@ -47,11 +47,11 @@ set name = "Whisper verb" set category = "IC" - if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) + if(is_preference_enabled(/datum/client_preference/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(WHIS_CHANNEL)]") return - if(client?.prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) + if(is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) client?.start_thinking() client?.start_typing() var/message = tgui_input_text(usr, "Type your message:", "Whisper") @@ -65,11 +65,11 @@ set category = "IC" set desc = "Emote to nearby people (and your pred/prey)" - if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) + if(is_preference_enabled(/datum/client_preference/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(SUBTLE_CHANNEL)]") return - if(client?.prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) + if(is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) client?.start_thinking() client?.start_typing() var/message = tgui_input_text(usr, "Type your message:", "Subtle", multiline = TRUE) diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm index 08b9cc620f..d26b7e3088 100644 --- a/code/modules/organs/pain.dm +++ b/code/modules/organs/pain.dm @@ -19,7 +19,7 @@ // Anti message spam checks // If multiple limbs are injured, cooldown is ignored to print all injuries until all limbs are iterated over - if(client?.prefs?.read_preference(/datum/preference/toggle/pain_frequency)) + if(src.is_preference_enabled(/datum/client_preference/pain_frequency)) switch(power) if(0 to 5) force = 0 diff --git a/code/modules/player_tips_vr/player_tips_controller_vr.dm b/code/modules/player_tips_vr/player_tips_controller_vr.dm index 7854177564..e23994be92 100644 --- a/code/modules/player_tips_vr/player_tips_controller_vr.dm +++ b/code/modules/player_tips_vr/player_tips_controller_vr.dm @@ -27,7 +27,7 @@ Controlled by the player_tips subsystem under code/controllers/subsystems/player break last_tip = tip for(var/mob/M in player_list) - if(M.client?.prefs?.read_preference(/datum/preference/toggle/player_tips)) + if(M.is_preference_enabled(/datum/client_preference/player_tips)) if(!M.key && !(M.key in HasReceived)) to_chat(M, SPAN_WARNING("You have periodic player tips enabled. You may turn them off at any time with the Toggle Receiving Player Tips verb in Preferences, or in character set up under the OOC tab!\n Player tips appear every 45-75 minutes.")) HasReceived.Add(M.key) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 068878ab3c..ac6faeb412 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -229,7 +229,7 @@ PreFire(A,user,params) //They're using the new gun system, locate what they're aiming at. return - if(user && user.a_intent == I_HELP && user.client?.prefs?.read_preference(/datum/preference/toggle/safefiring)) //regardless of what happens, refuse to shoot if help intent is on + if(user && user.a_intent == I_HELP && user.is_preference_enabled(/datum/client_preference/safefiring)) //regardless of what happens, refuse to shoot if help intent is on to_chat(user, "You refrain from firing your [src] as your intent is set to help.") return diff --git a/code/modules/projectiles/targeting/targeting_triggers.dm b/code/modules/projectiles/targeting/targeting_triggers.dm index d327ba8e8f..1b8f3fcadd 100644 --- a/code/modules/projectiles/targeting/targeting_triggers.dm +++ b/code/modules/projectiles/targeting/targeting_triggers.dm @@ -20,7 +20,7 @@ if(!owner.checkClickCooldown()) return owner.setClickCooldown(5) // Spam prevention, essentially. - if(owner.a_intent == I_HELP && owner.client?.prefs?.read_preference(/datum/preference/toggle/safefiring)) + if(owner.a_intent == I_HELP && owner.is_preference_enabled(/datum/client_preference/safefiring)) to_chat(owner, "You refrain from firing \the [aiming_with] as your intent is set to help.") return owner.visible_message("\The [owner] pulls the trigger reflexively!") diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm index 711373cfe3..d1aae5fc71 100644 --- a/code/modules/tables/interactions.dm +++ b/code/modules/tables/interactions.dm @@ -155,7 +155,7 @@ return // Placing stuff on tables - if(user.unEquip(W, 0, src.loc) && user.client?.prefs?.read_preference(/datum/preference/toggle/precision_placement)) + if(user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement)) auto_align(W, click_parameters) return 1 diff --git a/code/modules/tgui_input/say_modal/modal.dm b/code/modules/tgui_input/say_modal/modal.dm index 84e9906499..725f4321bf 100644 --- a/code/modules/tgui_input/say_modal/modal.dm +++ b/code/modules/tgui_input/say_modal/modal.dm @@ -67,7 +67,7 @@ winset(client, "tgui_say", "pos=410,400;size=360,30;is-visible=0;") window.send_message("props", list( - lightMode = client?.prefs?.read_preference(/datum/preference/toggle/tgui_say_light), + lightMode = client.is_preference_enabled(/datum/client_preference/tgui_say_light), maxLength = max_length, )) diff --git a/code/modules/vore/chat_healthbars.dm b/code/modules/vore/chat_healthbars.dm index 583435dea3..203df0b0b8 100644 --- a/code/modules/vore/chat_healthbars.dm +++ b/code/modules/vore/chat_healthbars.dm @@ -6,7 +6,7 @@ if(!reciever.client) //No one is home, don't bother return if(!override) //Did the person push the verb? Ignore the pref - if(!reciever.client.prefs?.read_preference(/datum/preference/toggle/vore_health_bars)) + if(!reciever.client.is_preference_enabled(/datum/client_preference/vore_health_bars)) return var/ourpercent = 0 diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index bbbf2eeba3..d6224e978e 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -443,7 +443,7 @@ else soundfile = fancy_vore_sounds[vore_sound] if(soundfile) - playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) recent_sound = TRUE //Messages if it's a mob @@ -631,7 +631,7 @@ else soundfile = fancy_release_sounds[release_sound] if(soundfile) - playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) return count @@ -717,7 +717,7 @@ else soundfile = fancy_release_sounds[release_sound] if(soundfile) - playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) //Should fix your view not following you out of mobs sometimes! if(ismob(M)) var/mob/ourmob = M @@ -1372,9 +1372,9 @@ struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) else struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else - playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) if(escapable) //If the stomach has escapable enabled. if(prob(escapechance)) //Let's have it check to see if the prey escapes first. @@ -1651,9 +1651,9 @@ struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) else struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else - playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) //absorb resists if(escapable || owner.stat) //If the stomach has escapable enabled or the owner is dead/unconscious diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index 40c9efef5c..9c49d8f93f 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) //Person just died in guts! if(L.stat == DEAD) - if(L.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(L.is_preference_enabled(/datum/client_preference/digestion_noises)) if(!B.fancy_vore) SEND_SOUND(L, sound(get_sfx("classic_death_sounds"))) else diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index a18e6b2408..d71fdac231 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -59,7 +59,7 @@ /////////////////////////// Make any noise /////////////////////////// if(digestion_noise_chance && prob(digestion_noise_chance)) for(var/mob/M in contents) - if(M && M.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(M && M.is_preference_enabled(/datum/client_preference/digestion_noises)) SEND_SOUND(M, prey_digest) play_sound = pred_digest @@ -68,7 +68,7 @@ updateVRPanels() if(play_sound) for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect - if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) continue if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check if(fancy_vore) @@ -95,7 +95,7 @@ if(play_sound) for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect - if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) continue if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check if(fancy_vore) @@ -224,7 +224,7 @@ /obj/belly/proc/prey_loop() for(var/mob/living/M in contents) //We don't bother executing any other code if the prey doesn't want to hear the noises. - if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case, because byond is whack and you can't trust it continue diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 4327294e83..470c6d9b7c 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -1187,10 +1187,11 @@ if(!user) CRASH("display_voreprefs() was called without an associated user.") var/dispvoreprefs = "[src]'s vore preferences


" - if(!client?.prefs?.read_preference(/datum/preference/toggle/show_ooc)) - dispvoreprefs += "OOC DISABLED
" - if(!client?.prefs?.read_preference(/datum/preference/toggle/show_looc)) - dispvoreprefs += "LOOC DISABLED
" + if(client && client.prefs) + if("CHAT_OOC" in client.prefs.preferences_disabled) + dispvoreprefs += "OOC DISABLED
" + if("CHAT_LOOC" in client.prefs.preferences_disabled) + dispvoreprefs += "LOOC DISABLED
" dispvoreprefs += "Digestable: [digestable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Devourable: [devourable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Feedable: [feeding ? "Enabled" : "Disabled"]
" diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index b48f853da7..b9a0dd0653 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -920,7 +920,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", l.adjust_nutrition(thismuch) ourtarget.death() // To make sure all on-death procs get properly called if(ourtarget) - if(ourtarget.check_sound_preference(/datum/preference/toggle/digestion_noises)) + if(ourtarget.is_preference_enabled(/datum/client_preference/digestion_noises)) if(!b.fancy_vore) SEND_SOUND(ourtarget, sound(get_sfx("classic_death_sounds"))) else diff --git a/interface/interface.dm b/interface/interface.dm index e9c030b74a..1a2771d81b 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -223,7 +223,7 @@ Any-Mode: (hotkey doesn't need to be on) /client/proc/set_hotkeys_macro(macro_name = "macro", hotkey_macro_name = "hotkeymode", hotkeys_enabled = null) // If hotkeys mode was not specified, fall back to choice of default in client preferences. if(isnull(hotkeys_enabled)) - hotkeys_enabled = prefs?.read_preference(/datum/preference/toggle/hotkeys_default) + hotkeys_enabled = is_preference_enabled(/datum/client_preference/hotkeys_default) if(hotkeys_enabled) winset(src, null, "mainwindow.macro=[hotkey_macro_name] hotkey_toggle.is-checked=true mapwindow.map.focus=true") diff --git a/interface/skin.dmf b/interface/skin.dmf index 7d732dd0f2..a32906eb75 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1149,20 +1149,6 @@ menu "menu" command = "hotkeys-help" category = "&Help" saved-params = "is-checked" - elem - name = "&Preferences" - command = "" - saved-params = "is-checked" - elem - name = "&Character Setup" - command = "character-setup" - category = "&Preferences" - saved-params = "is-checked" - elem - name = "&Game Options" - command = "game-options" - category = "&Preferences" - saved-params = "is-checked" window "mainwindow" elem "mainwindow" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx deleted file mode 100644 index 58d863c5e6..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx +++ /dev/null @@ -1,70 +0,0 @@ -// import { exhaustiveCheck } from 'common/exhaustive'; -import { useState } from 'react'; - -import { useBackend } from '../../backend'; -import { Stack } from '../../components'; -import { Window } from '../../layouts'; -import { GamePreferencesSelectedPage, PreferencesMenuData } from './data'; -import { GamePreferencesPage } from './GamePreferencesPage'; -// import { KeybindingsPage } from './KeybindingsPage'; - -export const GamePreferenceWindow = (props: { - startingPage?: GamePreferencesSelectedPage; -}) => { - const { act, data } = useBackend(); - - const [currentPage, setCurrentPage] = useState( - props.startingPage ?? GamePreferencesSelectedPage.Settings, - ); - - let pageContents; - - switch (currentPage) { - // case GamePreferencesSelectedPage.Keybindings: - // pageContents = ; - // break; - case GamePreferencesSelectedPage.Settings: - pageContents = ; - break; - // default: - // exhaustiveCheck(currentPage); - } - - return ( - - - - {/* - - - - Settings - - - - - - Keybindings - - - - */} - - {/* */} - - - {pageContents} - - - - - ); -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx deleted file mode 100644 index 35f279b428..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import { binaryInsertWith, sortBy } from 'common/collections'; -import { ReactNode, useState } from 'react'; - -import { useBackend } from '../../backend'; -import { Box, Button, Flex, Input, Section, Tooltip } from '../../components'; -import { PreferencesMenuData } from './data'; -import features from './preferences/features'; -import { FeatureValueInput } from './preferences/features/base'; -import { TabbedMenu } from './TabbedMenu'; - -type PreferenceChild = { - name: string; - children: ReactNode; -}; - -const binaryInsertPreference = ( - collection: PreferenceChild[], - value: PreferenceChild, -) => binaryInsertWith(collection, value, (child) => child.name); - -const sortByName = (array: [string, PreferenceChild[]][]) => - sortBy(array, ([name]) => name); - -export const GamePreferencesPage = (props) => { - const { act, data } = useBackend(); - - const gamePreferences: Record = {}; - - for (const [featureId, value] of Object.entries( - data.character_preferences.game_preferences, - )) { - const feature = features[featureId]; - - let nameInner: ReactNode = feature?.name || featureId; - - if (feature?.description) { - nameInner = ( - - {nameInner} - - ); - } - - let name: ReactNode = ( - - {nameInner} - - ); - - if (feature?.description) { - name = ( - - {name} - - ); - } - - const child = ( - - {name} - - - {(feature && ( - - )) || ( - - ...is not filled out properly!!! - - )} - - - ); - - const entry = { - name: feature?.name || featureId, - children: child, - }; - - const category = feature?.category || 'ERROR'; - - gamePreferences[category] = binaryInsertPreference( - gamePreferences[category] || [], - entry, - ); - } - - const [search, setSearch] = useState(''); - const [searchVisible, setSearchVisible] = useState(false); - - // For some reason, typescript thinks that this call to filter() can change the shape of the array - const gamePreferenceEntries: any = sortByName(Object.entries(gamePreferences)) - .map(([category, preferences]) => { - return [ - category, - preferences - .filter( - (entry) => - !search || - entry.name.toLowerCase().includes(search.toLowerCase()), - ) - .map((entry) => entry.children), - ]; - }) - .filter(([category, prefs]) => prefs.length !== 0); - - return ( - <> - {!gamePreferenceEntries.length && ( -
No results found.
- )} - - {searchVisible && ( - setSearch(val)} - onChange={(e, val) => setSearch(val)} - /> - )} - - ); -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx deleted file mode 100644 index 0b90fd855c..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { Component, ReactNode } from 'react'; - -import { resolveAsset } from '../../assets'; -import { fetchRetry } from '../../http'; -import { ServerData } from './data'; - -// Cache response so it's only sent once -let fetchServerData: Promise | undefined; - -export class ServerPreferencesFetcher extends Component< - { - render: (serverData: ServerData | undefined) => ReactNode; - }, - { - serverData?: ServerData; - } -> { - state = { - serverData: undefined, - }; - - componentDidMount() { - this.populateServerData(); - } - - async populateServerData() { - if (!fetchServerData) { - fetchServerData = fetchRetry(resolveAsset('preferences.json')).then( - (response) => response.json(), - ); - } - - const preferencesData: ServerData = await fetchServerData; - - this.setState({ - serverData: preferencesData, - }); - } - - render() { - return this.props?.render?.(this.state.serverData); - } -} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx deleted file mode 100644 index 13c572ebc8..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { Component, createRef, ReactNode, RefObject } from 'react'; - -import { Button, Section, Stack } from '../../components'; -import { FlexProps } from '../../components/Flex'; - -type TabbedMenuProps = { - categoryEntries: [string, ReactNode][]; - contentProps?: FlexProps; -}; - -export class TabbedMenu extends Component { - categoryRefs: Record> = {}; - sectionRef: RefObject = createRef(); - - getCategoryRef(category: string): RefObject { - if (!this.categoryRefs[category]) { - this.categoryRefs[category] = createRef(); - } - - return this.categoryRefs[category]; - } - - render() { - return ( - - - - {this.props.categoryEntries.map(([category]) => { - return ( - - - - ); - })} - - - - - - {this.props.categoryEntries.map(([category, children]) => { - return ( - -
- {children} -
-
- ); - })} -
-
-
- ); - } -} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts deleted file mode 100644 index 789e5e9823..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Abductor: Antagonist = { - key: 'abductor', - name: 'Abductor', - description: [ - ` - Abductors are technologically advanced alien society set on cataloging - all species in the system. Unfortunately for their subjects their methods - are quite invasive. - `, - - ` - You and a partner will become the abductor scientist and agent duo. - As an agent, abduct unassuming victims and bring them back to your UFO. - As a scientist, scout out victims for your agent, keep them safe, and - operate on whoever they bring back. - `, - ], - category: Category.Midround, -}; - -export default Abductor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts deleted file mode 100644 index 92cd5bdc44..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const BLOB_MECHANICAL_DESCRIPTION = ` - The blob infests the station and destroys everything in its path, including - hull, fixtures, and creatures. Spread your mass, collect resources, and - consume the entire station. Make sure to prepare your defenses, because the - crew will be alerted to your presence! -`; - -const Blob: Antagonist = { - key: 'blob', - name: 'Blob', - description: [BLOB_MECHANICAL_DESCRIPTION], - category: Category.Midround, -}; - -export default Blob; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts deleted file mode 100644 index d8a5f135fe..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { BLOB_MECHANICAL_DESCRIPTION } from './blob'; - -const BlobInfection: Antagonist = { - key: 'blobinfection', - name: 'Blob Infection', - description: [ - ` - At any point in the middle of the shift, be strucken with an infection - that will turn you into the terrifying blob. - `, - BLOB_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default BlobInfection; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts deleted file mode 100644 index 56cbcbfc97..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const BloodBrother: Antagonist = { - key: 'bloodbrother', - name: 'Blood Brother', - description: [ - ` - Team up with other crew members as blood brothers to combine the strengths - of your departments, break each other out of prison, and overwhelm the - station. - `, - ], - category: Category.Roundstart, -}; - -export default BloodBrother; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts deleted file mode 100644 index 9124a07063..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const CHANGELING_MECHANICAL_DESCRIPTION = ` -Transform yourself or others into different identities, and buy from an -arsenal of biological weaponry with the DNA you collect. -`; - -const Changeling: Antagonist = { - key: 'changeling', - name: 'Changeling', - description: [ - ` - A highly intelligent alien predator that is capable of altering their - shape to flawlessly resemble a human. - `, - CHANGELING_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, -}; - -export default Changeling; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts deleted file mode 100644 index 8324bdb858..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { CHANGELING_MECHANICAL_DESCRIPTION } from './changeling'; - -const ChangelingMidround: Antagonist = { - key: 'changelingmidround', - name: 'Space Changeling', - description: [ - ` - A midround changeling does not receive a crew identity, instead arriving - from space. This will be more difficult than being a round-start changeling! - `, - CHANGELING_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default ChangelingMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts deleted file mode 100644 index 61f874a2e9..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; - -const ClownOperative: Antagonist = { - key: 'clownoperative', - name: 'Clown Operative', - description: [ - ` - Honk! You have been chosen, for better or worse to join the Syndicate - Clown Operative strike team. Your mission, whether or not you choose - to tickle it, is to honk Nanotrasen's most advanced research facility! - That's right, you're going to Clown Station 13. - `, - - OPERATIVE_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, -}; - -export default ClownOperative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts deleted file mode 100644 index c5cfaf61c2..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Cultist: Antagonist = { - key: 'cultist', - name: 'Cultist', - description: [ - ` - The Geometer of Blood, Nar-Sie, has sent a number of her followers to - Space Station 13. As a cultist, you have an abundance of cult magics at - your disposal, something for all situations. You must work with your - brethren to summon an avatar of your eldritch goddess! - `, - - ` - Armed with blood magic, convert crew members to the Blood Cult, sacrifice - those who get in the way, and summon Nar-Sie. - `, - ], - category: Category.Roundstart, -}; - -export default Cultist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts deleted file mode 100644 index f05a96c2ec..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Fugitive: Antagonist = { - key: 'fugitive', - name: 'Fugitive', - description: [ - ` - Wherever you come from, you're being hunted. You have 10 minutes to prepare - before fugitive hunters arrive and start hunting you and your friends down! - `, - ], - category: Category.Midround, -}; - -export default Fugitive; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts deleted file mode 100644 index 3d269c54ca..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Glitch: Antagonist = { - key: 'glitch', - name: 'Glitch', - description: [ - ` - The virtual domain is a dangerous place for bitrunners. Make it so. - `, - - ` - You are a short-term antagonist, a glitch in the system. Use martial arts \ - and lethal weaponry to terminate organics. - `, - ], - category: Category.Midround, -}; - -export default Glitch; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts deleted file mode 100644 index 0a1d644266..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const REVOLUTIONARY_MECHANICAL_DESCRIPTION = ` - Armed with a flash, convert as many people to the revolution as you can. - Kill or exile all heads of staff on the station. - `; - -const HeadRevolutionary: Antagonist = { - key: 'headrevolutionary', - name: 'Head Revolutionary', - description: ['VIVA LA REVOLUTION!', REVOLUTIONARY_MECHANICAL_DESCRIPTION], - category: Category.Roundstart, -}; - -export default HeadRevolutionary; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts deleted file mode 100644 index 8c2d631bd5..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const HERETIC_MECHANICAL_DESCRIPTION = ` - Find hidden influences and sacrifice crew members to gain magical - powers and ascend as one of several paths. - `; - -const Heretic: Antagonist = { - key: 'heretic', - name: 'Heretic', - description: [ - ` - Forgotten, devoured, gutted. Humanity has forgotten the eldritch forces - of decay, but the mansus veil has weakened. We will make them taste fear - again... - `, - HERETIC_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, -}; - -export default Heretic; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts deleted file mode 100644 index 6ce90a3552..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { HERETIC_MECHANICAL_DESCRIPTION } from './heretic'; - -const HereticSmuggler: Antagonist = { - key: 'hereticsmuggler', - name: 'Heretic Smuggler', - description: [ - 'A form of heretic that can activate when joining an ongoing shift.', - HERETIC_MECHANICAL_DESCRIPTION, - ], - category: Category.Latejoin, -}; - -export default HereticSmuggler; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts deleted file mode 100644 index 3f8ac5c5b7..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; - -const LoneOperative: Antagonist = { - key: 'loneoperative', - name: 'Lone Operative', - description: [ - ` - A solo nuclear operative that has a higher chance of spawning the longer - the nuclear authentication disk stays in one place. - `, - - OPERATIVE_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default LoneOperative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts deleted file mode 100644 index 03aadd752c..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const MALF_AI_MECHANICAL_DESCRIPTION = ` - With a law zero to complete your objectives at all costs, combine your - omnipotence and malfunction modules to wreak havoc across the station. - Go delta to destroy the station and all those who opposed you. - `; - -const MalfAI: Antagonist = { - key: 'malfai', - name: 'Malfunctioning AI', - description: [MALF_AI_MECHANICAL_DESCRIPTION], - category: Category.Roundstart, -}; - -export default MalfAI; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts deleted file mode 100644 index 84e52b43dc..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { MALF_AI_MECHANICAL_DESCRIPTION } from './malfai'; - -const MalfAIMidround: Antagonist = { - key: 'malfaimidround', - name: 'Value Drifted AI', - description: [ - ` - A form of malfunctioning AI that is given to existing AIs in the middle - of the shift. - `, - MALF_AI_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default MalfAIMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts deleted file mode 100644 index 90046dd625..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Nightmare: Antagonist = { - key: 'nightmare', - name: 'Nightmare', - description: [ - ` - Use your light eater to break sources of light to survive and thrive. - Jaunt through the darkness and seek your prey with night vision. - `, - ], - category: Category.Midround, -}; - -export default Nightmare; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts deleted file mode 100644 index 8d4c981398..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Obsessed: Antagonist = { - key: 'obsessed', - name: 'Obsessed', - description: [ - ` - You're obsessed with someone! Your obsession may begin to notice their - personal items are stolen and their coworkers have gone missing, - but will they realize they are your next victim in time? - `, - ], - category: Category.Midround, -}; - -export default Obsessed; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts deleted file mode 100644 index a8182de9e0..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const OPERATIVE_MECHANICAL_DESCRIPTION = ` - Retrieve the nuclear authentication disk, use it to activate the nuclear - fission explosive, and destroy the station. -`; - -const Operative: Antagonist = { - key: 'operative', - name: 'Nuclear Operative', - description: [ - ` - Congratulations, agent. You have been chosen to join the Syndicate - Nuclear Operative strike team. Your mission, whether or not you choose - to accept it, is to destroy Nanotrasen's most advanced research facility! - That's right, you're going to Space Station 13. - `, - - OPERATIVE_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, -}; - -export default Operative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts deleted file mode 100644 index 7497c6442f..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; - -const OperativeMidround: Antagonist = { - key: 'operativemidround', - name: 'Nuclear Assailant', - description: [ - ` - A form of nuclear operative that is offered to ghosts in the middle - of the shift. - `, - OPERATIVE_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default OperativeMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts deleted file mode 100644 index 1456df3ec6..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const ParadoxClone: Antagonist = { - key: 'paradoxclone', - name: 'Paradox Clone', - description: [ - ` - A freak time-space anomaly has teleported you into another reality! - Now you have to find your counterpart and kill and replace them. - `, - ], - category: Category.Midround, -}; - -export default ParadoxClone; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts deleted file mode 100644 index 1d2879c867..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { REVOLUTIONARY_MECHANICAL_DESCRIPTION } from './headrevolutionary'; - -const Provocateur: Antagonist = { - key: 'provocateur', - name: 'Provocateur', - description: [ - ` - A form of head revolutionary that can activate when joining an ongoing - shift. - `, - - REVOLUTIONARY_MECHANICAL_DESCRIPTION, - ], - category: Category.Latejoin, -}; - -export default Provocateur; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts deleted file mode 100644 index 241b52b3e4..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Revenant: Antagonist = { - key: 'revenant', - name: 'Revenant', - description: [ - ` - Become the mysterious revenant. Break windows, overload lights, and eat - the crew's life force, all while talking to your old community of - disgruntled ghosts. - `, - ], - category: Category.Midround, -}; - -export default Revenant; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts deleted file mode 100644 index e69db3bec3..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const SentientCreature: Antagonist = { - key: 'sentiencepotionspawn', - name: 'Sentient Creature', - description: [ - ` - Either by cosmic happenstance, or due to crew's shenanigans, you have been - given sentience! - `, - - ` - This is a blanket preference. The more benign ones include random human - level intelligence events, the cargorilla, and creatures uplifted via sentience - potions. The less friendly ones include the regal rat, and the boosted - mining elite mobs. - `, - ], - category: Category.Midround, -}; - -export default SentientCreature; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts deleted file mode 100644 index 4a11cc94d1..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const SpaceDragon: Antagonist = { - key: 'spacedragon', - name: 'Space Dragon', - description: [ - ` - Become a ferocious space dragon. Breathe fire, summon an army of space - carps, crush walls, and terrorize the station. - `, - ], - category: Category.Midround, -}; - -export default SpaceDragon; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts deleted file mode 100644 index e6db1b96f9..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const SpaceNinja: Antagonist = { - key: 'spaceninja', - name: 'Space Ninja', - description: [ - ` - The Spider Clan practice a sort of augmentation of human flesh in order to - achieve a more perfect state of being and follow Postmodern Space Bushido. - `, - - ` - Become a conniving space ninja, equipped with a katana, gloves to hack - into airlocks and APCs, a suit to make you go near-invisible, - as well as a variety of abilities in your kit. Hack into arrest consoles - to mark everyone as arrest, and even hack into communication consoles to - summon more threats to cause chaos on the station! - `, - ], - category: Category.Midround, -}; - -export default SpaceNinja; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts deleted file mode 100644 index b004b972d4..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Spy: Antagonist = { - key: 'spy', - name: 'Spy', - description: [ - ` - Your mission, should you choose to accept it: Infiltrate Space Station 13. - Disguise yourself as a member of their crew and steal vital equipment. - Should you be caught or killed, your employer will disavow any knowledge - of your actions. Good luck agent. - `, - - ` - Complete Spy Bounties to earn rewards from your employer. - Use these rewards to sow chaos and mischief! - `, - ], - category: Category.Roundstart, -}; - -export default Spy; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts deleted file mode 100644 index 20ba22ee07..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { CHANGELING_MECHANICAL_DESCRIPTION } from './changeling'; - -const Stowaway_Changeling: Antagonist = { - key: 'stowawaychangeling', - name: 'Stowaway Changeling', - description: [ - ` - A Changeling that found its way onto the shuttle - unbeknownst to the crewmembers on board. - `, - CHANGELING_MECHANICAL_DESCRIPTION, - ], - category: Category.Latejoin, -}; - -export default Stowaway_Changeling; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts deleted file mode 100644 index 45ad29292b..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { TRAITOR_MECHANICAL_DESCRIPTION } from './traitor'; - -const SyndicateInfiltrator: Antagonist = { - key: 'syndicateinfiltrator', - name: 'Syndicate Infiltrator', - description: [ - 'A form of traitor that can activate when joining an ongoing shift.', - TRAITOR_MECHANICAL_DESCRIPTION, - ], - category: Category.Latejoin, - priority: -1, -}; - -export default SyndicateInfiltrator; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts deleted file mode 100644 index 4a680e5d34..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { TRAITOR_MECHANICAL_DESCRIPTION } from './traitor'; - -const SyndicateSleeperAgent: Antagonist = { - key: 'syndicatesleeperagent', - name: 'Syndicate Sleeper Agent', - description: [ - ` - A form of traitor that can activate at any point in the middle - of the shift. - `, - TRAITOR_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, - priority: -1, -}; - -export default SyndicateSleeperAgent; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts deleted file mode 100644 index ccb6391998..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const TRAITOR_MECHANICAL_DESCRIPTION = ` - Start with an uplink to purchase your gear and take on your sinister - objectives. Ascend through the ranks and become an infamous legend. - `; - -const Traitor: Antagonist = { - key: 'traitor', - name: 'Traitor', - description: [ - ` - An unpaid debt. A score to be settled. Maybe you were just in the wrong - place at the wrong time. Whatever the reasons, you were selected to - infiltrate Space Station 13. - `, - TRAITOR_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, - priority: -1, -}; - -export default Traitor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts deleted file mode 100644 index 62530a26f6..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Antagonist, Category } from '../base'; - -export const WIZARD_MECHANICAL_DESCRIPTION = ` - Choose between a variety of powerful spells in order to cause chaos - among Space Station 13. - `; - -const Wizard: Antagonist = { - key: 'wizard', - name: 'Wizard', - description: [ - `"GREETINGS. WE'RE THE WIZARDS OF THE WIZARD'S FEDERATION."`, - WIZARD_MECHANICAL_DESCRIPTION, - ], - category: Category.Roundstart, -}; - -export default Wizard; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts deleted file mode 100644 index b36a9f5170..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Antagonist, Category } from '../base'; -import { WIZARD_MECHANICAL_DESCRIPTION } from './wizard'; - -const WizardMidround: Antagonist = { - key: 'wizardmidround', - name: 'Wizard (Midround)', - description: [ - 'A form of wizard that is offered to ghosts in the middle of the shift.', - WIZARD_MECHANICAL_DESCRIPTION, - ], - category: Category.Midround, -}; - -export default WizardMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts deleted file mode 100644 index a9a1960f3b..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Antagonist, Category } from '../base'; - -const Xenomorph: Antagonist = { - key: 'xenomorph', - name: 'Xenomorph', - description: [ - ` - Become the extraterrestrial xenomorph. Start as a larva, and progress - your way up the caste, including even the Queen! - `, - ], - category: Category.Midround, -}; - -export default Xenomorph; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts deleted file mode 100644 index a91b6af878..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * This folder represents the antagonists you can choose in the preferences - * menu. - * - * Every file in this folder represents one antagonist. - * - * For example "Syndicate Sleeper Agent" -> syndicatesleeperagent.ts - * - * "Antagonist" in this context actually means ruleset. - * This is an important distinction--it means that players can choose to be - * a roundstart traitor, but not a latejoin traitor. - * - * Icons are generated from the antag datums themselves, provided by the - * `antag_datum` variable on the /datum/dynamic_ruleset. - * - * The icon used is whatever the return value of get_preview_icon() is. - * Most antagonists, unless they want an especially cool effect, can simply - * set preview_outfit to some typepath representing their character. - */ - -export type Antagonist = { - // the antag_flag, made lowercase, and with non-alphanumerics removed. - key: string; - - name: string; - description: string[]; - category: Category; - priority?: number; -}; - -export enum Category { - Roundstart, - Midround, - Latejoin, -} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts deleted file mode 100644 index ff8d1b112a..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { sendAct } from '../../backend'; - -export enum GamePreferencesSelectedPage { - Settings, - Keybindings, -} - -export const createSetPreference = - (act: typeof sendAct, preference: string) => (value: unknown) => { - act('set_preference', { - preference, - value, - }); - }; - -export enum Window { - Character = 0, - Game = 1, - Keybindings = 2, -} - -export type PreferencesMenuData = { - character_profiles: (string | null)[]; - - character_preferences: { - game_preferences: Record; - }; - - active_slot: number; - - window: Window; -}; - -export type ServerData = { - [otheyKey: string]: unknown; -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx deleted file mode 100644 index e64e62f8ff..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx +++ /dev/null @@ -1,31 +0,0 @@ -// import { exhaustiveCheck } from 'common/exhaustive'; - -import { useBackend } from '../../backend'; -// import { CharacterPreferenceWindow } from './CharacterPreferenceWindow'; -import { - GamePreferencesSelectedPage, - PreferencesMenuData, - Window, -} from './data'; -import { GamePreferenceWindow } from './GamePreferenceWindow'; - -export const PreferencesMenu = (props) => { - const { data } = useBackend(); - - const window = data.window; - - switch (window) { - // case Window.Character: - // return ; - case Window.Game: - return ; - case Window.Keybindings: - return ( - - ); - // default: - // exhaustiveCheck(window); - } -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx deleted file mode 100644 index 452eb67751..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx +++ /dev/null @@ -1,267 +0,0 @@ -import { sortBy } from 'common/collections'; -import { BooleanLike } from 'common/react'; -import { - ComponentType, - createElement, - ReactNode, - useEffect, - useState, -} from 'react'; - -import { sendAct, useBackend } from '../../../../backend'; -import { - Box, - Button, - Dropdown, - Input, - NumberInput, - Slider, - Stack, -} from '../../../../components'; -import { createSetPreference, PreferencesMenuData } from '../../data'; -import { ServerPreferencesFetcher } from '../../ServerPreferencesFetcher'; - -export const sortChoices = (array: [string, ReactNode][]) => - sortBy(array, ([name]) => name); - -export type Feature< - TReceiving, - TSending = TReceiving, - TServerData = undefined, -> = { - name: string; - component: FeatureValue; - category?: string; - description?: string; -}; - -/** - * Represents a preference. - * TReceiving = The type you will be receiving - * TSending = The type you will be sending - * TServerData = The data the server sends through preferences.json - */ -type FeatureValue< - TReceiving, - TSending = TReceiving, - TServerData = undefined, -> = ComponentType>; - -export type FeatureValueProps< - TReceiving, - TSending = TReceiving, - TServerData = undefined, -> = Readonly<{ - act: typeof sendAct; - featureId: string; - handleSetValue: (newValue: TSending) => void; - serverData: TServerData | undefined; - shrink?: boolean; - value: TReceiving; -}>; - -export const FeatureColorInput = (props: FeatureValueProps) => { - return ( - - ); -}; - -export type FeatureToggle = Feature; - -export const CheckboxInput = ( - props: FeatureValueProps, -) => { - return ( - { - props.handleSetValue(!props.value); - }} - /> - ); -}; - -export const CheckboxInputInverse = ( - props: FeatureValueProps, -) => { - return ( - { - props.handleSetValue(!props.value); - }} - /> - ); -}; - -export function createDropdownInput( - // Map of value to display texts - choices: Record, - dropdownProps?: Record, -): FeatureValue { - return (props: FeatureValueProps) => { - return ( - { - return { - displayText: label, - value: dataValue, - }; - }, - )} - {...dropdownProps} - /> - ); - }; -} - -export type FeatureChoicedServerData = { - choices: string[]; - display_names?: Record; - icons?: Record; -}; - -export type FeatureChoiced = Feature; - -export type FeatureNumericData = { - minimum: number; - maximum: number; - step: number; -}; - -export type FeatureNumeric = Feature; - -export const FeatureNumberInput = ( - props: FeatureValueProps, -) => { - if (!props.serverData) { - return Loading...; - } - - return ( - { - props.handleSetValue(value); - }} - minValue={props.serverData.minimum} - maxValue={props.serverData.maximum} - step={props.serverData.step} - value={props.value} - /> - ); -}; - -export const FeatureSliderInput = ( - props: FeatureValueProps, -) => { - if (!props.serverData) { - return Loading...; - } - - return ( - { - props.handleSetValue(value); - }} - minValue={props.serverData.minimum} - maxValue={props.serverData.maximum} - step={props.serverData.step} - value={props.value} - stepPixelSize={10} - /> - ); -}; - -export const FeatureValueInput = (props: { - feature: Feature; - featureId: string; - shrink?: boolean; - value: unknown; - - act: typeof sendAct; -}) => { - const { data } = useBackend(); - - const feature = props.feature; - - const [predictedValue, setPredictedValue] = useState(props.value); - - const changeValue = (newValue: unknown) => { - setPredictedValue(newValue); - createSetPreference(props.act, props.featureId)(newValue); - }; - - useEffect(() => { - setPredictedValue(props.value); - }, [data.active_slot, props.value]); - - return ( - { - return createElement(feature.component, { - act: props.act, - featureId: props.featureId, - serverData: serverData?.[props.featureId] as any, - shrink: props.shrink, - - handleSetValue: changeValue, - value: predictedValue, - }); - }} - /> - ); -}; - -export type FeatureShortTextData = { - maximum_length: number; -}; - -export const FeatureShortTextInput = ( - props: FeatureValueProps, -) => { - if (!props.serverData) { - return Loading...; - } - - return ( - props.handleSetValue(value)} - /> - ); -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx deleted file mode 100644 index 32e1161e63..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import { classes } from 'common/react'; -import { capitalizeFirst } from 'common/string'; -import { ReactNode } from 'react'; - -import { Box, Dropdown, Stack } from '../../../../components'; -import { Feature, FeatureChoicedServerData, FeatureValueProps } from './base'; - -type DropdownInputProps = FeatureValueProps< - string, - string, - FeatureChoicedServerData -> & - Partial<{ - disabled: boolean; - buttons: boolean; - }>; - -type IconnedDropdownInputProps = FeatureValueProps< - string, - string, - FeatureChoicedServerData ->; - -export type FeatureWithIcons = Feature; - -export function FeatureDropdownInput(props: DropdownInputProps) { - const { serverData, disabled, buttons, handleSetValue, value } = props; - - if (!serverData) { - return null; - } - - const { choices, display_names } = serverData; - - const dropdownOptions = choices.map((choice) => { - let displayText: ReactNode = display_names - ? display_names[choice] - : capitalizeFirst(choice); - - return { - displayText, - value: choice, - }; - }); - - let display_text = value; - if (display_names) { - display_text = display_names[value]; - } - - return ( - - ); -} - -export function FeatureIconnedDropdownInput(props: IconnedDropdownInputProps) { - const { serverData, handleSetValue, value } = props; - - if (!serverData) { - return null; - } - - const { choices, display_names, icons } = serverData; - - const dropdownOptions = choices.map((choice) => { - let displayText: ReactNode = display_names - ? display_names[choice] - : capitalizeFirst(choice); - - if (icons?.[choice]) { - displayText = ( - - - - - {displayText} - - ); - } - - return { - displayText, - value: choice, - }; - }); - - let display_text = value; - if (display_names) { - display_text = display_names[value]; - } - - return ( - - ); -} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx deleted file mode 100644 index f9f8fec97b..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const CHAT_ATTACKLOGS: FeatureToggle = { - name: 'Attack Log Messages', - category: 'ADMIN', - description: 'Show attack logs.', - component: CheckboxInput, -}; - -export const CHAT_DEBUGLOGS: FeatureToggle = { - name: 'Debug Logs', - category: 'ADMIN', - description: 'Show debug logs.', - component: CheckboxInput, -}; - -export const CHAT_PRAYER: FeatureToggle = { - name: 'Chat Prayers', - category: 'ADMIN', - description: 'Show prayers.', - component: CheckboxInput, -}; - -export const SOUND_ADMINHELP: FeatureToggle = { - name: 'Adminhelp Sound', - category: 'ADMIN', - description: 'Enables playing the bwoink when a new adminhelp is sent.', - component: CheckboxInput, -}; - -export const CHAT_RADIO: FeatureToggle = { - name: 'Radio Chatter', - category: 'ADMIN', - description: 'Completely enable/disable hearing any radio anywhere.', - component: CheckboxInput, -}; - -export const CHAT_RLOOC: FeatureToggle = { - name: 'Remote LOOC Chat', - category: 'ADMIN', - description: 'Hear LOOC from anywhere.', - component: CheckboxInput, -}; - -export const CHAT_ADSAY: FeatureToggle = { - name: 'Living Deadchat', - category: 'ADMIN', - description: 'Enables seeing deadchat when not observing.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx deleted file mode 100644 index 10c081f060..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const CHAT_SHOWICONS: FeatureToggle = { - name: 'Chat Tags', - category: 'CHAT', - description: 'Show tags/badges on special channels like OOC.', - component: CheckboxInput, -}; - -export const SHOW_TYPING: FeatureToggle = { - name: 'Typing Indicator', - category: 'CHAT', - description: 'Show a typing indicator when you are typing ingame.', - component: CheckboxInput, -}; - -export const SHOW_TYPING_SUBTLE: FeatureToggle = { - name: 'Typing Indicator: Subtle', - category: 'CHAT', - description: 'Show typing indicator for subtle and whisper messages.', - component: CheckboxInput, -}; - -export const CHAT_OOC: FeatureToggle = { - name: 'OOC Chat', - category: 'CHAT', - description: 'Enables OOC chat.', - component: CheckboxInput, -}; - -export const CHAT_LOOC: FeatureToggle = { - name: 'LOOC Chat', - category: 'CHAT', - description: 'Enables L(ocal)OOC chat.', - component: CheckboxInput, -}; - -export const CHAT_DEAD: FeatureToggle = { - name: 'Dead Chat', - category: 'CHAT', - description: 'Enables observer/dead/ghost chat.', - component: CheckboxInput, -}; - -export const CHAT_MENTION: FeatureToggle = { - name: 'Emphasize Name Mention', - category: 'CHAT', - description: - 'Makes messages containing your name or nickname appear larger to get your attention.', - component: CheckboxInput, -}; - -export const VORE_HEALTH_BARS: FeatureToggle = { - name: 'Vore Health Bars', - category: 'CHAT', - description: - 'Periodically shows status health bars in chat occasionally during vore absorption/digestion.', - component: CheckboxInput, -}; - -export const NEWS_POPUP: FeatureToggle = { - name: 'Lore News Popups', - category: 'CHAT', - description: 'Show new lore news on login.', - component: CheckboxInput, -}; - -export const RECEIVE_TIPS: FeatureToggle = { - name: 'Receive Tips Periodically', - category: 'CHAT', - description: 'Show helpful tips for new players periodically.', - component: CheckboxInput, -}; - -export const PAIN_FREQUENCY: FeatureToggle = { - name: 'Pain Message Cooldown', - category: 'CHAT', - description: - 'When enabled, reduces the amount of pain messages for minor wounds that you see.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx deleted file mode 100644 index 10cc2297af..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const WHISUBTLE_VIS: FeatureToggle = { - name: 'Allow ghosts to see whispers/subtles', - category: 'GHOST', - description: 'Enables ghosts to see your whispers and subtle emotes.', - component: CheckboxInput, -}; - -export const GHOST_SEE_WHISUBTLE: FeatureToggle = { - name: 'See whispers/subtles as ghost', - category: 'GHOST', - description: 'As a ghost, see whispers and subtles.', - component: CheckboxInput, -}; - -export const CHAT_GHOSTEARS: FeatureToggle = { - name: 'Ghost Ears', - category: 'GHOST', - description: 'When enabled, hear all speech; otherwise, only hear nearby.', - component: CheckboxInput, -}; - -export const CHAT_GHOSTSIGHT: FeatureToggle = { - name: 'Ghost Sight', - category: 'GHOST', - description: 'When enabled, hear all emotes; otherwise, only hear nearby.', - component: CheckboxInput, -}; - -export const CHAT_GHOSTRADIO: FeatureToggle = { - name: 'Ghost Radio', - category: 'GHOST', - description: 'When enabled, hear all radio; otherwise, only hear nearby.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx deleted file mode 100644 index 33e63600a4..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const AMBIENT_OCCLUSION_PREF: FeatureToggle = { - name: 'Enable ambient occlusion', - category: 'GAMEPLAY', - description: 'Enable ambient occlusion, light shadows around characters.', - component: CheckboxInput, -}; - -export const MOB_TOOLTIPS: FeatureToggle = { - name: 'Enable mob tooltips', - category: 'GAMEPLAY', - description: 'Enable tooltips when hovering over mobs.', - component: CheckboxInput, -}; - -export const INV_TOOLTIPS: FeatureToggle = { - name: 'Enable inventory tooltips', - category: 'GAMEPLAY', - description: 'Enable tooltips when hovering over inventory items.', - component: CheckboxInput, -}; - -export const ATTACK_ICONS: FeatureToggle = { - name: 'Attack Icons', - category: 'GAMEPLAY', - description: - 'Enable showing an overlay of what a mob was hit with during the attack animation.', - component: CheckboxInput, -}; - -export const PRECISE_PLACEMENT: FeatureToggle = { - name: 'Precision Placement', - category: 'GAMEPLAY', - description: - 'Objects placed on table will be on cursor position when enabled, or centered when disabled.', - component: CheckboxInput, -}; - -export const HUD_HOTKEYS: FeatureToggle = { - name: 'Hotkeys Default', - category: 'GAMEPLAY', - description: 'Enables turning hotkey mode on by default.', - component: CheckboxInput, -}; - -export const SHOW_PROGRESS: FeatureToggle = { - name: 'Progress Bar', - category: 'GAMEPLAY', - description: 'Enables seeing progress bars for various actions.', - component: CheckboxInput, -}; - -export const SAFE_FIRING: FeatureToggle = { - name: 'Gun Firing Intent Requirement', - category: 'GAMEPLAY', - description: 'When enabled, firing a gun requires a non-help intent to fire.', - component: CheckboxInput, -}; - -export const SHOW_STATUS: FeatureToggle = { - name: 'Status Indicators', - category: 'GAMEPLAY', - description: "Enables seeing status indicators over people's heads.", - component: CheckboxInput, -}; - -export const AUTO_AFK: FeatureToggle = { - name: 'Automatic AFK Status', - category: 'GAMEPLAY', - description: - 'When enabled, you will automatically be marked as AFK if you are idle for too long.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx deleted file mode 100644 index 832c3d79fe..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const RUNECHAT_MOB: FeatureToggle = { - name: 'Runechat: Mobs', - category: 'RUNECHAT', - description: 'Chat messages will show above heads.', - component: CheckboxInput, -}; - -export const RUNECHAT_OBJ: FeatureToggle = { - name: 'Runechat: Objects', - category: 'RUNECHAT', - description: 'Chat messages will show above objects when they speak.', - component: CheckboxInput, -}; - -export const RUNECHAT_BORDER: FeatureToggle = { - name: 'Runechat: Letter Borders', - category: 'RUNECHAT', - description: 'Enables a border around each letter in a runechat message.', - component: CheckboxInput, -}; - -export const RUNECHAT_LONG: FeatureToggle = { - name: 'Runechat: Long Messages', - category: 'RUNECHAT', - description: 'Sets runechat to show more characters.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx deleted file mode 100644 index 937fe35486..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx +++ /dev/null @@ -1,156 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const SOUND_MIDI: FeatureToggle = { - name: 'Play Admin MIDIs', - category: 'SOUNDS', - description: 'Enable hearing admin played sounds.', - component: CheckboxInput, -}; - -export const SOUND_LOBBY: FeatureToggle = { - name: 'Play Lobby Music', - category: 'SOUNDS', - description: 'Enable hearing lobby music.', - component: CheckboxInput, -}; - -export const SOUND_AMBIENCE: FeatureToggle = { - name: 'Play Ambience', - category: 'SOUNDS', - description: 'Enable hearing ambient sounds and music.', - component: CheckboxInput, -}; - -export const SOUND_JUKEBOX: FeatureToggle = { - name: 'Play Jukebox Music', - category: 'SOUNDS', - description: 'Enable hearing music from the jukebox.', - component: CheckboxInput, -}; - -export const SOUND_INSTRUMENT: FeatureToggle = { - name: 'Hear In-game Instruments', - category: 'SOUNDS', - description: 'Enable hearing instruments playing.', - component: CheckboxInput, -}; - -export const EMOTE_NOISES: FeatureToggle = { - name: 'Emote Noises', - category: 'SOUNDS', - description: 'Enable hearing noises from emotes.', - component: CheckboxInput, -}; - -export const RADIO_SOUNDS: FeatureToggle = { - name: 'Radio Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when somebody speaks over your headset.', - component: CheckboxInput, -}; - -export const SAY_SOUNDS: FeatureToggle = { - name: 'Say Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when somebody speaks using say.', - component: CheckboxInput, -}; - -export const EMOTE_SOUNDS: FeatureToggle = { - name: 'Me Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when somebody uses me.', - component: CheckboxInput, -}; - -export const WHISPER_SOUNDS: FeatureToggle = { - name: 'Whisper Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when somebody speaks using whisper.', - component: CheckboxInput, -}; - -export const SUBTLE_SOUNDS: FeatureToggle = { - name: 'Subtle Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when somebody uses subtle.', - component: CheckboxInput, -}; - -export const SOUND_AIRPUMP: FeatureToggle = { - name: 'Air Pump Ambient Noise', - category: 'SOUNDS', - description: 'Enable hearing air vent humming.', - component: CheckboxInput, -}; - -export const SOUND_OLDDOORS: FeatureToggle = { - name: 'Old Door Sounds', - category: 'SOUNDS', - description: 'Switch to old door sounds.', - component: CheckboxInput, -}; - -export const SOUND_DEPARTMENTDOORS: FeatureToggle = { - name: 'Department Door Sounds', - category: 'SOUNDS', - description: 'Enable hearing department-specific door sounds.', - component: CheckboxInput, -}; - -export const SOUND_PICKED: FeatureToggle = { - name: 'Picked-Up Item Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when items are picked up.', - component: CheckboxInput, -}; - -export const SOUND_DROPPED: FeatureToggle = { - name: 'Dropped Item Sounds', - category: 'SOUNDS', - description: 'Enable hearing a sound when items are dropped.', - component: CheckboxInput, -}; - -export const SOUND_WEATHER: FeatureToggle = { - name: 'Weather Sounds', - category: 'SOUNDS', - description: 'Enable hearing weather sounds while on a planet.', - component: CheckboxInput, -}; - -export const SOUND_SUPERMATTER: FeatureToggle = { - name: 'Supermatter Hum', - category: 'SOUNDS', - description: 'Enable hearing supermatter hums.', - component: CheckboxInput, -}; - -export const SOUND_MENTORHELP: FeatureToggle = { - name: 'Mentorhelp Pings', - category: 'SOUNDS', - description: 'Enable hearing mentorhelp pings.', - component: CheckboxInput, -}; - -// Vorey sounds -export const BELCH_NOISES: FeatureToggle = { - name: 'Belch Noises', - category: 'SOUNDS', - description: 'Enable hearing burping noises.', - component: CheckboxInput, -}; - -export const EATING_NOISES: FeatureToggle = { - name: 'Eating Noises', - category: 'SOUNDS', - description: 'Enable hearing vore eating noises.', - component: CheckboxInput, -}; - -export const DIGEST_NOISES: FeatureToggle = { - name: 'Digestion Noises', - category: 'SOUNDS', - description: 'Enable hearing vore digestion noises.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx deleted file mode 100644 index 7292b65de7..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { CheckboxInput, FeatureToggle } from '../base'; - -export const BROWSER_STYLED: FeatureToggle = { - name: 'Use Fake NanoUI Browser Style', - category: 'UI', - description: 'Enable a dark fake NanoUI browser style for older UIs.', - component: CheckboxInput, -}; - -export const VCHAT_ENABLE: FeatureToggle = { - name: 'Enable TGChat', - category: 'UI', - description: 'Enable the TGChat chat panel.', - component: CheckboxInput, -}; - -export const TGUI_SAY: FeatureToggle = { - name: 'Say: Use TGUI', - category: 'UI', - description: 'Use TGUI for Say input.', - component: CheckboxInput, -}; - -export const TGUI_SAY_LIGHT_MODE: FeatureToggle = { - name: 'Say: Light mode', - category: 'UI', - description: 'Sets TGUI Say to use a light mode.', - component: CheckboxInput, -}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts deleted file mode 100644 index d8fa77f496..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -// Unlike species and others, feature files export arrays of features -// rather than individual ones. This is because a lot of features are -// extremely small, and so it's easier for everyone to just combine them -// together. -// This still helps to prevent the server from needing to send client UI data -import { Feature } from './base'; - -// while also preventing downstreams from needing to mutate existing files. -const features: Record> = {}; - -const requireFeature = require.context('./', true, /.tsx$/); - -for (const key of requireFeature.keys()) { - if (key === 'index' || key === 'base') { - continue; - } - - for (const [featureKey, feature] of Object.entries(requireFeature(key))) { - features[featureKey] = feature as Feature; - } -} - -export default features; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts deleted file mode 100644 index baac865559..0000000000 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts +++ /dev/null @@ -1,28 +0,0 @@ -export enum Gender { - Male = 'male', - Female = 'female', - Other = 'plural', - Other2 = 'neuter', -} - -export const GENDERS = { - [Gender.Male]: { - icon: 'mars', - text: 'He/Him', - }, - - [Gender.Female]: { - icon: 'venus', - text: 'She/Her', - }, - - [Gender.Other]: { - icon: 'transgender', - text: 'They/Them', - }, - - [Gender.Other2]: { - icon: 'neuter', - text: 'It/Its', - }, -}; diff --git a/tgui/public/tgui.bundle.css b/tgui/public/tgui.bundle.css index 7ccfd4497f..936856ffa3 100644 --- a/tgui/public/tgui.bundle.css +++ b/tgui/public/tgui.bundle.css @@ -1,4 +1,4 @@ -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)}.centered-image{position:absolute;height:100%;left:50%;top:50%;transform:translate(-50%) translateY(-50%) scale(.8)}.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-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-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-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}.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}@media all and (min-width: 100px){.fit-text{font-size:.1em}}@media all and (min-width: 200px){.fit-text{font-size:.2em}}@media all and (min-width: 300px){.fit-text{font-size:.3em}}@media all and (min-width: 400px){.fit-text{font-size:.4em}}@media all and (min-width: 500px){.fit-text{font-size:.5em}}@media all and (min-width: 600px){.fit-text{font-size:.6em}}@media all and (min-width: 700px){.fit-text{font-size:.7em}}@media all and (min-width: 800px){.fit-text{font-size:.8em}}@media all and (min-width: 900px){.fit-text{font-size:.9em}}@media all and (min-width: 1000px){.fit-text{font-size:1em}}@media all and (min-width: 1100px){.fit-text{font-size:1.1em}}@media all and (min-width: 1200px){.fit-text{font-size:1.2em}}@media all and (min-width: 1300px){.fit-text{font-size:1.3em}}@media all and (min-width: 1400px){.fit-text{font-size:1.4em}}@media all and (min-width: 1500px){.fit-text{font-size:1.5em}}@media all and (min-width: 1600px){.fit-text{font-size:1.6em}}@media all and (min-width: 1700px){.fit-text{font-size:1.7em}}@media all and (min-width: 1800px){.fit-text{font-size:1.8em}}@media all and (min-width: 1900px){.fit-text{font-size:1.9em}}a:link,a:visited{color:#2185d0}a:hover,a:active{color:#4972a1}.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-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}.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:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.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{text-overflow:ellipsis;overflow:hidden}.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--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--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:#252525;color:#fff;background-color:rgba(37,37,37,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:#3e3e3e;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}.Button__textMargin{margin-left:.4rem}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dialog{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.Dialog__content{background-color:#252525;font-family:Consolas,monospace;font-size:1.1666666667em;display:flex;flex-direction:column}.Dialog__header{display:flex;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);user-select:none;-ms-user-select:none}.Dialog__title{display:inline;font-style:italic;margin-left:1rem;margin-right:2rem;flex-grow:1;opacity:.33}.Dialog__body{margin:2rem 1rem;flex-grow:1}.Dialog__footer{display:flex;flex-direction:row;justify-content:flex-end;padding:1rem;background-color:rgba(0,0,0,.25)}.Dialog__button{margin:0 1rem;height:2rem;min-width:6rem;text-align:center}.SaveAsDialog__inputs{display:flex;flex-direction:row;align-items:center;padding-left:3rem;justify-content:flex-end;margin-right:1rem}.SaveAsDialog__input{margin-left:1rem;width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{position:relative;display:flex;flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;overflow:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:1rem}.Dialog__FileIcon{display:inline-block;margin:0 0 1rem;position:relative;width:6vh;height:auto;text-align:center;cursor:default}.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{display:flex;align-items:flex-start}.Dropdown__control{flex:1;font-family:Verdana,sans-serif;font-size:1em;overflow:hidden;-ms-user-select:none;user-select:none;width:8.3333333333em}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;align-items:center;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-scroll{overflow-y:scroll}.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.selected{background-color:rgba(255,255,255,.5)!important;transition:background-color 0ms}.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}.IconStack>.Icon{position:absolute;width:100%;text-align:center}.IconStack{position:relative;display:inline-block;height:1.2em;line-height:2em;vertical-align:middle}.IconStack:after{color:rgba(0,0,0,0);content:"."}.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--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}.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}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em}.MenuBar__hover:hover{background-color:#727272;transition:background-color 0ms}.MenuBar__MenuBarButton{padding:.2rem .5rem}.MenuBar__menu{position:absolute;z-index:5;background-color:#252525;padding:.3rem;box-shadow:4px 6px 5px -2px rgba(0,0,0,.55)}.MenuBar__MenuItem{z-index:5;transition:background-color .1s ease-out;background-color:#252525;white-space:nowrap;padding:.3rem 2rem .3rem 3rem}.MenuBar__MenuItemToggle{padding:.3rem 2rem .3rem 0}.MenuBar__MenuItemToggle__check{display:inline-block;vertical-align:middle;min-width:3rem;margin-left:.3rem}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.4166666667em}.MenuBar__Separator{display:block;margin:.3rem .3rem .3rem 2.3rem;border-top:1px solid rgba(0,0,0,.33)}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.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--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--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--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}.RoundGauge{font-size:1rem;width:2.6em;height:1.3em;margin:0 auto .2em}.RoundGauge__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:10;stroke-dasharray:157.08;stroke-dashoffset:157.08}.RoundGauge__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:10;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform 50ms ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:#db2828}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1)}.RoundGauge__alert.max{fill:#db2828}.RoundGauge--color--black.RoundGauge__ringFill{stroke:#1a1a1a}.RoundGauge--color--white.RoundGauge__ringFill{stroke:#fff}.RoundGauge--color--red.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:#f37f33}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:#fbda21}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:#cbe41c}.RoundGauge--color--green.RoundGauge__ringFill{stroke:#25ca4c}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:#00d6cc}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:#2e93de}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:#7349cf}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:#ad45d0}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:#e34da1}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:#b97447}.RoundGauge--color--grey.RoundGauge__ringFill{stroke:#848484}.RoundGauge--color--light-grey.RoundGauge__ringFill{stroke:#b3b3b3}.RoundGauge--color--good.RoundGauge__ringFill{stroke:#68c22d}.RoundGauge--color--average.RoundGauge__ringFill{stroke:#f29a29}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--label.RoundGauge__ringFill{stroke:#8b9bb0}.RoundGauge__alert--black{fill:#1a1a1a;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--white{fill:#fff;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--red{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--orange{fill:#f37f33;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--yellow{fill:#fbda21;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--olive{fill:#cbe41c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--green{fill:#25ca4c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--teal{fill:#00d6cc;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--blue{fill:#2e93de;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--violet{fill:#7349cf;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--purple{fill:#ad45d0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--pink{fill:#e34da1;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--brown{fill:#b97447;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--grey{fill:#848484;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--light-grey{fill:#b3b3b3;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--good{fill:#68c22d;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--average{fill:#f29a29;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--bad{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--label{fill:#8b9bb0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes RoundGauge__alertAnim{0%{opacity:.1}50%{opacity:1}to{opacity:.1}}.Section{position:relative;margin-bottom:.5em;background-color:#191919;background-color:rgba(0,0,0,.33);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}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.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--zebra>.Stack__item:nth-child(2n){background-color:rgba(0,0,0,.33)}.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:rgba(0,0,0,.33)}.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--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}.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}.TextArea__nowrap{white-space:nowrap;overflow-wrap:normal;overflow-x:scroll}.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}.ListInput__Section .Section__title{flex-shrink:0}.ListInput__Section .Section__titleText{font-size:1em}.ListInput__Loader{width:100%;position:relative;height:4px}.ListInput__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.InputModal__Section .Section__title{flex-shrink:0}.InputModal__Section .Section__titleText{font-size:1em;white-space:pre-line}.InputModal__Loader{width:100%;position:relative;height:4px}.InputModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.ObjectComponent__Titlebar{border-top-left-radius:12px;border-top-right-radius:12px;white-space:nowrap;-ms-user-select:none;user-select:none}.ObjectComponent__Content{white-space:nowrap;background-color:rgba(0,0,0,.5);-ms-user-select:none;user-select:none}.ObjectComponent__PortPos{position:absolute;top:0;left:0;right:0;bottom:0}.color-stroke-black{stroke:#000!important}.color-stroke-white{stroke:#d9d9d9!important}.color-stroke-red{stroke:#bd2020!important}.color-stroke-orange{stroke:#d95e0c!important}.color-stroke-yellow{stroke:#d9b804!important}.color-stroke-olive{stroke:#9aad14!important}.color-stroke-green{stroke:#1b9638!important}.color-stroke-teal{stroke:#009a93!important}.color-stroke-blue{stroke:#1c71b1!important}.color-stroke-violet{stroke:#552dab!important}.color-stroke-purple{stroke:#8b2baa!important}.color-stroke-pink{stroke:#cf2082!important}.color-stroke-brown{stroke:#8c5836!important}.color-stroke-grey{stroke:#646464!important}.color-stroke-light-grey{stroke:#919191!important}.color-stroke-good{stroke:#4d9121!important}.color-stroke-average{stroke:#cd7a0d!important}.color-stroke-bad{stroke:#bd2020!important}.color-stroke-label{stroke:#657a94!important}.AlertModal__Message{text-align:center;justify-content:center}.AlertModal__Buttons{justify-content:center}.AlertModal__Loader{width:100%;position:relative;height:4px}.AlertModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{position:absolute;top:0;left:0;right:0;height:2em;line-height:2em;margin:.25em 1em 0}.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em;margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.Changelog__Button{height:22px}.Changelog__Cell{padding:3px 0}.Changelog__Cell--Icon{width:25px}.CrewManifest--Command .Section__title{border-color:#fbd608}.CrewManifest--Command .Section__titleText{color:#fbd608}.CrewManifest--Security .Section__title{border-color:#db2828}.CrewManifest--Security .Section__titleText{color:#db2828}.CrewManifest--Engineering .Section__title{border-color:#f2711c}.CrewManifest--Engineering .Section__titleText{color:#f2711c}.CrewManifest--Medical .Section__title{border-color:#00b5ad}.CrewManifest--Medical .Section__titleText{color:#00b5ad}.CrewManifest--Misc .Section__title{border-color:#fff}.CrewManifest--Misc .Section__titleText{color:#fff}.CrewManifest--Science .Section__title{border-color:#a333c8}.CrewManifest--Science .Section__titleText{color:#a333c8}.CrewManifest--Supply .Section__title{border-color:#a5673f}.CrewManifest--Supply .Section__titleText{color:#a5673f}.CrewManifest--Service .Section__title{border-color:#20b142}.CrewManifest--Service .Section__titleText{color:#20b142}.CrewManifest--Silicon .Section__title{border-color:#e03997}.CrewManifest--Silicon .Section__titleText{color:#e03997}.CrewManifest__Cell{padding:3px 0}.CrewManifest__Cell--Rank{color:#7e90a7}.CrewManifest__Icons{padding:3px 9px;text-align:right}.CrewManifest__Icon{color:#7e90a7;position:relative}.CrewManifest__Icon:not(:last-child){margin-right:7px}.CrewManifest__Icon--Chevron{padding-right:2px}.CrewManifest__Icon--Command{color:#fbd608}.ExperimentTechwebServer__Web,.ExperimentConfigure__ExperimentPanel{background:#000;border:1px solid #40628a;margin:3px 0}.ExperimentTechwebServer__WebHeader{background:#40628a;padding:2px}.ExperimentTechwebServer__WebName{font-size:18px}.ExperimentTechwebServer__WebContent{padding:4px}.ExperimentTechwebServer__WebContent>.LabeledList{margin:.25rem .25rem .25rem 1rem}.ExperimentConfigure__ExperimentName{font-weight:700;border-radius:0}.ExperimentConfigure__ExperimentContent{padding:.25rem 1.5rem .25rem .25rem}.ExperimentStage__Indicator{font-weight:700;margin-right:1rem;text-align:center}.ExperimentStage__StageContainer.complete .ExperimentStage__Description{opacity:.4;text-decoration:line-through}.ExperimentStage__StageContainer{margin-bottom:5px}.ExperimentStage__Table{border-collapse:separate;border-spacing:.25rem .25rem}.ExperimentConfigure__PerformExperiment{text-align:center;padding:.75rem 0}.ExperimentConfigure__ExperimentsContainer{height:100%;display:flex;flex-direction:column}.ExperimentConfigure__ExperimentsContainer>:last-child{flex:1;overflow-y:auto}.ExperimentConfigure__TagContainer{position:absolute;right:0;top:0}.ExperimentConfigure__PerformanceHint *{position:absolute;width:100%;height:100%;right:0;top:0;color:rgba(255,255,255,.5)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==);background-size:70%;background-position:center;background-repeat:no-repeat}.Paper__Stamp{position:absolute;pointer-events:none;-ms-user-select:none;user-select:none}.Paper__Page{word-break:break-word;word-wrap:break-word}.Roulette__container{display:flex}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:1px solid #fff;vertical-align:bottom}.Roulette__board-cell-number{width:35px}.Roulette__board-cell-number--colspan-2{width:71px}.Roulette__board-cell-number--colspan-4{width:143px}.Roulette__board-button{display:table-cell!important;border:none!important;width:inherit;height:40px;padding:0;margin:0;text-align:center;vertical-align:middle;color:#fff!important}.Roulette__board-button--rowspan-3{height:122px}.Roulette__board-button-text{text-align:center;font-size:16px;font-weight:700}.Roulette__lowertable{margin-top:8px;border-collapse:collapse;border:1px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:16px;font-weight:700}.Safe__engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe__engraving-arrow{color:#35435a}.Safe__engraving-hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe__dialer{margin-bottom:1.25rem}.Safe__dialer .Button{width:80px}.Safe__dialer-right .Button i{z-index:-100}.Safe__dialer-number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe__contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe__help{position:absolute;top:73%;left:10px;width:50%;font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(to bottom,#b2ae74,#8e8b5d);transform:rotate(-1deg)}.Safe__help:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(to bottom,transparent 0%,#ffffff 100%);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.TachyonArray__ActiveRecord{margin:0 .5em 0 .8em}.TachyonArray__Content{overflow-x:hidden;overflow-y:auto}.TachyonArray__ResearchFooter>*{width:100%;text-align:center}.Techweb__NodeProgress{margin-bottom:1rem}.Techweb__NodeProgress>*:not(:last-child){margin-right:.4rem}.Techweb__DesignIcon{margin-left:.25rem;margin-right:.25rem}.Techweb__OverviewNodes{overflow-y:auto;overflow-x:hidden;padding-right:6px;padding-top:4px}.Techweb__HeaderContent{background-color:#000;padding:6px;border:1px solid #40628a}.Techweb__HeaderContent>*>:not(:last-child){margin-bottom:5px}.Techweb__HeaderSectionTabs{margin-top:8px;background-color:#000;border:1px solid #40628a;padding-left:5px;padding-right:5px}.Techweb__HeaderTabTitle{border-right:1px solid #40628a;padding-right:.5em;margin-right:.5em;font-weight:700}.Techweb__HeaderSectionTabs input{background-color:rgba(255,255,255,.05)}.Techweb__PointSummary{list-style:none;margin:.4em 0 0 1em;padding:0}.Techweb__SecProtocol{color:#db2828;margin-left:.2em}.Techweb__SecProtocol.engaged{color:#5baa27}.Techweb__DesignModal>:not(:last-child){margin-bottom:.5em}.Techweb__LockedModal>:not(:last-child){margin-bottom:.5em}.Techweb__ExperimentDiscount{color:#7e90a7;margin:.5em 0}.IDCard__NamePlate{margin-left:-6px;margin-right:-6px;margin-top:6px;padding:.5em;border-top:.1666666667em solid #4972a1;font-size:1.1666666667em;font-weight:700}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent,.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent{text-align:right;background-color:#4d9121}.TinderMessage_First_Sent{border-radius:10px 10px 0}.TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{text-align:left;background-color:#cd7a0d}.TinderMessage_First_Received{border-radius:10px 10px 10px 0}.TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.ClassicMessage_Sent,.ClassicMessage_Received{word-break:break-all}.ClassicMessage_Sent{color:#4d9121}.ClassicMessage_Received{color:#cd7a0d}.Section--elevator--fire{background-color:#f33;background-color:rgba(255,0,0,.35)}.Section--elevator--fire>.Section__title{padding:.5em;border-bottom:.1666666667em solid red}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.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}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content .Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;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}.TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.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}.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}.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}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(to bottom,#2a2a2a,#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(62,62,62,.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}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! +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)}.centered-image{position:absolute;height:100%;left:50%;top:50%;transform:translate(-50%) translateY(-50%) scale(.8)}.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-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-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-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}.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}@media all and (min-width: 100px){.fit-text{font-size:.1em}}@media all and (min-width: 200px){.fit-text{font-size:.2em}}@media all and (min-width: 300px){.fit-text{font-size:.3em}}@media all and (min-width: 400px){.fit-text{font-size:.4em}}@media all and (min-width: 500px){.fit-text{font-size:.5em}}@media all and (min-width: 600px){.fit-text{font-size:.6em}}@media all and (min-width: 700px){.fit-text{font-size:.7em}}@media all and (min-width: 800px){.fit-text{font-size:.8em}}@media all and (min-width: 900px){.fit-text{font-size:.9em}}@media all and (min-width: 1000px){.fit-text{font-size:1em}}@media all and (min-width: 1100px){.fit-text{font-size:1.1em}}@media all and (min-width: 1200px){.fit-text{font-size:1.2em}}@media all and (min-width: 1300px){.fit-text{font-size:1.3em}}@media all and (min-width: 1400px){.fit-text{font-size:1.4em}}@media all and (min-width: 1500px){.fit-text{font-size:1.5em}}@media all and (min-width: 1600px){.fit-text{font-size:1.6em}}@media all and (min-width: 1700px){.fit-text{font-size:1.7em}}@media all and (min-width: 1800px){.fit-text{font-size:1.8em}}@media all and (min-width: 1900px){.fit-text{font-size:1.9em}}a:link,a:visited{color:#2185d0}a:hover,a:active{color:#4972a1}.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-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}.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:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.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{text-overflow:ellipsis;overflow:hidden}.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--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--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:#252525;color:#fff;background-color:rgba(37,37,37,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:#3e3e3e;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}.Button__textMargin{margin-left:.4rem}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dialog{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.Dialog__content{background-color:#252525;font-family:Consolas,monospace;font-size:1.1666666667em;display:flex;flex-direction:column}.Dialog__header{display:flex;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);user-select:none;-ms-user-select:none}.Dialog__title{display:inline;font-style:italic;margin-left:1rem;margin-right:2rem;flex-grow:1;opacity:.33}.Dialog__body{margin:2rem 1rem;flex-grow:1}.Dialog__footer{display:flex;flex-direction:row;justify-content:flex-end;padding:1rem;background-color:rgba(0,0,0,.25)}.Dialog__button{margin:0 1rem;height:2rem;min-width:6rem;text-align:center}.SaveAsDialog__inputs{display:flex;flex-direction:row;align-items:center;padding-left:3rem;justify-content:flex-end;margin-right:1rem}.SaveAsDialog__input{margin-left:1rem;width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{position:relative;display:flex;flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;overflow:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:1rem}.Dialog__FileIcon{display:inline-block;margin:0 0 1rem;position:relative;width:6vh;height:auto;text-align:center;cursor:default}.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{display:flex;align-items:flex-start}.Dropdown__control{flex:1;font-family:Verdana,sans-serif;font-size:1em;overflow:hidden;-ms-user-select:none;user-select:none;width:8.3333333333em}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;align-items:center;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-scroll{overflow-y:scroll}.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.selected{background-color:rgba(255,255,255,.5)!important;transition:background-color 0ms}.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}.IconStack>.Icon{position:absolute;width:100%;text-align:center}.IconStack{position:relative;display:inline-block;height:1.2em;line-height:2em;vertical-align:middle}.IconStack:after{color:rgba(0,0,0,0);content:"."}.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--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}.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}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em}.MenuBar__hover:hover{background-color:#727272;transition:background-color 0ms}.MenuBar__MenuBarButton{padding:.2rem .5rem}.MenuBar__menu{position:absolute;z-index:5;background-color:#252525;padding:.3rem;box-shadow:4px 6px 5px -2px rgba(0,0,0,.55)}.MenuBar__MenuItem{z-index:5;transition:background-color .1s ease-out;background-color:#252525;white-space:nowrap;padding:.3rem 2rem .3rem 3rem}.MenuBar__MenuItemToggle{padding:.3rem 2rem .3rem 0}.MenuBar__MenuItemToggle__check{display:inline-block;vertical-align:middle;min-width:3rem;margin-left:.3rem}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.4166666667em}.MenuBar__Separator{display:block;margin:.3rem .3rem .3rem 2.3rem;border-top:1px solid rgba(0,0,0,.33)}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.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--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--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--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}.RoundGauge{font-size:1rem;width:2.6em;height:1.3em;margin:0 auto .2em}.RoundGauge__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:10;stroke-dasharray:157.08;stroke-dashoffset:157.08}.RoundGauge__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:10;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform 50ms ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:#db2828}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1)}.RoundGauge__alert.max{fill:#db2828}.RoundGauge--color--black.RoundGauge__ringFill{stroke:#1a1a1a}.RoundGauge--color--white.RoundGauge__ringFill{stroke:#fff}.RoundGauge--color--red.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:#f37f33}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:#fbda21}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:#cbe41c}.RoundGauge--color--green.RoundGauge__ringFill{stroke:#25ca4c}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:#00d6cc}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:#2e93de}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:#7349cf}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:#ad45d0}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:#e34da1}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:#b97447}.RoundGauge--color--grey.RoundGauge__ringFill{stroke:#848484}.RoundGauge--color--light-grey.RoundGauge__ringFill{stroke:#b3b3b3}.RoundGauge--color--good.RoundGauge__ringFill{stroke:#68c22d}.RoundGauge--color--average.RoundGauge__ringFill{stroke:#f29a29}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--label.RoundGauge__ringFill{stroke:#8b9bb0}.RoundGauge__alert--black{fill:#1a1a1a;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--white{fill:#fff;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--red{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--orange{fill:#f37f33;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--yellow{fill:#fbda21;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--olive{fill:#cbe41c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--green{fill:#25ca4c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--teal{fill:#00d6cc;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--blue{fill:#2e93de;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--violet{fill:#7349cf;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--purple{fill:#ad45d0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--pink{fill:#e34da1;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--brown{fill:#b97447;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--grey{fill:#848484;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--light-grey{fill:#b3b3b3;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--good{fill:#68c22d;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--average{fill:#f29a29;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--bad{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--label{fill:#8b9bb0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes RoundGauge__alertAnim{0%{opacity:.1}50%{opacity:1}to{opacity:.1}}.Section{position:relative;margin-bottom:.5em;background-color:#191919;background-color:rgba(0,0,0,.33);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}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.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--zebra>.Stack__item:nth-child(2n){background-color:rgba(0,0,0,.33)}.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:rgba(0,0,0,.33)}.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--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}.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}.TextArea__nowrap{white-space:nowrap;overflow-wrap:normal;overflow-x:scroll}.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}.ListInput__Section .Section__title{flex-shrink:0}.ListInput__Section .Section__titleText{font-size:1em}.ListInput__Loader{width:100%;position:relative;height:4px}.ListInput__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.InputModal__Section .Section__title{flex-shrink:0}.InputModal__Section .Section__titleText{font-size:1em;white-space:pre-line}.InputModal__Loader{width:100%;position:relative;height:4px}.InputModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.ObjectComponent__Titlebar{border-top-left-radius:12px;border-top-right-radius:12px;white-space:nowrap;-ms-user-select:none;user-select:none}.ObjectComponent__Content{white-space:nowrap;background-color:rgba(0,0,0,.5);-ms-user-select:none;user-select:none}.ObjectComponent__PortPos{position:absolute;top:0;left:0;right:0;bottom:0}.color-stroke-black{stroke:#000!important}.color-stroke-white{stroke:#d9d9d9!important}.color-stroke-red{stroke:#bd2020!important}.color-stroke-orange{stroke:#d95e0c!important}.color-stroke-yellow{stroke:#d9b804!important}.color-stroke-olive{stroke:#9aad14!important}.color-stroke-green{stroke:#1b9638!important}.color-stroke-teal{stroke:#009a93!important}.color-stroke-blue{stroke:#1c71b1!important}.color-stroke-violet{stroke:#552dab!important}.color-stroke-purple{stroke:#8b2baa!important}.color-stroke-pink{stroke:#cf2082!important}.color-stroke-brown{stroke:#8c5836!important}.color-stroke-grey{stroke:#646464!important}.color-stroke-light-grey{stroke:#919191!important}.color-stroke-good{stroke:#4d9121!important}.color-stroke-average{stroke:#cd7a0d!important}.color-stroke-bad{stroke:#bd2020!important}.color-stroke-label{stroke:#657a94!important}.AlertModal__Message{text-align:center;justify-content:center}.AlertModal__Buttons{justify-content:center}.AlertModal__Loader{width:100%;position:relative;height:4px}.AlertModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{position:absolute;top:0;left:0;right:0;height:2em;line-height:2em;margin:.25em 1em 0}.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em;margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.Changelog__Button{height:22px}.Changelog__Cell{padding:3px 0}.Changelog__Cell--Icon{width:25px}.CrewManifest--Command .Section__title{border-color:#fbd608}.CrewManifest--Command .Section__titleText{color:#fbd608}.CrewManifest--Security .Section__title{border-color:#db2828}.CrewManifest--Security .Section__titleText{color:#db2828}.CrewManifest--Engineering .Section__title{border-color:#f2711c}.CrewManifest--Engineering .Section__titleText{color:#f2711c}.CrewManifest--Medical .Section__title{border-color:#00b5ad}.CrewManifest--Medical .Section__titleText{color:#00b5ad}.CrewManifest--Misc .Section__title{border-color:#fff}.CrewManifest--Misc .Section__titleText{color:#fff}.CrewManifest--Science .Section__title{border-color:#a333c8}.CrewManifest--Science .Section__titleText{color:#a333c8}.CrewManifest--Supply .Section__title{border-color:#a5673f}.CrewManifest--Supply .Section__titleText{color:#a5673f}.CrewManifest--Service .Section__title{border-color:#20b142}.CrewManifest--Service .Section__titleText{color:#20b142}.CrewManifest--Silicon .Section__title{border-color:#e03997}.CrewManifest--Silicon .Section__titleText{color:#e03997}.CrewManifest__Cell{padding:3px 0}.CrewManifest__Cell--Rank{color:#7e90a7}.CrewManifest__Icons{padding:3px 9px;text-align:right}.CrewManifest__Icon{color:#7e90a7;position:relative}.CrewManifest__Icon:not(:last-child){margin-right:7px}.CrewManifest__Icon--Chevron{padding-right:2px}.CrewManifest__Icon--Command{color:#fbd608}.ExperimentTechwebServer__Web,.ExperimentConfigure__ExperimentPanel{background:#000;border:1px solid #40628a;margin:3px 0}.ExperimentTechwebServer__WebHeader{background:#40628a;padding:2px}.ExperimentTechwebServer__WebName{font-size:18px}.ExperimentTechwebServer__WebContent{padding:4px}.ExperimentTechwebServer__WebContent>.LabeledList{margin:.25rem .25rem .25rem 1rem}.ExperimentConfigure__ExperimentName{font-weight:700;border-radius:0}.ExperimentConfigure__ExperimentContent{padding:.25rem 1.5rem .25rem .25rem}.ExperimentStage__Indicator{font-weight:700;margin-right:1rem;text-align:center}.ExperimentStage__StageContainer.complete .ExperimentStage__Description{opacity:.4;text-decoration:line-through}.ExperimentStage__StageContainer{margin-bottom:5px}.ExperimentStage__Table{border-collapse:separate;border-spacing:.25rem .25rem}.ExperimentConfigure__PerformExperiment{text-align:center;padding:.75rem 0}.ExperimentConfigure__ExperimentsContainer{height:100%;display:flex;flex-direction:column}.ExperimentConfigure__ExperimentsContainer>:last-child{flex:1;overflow-y:auto}.ExperimentConfigure__TagContainer{position:absolute;right:0;top:0}.ExperimentConfigure__PerformanceHint *{position:absolute;width:100%;height:100%;right:0;top:0;color:rgba(255,255,255,.5)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=);background-size:70%;background-position:center;background-repeat:no-repeat}.Paper__Stamp{position:absolute;pointer-events:none;-ms-user-select:none;user-select:none}.Paper__Page{word-break:break-word;word-wrap:break-word}.Roulette__container{display:flex}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:1px solid #fff;vertical-align:bottom}.Roulette__board-cell-number{width:35px}.Roulette__board-cell-number--colspan-2{width:71px}.Roulette__board-cell-number--colspan-4{width:143px}.Roulette__board-button{display:table-cell!important;border:none!important;width:inherit;height:40px;padding:0;margin:0;text-align:center;vertical-align:middle;color:#fff!important}.Roulette__board-button--rowspan-3{height:122px}.Roulette__board-button-text{text-align:center;font-size:16px;font-weight:700}.Roulette__lowertable{margin-top:8px;border-collapse:collapse;border:1px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:16px;font-weight:700}.Safe__engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe__engraving-arrow{color:#35435a}.Safe__engraving-hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe__dialer{margin-bottom:1.25rem}.Safe__dialer .Button{width:80px}.Safe__dialer-right .Button i{z-index:-100}.Safe__dialer-number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe__contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe__help{position:absolute;top:73%;left:10px;width:50%;font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(to bottom,#b2ae74,#8e8b5d);transform:rotate(-1deg)}.Safe__help:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(to bottom,transparent 0%,#ffffff 100%);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.TachyonArray__ActiveRecord{margin:0 .5em 0 .8em}.TachyonArray__Content{overflow-x:hidden;overflow-y:auto}.TachyonArray__ResearchFooter>*{width:100%;text-align:center}.Techweb__NodeProgress{margin-bottom:1rem}.Techweb__NodeProgress>*:not(:last-child){margin-right:.4rem}.Techweb__DesignIcon{margin-left:.25rem;margin-right:.25rem}.Techweb__OverviewNodes{overflow-y:auto;overflow-x:hidden;padding-right:6px;padding-top:4px}.Techweb__HeaderContent{background-color:#000;padding:6px;border:1px solid #40628a}.Techweb__HeaderContent>*>:not(:last-child){margin-bottom:5px}.Techweb__HeaderSectionTabs{margin-top:8px;background-color:#000;border:1px solid #40628a;padding-left:5px;padding-right:5px}.Techweb__HeaderTabTitle{border-right:1px solid #40628a;padding-right:.5em;margin-right:.5em;font-weight:700}.Techweb__HeaderSectionTabs input{background-color:rgba(255,255,255,.05)}.Techweb__PointSummary{list-style:none;margin:.4em 0 0 1em;padding:0}.Techweb__SecProtocol{color:#db2828;margin-left:.2em}.Techweb__SecProtocol.engaged{color:#5baa27}.Techweb__DesignModal>:not(:last-child){margin-bottom:.5em}.Techweb__LockedModal>:not(:last-child){margin-bottom:.5em}.Techweb__ExperimentDiscount{color:#7e90a7;margin:.5em 0}.IDCard__NamePlate{margin-left:-6px;margin-right:-6px;margin-top:6px;padding:.5em;border-top:.1666666667em solid #4972a1;font-size:1.1666666667em;font-weight:700}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent,.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent{text-align:right;background-color:#4d9121}.TinderMessage_First_Sent{border-radius:10px 10px 0}.TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{text-align:left;background-color:#cd7a0d}.TinderMessage_First_Received{border-radius:10px 10px 10px 0}.TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.ClassicMessage_Sent,.ClassicMessage_Received{word-break:break-all}.ClassicMessage_Sent{color:#4d9121}.ClassicMessage_Received{color:#cd7a0d}.Section--elevator--fire{background-color:#f33;background-color:rgba(255,0,0,.35)}.Section--elevator--fire>.Section__title{padding:.5em;border-bottom:.1666666667em solid red}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.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}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content .Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;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}.TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.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}.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}.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}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(to bottom,#2a2a2a,#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(62,62,62,.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}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! Theme: GitHub Dark Description: Dark theme as seen on github.com Author: github.com @@ -7,4 +7,4 @@ html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflo Outdated base version: https://github.com/primer/github-syntax-dark Current colors taken from GitHub's CSS -*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==);background-size:70%;background-position:center;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0;margin-bottom:0}.theme-abductor .Button .fa,.theme-abductor .Button .fas,.theme-abductor .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-abductor .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .fas,.theme-abductor .Button--hasContent .far{margin-right:.25em}.theme-abductor .Button--hasContent.Button--iconPosition--right .fa,.theme-abductor .Button--hasContent.Button--iconPosition--right .fas,.theme-abductor .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-abductor .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--circular{border-radius:50%}.theme-abductor .Button--compact{padding:0 .25em;line-height:1.333em}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:hover,.theme-abductor .Button--color--default:focus{background-color:#d34372;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:hover,.theme-abductor .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:hover,.theme-abductor .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:rgba(255,255,255,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:hover,.theme-abductor .Button--color--transparent:focus{background-color:#444c68;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:hover,.theme-abductor .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-abductor .Button--flex{display:inline-flex;flex-direction:column}.theme-abductor .Button--flex--fluid{width:100%}.theme-abductor .Button--verticalAlignContent--top{justify-content:flex-start}.theme-abductor .Button--verticalAlignContent--middle{justify-content:center}.theme-abductor .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-abductor .Button__content{display:block;align-self:stretch}.theme-abductor .Button__textMargin{margin-left:.4rem}.theme-abductor .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-abductor .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-abductor .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-abductor .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}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-abductor .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .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}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1c2132;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__rest{position:relative}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--fill>.Section__rest{flex-grow:1}.theme-abductor .Section--fill>.Section__rest>.Section__content{height:100%}.theme-abductor .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-abductor .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-abductor .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-abductor .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-abductor .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-abductor .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-abductor .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-abductor .Section .Section:first-child{margin-top:-.5em}.theme-abductor .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section .Section .Section .Section__titleText{font-size:1em}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#a82d55;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-abductor .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(to bottom,#353e5e,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;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-abductor .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#9e1b46;transition:color .25s ease-out,background-color .25s ease-out}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-abductor .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .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-abductor .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-abductor .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-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0;margin-bottom:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .fas,.theme-cardtable .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-cardtable .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .fas,.theme-cardtable .Button--hasContent .far{margin-right:.25em}.theme-cardtable .Button--hasContent.Button--iconPosition--right .fa,.theme-cardtable .Button--hasContent.Button--iconPosition--right .fas,.theme-cardtable .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--circular{border-radius:50%}.theme-cardtable .Button--compact{padding:0 .25em;line-height:1.333em}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:hover,.theme-cardtable .Button--color--default:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:hover,.theme-cardtable .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:hover,.theme-cardtable .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:rgba(255,255,255,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:hover,.theme-cardtable .Button--color--transparent:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:hover,.theme-cardtable .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-cardtable .Button--flex{display:inline-flex;flex-direction:column}.theme-cardtable .Button--flex--fluid{width:100%}.theme-cardtable .Button--verticalAlignContent--top{justify-content:flex-start}.theme-cardtable .Button--verticalAlignContent--middle{justify-content:center}.theme-cardtable .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-cardtable .Button__content{display:block;align-self:stretch}.theme-cardtable .Button__textMargin{margin-left:.4rem}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-cardtable .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}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-cardtable .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid rgba(255,255,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .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}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#0b4b26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__rest{position:relative}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--fill>.Section__rest{flex-grow:1}.theme-cardtable .Section--fill>.Section__rest>.Section__content{height:100%}.theme-cardtable .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-cardtable .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-cardtable .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-cardtable .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-cardtable .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-cardtable .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Section .Section:first-child{margin-top:-.5em}.theme-cardtable .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section .Section .Section .Section__titleText{font-size:1em}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(to bottom,#117039,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;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-cardtable .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#381608;transition:color .25s ease-out,background-color .25s ease-out}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-cardtable .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .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-cardtable .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-cardtable .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-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .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-hackerman .Button:last-child{margin-right:0;margin-bottom:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .fas,.theme-hackerman .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-hackerman .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .fas,.theme-hackerman .Button--hasContent .far{margin-right:.25em}.theme-hackerman .Button--hasContent.Button--iconPosition--right .fa,.theme-hackerman .Button--hasContent.Button--iconPosition--right .fas,.theme-hackerman .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--circular{border-radius:50%}.theme-hackerman .Button--compact{padding:0 .25em;line-height:1.333em}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:hover,.theme-hackerman .Button--color--default:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:hover,.theme-hackerman .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:hover,.theme-hackerman .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:rgba(255,255,255,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:hover,.theme-hackerman .Button--color--transparent:focus{background-color:#283228;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:hover,.theme-hackerman .Button--selected:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--flex{display:inline-flex;flex-direction:column}.theme-hackerman .Button--flex--fluid{width:100%}.theme-hackerman .Button--verticalAlignContent--top{justify-content:flex-start}.theme-hackerman .Button--verticalAlignContent--middle{justify-content:center}.theme-hackerman .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-hackerman .Button__content{display:block;align-self:stretch}.theme-hackerman .Button__textMargin{margin-left:.4rem}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid lime;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-hackerman .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}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-hackerman .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#0c120c;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid lime}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__rest{position:relative}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--fill>.Section__rest{flex-grow:1}.theme-hackerman .Section--fill>.Section__rest>.Section__content{height:100%}.theme-hackerman .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-hackerman .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-hackerman .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-hackerman .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-hackerman .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-hackerman .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Section .Section:first-child{margin-top:-.5em}.theme-hackerman .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section .Section .Section .Section__titleText{font-size:1em}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(to bottom,#121b12,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;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-hackerman .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#223d22;transition:color .25s ease-out,background-color .25s ease-out}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-hackerman .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .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-hackerman .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-hackerman .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-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border-width:.1666666667em;border-style:outset;border-color:#0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .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-malfunction .Button:last-child{margin-right:0;margin-bottom:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .fas,.theme-malfunction .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-malfunction .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .fas,.theme-malfunction .Button--hasContent .far{margin-right:.25em}.theme-malfunction .Button--hasContent.Button--iconPosition--right .fa,.theme-malfunction .Button--hasContent.Button--iconPosition--right .fas,.theme-malfunction .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--circular{border-radius:50%}.theme-malfunction .Button--compact{padding:0 .25em;line-height:1.333em}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:hover,.theme-malfunction .Button--color--default:focus{background-color:#ba1414;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:hover,.theme-malfunction .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:hover,.theme-malfunction .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:rgba(255,255,255,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:hover,.theme-malfunction .Button--color--transparent:focus{background-color:#324f60;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:hover,.theme-malfunction .Button--selected:focus{background-color:#3678a8;color:#fff}.theme-malfunction .Button--flex{display:inline-flex;flex-direction:column}.theme-malfunction .Button--flex--fluid{width:100%}.theme-malfunction .Button--verticalAlignContent--top{justify-content:flex-start}.theme-malfunction .Button--verticalAlignContent--middle{justify-content:center}.theme-malfunction .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-malfunction .Button__content{display:block;align-self:stretch}.theme-malfunction .Button__textMargin{margin-left:.4rem}.theme-malfunction .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-malfunction .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-malfunction .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-malfunction .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}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-malfunction .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .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}.theme-malfunction .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,.5);transition:border-color .9s ease-out}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#12232d;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__rest{position:relative}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--fill>.Section__rest{flex-grow:1}.theme-malfunction .Section--fill>.Section__rest>.Section__content{height:100%}.theme-malfunction .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-malfunction .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-malfunction .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-malfunction .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-malfunction .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-malfunction .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Section .Section:first-child{margin-top:-.5em}.theme-malfunction .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section .Section .Section .Section__titleText{font-size:1em}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#235577;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(to bottom,#244559,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;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-malfunction .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1a3f57;transition:color .25s ease-out,background-color .25s ease-out}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-malfunction .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .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-malfunction .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-malfunction .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-malfunction .Layout__content{background-image:none}.theme-neutral .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-neutral .Button:last-child{margin-right:0;margin-bottom:0}.theme-neutral .Button .fa,.theme-neutral .Button .fas,.theme-neutral .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-neutral .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-neutral .Button--hasContent .fa,.theme-neutral .Button--hasContent .fas,.theme-neutral .Button--hasContent .far{margin-right:.25em}.theme-neutral .Button--hasContent.Button--iconPosition--right .fa,.theme-neutral .Button--hasContent.Button--iconPosition--right .fas,.theme-neutral .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-neutral .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-neutral .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-neutral .Button--circular{border-radius:50%}.theme-neutral .Button--compact{padding:0 .25em;line-height:1.333em}.theme-neutral .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#b37d00;color:#fff}.theme-neutral .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--default:hover,.theme-neutral .Button--color--default:focus{background-color:#e1a313;color:#fff}.theme-neutral .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-neutral .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--caution:hover,.theme-neutral .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-neutral .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-neutral .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--danger:hover,.theme-neutral .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-neutral .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#996b00;color:#fff;background-color:rgba(153,107,0,0);color:#ffca4d}.theme-neutral .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--transparent:hover,.theme-neutral .Button--color--transparent:focus{background-color:#c38f13;color:#fff}.theme-neutral .Button--disabled{background-color:#999!important}.theme-neutral .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-neutral .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--selected:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--selected:hover,.theme-neutral .Button--selected:focus{background-color:#32c154;color:#fff}.theme-neutral .Button--flex{display:inline-flex;flex-direction:column}.theme-neutral .Button--flex--fluid{width:100%}.theme-neutral .Button--verticalAlignContent--top{justify-content:flex-start}.theme-neutral .Button--verticalAlignContent--middle{justify-content:center}.theme-neutral .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-neutral .Button__content{display:block;align-self:stretch}.theme-neutral .Button__textMargin{margin-left:.4rem}.theme-neutral .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,.5);transition:border-color .9s ease-out}.theme-neutral .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-neutral .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-neutral .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-neutral .ProgressBar--color--default{border:.0833333333em solid #ffb300}.theme-neutral .ProgressBar--color--default .ProgressBar__fill{background-color:#ffb300}.theme-neutral .Section{position:relative;margin-bottom:.5em;background-color:#674800;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-neutral .Section:last-child{margin-bottom:0}.theme-neutral .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ffb300}.theme-neutral .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-neutral .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-neutral .Section__rest{position:relative}.theme-neutral .Section__content{padding:.66em .5em}.theme-neutral .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-neutral .Section--fill{display:flex;flex-direction:column;height:100%}.theme-neutral .Section--fill>.Section__rest{flex-grow:1}.theme-neutral .Section--fill>.Section__rest>.Section__content{height:100%}.theme-neutral .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-neutral .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-neutral .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-neutral .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-neutral .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-neutral .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-neutral .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-neutral .Section .Section:first-child{margin-top:-.5em}.theme-neutral .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-neutral .Section .Section .Section .Section__titleText{font-size:1em}.theme-neutral .Section--flex{display:flex;flex-flow:column}.theme-neutral .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-neutral .Section__content--noTopPadding{padding-top:0}.theme-neutral .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-neutral .Layout,.theme-neutral .Layout *{scrollbar-base-color:#735100;scrollbar-face-color:#bd8400;scrollbar-3dlight-color:#996b00;scrollbar-highlight-color:#996b00;scrollbar-track-color:#735100;scrollbar-arrow-color:#ffca4d;scrollbar-shadow-color:#bd8400}.theme-neutral .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-neutral .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-neutral .Layout__content--flexRow{display:flex;flex-flow:row}.theme-neutral .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-neutral .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#996b00;background-image:linear-gradient(to bottom,#b88100,#7a5600)}.theme-neutral .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-neutral .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-neutral .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-neutral .Window__contentPadding:after{height:0}.theme-neutral .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-neutral .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(195,143,19,.25);pointer-events:none}.theme-neutral .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-neutral .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-neutral .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-neutral .TitleBar{background-color:#bf8600;border-bottom:1px solid #161616;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-neutral .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#bf8600;transition:color .25s ease-out,background-color .25s ease-out}.theme-neutral .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-neutral .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-neutral .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-neutral .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-neutral .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-neutral .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-neutral .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-neutral .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJ1c2VyLXNlY3JldCIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXVzZXItc2VjcmV0IGZhLXctMTQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiIgIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTM4My45IDMwOC4zbDIzLjktNjIuNmM0LTEwLjUtMy43LTIxLjctMTUtMjEuN2gtNTguNWMxMS0xOC45IDE3LjgtNDAuNiAxNy44LTY0di0uM2MzOS4yLTcuOCA2NC0xOS4xIDY0LTMxLjcgMC0xMy4zLTI3LjMtMjUuMS03MC4xLTMzLTkuMi0zMi44LTI3LTY1LjgtNDAuNi04Mi44LTkuNS0xMS45LTI1LjktMTUuNi0zOS41LTguOGwtMjcuNiAxMy44Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTgyLjEgMy40Yy0xMy42LTYuOC0zMC0zLjEtMzkuNSA4LjgtMTMuNSAxNy0zMS40IDUwLTQwLjYgODIuOC00Mi43IDcuOS03MCAxOS43LTcwIDMzIDAgMTIuNiAyNC44IDIzLjkgNjQgMzEuN3YuM2MwIDIzLjQgNi44IDQ1LjEgMTcuOCA2NEg1Ni4zYy0xMS41IDAtMTkuMiAxMS43LTE0LjcgMjIuM2wyNS44IDYwLjJDMjcuMyAzMjkuOCAwIDM3Mi43IDAgNDIyLjR2NDQuOEMwIDQ5MS45IDIwLjEgNTEyIDQ0LjggNTEyaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44di00NC44YzAtNDguNC0yNS44LTkwLjQtNjQuMS0xMTQuMXpNMTc2IDQ4MGwtNDEuNi0xOTIgNDkuNiAzMiAyNCA0MC0zMiAxMjB6bTk2IDBsLTMyLTEyMCAyNC00MCA0OS42LTMyTDI3MiA0ODB6bTQxLjctMjk4LjVjLTMuOSAxMS45LTcgMjQuNi0xNi41IDMzLjQtMTAuMSA5LjMtNDggMjIuNC02NC0yNS0yLjgtOC40LTE1LjQtOC40LTE4LjMgMC0xNyA1MC4yLTU2IDMyLjQtNjQgMjUtOS41LTguOC0xMi43LTIxLjUtMTYuNS0zMy40LS44LTIuNS02LjMtNS43LTYuMy01Ljh2LTEwLjhjMjguMyAzLjYgNjEgNS44IDk2IDUuOHM2Ny43LTIuMSA5Ni01Ljh2MTAuOGMtLjEuMS01LjYgMy4yLTYuNCA1Ljh6Ij48L3BhdGg+DQo8L3N2Zz4NCjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPg0KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPg==)}.theme-ntos .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-ntos .Button:last-child{margin-right:0;margin-bottom:0}.theme-ntos .Button .fa,.theme-ntos .Button .fas,.theme-ntos .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-ntos .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .fas,.theme-ntos .Button--hasContent .far{margin-right:.25em}.theme-ntos .Button--hasContent.Button--iconPosition--right .fa,.theme-ntos .Button--hasContent.Button--iconPosition--right .fas,.theme-ntos .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--circular{border-radius:50%}.theme-ntos .Button--compact{padding:0 .25em;line-height:1.333em}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:hover,.theme-ntos .Button--color--default:focus{background-color:#546d8b;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:hover,.theme-ntos .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:hover,.theme-ntos .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:hover,.theme-ntos .Button--color--transparent:focus{background-color:#374555;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:hover,.theme-ntos .Button--selected:focus{background-color:#32c154;color:#fff}.theme-ntos .Button--flex{display:inline-flex;flex-direction:column}.theme-ntos .Button--flex--fluid{width:100%}.theme-ntos .Button--verticalAlignContent--top{justify-content:flex-start}.theme-ntos .Button--verticalAlignContent--middle{justify-content:center}.theme-ntos .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-ntos .Button__content{display:block;align-self:stretch}.theme-ntos .Button__textMargin{margin-left:.4rem}.theme-ntos .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,.5);transition:border-color .9s ease-out}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#151d26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__rest{position:relative}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--fill>.Section__rest{flex-grow:1}.theme-ntos .Section--fill>.Section__rest>.Section__content{height:100%}.theme-ntos .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-ntos .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-ntos .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-ntos .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-ntos .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-ntos .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-ntos .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-ntos .Section .Section:first-child{margin-top:-.5em}.theme-ntos .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section .Section .Section .Section__titleText{font-size:1em}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-ntos .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(to bottom,#223040,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;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-ntos .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#2a3b4e;transition:color .25s ease-out,background-color .25s ease-out}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-ntos .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .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-ntos .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-ntos .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-paper .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.theme-paper .Tabs--fill{height:100%}.theme-paper .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-paper .Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.theme-paper .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.theme-paper .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-paper .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.theme-paper .Tabs--horizontal:last-child{margin-bottom:0}.theme-paper .Tabs__Tab{flex-grow:0}.theme-paper .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-paper .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}.theme-paper .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-paper .Tab--selected{background-color:rgba(255,255,255,.125);color:#fafafa}.theme-paper .Tab__text{flex-grow:1;margin:0 .5em}.theme-paper .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-paper .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-paper .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-paper .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #f9f9f9}.theme-paper .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-paper .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #f9f9f9}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#e6e6e6;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__rest{position:relative}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--fill>.Section__rest{flex-grow:1}.theme-paper .Section--fill>.Section__rest>.Section__content{height:100%}.theme-paper .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-paper .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-paper .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-paper .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-paper .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-paper .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-paper .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-paper .Section .Section:first-child{margin-top:-.5em}.theme-paper .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-paper .Section .Section .Section .Section__titleText{font-size:1em}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .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-paper .Button:last-child{margin-right:0;margin-bottom:0}.theme-paper .Button .fa,.theme-paper .Button .fas,.theme-paper .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-paper .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .fas,.theme-paper .Button--hasContent .far{margin-right:.25em}.theme-paper .Button--hasContent.Button--iconPosition--right .fa,.theme-paper .Button--hasContent.Button--iconPosition--right .fas,.theme-paper .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-paper .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--circular{border-radius:50%}.theme-paper .Button--compact{padding:0 .25em;line-height:1.333em}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:hover,.theme-paper .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:hover,.theme-paper .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:hover,.theme-paper .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:rgba(255,255,255,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:hover,.theme-paper .Button--color--transparent:focus{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:hover,.theme-paper .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-paper .Button--flex{display:inline-flex;flex-direction:column}.theme-paper .Button--flex--fluid{width:100%}.theme-paper .Button--verticalAlignContent--top{justify-content:flex-start}.theme-paper .Button--verticalAlignContent--middle{justify-content:center}.theme-paper .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-paper .Button__content{display:block;align-self:stretch}.theme-paper .Button__textMargin{margin-left:.4rem}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-paper .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#fff;background-image:linear-gradient(to bottom,#fff,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;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-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s ease-out,background-color .25s ease-out}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .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-paper .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .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-paper .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-paper .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-paper .PaperInput{position:relative;display:inline-block;width:120px;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-paper .Layout__content{background-image:none}.theme-paper .Window{background-image:none;color:#000}.theme-paper .paper-text input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-text input,.theme-paper .paper-field{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-field input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-pda-retro .color-black{color:#1a1a1a!important}.theme-pda-retro .color-white{color:#fff!important}.theme-pda-retro .color-red{color:#df3e3e!important}.theme-pda-retro .color-orange{color:#f37f33!important}.theme-pda-retro .color-yellow{color:#fbda21!important}.theme-pda-retro .color-olive{color:#cbe41c!important}.theme-pda-retro .color-green{color:#25ca4c!important}.theme-pda-retro .color-teal{color:#00d6cc!important}.theme-pda-retro .color-blue{color:#2e93de!important}.theme-pda-retro .color-violet{color:#7349cf!important}.theme-pda-retro .color-purple{color:#ad45d0!important}.theme-pda-retro .color-pink{color:#e34da1!important}.theme-pda-retro .color-brown{color:#b97447!important}.theme-pda-retro .color-grey{color:#848484!important}.theme-pda-retro .color-light-grey{color:#b3b3b3!important}.theme-pda-retro .color-good{color:#68c22d!important}.theme-pda-retro .color-average{color:#1a1a1a!important}.theme-pda-retro .color-bad{color:#df3e3e!important}.theme-pda-retro .color-label{color:#1a1a1a!important}.theme-pda-retro .color-bg-black{background-color:#000!important}.theme-pda-retro .color-bg-white{background-color:#d9d9d9!important}.theme-pda-retro .color-bg-red{background-color:#bd2020!important}.theme-pda-retro .color-bg-orange{background-color:#d95e0c!important}.theme-pda-retro .color-bg-yellow{background-color:#d9b804!important}.theme-pda-retro .color-bg-olive{background-color:#9aad14!important}.theme-pda-retro .color-bg-green{background-color:#1b9638!important}.theme-pda-retro .color-bg-teal{background-color:#009a93!important}.theme-pda-retro .color-bg-blue{background-color:#1c71b1!important}.theme-pda-retro .color-bg-violet{background-color:#552dab!important}.theme-pda-retro .color-bg-purple{background-color:#8b2baa!important}.theme-pda-retro .color-bg-pink{background-color:#cf2082!important}.theme-pda-retro .color-bg-brown{background-color:#8c5836!important}.theme-pda-retro .color-bg-grey{background-color:#646464!important}.theme-pda-retro .color-bg-light-grey{background-color:#919191!important}.theme-pda-retro .color-bg-good{background-color:#4d9121!important}.theme-pda-retro .color-bg-average{background-color:#000!important}.theme-pda-retro .color-bg-bad{background-color:#bd2020!important}.theme-pda-retro .color-bg-label{background-color:#000!important}.theme-pda-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-pda-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-pda-retro .Button .fa,.theme-pda-retro .Button .fas,.theme-pda-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-pda-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-pda-retro .Button--hasContent .fa,.theme-pda-retro .Button--hasContent .fas,.theme-pda-retro .Button--hasContent .far{margin-right:.25em}.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-pda-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-pda-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-pda-retro .Button--circular{border-radius:50%}.theme-pda-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-pda-retro .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--black:hover,.theme-pda-retro .Button--color--black:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.theme-pda-retro .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--white:hover,.theme-pda-retro .Button--color--white:focus{background-color:#f8f8f8;color:#000}.theme-pda-retro .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--red:hover,.theme-pda-retro .Button--color--red:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.theme-pda-retro .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--orange:hover,.theme-pda-retro .Button--color--orange:focus{background-color:#f0853f;color:#fff}.theme-pda-retro .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-pda-retro .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--yellow:hover,.theme-pda-retro .Button--color--yellow:focus{background-color:#f5d72e;color:#000}.theme-pda-retro .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.theme-pda-retro .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--olive:hover,.theme-pda-retro .Button--color--olive:focus{background-color:#c4da2b;color:#fff}.theme-pda-retro .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-pda-retro .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--green:hover,.theme-pda-retro .Button--color--green:focus{background-color:#32c154;color:#fff}.theme-pda-retro .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.theme-pda-retro .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--teal:hover,.theme-pda-retro .Button--color--teal:focus{background-color:#13c4bc;color:#fff}.theme-pda-retro .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.theme-pda-retro .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--blue:hover,.theme-pda-retro .Button--color--blue:focus{background-color:#3a95d9;color:#fff}.theme-pda-retro .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.theme-pda-retro .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--violet:hover,.theme-pda-retro .Button--color--violet:focus{background-color:#7953cc;color:#fff}.theme-pda-retro .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.theme-pda-retro .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--purple:hover,.theme-pda-retro .Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.theme-pda-retro .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.theme-pda-retro .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--pink:hover,.theme-pda-retro .Button--color--pink:focus{background-color:#e257a5;color:#fff}.theme-pda-retro .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.theme-pda-retro .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--brown:hover,.theme-pda-retro .Button--color--brown:focus{background-color:#b47851;color:#fff}.theme-pda-retro .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.theme-pda-retro .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--grey:hover,.theme-pda-retro .Button--color--grey:focus{background-color:#868686;color:#fff}.theme-pda-retro .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.theme-pda-retro .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--light-grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--light-grey:hover,.theme-pda-retro .Button--color--light-grey:focus{background-color:#bababa;color:#fff}.theme-pda-retro .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-pda-retro .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--good:hover,.theme-pda-retro .Button--color--good:focus{background-color:#6cba39;color:#fff}.theme-pda-retro .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--average:hover,.theme-pda-retro .Button--color--average:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--bad:hover,.theme-pda-retro .Button--color--bad:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--label:hover,.theme-pda-retro .Button--color--label:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-pda-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--default:hover,.theme-pda-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-pda-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-pda-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--caution:hover,.theme-pda-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-pda-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-pda-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--danger:hover,.theme-pda-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-pda-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#6f7961;color:#fff;background-color:rgba(111,121,97,0);color:rgba(255,255,255,.5)}.theme-pda-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--transparent:hover,.theme-pda-retro .Button--color--transparent:focus{background-color:#939c85;color:#fff}.theme-pda-retro .Button--disabled{background-color:#505050!important}.theme-pda-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-pda-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--selected:hover,.theme-pda-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-pda-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-pda-retro .Button--flex--fluid{width:100%}.theme-pda-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-pda-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-pda-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-pda-retro .Button__content{display:block;align-self:stretch}.theme-pda-retro .Button__textMargin{margin-left:.4rem}.theme-pda-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-pda-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-pda-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-pda-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-pda-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-pda-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--black{border-color:#000!important}.theme-pda-retro .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--white{border-color:#d9d9d9!important}.theme-pda-retro .ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.theme-pda-retro .ProgressBar--color--red{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--orange{border-color:#d95e0c!important}.theme-pda-retro .ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.theme-pda-retro .ProgressBar--color--yellow{border-color:#d9b804!important}.theme-pda-retro .ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.theme-pda-retro .ProgressBar--color--olive{border-color:#9aad14!important}.theme-pda-retro .ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.theme-pda-retro .ProgressBar--color--green{border-color:#1b9638!important}.theme-pda-retro .ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.theme-pda-retro .ProgressBar--color--teal{border-color:#009a93!important}.theme-pda-retro .ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.theme-pda-retro .ProgressBar--color--blue{border-color:#1c71b1!important}.theme-pda-retro .ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.theme-pda-retro .ProgressBar--color--violet{border-color:#552dab!important}.theme-pda-retro .ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.theme-pda-retro .ProgressBar--color--purple{border-color:#8b2baa!important}.theme-pda-retro .ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.theme-pda-retro .ProgressBar--color--pink{border-color:#cf2082!important}.theme-pda-retro .ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.theme-pda-retro .ProgressBar--color--brown{border-color:#8c5836!important}.theme-pda-retro .ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.theme-pda-retro .ProgressBar--color--grey{border-color:#646464!important}.theme-pda-retro .ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.theme-pda-retro .ProgressBar--color--light-grey{border-color:#919191!important}.theme-pda-retro .ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.theme-pda-retro .ProgressBar--color--good{border-color:#4d9121!important}.theme-pda-retro .ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.theme-pda-retro .ProgressBar--color--average{border-color:#000!important}.theme-pda-retro .ProgressBar--color--average .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--bad{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--label{border-color:#000!important}.theme-pda-retro .ProgressBar--color--label .ProgressBar__fill{background-color:#000}.theme-pda-retro .Section{position:relative;margin-bottom:.5em;background-color:#646d57;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-pda-retro .Section:last-child{margin-bottom:0}.theme-pda-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-pda-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-pda-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-pda-retro .Section__rest{position:relative}.theme-pda-retro .Section__content{padding:.66em .5em}.theme-pda-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-pda-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-pda-retro .Section--fill>.Section__rest{flex-grow:1}.theme-pda-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-pda-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-pda-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-pda-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-pda-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-pda-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-pda-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-pda-retro .Section .Section:first-child{margin-top:-.5em}.theme-pda-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-pda-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-pda-retro .Section--flex{display:flex;flex-flow:column}.theme-pda-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-pda-retro .Section__content--noTopPadding{padding-top:0}.theme-pda-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent,.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent{text-align:right;background-color:#9faa91}.theme-pda-retro .TinderMessage_First_Sent{border-radius:10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{text-align:left;background-color:#b8b37b}.theme-pda-retro .TinderMessage_First_Received{border-radius:10px 10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.theme-pda-retro .ClassicMessage_Sent,.theme-pda-retro .ClassicMessage_Received{word-break:break-all}.theme-pda-retro .ClassicMessage_Sent{color:#9faa91}.theme-pda-retro .ClassicMessage_Received{color:#b8b37b}.theme-pda-retro .Layout,.theme-pda-retro .Layout *{scrollbar-base-color:#535b49;scrollbar-face-color:#7e896e;scrollbar-3dlight-color:#6f7961;scrollbar-highlight-color:#6f7961;scrollbar-track-color:#535b49;scrollbar-arrow-color:#b7beae;scrollbar-shadow-color:#7e896e}.theme-pda-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-pda-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-pda-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-pda-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#6f7961;background-image:linear-gradient(to bottom,#6f7961,#6f7961)}.theme-pda-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-pda-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-pda-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-pda-retro .Window__contentPadding:after{height:0}.theme-pda-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-pda-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(147,156,133,.25);pointer-events:none}.theme-pda-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-pda-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-pda-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-pda-retro .TitleBar{background-color:#363636;border-bottom:1px solid #161616;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-pda-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.theme-pda-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-pda-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-pda-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-pda-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-pda-retro .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-pda-retro .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-pda-retro .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-pda-retro .Button{color:#161613;background-color:#565d4b;border:1px solid #000}.theme-pda-retro .Layout__content{background-image:none}.theme-pda-retro .LabeledList__label{font-weight:700}.theme-pda-retro .Tooltip:after{color:#fff}.theme-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-retro .Button .fa,.theme-retro .Button .fas,.theme-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .fas,.theme-retro .Button--hasContent .far{margin-right:.25em}.theme-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--circular{border-radius:50%}.theme-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:hover,.theme-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:hover,.theme-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:hover,.theme-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:rgba(255,255,255,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:hover,.theme-retro .Button--color--transparent:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:hover,.theme-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-retro .Button--flex--fluid{width:100%}.theme-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-retro .Button__content{display:block;align-self:stretch}.theme-retro .Button__textMargin{margin-left:.4rem}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#9b9987;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__rest{position:relative}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--fill>.Section__rest{flex-grow:1}.theme-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-retro .Section .Section:first-child{margin-top:-.5em}.theme-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(to bottom,#e8e4c9,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;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-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#585337;transition:color .25s ease-out,background-color .25s ease-out}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .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-retro .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-retro .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-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .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-syndicate .Button:last-child{margin-right:0;margin-bottom:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .fas,.theme-syndicate .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-syndicate .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .fas,.theme-syndicate .Button--hasContent .far{margin-right:.25em}.theme-syndicate .Button--hasContent.Button--iconPosition--right .fa,.theme-syndicate .Button--hasContent.Button--iconPosition--right .fas,.theme-syndicate .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--circular{border-radius:50%}.theme-syndicate .Button--compact{padding:0 .25em;line-height:1.333em}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:hover,.theme-syndicate .Button--color--default:focus{background-color:#595;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:hover,.theme-syndicate .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:hover,.theme-syndicate .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:rgba(255,255,255,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:hover,.theme-syndicate .Button--color--transparent:focus{background-color:#751616;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:hover,.theme-syndicate .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-syndicate .Button--flex{display:inline-flex;flex-direction:column}.theme-syndicate .Button--flex--fluid{width:100%}.theme-syndicate .Button--verticalAlignContent--top{justify-content:flex-start}.theme-syndicate .Button--verticalAlignContent--middle{justify-content:center}.theme-syndicate .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-syndicate .Button__content{display:block;align-self:stretch}.theme-syndicate .Button__textMargin{margin-left:.4rem}.theme-syndicate .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-syndicate .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-syndicate .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-syndicate .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}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-syndicate .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .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}.theme-syndicate .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,.5);transition:border-color .9s ease-out}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#390101;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__rest{position:relative}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--fill>.Section__rest{flex-grow:1}.theme-syndicate .Section--fill>.Section__rest>.Section__content{height:100%}.theme-syndicate .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-syndicate .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-syndicate .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-syndicate .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-syndicate .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-syndicate .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Section .Section:first-child{margin-top:-.5em}.theme-syndicate .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section .Section .Section .Section__titleText{font-size:1em}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#4a0202;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(to bottom,#730303,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;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-syndicate .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#910101;transition:color .25s ease-out,background-color .25s ease-out}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-syndicate .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .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-syndicate .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-syndicate .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-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==)}.theme-wizard .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-wizard .Button:last-child{margin-right:0;margin-bottom:0}.theme-wizard .Button .fa,.theme-wizard .Button .fas,.theme-wizard .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-wizard .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-wizard .Button--hasContent .fa,.theme-wizard .Button--hasContent .fas,.theme-wizard .Button--hasContent .far{margin-right:.25em}.theme-wizard .Button--hasContent.Button--iconPosition--right .fa,.theme-wizard .Button--hasContent.Button--iconPosition--right .fas,.theme-wizard .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-wizard .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-wizard .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-wizard .Button--circular{border-radius:50%}.theme-wizard .Button--compact{padding:0 .25em;line-height:1.333em}.theme-wizard .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#1596b6;color:#fff}.theme-wizard .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--default:hover,.theme-wizard .Button--color--default:focus{background-color:#30bde0;color:#fff}.theme-wizard .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-wizard .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--caution:hover,.theme-wizard .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-wizard .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#b30707;color:#fff}.theme-wizard .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--danger:hover,.theme-wizard .Button--color--danger:focus{background-color:#e11b1b;color:#fff}.theme-wizard .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#213e4e;color:#fff;background-color:rgba(33,62,78,0);color:rgba(255,255,255,.5)}.theme-wizard .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--transparent:hover,.theme-wizard .Button--color--transparent:focus{background-color:#395b6d;color:#fff}.theme-wizard .Button--disabled{background-color:#02426d!important}.theme-wizard .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-wizard .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--selected:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--selected:hover,.theme-wizard .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-wizard .Button--flex{display:inline-flex;flex-direction:column}.theme-wizard .Button--flex--fluid{width:100%}.theme-wizard .Button--verticalAlignContent--top{justify-content:flex-start}.theme-wizard .Button--verticalAlignContent--middle{justify-content:center}.theme-wizard .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-wizard .Button__content{display:block;align-self:stretch}.theme-wizard .Button__textMargin{margin-left:.4rem}.theme-wizard .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-wizard .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-wizard .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-wizard .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-wizard .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-wizard .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-wizard .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-wizard .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-wizard .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-wizard .Input--fluid{display:block;width:auto}.theme-wizard .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-wizard .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}.theme-wizard .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-wizard .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-wizard .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-wizard .NumberInput--fluid{display:block}.theme-wizard .NumberInput__content{margin-left:.5em}.theme-wizard .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-wizard .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-wizard .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}.theme-wizard .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-wizard .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-wizard .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-wizard .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-wizard .ProgressBar--color--default{border:.0833333333em solid #12809b}.theme-wizard .ProgressBar--color--default .ProgressBar__fill{background-color:#12809b}.theme-wizard .Section{position:relative;margin-bottom:.5em;background-color:#162a34;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-wizard .Section:last-child{margin-bottom:0}.theme-wizard .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #1596b6}.theme-wizard .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-wizard .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-wizard .Section__rest{position:relative}.theme-wizard .Section__content{padding:.66em .5em}.theme-wizard .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-wizard .Section--fill{display:flex;flex-direction:column;height:100%}.theme-wizard .Section--fill>.Section__rest{flex-grow:1}.theme-wizard .Section--fill>.Section__rest>.Section__content{height:100%}.theme-wizard .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-wizard .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-wizard .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-wizard .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-wizard .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-wizard .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-wizard .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-wizard .Section .Section:first-child{margin-top:-.5em}.theme-wizard .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-wizard .Section .Section .Section .Section__titleText{font-size:1em}.theme-wizard .Section--flex{display:flex;flex-flow:column}.theme-wizard .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-wizard .Section__content--noTopPadding{padding-top:0}.theme-wizard .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-wizard .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#2da848;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-wizard .Layout,.theme-wizard .Layout *{scrollbar-base-color:#192f3b;scrollbar-face-color:#2d546a;scrollbar-3dlight-color:#213e4e;scrollbar-highlight-color:#213e4e;scrollbar-track-color:#192f3b;scrollbar-arrow-color:#73a7c4;scrollbar-shadow-color:#2d546a}.theme-wizard .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-wizard .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-wizard .Layout__content--flexRow{display:flex;flex-flow:row}.theme-wizard .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-wizard .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#213e4e;background-image:linear-gradient(to bottom,#2a4f64,#182d38)}.theme-wizard .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-wizard .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-wizard .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-wizard .Window__contentPadding:after{height:0}.theme-wizard .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-wizard .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(57,91,109,.25);pointer-events:none}.theme-wizard .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-wizard .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-wizard .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-wizard .TitleBar{background-color:#1b9e26;border-bottom:1px solid #161616;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-wizard .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1b9e26;transition:color .25s ease-out,background-color .25s ease-out}.theme-wizard .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-wizard .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-wizard .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-wizard .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-wizard .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-wizard .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-wizard .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-wizard .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJtZXRlb3IiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZXRlb3IgZmEtdy0xNiIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1oiPjwvcGF0aD48L3N2Zz4NCjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPg0KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPg==)}.theme-abstract .TitleBar__statusIcon{display:none}.theme-abstract .Layout__content{background-image:none}.theme-abstract .TitleBar__title{left:12px} +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=);background-size:70%;background-position:center;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0;margin-bottom:0}.theme-abductor .Button .fa,.theme-abductor .Button .fas,.theme-abductor .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-abductor .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .fas,.theme-abductor .Button--hasContent .far{margin-right:.25em}.theme-abductor .Button--hasContent.Button--iconPosition--right .fa,.theme-abductor .Button--hasContent.Button--iconPosition--right .fas,.theme-abductor .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-abductor .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--circular{border-radius:50%}.theme-abductor .Button--compact{padding:0 .25em;line-height:1.333em}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:hover,.theme-abductor .Button--color--default:focus{background-color:#d34372;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:hover,.theme-abductor .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:hover,.theme-abductor .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:rgba(255,255,255,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:hover,.theme-abductor .Button--color--transparent:focus{background-color:#444c68;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:hover,.theme-abductor .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-abductor .Button--flex{display:inline-flex;flex-direction:column}.theme-abductor .Button--flex--fluid{width:100%}.theme-abductor .Button--verticalAlignContent--top{justify-content:flex-start}.theme-abductor .Button--verticalAlignContent--middle{justify-content:center}.theme-abductor .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-abductor .Button__content{display:block;align-self:stretch}.theme-abductor .Button__textMargin{margin-left:.4rem}.theme-abductor .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-abductor .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-abductor .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-abductor .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}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-abductor .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .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}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1c2132;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__rest{position:relative}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--fill>.Section__rest{flex-grow:1}.theme-abductor .Section--fill>.Section__rest>.Section__content{height:100%}.theme-abductor .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-abductor .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-abductor .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-abductor .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-abductor .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-abductor .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-abductor .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-abductor .Section .Section:first-child{margin-top:-.5em}.theme-abductor .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section .Section .Section .Section__titleText{font-size:1em}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#a82d55;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-abductor .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(to bottom,#353e5e,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;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-abductor .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#9e1b46;transition:color .25s ease-out,background-color .25s ease-out}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-abductor .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .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-abductor .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-abductor .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-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0;margin-bottom:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .fas,.theme-cardtable .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-cardtable .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .fas,.theme-cardtable .Button--hasContent .far{margin-right:.25em}.theme-cardtable .Button--hasContent.Button--iconPosition--right .fa,.theme-cardtable .Button--hasContent.Button--iconPosition--right .fas,.theme-cardtable .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--circular{border-radius:50%}.theme-cardtable .Button--compact{padding:0 .25em;line-height:1.333em}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:hover,.theme-cardtable .Button--color--default:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:hover,.theme-cardtable .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:hover,.theme-cardtable .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:rgba(255,255,255,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:hover,.theme-cardtable .Button--color--transparent:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:hover,.theme-cardtable .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-cardtable .Button--flex{display:inline-flex;flex-direction:column}.theme-cardtable .Button--flex--fluid{width:100%}.theme-cardtable .Button--verticalAlignContent--top{justify-content:flex-start}.theme-cardtable .Button--verticalAlignContent--middle{justify-content:center}.theme-cardtable .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-cardtable .Button__content{display:block;align-self:stretch}.theme-cardtable .Button__textMargin{margin-left:.4rem}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-cardtable .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}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-cardtable .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid rgba(255,255,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .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}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#0b4b26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__rest{position:relative}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--fill>.Section__rest{flex-grow:1}.theme-cardtable .Section--fill>.Section__rest>.Section__content{height:100%}.theme-cardtable .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-cardtable .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-cardtable .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-cardtable .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-cardtable .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-cardtable .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Section .Section:first-child{margin-top:-.5em}.theme-cardtable .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section .Section .Section .Section__titleText{font-size:1em}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(to bottom,#117039,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;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-cardtable .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#381608;transition:color .25s ease-out,background-color .25s ease-out}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-cardtable .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .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-cardtable .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-cardtable .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-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .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-hackerman .Button:last-child{margin-right:0;margin-bottom:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .fas,.theme-hackerman .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-hackerman .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .fas,.theme-hackerman .Button--hasContent .far{margin-right:.25em}.theme-hackerman .Button--hasContent.Button--iconPosition--right .fa,.theme-hackerman .Button--hasContent.Button--iconPosition--right .fas,.theme-hackerman .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--circular{border-radius:50%}.theme-hackerman .Button--compact{padding:0 .25em;line-height:1.333em}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:hover,.theme-hackerman .Button--color--default:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:hover,.theme-hackerman .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:hover,.theme-hackerman .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:rgba(255,255,255,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:hover,.theme-hackerman .Button--color--transparent:focus{background-color:#283228;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:hover,.theme-hackerman .Button--selected:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--flex{display:inline-flex;flex-direction:column}.theme-hackerman .Button--flex--fluid{width:100%}.theme-hackerman .Button--verticalAlignContent--top{justify-content:flex-start}.theme-hackerman .Button--verticalAlignContent--middle{justify-content:center}.theme-hackerman .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-hackerman .Button__content{display:block;align-self:stretch}.theme-hackerman .Button__textMargin{margin-left:.4rem}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid lime;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-hackerman .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}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-hackerman .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#0c120c;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid lime}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__rest{position:relative}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--fill>.Section__rest{flex-grow:1}.theme-hackerman .Section--fill>.Section__rest>.Section__content{height:100%}.theme-hackerman .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-hackerman .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-hackerman .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-hackerman .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-hackerman .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-hackerman .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Section .Section:first-child{margin-top:-.5em}.theme-hackerman .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section .Section .Section .Section__titleText{font-size:1em}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(to bottom,#121b12,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;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-hackerman .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#223d22;transition:color .25s ease-out,background-color .25s ease-out}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-hackerman .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .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-hackerman .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-hackerman .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-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border-width:.1666666667em;border-style:outset;border-color:#0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .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-malfunction .Button:last-child{margin-right:0;margin-bottom:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .fas,.theme-malfunction .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-malfunction .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .fas,.theme-malfunction .Button--hasContent .far{margin-right:.25em}.theme-malfunction .Button--hasContent.Button--iconPosition--right .fa,.theme-malfunction .Button--hasContent.Button--iconPosition--right .fas,.theme-malfunction .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--circular{border-radius:50%}.theme-malfunction .Button--compact{padding:0 .25em;line-height:1.333em}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:hover,.theme-malfunction .Button--color--default:focus{background-color:#ba1414;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:hover,.theme-malfunction .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:hover,.theme-malfunction .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:rgba(255,255,255,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:hover,.theme-malfunction .Button--color--transparent:focus{background-color:#324f60;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:hover,.theme-malfunction .Button--selected:focus{background-color:#3678a8;color:#fff}.theme-malfunction .Button--flex{display:inline-flex;flex-direction:column}.theme-malfunction .Button--flex--fluid{width:100%}.theme-malfunction .Button--verticalAlignContent--top{justify-content:flex-start}.theme-malfunction .Button--verticalAlignContent--middle{justify-content:center}.theme-malfunction .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-malfunction .Button__content{display:block;align-self:stretch}.theme-malfunction .Button__textMargin{margin-left:.4rem}.theme-malfunction .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-malfunction .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-malfunction .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-malfunction .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}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-malfunction .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .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}.theme-malfunction .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,.5);transition:border-color .9s ease-out}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#12232d;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__rest{position:relative}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--fill>.Section__rest{flex-grow:1}.theme-malfunction .Section--fill>.Section__rest>.Section__content{height:100%}.theme-malfunction .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-malfunction .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-malfunction .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-malfunction .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-malfunction .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-malfunction .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Section .Section:first-child{margin-top:-.5em}.theme-malfunction .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section .Section .Section .Section__titleText{font-size:1em}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#235577;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(to bottom,#244559,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;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-malfunction .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1a3f57;transition:color .25s ease-out,background-color .25s ease-out}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-malfunction .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .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-malfunction .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-malfunction .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-malfunction .Layout__content{background-image:none}.theme-neutral .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-neutral .Button:last-child{margin-right:0;margin-bottom:0}.theme-neutral .Button .fa,.theme-neutral .Button .fas,.theme-neutral .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-neutral .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-neutral .Button--hasContent .fa,.theme-neutral .Button--hasContent .fas,.theme-neutral .Button--hasContent .far{margin-right:.25em}.theme-neutral .Button--hasContent.Button--iconPosition--right .fa,.theme-neutral .Button--hasContent.Button--iconPosition--right .fas,.theme-neutral .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-neutral .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-neutral .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-neutral .Button--circular{border-radius:50%}.theme-neutral .Button--compact{padding:0 .25em;line-height:1.333em}.theme-neutral .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#b37d00;color:#fff}.theme-neutral .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--default:hover,.theme-neutral .Button--color--default:focus{background-color:#e1a313;color:#fff}.theme-neutral .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-neutral .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--caution:hover,.theme-neutral .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-neutral .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-neutral .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--danger:hover,.theme-neutral .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-neutral .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#996b00;color:#fff;background-color:rgba(153,107,0,0);color:#ffca4d}.theme-neutral .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--transparent:hover,.theme-neutral .Button--color--transparent:focus{background-color:#c38f13;color:#fff}.theme-neutral .Button--disabled{background-color:#999!important}.theme-neutral .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-neutral .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--selected:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--selected:hover,.theme-neutral .Button--selected:focus{background-color:#32c154;color:#fff}.theme-neutral .Button--flex{display:inline-flex;flex-direction:column}.theme-neutral .Button--flex--fluid{width:100%}.theme-neutral .Button--verticalAlignContent--top{justify-content:flex-start}.theme-neutral .Button--verticalAlignContent--middle{justify-content:center}.theme-neutral .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-neutral .Button__content{display:block;align-self:stretch}.theme-neutral .Button__textMargin{margin-left:.4rem}.theme-neutral .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,.5);transition:border-color .9s ease-out}.theme-neutral .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-neutral .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-neutral .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-neutral .ProgressBar--color--default{border:.0833333333em solid #ffb300}.theme-neutral .ProgressBar--color--default .ProgressBar__fill{background-color:#ffb300}.theme-neutral .Section{position:relative;margin-bottom:.5em;background-color:#674800;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-neutral .Section:last-child{margin-bottom:0}.theme-neutral .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ffb300}.theme-neutral .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-neutral .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-neutral .Section__rest{position:relative}.theme-neutral .Section__content{padding:.66em .5em}.theme-neutral .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-neutral .Section--fill{display:flex;flex-direction:column;height:100%}.theme-neutral .Section--fill>.Section__rest{flex-grow:1}.theme-neutral .Section--fill>.Section__rest>.Section__content{height:100%}.theme-neutral .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-neutral .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-neutral .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-neutral .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-neutral .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-neutral .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-neutral .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-neutral .Section .Section:first-child{margin-top:-.5em}.theme-neutral .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-neutral .Section .Section .Section .Section__titleText{font-size:1em}.theme-neutral .Section--flex{display:flex;flex-flow:column}.theme-neutral .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-neutral .Section__content--noTopPadding{padding-top:0}.theme-neutral .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-neutral .Layout,.theme-neutral .Layout *{scrollbar-base-color:#735100;scrollbar-face-color:#bd8400;scrollbar-3dlight-color:#996b00;scrollbar-highlight-color:#996b00;scrollbar-track-color:#735100;scrollbar-arrow-color:#ffca4d;scrollbar-shadow-color:#bd8400}.theme-neutral .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-neutral .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-neutral .Layout__content--flexRow{display:flex;flex-flow:row}.theme-neutral .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-neutral .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#996b00;background-image:linear-gradient(to bottom,#b88100,#7a5600)}.theme-neutral .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-neutral .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-neutral .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-neutral .Window__contentPadding:after{height:0}.theme-neutral .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-neutral .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(195,143,19,.25);pointer-events:none}.theme-neutral .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-neutral .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-neutral .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-neutral .TitleBar{background-color:#bf8600;border-bottom:1px solid #161616;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-neutral .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#bf8600;transition:color .25s ease-out,background-color .25s ease-out}.theme-neutral .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-neutral .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-neutral .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-neutral .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-neutral .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-neutral .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-neutral .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-neutral .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJ1c2VyLXNlY3JldCIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXVzZXItc2VjcmV0IGZhLXctMTQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiIgIG9wYWNpdHk9Ii4zMyI+CiAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMzgzLjkgMzA4LjNsMjMuOS02Mi42YzQtMTAuNS0zLjctMjEuNy0xNS0yMS43aC01OC41YzExLTE4LjkgMTcuOC00MC42IDE3LjgtNjR2LS4zYzM5LjItNy44IDY0LTE5LjEgNjQtMzEuNyAwLTEzLjMtMjcuMy0yNS4xLTcwLjEtMzMtOS4yLTMyLjgtMjctNjUuOC00MC42LTgyLjgtOS41LTExLjktMjUuOS0xNS42LTM5LjUtOC44bC0yNy42IDEzLjhjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxODIuMSAzLjRjLTEzLjYtNi44LTMwLTMuMS0zOS41IDguOC0xMy41IDE3LTMxLjQgNTAtNDAuNiA4Mi44LTQyLjcgNy45LTcwIDE5LjctNzAgMzMgMCAxMi42IDI0LjggMjMuOSA2NCAzMS43di4zYzAgMjMuNCA2LjggNDUuMSAxNy44IDY0SDU2LjNjLTExLjUgMC0xOS4yIDExLjctMTQuNyAyMi4zbDI1LjggNjAuMkMyNy4zIDMyOS44IDAgMzcyLjcgMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC00OC40LTI1LjgtOTAuNC02NC4xLTExNC4xek0xNzYgNDgwbC00MS42LTE5MiA0OS42IDMyIDI0IDQwLTMyIDEyMHptOTYgMGwtMzItMTIwIDI0LTQwIDQ5LjYtMzJMMjcyIDQ4MHptNDEuNy0yOTguNWMtMy45IDExLjktNyAyNC42LTE2LjUgMzMuNC0xMC4xIDkuMy00OCAyMi40LTY0LTI1LTIuOC04LjQtMTUuNC04LjQtMTguMyAwLTE3IDUwLjItNTYgMzIuNC02NCAyNS05LjUtOC44LTEyLjctMjEuNS0xNi41LTMzLjQtLjgtMi41LTYuMy01LjctNi4zLTUuOHYtMTAuOGMyOC4zIDMuNiA2MSA1LjggOTYgNS44czY3LjctMi4xIDk2LTUuOHYxMC44Yy0uMS4xLTUuNiAzLjItNi40IDUuOHoiPjwvcGF0aD4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+)}.theme-ntos .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-ntos .Button:last-child{margin-right:0;margin-bottom:0}.theme-ntos .Button .fa,.theme-ntos .Button .fas,.theme-ntos .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-ntos .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .fas,.theme-ntos .Button--hasContent .far{margin-right:.25em}.theme-ntos .Button--hasContent.Button--iconPosition--right .fa,.theme-ntos .Button--hasContent.Button--iconPosition--right .fas,.theme-ntos .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--circular{border-radius:50%}.theme-ntos .Button--compact{padding:0 .25em;line-height:1.333em}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:hover,.theme-ntos .Button--color--default:focus{background-color:#546d8b;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:hover,.theme-ntos .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:hover,.theme-ntos .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:hover,.theme-ntos .Button--color--transparent:focus{background-color:#374555;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:hover,.theme-ntos .Button--selected:focus{background-color:#32c154;color:#fff}.theme-ntos .Button--flex{display:inline-flex;flex-direction:column}.theme-ntos .Button--flex--fluid{width:100%}.theme-ntos .Button--verticalAlignContent--top{justify-content:flex-start}.theme-ntos .Button--verticalAlignContent--middle{justify-content:center}.theme-ntos .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-ntos .Button__content{display:block;align-self:stretch}.theme-ntos .Button__textMargin{margin-left:.4rem}.theme-ntos .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,.5);transition:border-color .9s ease-out}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#151d26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__rest{position:relative}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--fill>.Section__rest{flex-grow:1}.theme-ntos .Section--fill>.Section__rest>.Section__content{height:100%}.theme-ntos .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-ntos .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-ntos .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-ntos .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-ntos .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-ntos .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-ntos .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-ntos .Section .Section:first-child{margin-top:-.5em}.theme-ntos .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section .Section .Section .Section__titleText{font-size:1em}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-ntos .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(to bottom,#223040,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;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-ntos .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#2a3b4e;transition:color .25s ease-out,background-color .25s ease-out}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-ntos .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .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-ntos .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-ntos .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-paper .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.theme-paper .Tabs--fill{height:100%}.theme-paper .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-paper .Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.theme-paper .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.theme-paper .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-paper .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.theme-paper .Tabs--horizontal:last-child{margin-bottom:0}.theme-paper .Tabs__Tab{flex-grow:0}.theme-paper .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-paper .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}.theme-paper .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-paper .Tab--selected{background-color:rgba(255,255,255,.125);color:#fafafa}.theme-paper .Tab__text{flex-grow:1;margin:0 .5em}.theme-paper .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-paper .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-paper .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-paper .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #f9f9f9}.theme-paper .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-paper .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #f9f9f9}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#e6e6e6;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__rest{position:relative}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--fill>.Section__rest{flex-grow:1}.theme-paper .Section--fill>.Section__rest>.Section__content{height:100%}.theme-paper .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-paper .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-paper .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-paper .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-paper .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-paper .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-paper .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-paper .Section .Section:first-child{margin-top:-.5em}.theme-paper .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-paper .Section .Section .Section .Section__titleText{font-size:1em}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .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-paper .Button:last-child{margin-right:0;margin-bottom:0}.theme-paper .Button .fa,.theme-paper .Button .fas,.theme-paper .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-paper .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .fas,.theme-paper .Button--hasContent .far{margin-right:.25em}.theme-paper .Button--hasContent.Button--iconPosition--right .fa,.theme-paper .Button--hasContent.Button--iconPosition--right .fas,.theme-paper .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-paper .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--circular{border-radius:50%}.theme-paper .Button--compact{padding:0 .25em;line-height:1.333em}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:hover,.theme-paper .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:hover,.theme-paper .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:hover,.theme-paper .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:rgba(255,255,255,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:hover,.theme-paper .Button--color--transparent:focus{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:hover,.theme-paper .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-paper .Button--flex{display:inline-flex;flex-direction:column}.theme-paper .Button--flex--fluid{width:100%}.theme-paper .Button--verticalAlignContent--top{justify-content:flex-start}.theme-paper .Button--verticalAlignContent--middle{justify-content:center}.theme-paper .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-paper .Button__content{display:block;align-self:stretch}.theme-paper .Button__textMargin{margin-left:.4rem}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-paper .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#fff;background-image:linear-gradient(to bottom,#fff,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;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-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s ease-out,background-color .25s ease-out}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .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-paper .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .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-paper .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-paper .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-paper .PaperInput{position:relative;display:inline-block;width:120px;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-paper .Layout__content{background-image:none}.theme-paper .Window{background-image:none;color:#000}.theme-paper .paper-text input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-text input,.theme-paper .paper-field{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-field input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-pda-retro .color-black{color:#1a1a1a!important}.theme-pda-retro .color-white{color:#fff!important}.theme-pda-retro .color-red{color:#df3e3e!important}.theme-pda-retro .color-orange{color:#f37f33!important}.theme-pda-retro .color-yellow{color:#fbda21!important}.theme-pda-retro .color-olive{color:#cbe41c!important}.theme-pda-retro .color-green{color:#25ca4c!important}.theme-pda-retro .color-teal{color:#00d6cc!important}.theme-pda-retro .color-blue{color:#2e93de!important}.theme-pda-retro .color-violet{color:#7349cf!important}.theme-pda-retro .color-purple{color:#ad45d0!important}.theme-pda-retro .color-pink{color:#e34da1!important}.theme-pda-retro .color-brown{color:#b97447!important}.theme-pda-retro .color-grey{color:#848484!important}.theme-pda-retro .color-light-grey{color:#b3b3b3!important}.theme-pda-retro .color-good{color:#68c22d!important}.theme-pda-retro .color-average{color:#1a1a1a!important}.theme-pda-retro .color-bad{color:#df3e3e!important}.theme-pda-retro .color-label{color:#1a1a1a!important}.theme-pda-retro .color-bg-black{background-color:#000!important}.theme-pda-retro .color-bg-white{background-color:#d9d9d9!important}.theme-pda-retro .color-bg-red{background-color:#bd2020!important}.theme-pda-retro .color-bg-orange{background-color:#d95e0c!important}.theme-pda-retro .color-bg-yellow{background-color:#d9b804!important}.theme-pda-retro .color-bg-olive{background-color:#9aad14!important}.theme-pda-retro .color-bg-green{background-color:#1b9638!important}.theme-pda-retro .color-bg-teal{background-color:#009a93!important}.theme-pda-retro .color-bg-blue{background-color:#1c71b1!important}.theme-pda-retro .color-bg-violet{background-color:#552dab!important}.theme-pda-retro .color-bg-purple{background-color:#8b2baa!important}.theme-pda-retro .color-bg-pink{background-color:#cf2082!important}.theme-pda-retro .color-bg-brown{background-color:#8c5836!important}.theme-pda-retro .color-bg-grey{background-color:#646464!important}.theme-pda-retro .color-bg-light-grey{background-color:#919191!important}.theme-pda-retro .color-bg-good{background-color:#4d9121!important}.theme-pda-retro .color-bg-average{background-color:#000!important}.theme-pda-retro .color-bg-bad{background-color:#bd2020!important}.theme-pda-retro .color-bg-label{background-color:#000!important}.theme-pda-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-pda-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-pda-retro .Button .fa,.theme-pda-retro .Button .fas,.theme-pda-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-pda-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-pda-retro .Button--hasContent .fa,.theme-pda-retro .Button--hasContent .fas,.theme-pda-retro .Button--hasContent .far{margin-right:.25em}.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-pda-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-pda-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-pda-retro .Button--circular{border-radius:50%}.theme-pda-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-pda-retro .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--black:hover,.theme-pda-retro .Button--color--black:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.theme-pda-retro .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--white:hover,.theme-pda-retro .Button--color--white:focus{background-color:#f8f8f8;color:#000}.theme-pda-retro .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--red:hover,.theme-pda-retro .Button--color--red:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.theme-pda-retro .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--orange:hover,.theme-pda-retro .Button--color--orange:focus{background-color:#f0853f;color:#fff}.theme-pda-retro .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-pda-retro .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--yellow:hover,.theme-pda-retro .Button--color--yellow:focus{background-color:#f5d72e;color:#000}.theme-pda-retro .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.theme-pda-retro .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--olive:hover,.theme-pda-retro .Button--color--olive:focus{background-color:#c4da2b;color:#fff}.theme-pda-retro .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-pda-retro .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--green:hover,.theme-pda-retro .Button--color--green:focus{background-color:#32c154;color:#fff}.theme-pda-retro .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.theme-pda-retro .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--teal:hover,.theme-pda-retro .Button--color--teal:focus{background-color:#13c4bc;color:#fff}.theme-pda-retro .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.theme-pda-retro .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--blue:hover,.theme-pda-retro .Button--color--blue:focus{background-color:#3a95d9;color:#fff}.theme-pda-retro .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.theme-pda-retro .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--violet:hover,.theme-pda-retro .Button--color--violet:focus{background-color:#7953cc;color:#fff}.theme-pda-retro .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.theme-pda-retro .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--purple:hover,.theme-pda-retro .Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.theme-pda-retro .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.theme-pda-retro .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--pink:hover,.theme-pda-retro .Button--color--pink:focus{background-color:#e257a5;color:#fff}.theme-pda-retro .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.theme-pda-retro .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--brown:hover,.theme-pda-retro .Button--color--brown:focus{background-color:#b47851;color:#fff}.theme-pda-retro .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.theme-pda-retro .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--grey:hover,.theme-pda-retro .Button--color--grey:focus{background-color:#868686;color:#fff}.theme-pda-retro .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.theme-pda-retro .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--light-grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--light-grey:hover,.theme-pda-retro .Button--color--light-grey:focus{background-color:#bababa;color:#fff}.theme-pda-retro .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-pda-retro .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--good:hover,.theme-pda-retro .Button--color--good:focus{background-color:#6cba39;color:#fff}.theme-pda-retro .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--average:hover,.theme-pda-retro .Button--color--average:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--bad:hover,.theme-pda-retro .Button--color--bad:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--label:hover,.theme-pda-retro .Button--color--label:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-pda-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--default:hover,.theme-pda-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-pda-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-pda-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--caution:hover,.theme-pda-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-pda-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-pda-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--danger:hover,.theme-pda-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-pda-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#6f7961;color:#fff;background-color:rgba(111,121,97,0);color:rgba(255,255,255,.5)}.theme-pda-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--transparent:hover,.theme-pda-retro .Button--color--transparent:focus{background-color:#939c85;color:#fff}.theme-pda-retro .Button--disabled{background-color:#505050!important}.theme-pda-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-pda-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--selected:hover,.theme-pda-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-pda-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-pda-retro .Button--flex--fluid{width:100%}.theme-pda-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-pda-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-pda-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-pda-retro .Button__content{display:block;align-self:stretch}.theme-pda-retro .Button__textMargin{margin-left:.4rem}.theme-pda-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-pda-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-pda-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-pda-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-pda-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-pda-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--black{border-color:#000!important}.theme-pda-retro .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--white{border-color:#d9d9d9!important}.theme-pda-retro .ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.theme-pda-retro .ProgressBar--color--red{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--orange{border-color:#d95e0c!important}.theme-pda-retro .ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.theme-pda-retro .ProgressBar--color--yellow{border-color:#d9b804!important}.theme-pda-retro .ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.theme-pda-retro .ProgressBar--color--olive{border-color:#9aad14!important}.theme-pda-retro .ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.theme-pda-retro .ProgressBar--color--green{border-color:#1b9638!important}.theme-pda-retro .ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.theme-pda-retro .ProgressBar--color--teal{border-color:#009a93!important}.theme-pda-retro .ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.theme-pda-retro .ProgressBar--color--blue{border-color:#1c71b1!important}.theme-pda-retro .ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.theme-pda-retro .ProgressBar--color--violet{border-color:#552dab!important}.theme-pda-retro .ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.theme-pda-retro .ProgressBar--color--purple{border-color:#8b2baa!important}.theme-pda-retro .ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.theme-pda-retro .ProgressBar--color--pink{border-color:#cf2082!important}.theme-pda-retro .ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.theme-pda-retro .ProgressBar--color--brown{border-color:#8c5836!important}.theme-pda-retro .ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.theme-pda-retro .ProgressBar--color--grey{border-color:#646464!important}.theme-pda-retro .ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.theme-pda-retro .ProgressBar--color--light-grey{border-color:#919191!important}.theme-pda-retro .ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.theme-pda-retro .ProgressBar--color--good{border-color:#4d9121!important}.theme-pda-retro .ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.theme-pda-retro .ProgressBar--color--average{border-color:#000!important}.theme-pda-retro .ProgressBar--color--average .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--bad{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--label{border-color:#000!important}.theme-pda-retro .ProgressBar--color--label .ProgressBar__fill{background-color:#000}.theme-pda-retro .Section{position:relative;margin-bottom:.5em;background-color:#646d57;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-pda-retro .Section:last-child{margin-bottom:0}.theme-pda-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-pda-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-pda-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-pda-retro .Section__rest{position:relative}.theme-pda-retro .Section__content{padding:.66em .5em}.theme-pda-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-pda-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-pda-retro .Section--fill>.Section__rest{flex-grow:1}.theme-pda-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-pda-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-pda-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-pda-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-pda-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-pda-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-pda-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-pda-retro .Section .Section:first-child{margin-top:-.5em}.theme-pda-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-pda-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-pda-retro .Section--flex{display:flex;flex-flow:column}.theme-pda-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-pda-retro .Section__content--noTopPadding{padding-top:0}.theme-pda-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent,.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent{text-align:right;background-color:#9faa91}.theme-pda-retro .TinderMessage_First_Sent{border-radius:10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{text-align:left;background-color:#b8b37b}.theme-pda-retro .TinderMessage_First_Received{border-radius:10px 10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.theme-pda-retro .ClassicMessage_Sent,.theme-pda-retro .ClassicMessage_Received{word-break:break-all}.theme-pda-retro .ClassicMessage_Sent{color:#9faa91}.theme-pda-retro .ClassicMessage_Received{color:#b8b37b}.theme-pda-retro .Layout,.theme-pda-retro .Layout *{scrollbar-base-color:#535b49;scrollbar-face-color:#7e896e;scrollbar-3dlight-color:#6f7961;scrollbar-highlight-color:#6f7961;scrollbar-track-color:#535b49;scrollbar-arrow-color:#b7beae;scrollbar-shadow-color:#7e896e}.theme-pda-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-pda-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-pda-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-pda-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#6f7961;background-image:linear-gradient(to bottom,#6f7961,#6f7961)}.theme-pda-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-pda-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-pda-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-pda-retro .Window__contentPadding:after{height:0}.theme-pda-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-pda-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(147,156,133,.25);pointer-events:none}.theme-pda-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-pda-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-pda-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-pda-retro .TitleBar{background-color:#363636;border-bottom:1px solid #161616;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-pda-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.theme-pda-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-pda-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-pda-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-pda-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-pda-retro .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-pda-retro .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-pda-retro .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-pda-retro .Button{color:#161613;background-color:#565d4b;border:1px solid #000}.theme-pda-retro .Layout__content{background-image:none}.theme-pda-retro .LabeledList__label{font-weight:700}.theme-pda-retro .Tooltip:after{color:#fff}.theme-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-retro .Button .fa,.theme-retro .Button .fas,.theme-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .fas,.theme-retro .Button--hasContent .far{margin-right:.25em}.theme-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--circular{border-radius:50%}.theme-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:hover,.theme-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:hover,.theme-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:hover,.theme-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:rgba(255,255,255,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:hover,.theme-retro .Button--color--transparent:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:hover,.theme-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-retro .Button--flex--fluid{width:100%}.theme-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-retro .Button__content{display:block;align-self:stretch}.theme-retro .Button__textMargin{margin-left:.4rem}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#9b9987;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__rest{position:relative}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--fill>.Section__rest{flex-grow:1}.theme-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-retro .Section .Section:first-child{margin-top:-.5em}.theme-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(to bottom,#e8e4c9,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;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-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#585337;transition:color .25s ease-out,background-color .25s ease-out}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .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-retro .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-retro .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-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .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-syndicate .Button:last-child{margin-right:0;margin-bottom:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .fas,.theme-syndicate .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-syndicate .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .fas,.theme-syndicate .Button--hasContent .far{margin-right:.25em}.theme-syndicate .Button--hasContent.Button--iconPosition--right .fa,.theme-syndicate .Button--hasContent.Button--iconPosition--right .fas,.theme-syndicate .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--circular{border-radius:50%}.theme-syndicate .Button--compact{padding:0 .25em;line-height:1.333em}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:hover,.theme-syndicate .Button--color--default:focus{background-color:#595;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:hover,.theme-syndicate .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:hover,.theme-syndicate .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:rgba(255,255,255,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:hover,.theme-syndicate .Button--color--transparent:focus{background-color:#751616;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:hover,.theme-syndicate .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-syndicate .Button--flex{display:inline-flex;flex-direction:column}.theme-syndicate .Button--flex--fluid{width:100%}.theme-syndicate .Button--verticalAlignContent--top{justify-content:flex-start}.theme-syndicate .Button--verticalAlignContent--middle{justify-content:center}.theme-syndicate .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-syndicate .Button__content{display:block;align-self:stretch}.theme-syndicate .Button__textMargin{margin-left:.4rem}.theme-syndicate .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-syndicate .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-syndicate .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-syndicate .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}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-syndicate .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .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}.theme-syndicate .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,.5);transition:border-color .9s ease-out}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#390101;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__rest{position:relative}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--fill>.Section__rest{flex-grow:1}.theme-syndicate .Section--fill>.Section__rest>.Section__content{height:100%}.theme-syndicate .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-syndicate .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-syndicate .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-syndicate .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-syndicate .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-syndicate .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Section .Section:first-child{margin-top:-.5em}.theme-syndicate .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section .Section .Section .Section__titleText{font-size:1em}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#4a0202;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(to bottom,#730303,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;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-syndicate .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#910101;transition:color .25s ease-out,background-color .25s ease-out}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-syndicate .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .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-syndicate .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-syndicate .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-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyMDAgMjg5Ljc0MiIgb3BhY2l0eT0iLjMzIj4KICA8cGF0aCBkPSJtIDkzLjUzNzY3NywwIGMgLTE4LjExMzEyNSwwIC0zNC4yMjAxMzMsMy4xMTE2NCAtNDguMzIzNDg0LDkuMzM0MzcgLTEzLjk2NTA5Miw2LjIyMTY3IC0yNC42MTI0NDIsMTUuMDcxMTQgLTMxLjk0MDY1MSwyNi41NDcxIC03LjE4OTkzOTgsMTEuMzM3ODkgLTEwLjMwMTIyNjYsMjQuNzQ5MTEgLTEwLjMwMTIyNjYsNDAuMjM0NzggMCwxMC42NDY2MiAyLjcyNTAwMjYsMjAuNDY0NjUgOC4xNzUxMTE2LDI5LjQ1MjU4IDUuNjE1Mjc3LDguOTg2ODYgMTQuMDM4Mjc3LDE3LjM1MjA0IDI1LjI2ODgyMSwyNS4wOTQzNiAxMS4yMzA1NDQsNy42MDUzMSAyNi41MDc0MjEsMTUuNDE4MzUgNDUuODMwNTE0LDIzLjQzNzgyIDE5Ljk4Mzc0OCw4LjI5NTU3IDM0Ljg0ODg0OCwxNS41NTQ3MSA0NC41OTI5OTgsMjEuNzc2MzggOS43NDQxNCw2LjIyMjczIDE2Ljc2MTcsMTIuODU4NSAyMS4wNTU3MiwxOS45MDk1MSA0LjI5NDA0LDcuMDUyMDggNi40NDE5MywxNS43NjQwOCA2LjQ0MTkzLDI2LjEzNDU5IDAsMTYuMTc3MDIgLTUuMjAxOTYsMjguNDgyMjIgLTE1LjYwNjczLDM2LjkxNjgyIC0xMC4yMzk2LDguNDM0NyAtMjUuMDIyMDMsMTIuNjUyMyAtNDQuMzQ1MTY5LDEyLjY1MjMgLTE0LjAzODE3MSwwIC0yNS41MTUyNDcsLTEuNjU5NCAtMzQuNDMzNjE4LC00Ljk3NzcgLTguOTE4MzcsLTMuNDU2NiAtMTYuMTg1NTcyLC04LjcxMTMgLTIxLjgwMDgzOSwtMTUuNzYzMyAtNS42MTUyNzcsLTcuMDUyMSAtMTAuMDc0Nzk1LC0xNi42NjA4OCAtMTMuMzc3ODk5LC0yOC44MjgxMiBsIC0yNC43NzMxNjI2MjkzOTQ1LDAgMCw1Ni44MjYzMiBDIDMzLjg1Njc2OSwyODYuMDc2MDEgNjMuNzQ5MDQsMjg5Ljc0MjAxIDg5LjY3ODM4MywyODkuNzQyMDEgYyAxNi4wMjAwMjcsMCAzMC43MTk3ODcsLTEuMzgyNyA0NC4wOTczMzcsLTQuMTQ3OSAxMy41NDI3MiwtMi45MDQzIDI1LjEwNDEsLTcuNDY3NiAzNC42ODMwOSwtMTMuNjg5MyA5Ljc0NDEzLC02LjM1OTcgMTcuMzQwNDIsLTE0LjUxOTUgMjIuNzkwNTIsLTI0LjQ3NDggNS40NTAxLC0xMC4wOTMzMiA4LjE3NTExLC0yMi4zOTk1OSA4LjE3NTExLC0zNi45MTY4MiAwLC0xMi45OTc2NCAtMy4zMDIxLC0yNC4zMzUzOSAtOS45MDgyOSwtMzQuMDE0NiAtNi40NDEwNSwtOS44MTcyNSAtMTUuNTI1NDUsLTE4LjUyNzA3IC0yNy4yNTE0NiwtMjYuMTMxMzMgLTExLjU2MDg1LC03LjYwNDI3IC0yNy45MTA4MywtMTUuODMxNDIgLTQ5LjA1MDY2LC0yNC42ODAyMiAtMTcuNTA2NDQsLTcuMTkwMTIgLTMwLjcxOTY2OCwtMTMuNjg5NDggLTM5LjYzODAzOCwtMTkuNDk3MDEgLTguOTE4MzcxLC01LjgwNzUyIC0xOC42MDc0NzQsLTEyLjQzNDA5IC0yNC4wOTY1MjQsLTE4Ljg3NDE3IC01LjQyNjA0MywtNi4zNjYxNiAtOS42NTg4MjYsLTE1LjA3MDAzIC05LjY1ODgyNiwtMjQuODg3MjkgMCwtOS4yNjQwMSAyLjA3NTQxNCwtMTcuMjEzNDUgNi4yMjM0NTQsLTIzLjg1MDMzIDExLjA5ODI5OCwtMTQuMzk3NDggNDEuMjg2NjM4LC0xLjc5NTA3IDQ1LjA3NTYwOSwyNC4zNDc2MiA0LjgzOTM5Miw2Ljc3NDkxIDguODQ5MzUsMTYuMjQ3MjkgMTIuMDI5NTE1LDI4LjQxNTYgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTQuNDc4MjUsLTUuOTI0NDggLTkuOTU0ODgsLTEwLjYzMjIyIC0xNS45MDgzNywtMTQuMzc0MTEgMS42NDA1NSwwLjQ3OTA1IDMuMTkwMzksMS4wMjM3NiA0LjYzODY1LDEuNjQwMjQgNi40OTg2MSwyLjYyNjA3IDEyLjE2NzkzLDcuMzI3NDcgMTcuMDA3MywxNC4xMDM0NSA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNSwxNi4yNDU2NyAxMi4wMjk1MiwyOC40MTM5NyAwLDAgOC40ODEyOCwtMC4xMjg5NCA4LjQ4OTc4LC0wLjAwMiAwLjQxNzc2LDYuNDE0OTQgLTEuNzUzMzksOS40NTI4NiAtNC4xMjM0MiwxMi41NjEwNCAtMi40MTc0LDMuMTY5NzggLTUuMTQ0ODYsNi43ODk3MyAtNC4wMDI3OCwxMy4wMDI5IDEuNTA3ODYsOC4yMDMxOCAxMC4xODM1NCwxMC41OTY0MiAxNC42MjE5NCw5LjMxMTU0IC0zLjMxODQyLC0wLjQ5OTExIC01LjMxODU1LC0xLjc0OTQ4IC01LjMxODU1LC0xLjc0OTQ4IDAsMCAxLjg3NjQ2LDAuOTk4NjggNS42NTExNywtMS4zNTk4MSAtMy4yNzY5NSwwLjk1NTcxIC0xMC43MDUyOSwtMC43OTczOCAtMTEuODAxMjUsLTYuNzYzMTMgLTAuOTU3NTIsLTUuMjA4NjEgMC45NDY1NCwtNy4yOTUxNCAzLjQwMTEzLC0xMC41MTQ4MiAyLjQ1NDYyLC0zLjIxOTY4IDUuMjg0MjYsLTYuOTU4MzEgNC42ODQzLC0xNC40ODgyNCBsIDAuMDAzLDAuMDAyIDguOTI2NzYsMCAwLC01NS45OTk2NyBjIC0xNS4wNzEyNSwtMy44NzE2OCAtMjcuNjUzMTQsLTYuMzYwNDIgLTM3Ljc0NjcxLC03LjQ2NTg2IC05Ljk1NTMxLC0xLjEwNzU1IC0yMC4xODgyMywtMS42NTk4MSAtMzAuNjk2NjEzLC0xLjY1OTgxIHogbSA3MC4zMjE2MDMsMTcuMzA4OTMgMC4yMzgwNSw0MC4zMDQ5IGMgMS4zMTgwOCwxLjIyNjY2IDIuNDM5NjUsMi4yNzgxNSAzLjM0MDgxLDMuMTA2MDIgNC44MzkzOSw2Ljc3NDkxIDguODQ5MzQsMTYuMjQ1NjYgMTIuMDI5NTEsMjguNDEzOTcgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTYuNjc3MzEsLTQuNTkzODEgLTE5LjgzNjQzLC0xMC40NzMwOSAtMzYuMTQwNzEsLTE1LjgyNTIyIHogbSAtMjguMTIwNDksNS42MDU1MSA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM3LC02LjQ2Njk3IC0xMy44NDY3OCwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NzA1LDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiBtIDE1LjIyMTk1LDI0LjAwODQ4IDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzgsLTYuNDY2OTcgLTEzLjg0Njc5LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDQsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gLTk5LjExMzg0LDIuMjA3NjQgOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzODIsLTYuNDY2OTcgLTEzLjg0Njc4MiwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NTQyLDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiIgLz4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+Cg==)}.theme-wizard .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-wizard .Button:last-child{margin-right:0;margin-bottom:0}.theme-wizard .Button .fa,.theme-wizard .Button .fas,.theme-wizard .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-wizard .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-wizard .Button--hasContent .fa,.theme-wizard .Button--hasContent .fas,.theme-wizard .Button--hasContent .far{margin-right:.25em}.theme-wizard .Button--hasContent.Button--iconPosition--right .fa,.theme-wizard .Button--hasContent.Button--iconPosition--right .fas,.theme-wizard .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-wizard .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-wizard .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-wizard .Button--circular{border-radius:50%}.theme-wizard .Button--compact{padding:0 .25em;line-height:1.333em}.theme-wizard .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#1596b6;color:#fff}.theme-wizard .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--default:hover,.theme-wizard .Button--color--default:focus{background-color:#30bde0;color:#fff}.theme-wizard .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-wizard .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--caution:hover,.theme-wizard .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-wizard .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#b30707;color:#fff}.theme-wizard .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--danger:hover,.theme-wizard .Button--color--danger:focus{background-color:#e11b1b;color:#fff}.theme-wizard .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#213e4e;color:#fff;background-color:rgba(33,62,78,0);color:rgba(255,255,255,.5)}.theme-wizard .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--transparent:hover,.theme-wizard .Button--color--transparent:focus{background-color:#395b6d;color:#fff}.theme-wizard .Button--disabled{background-color:#02426d!important}.theme-wizard .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-wizard .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--selected:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--selected:hover,.theme-wizard .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-wizard .Button--flex{display:inline-flex;flex-direction:column}.theme-wizard .Button--flex--fluid{width:100%}.theme-wizard .Button--verticalAlignContent--top{justify-content:flex-start}.theme-wizard .Button--verticalAlignContent--middle{justify-content:center}.theme-wizard .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-wizard .Button__content{display:block;align-self:stretch}.theme-wizard .Button__textMargin{margin-left:.4rem}.theme-wizard .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-wizard .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-wizard .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-wizard .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-wizard .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-wizard .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-wizard .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-wizard .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-wizard .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-wizard .Input--fluid{display:block;width:auto}.theme-wizard .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-wizard .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}.theme-wizard .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-wizard .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-wizard .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-wizard .NumberInput--fluid{display:block}.theme-wizard .NumberInput__content{margin-left:.5em}.theme-wizard .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-wizard .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-wizard .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}.theme-wizard .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-wizard .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-wizard .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-wizard .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-wizard .ProgressBar--color--default{border:.0833333333em solid #12809b}.theme-wizard .ProgressBar--color--default .ProgressBar__fill{background-color:#12809b}.theme-wizard .Section{position:relative;margin-bottom:.5em;background-color:#162a34;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-wizard .Section:last-child{margin-bottom:0}.theme-wizard .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #1596b6}.theme-wizard .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-wizard .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-wizard .Section__rest{position:relative}.theme-wizard .Section__content{padding:.66em .5em}.theme-wizard .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-wizard .Section--fill{display:flex;flex-direction:column;height:100%}.theme-wizard .Section--fill>.Section__rest{flex-grow:1}.theme-wizard .Section--fill>.Section__rest>.Section__content{height:100%}.theme-wizard .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-wizard .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-wizard .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-wizard .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-wizard .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-wizard .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-wizard .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-wizard .Section .Section:first-child{margin-top:-.5em}.theme-wizard .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-wizard .Section .Section .Section .Section__titleText{font-size:1em}.theme-wizard .Section--flex{display:flex;flex-flow:column}.theme-wizard .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-wizard .Section__content--noTopPadding{padding-top:0}.theme-wizard .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-wizard .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#2da848;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-wizard .Layout,.theme-wizard .Layout *{scrollbar-base-color:#192f3b;scrollbar-face-color:#2d546a;scrollbar-3dlight-color:#213e4e;scrollbar-highlight-color:#213e4e;scrollbar-track-color:#192f3b;scrollbar-arrow-color:#73a7c4;scrollbar-shadow-color:#2d546a}.theme-wizard .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-wizard .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-wizard .Layout__content--flexRow{display:flex;flex-flow:row}.theme-wizard .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-wizard .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#213e4e;background-image:linear-gradient(to bottom,#2a4f64,#182d38)}.theme-wizard .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-wizard .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-wizard .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-wizard .Window__contentPadding:after{height:0}.theme-wizard .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-wizard .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(57,91,109,.25);pointer-events:none}.theme-wizard .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-wizard .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-wizard .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-wizard .TitleBar{background-color:#1b9e26;border-bottom:1px solid #161616;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-wizard .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1b9e26;transition:color .25s ease-out,background-color .25s ease-out}.theme-wizard .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-wizard .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-wizard .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-wizard .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-wizard .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-wizard .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-wizard .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-wizard .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJtZXRlb3IiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZXRlb3IgZmEtdy0xNiIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1oiPjwvcGF0aD48L3N2Zz4KPCEtLSBUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgYSBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwgTGljZW5zZS4gLS0+CjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4=)}.theme-abstract .TitleBar__statusIcon{display:none}.theme-abstract .Layout__content{background-image:none}.theme-abstract .TitleBar__title{left:12px} diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index e29f6a8acc..a155198790 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1,4 +1,4 @@ -(function(){(function(){var Uu={75614:function(y,u,n){"use strict";/** +(function(){(function(){var Uu={75614:function(O,h,n){"use strict";/** * @license React * react-dom.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function e(h,p){return p!=null&&typeof Symbol!="undefined"&&p[Symbol.hasInstance]?!!p[Symbol.hasInstance](h):h instanceof p}function o(h){"@swc/helpers - typeof";return h&&typeof Symbol!="undefined"&&h.constructor===Symbol?"symbol":typeof h}var t=n(61358),r=n(20686);function s(h){for(var p="https://reactjs.org/docs/error-decoder.html?invariant="+h,C=1;Cp}return!1}function O(h,p,C,D,R,N,F){this.acceptsBooleans=p===2||p===3||p===4,this.attributeName=D,this.attributeNamespace=R,this.mustUseProperty=C,this.propertyName=h,this.type=p,this.sanitizeURL=N,this.removeEmptyString=F}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(h){M[h]=new O(h,0,!1,h,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(h){var p=h[0];M[p]=new O(p,1,!1,h[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(h){M[h]=new O(h,2,!1,h.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(h){M[h]=new O(h,2,!1,h,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(h){M[h]=new O(h,3,!1,h.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(h){M[h]=new O(h,3,!0,h,null,!1,!1)}),["capture","download"].forEach(function(h){M[h]=new O(h,4,!1,h,null,!1,!1)}),["cols","rows","size","span"].forEach(function(h){M[h]=new O(h,6,!1,h,null,!1,!1)}),["rowSpan","start"].forEach(function(h){M[h]=new O(h,5,!1,h.toLowerCase(),null,!1,!1)});var _=/[\-:]([a-z])/g;function I(h){return h[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(h){M[h]=new O(h,1,!1,h.toLowerCase(),null,!1,!1)}),M.xlinkHref=new O("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(h){M[h]=new O(h,1,!1,h.toLowerCase(),null,!0,!0)});function S(h,p,C,D){var R=M.hasOwnProperty(p)?M[p]:null;(R!==null?R.type!==0:D||!(2te||R[F]!==N[te]){var ue="\n"+R[F].replace(" at new "," at ");return h.displayName&&ue.includes("")&&(ue=ue.replace("",h.displayName)),ue}while(1<=F&&0<=te);break}}}finally{fe=!1,Error.prepareStackTrace=C}return(h=h?h.displayName||h.name:"")?se(h):""}function Ie(h){switch(h.tag){case 5:return se(h.type);case 16:return se("Lazy");case 13:return se("Suspense");case 19:return se("SuspenseList");case 0:case 2:case 15:return h=ge(h.type,!1),h;case 11:return h=ge(h.type.render,!1),h;case 1:return h=ge(h.type,!0),h;default:return""}}function je(h){if(h==null)return null;if(typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case W:return"Fragment";case K:return"Portal";case k:return"Profiler";case $:return"StrictMode";case Y:return"Suspense";case ee:return"SuspenseList"}if(typeof h=="object")switch(h.$$typeof){case H:return(h.displayName||"Context")+".Consumer";case z:return(h._context.displayName||"Context")+".Provider";case G:var p=h.render;return h=h.displayName,h||(h=p.displayName||p.name||"",h=h!==""?"ForwardRef("+h+")":"ForwardRef"),h;case le:return p=h.displayName||null,p!==null?p:je(h.type)||"Memo";case ne:p=h._payload,h=h._init;try{return je(h(p))}catch(C){}}return null}function Ee(h){var p=h.type;switch(h.tag){case 24:return"Cache";case 9:return(p.displayName||"Context")+".Consumer";case 10:return(p._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return h=p.render,h=h.displayName||h.name||"",p.displayName||(h!==""?"ForwardRef("+h+")":"ForwardRef");case 7:return"Fragment";case 5:return p;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return je(p);case 8:return p===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p}return null}function Ne(h){switch(typeof h=="undefined"?"undefined":o(h)){case"boolean":case"number":case"string":case"undefined":return h;case"object":return h;default:return""}}function on(h){var p=h.type;return(h=h.nodeName)&&h.toLowerCase()==="input"&&(p==="checkbox"||p==="radio")}function He(h){var p=on(h)?"checked":"value",C=Object.getOwnPropertyDescriptor(h.constructor.prototype,p),D=""+h[p];if(!h.hasOwnProperty(p)&&typeof C!="undefined"&&typeof C.get=="function"&&typeof C.set=="function"){var R=C.get,N=C.set;return Object.defineProperty(h,p,{configurable:!0,get:function(){return R.call(this)},set:function(te){D=""+te,N.call(this,te)}}),Object.defineProperty(h,p,{enumerable:C.enumerable}),{getValue:function(){return D},setValue:function(te){D=""+te},stopTracking:function(){h._valueTracker=null,delete h[p]}}}}function Pe(h){h._valueTracker||(h._valueTracker=He(h))}function qe(h){if(!h)return!1;var p=h._valueTracker;if(!p)return!0;var C=p.getValue(),D="";return h&&(D=on(h)?h.checked?"true":"false":h.value),h=D,h!==C?(p.setValue(h),!0):!1}function En(h){if(h=h||(typeof document!="undefined"?document:void 0),typeof h=="undefined")return null;try{return h.activeElement||h.body}catch(p){return h.body}}function jn(h,p){var C=p.checked;return q({},p,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:C!=null?C:h._wrapperState.initialChecked})}function hn(h,p){var C=p.defaultValue==null?"":p.defaultValue,D=p.checked!=null?p.checked:p.defaultChecked;C=Ne(p.value!=null?p.value:C),h._wrapperState={initialChecked:D,initialValue:C,controlled:p.type==="checkbox"||p.type==="radio"?p.checked!=null:p.value!=null}}function Cn(h,p){p=p.checked,p!=null&&S(h,"checked",p,!1)}function fn(h,p){Cn(h,p);var C=Ne(p.value),D=p.type;if(C!=null)D==="number"?(C===0&&h.value===""||h.value!=C)&&(h.value=""+C):h.value!==""+C&&(h.value=""+C);else if(D==="submit"||D==="reset"){h.removeAttribute("value");return}p.hasOwnProperty("value")?Se(h,p.type,C):p.hasOwnProperty("defaultValue")&&Se(h,p.type,Ne(p.defaultValue)),p.checked==null&&p.defaultChecked!=null&&(h.defaultChecked=!!p.defaultChecked)}function tn(h,p,C){if(p.hasOwnProperty("value")||p.hasOwnProperty("defaultValue")){var D=p.type;if(!(D!=="submit"&&D!=="reset"||p.value!==void 0&&p.value!==null))return;p=""+h._wrapperState.initialValue,C||p===h.value||(h.value=p),h.defaultValue=p}C=h.name,C!==""&&(h.name=""),h.defaultChecked=!!h._wrapperState.initialChecked,C!==""&&(h.name=C)}function Se(h,p,C){(p!=="number"||En(h.ownerDocument)!==h)&&(C==null?h.defaultValue=""+h._wrapperState.initialValue:h.defaultValue!==""+C&&(h.defaultValue=""+C))}var Le=Array.isArray;function Oe(h,p,C,D){if(h=h.options,p){p={};for(var R=0;R"+p.valueOf().toString()+"",p=In.firstChild;h.firstChild;)h.removeChild(h.firstChild);for(;p.firstChild;)h.appendChild(p.firstChild)}});function rn(h,p){if(p){var C=h.firstChild;if(C&&C===h.lastChild&&C.nodeType===3){C.nodeValue=p;return}}h.textContent=p}var $e={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fe=["Webkit","ms","Moz","O"];Object.keys($e).forEach(function(h){Fe.forEach(function(p){p=p+h.charAt(0).toUpperCase()+h.substring(1),$e[p]=$e[h]})});function mn(h,p,C){return p==null||typeof p=="boolean"||p===""?"":C||typeof p!="number"||p===0||$e.hasOwnProperty(h)&&$e[h]?(""+p).trim():p+"px"}function _n(h,p){h=h.style;for(var C in p)if(p.hasOwnProperty(C)){var D=C.indexOf("--")===0,R=mn(C,p[C],D);C==="float"&&(C="cssFloat"),D?h.setProperty(C,R):h[C]=R}}var Dt=q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rt(h,p){if(p){if(Dt[h]&&(p.children!=null||p.dangerouslySetInnerHTML!=null))throw Error(s(137,h));if(p.dangerouslySetInnerHTML!=null){if(p.children!=null)throw Error(s(60));if(typeof p.dangerouslySetInnerHTML!="object"||!("__html"in p.dangerouslySetInnerHTML))throw Error(s(61))}if(p.style!=null&&typeof p.style!="object")throw Error(s(62))}}function pt(h,p){if(h.indexOf("-")===-1)return typeof p.is=="string";switch(h){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jn=null;function dt(h){return h=h.target||h.srcElement||window,h.correspondingUseElement&&(h=h.correspondingUseElement),h.nodeType===3?h.parentNode:h}var Nt=null,Qt=null,ur=null;function ta(h){if(h=$o(h)){if(typeof Nt!="function")throw Error(s(280));var p=h.stateNode;p&&(p=ko(p),Nt(h.stateNode,h.type,p))}}function ra(h){Qt?ur?ur.push(h):ur=[h]:Qt=h}function oa(){if(Qt){var h=Qt,p=ur;if(ur=Qt=null,ta(h),p)for(h=0;h>>=0,h===0?32:31-(Fi(h)/Vi|0)|0}var hr=64,ca=4194304;function Eo(h){switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return h&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return h}}function ua(h,p){var C=h.pendingLanes;if(C===0)return 0;var D=0,R=h.suspendedLanes,N=h.pingedLanes,F=C&268435455;if(F!==0){var te=F&~R;te!==0?D=Eo(te):(N&=F,N!==0&&(D=Eo(N)))}else F=C&~R,F!==0?D=Eo(F):N!==0&&(D=Eo(N));if(D===0)return 0;if(p!==0&&p!==D&&!(p&R)&&(R=D&-D,N=p&-p,R>=N||R===16&&(N&4194240)!==0))return p;if(D&4&&(D|=C&16),p=h.entangledLanes,p!==0)for(h=h.entanglements,p&=D;0C;C++)p.push(h);return p}function jo(h,p,C){h.pendingLanes|=p,p!==536870912&&(h.suspendedLanes=0,h.pingedLanes=0),h=h.eventTimes,p=31-bt(p),h[p]=C}function ol(h,p){var C=h.pendingLanes&~p;h.pendingLanes=p,h.suspendedLanes=0,h.pingedLanes=0,h.expiredLanes&=p,h.mutableReadLanes&=p,h.entangledLanes&=p,p=h.entanglements;var D=h.eventTimes;for(h=h.expirationTimes;0=Ea),ai=" ",ii=!1;function ss(h,p){switch(h){case"keyup":return gl.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ls(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var Zt=!1;function cs(h,p){switch(h){case"compositionend":return ls(p);case"keypress":return p.which!==32?null:(ii=!0,ai);case"textInput":return h=p.data,h===ai&&ii?null:h;default:return null}}function us(h,p){if(Zt)return h==="compositionend"||!oi&&ss(h,p)?(h=pr(),ma=Xa=gr=null,Zt=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=p)return{node:C,offset:p-h};h=D}e:{for(;C;){if(C.nextSibling){C=C.nextSibling;break e}C=C.parentNode}C=void 0}C=fs(C)}}function To(h,p){return h&&p?h===p?!0:h&&h.nodeType===3?!1:p&&p.nodeType===3?To(h,p.parentNode):"contains"in h?h.contains(p):h.compareDocumentPosition?!!(h.compareDocumentPosition(p)&16):!1:!1}function ms(){for(var h=window,p=En();e(p,h.HTMLIFrameElement);){try{var C=typeof p.contentWindow.location.href=="string"}catch(D){C=!1}if(C)h=p.contentWindow;else break;p=En(h.document)}return p}function di(h){var p=h&&h.nodeName&&h.nodeName.toLowerCase();return p&&(p==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||p==="textarea"||h.contentEditable==="true")}function Xr(h){var p=ms(),C=h.focusedElem,D=h.selectionRange;if(p!==C&&C&&C.ownerDocument&&To(C.ownerDocument.documentElement,C)){if(D!==null&&di(C)){if(p=D.start,h=D.end,h===void 0&&(h=p),"selectionStart"in C)C.selectionStart=p,C.selectionEnd=Math.min(h,C.value.length);else if(h=(p=C.ownerDocument||document)&&p.defaultView||window,h.getSelection){h=h.getSelection();var R=C.textContent.length,N=Math.min(D.start,R);D=D.end===void 0?N:Math.min(D.end,R),!h.extend&&N>D&&(R=D,D=N,N=R),R=hs(C,N);var F=hs(C,D);R&&F&&(h.rangeCount!==1||h.anchorNode!==R.node||h.anchorOffset!==R.offset||h.focusNode!==F.node||h.focusOffset!==F.offset)&&(p=p.createRange(),p.setStart(R.node,R.offset),h.removeAllRanges(),N>D?(h.addRange(p),h.extend(F.node,F.offset)):(p.setEnd(F.node,F.offset),h.addRange(p)))}}for(p=[],h=C;h=h.parentNode;)h.nodeType===1&&p.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof C.focus=="function"&&C.focus(),C=0;C=document.documentMode,Cr=null,hi=null,Ro=null,vs=!1;function mi(h,p,C){var D=C.window===C?C.document:C.nodeType===9?C:C.ownerDocument;vs||Cr==null||Cr!==En(D)||(D=Cr,"selectionStart"in D&&di(D)?D={start:D.selectionStart,end:D.selectionEnd}:(D=(D.ownerDocument&&D.ownerDocument.defaultView||window).getSelection(),D={anchorNode:D.anchorNode,anchorOffset:D.anchorOffset,focusNode:D.focusNode,focusOffset:D.focusOffset}),Ro&&Ao(Ro,D)||(Ro=D,D=No(hi,"onSelect"),0Zr||(h.current=Fo[Zr],Fo[Zr]=null,Zr--)}function An(h,p){Zr++,Fo[Zr]=h.current,h.current=p}var rr={},qn=tr(rr),lt=tr(!1),Br=rr;function Jr(h,p){var C=h.type.contextTypes;if(!C)return rr;var D=h.stateNode;if(D&&D.__reactInternalMemoizedUnmaskedChildContext===p)return D.__reactInternalMemoizedMaskedChildContext;var R={},N;for(N in C)R[N]=p[N];return D&&(h=h.stateNode,h.__reactInternalMemoizedUnmaskedChildContext=p,h.__reactInternalMemoizedMaskedChildContext=R),R}function ot(h){return h=h.childContextTypes,h!=null}function Kr(){bn(lt),bn(qn)}function Os(h,p,C){if(qn.current!==rr)throw Error(s(168));An(qn,p),An(lt,C)}function qr(h,p,C){var D=h.stateNode;if(p=p.childContextTypes,typeof D.getChildContext!="function")return C;D=D.getChildContext();for(var R in D)if(!(R in p))throw Error(s(108,Ee(h)||"Unknown",R));return q({},C,D)}function Sa(h){return h=(h=h.stateNode)&&h.__reactInternalMemoizedMergedChildContext||rr,Br=qn.current,An(qn,h),An(lt,lt.current),!0}function Tl(h,p,C){var D=h.stateNode;if(!D)throw Error(s(169));C?(h=qr(h,p,Br),D.__reactInternalMemoizedMergedChildContext=h,bn(lt),bn(qn),An(qn,h)):bn(lt),An(lt,C)}var kt=null,eo=!1,Pi=!1;function ys(h){kt===null?kt=[h]:kt.push(h)}function Ii(h){eo=!0,ys(h)}function yr(){if(!Pi&&kt!==null){Pi=!0;var h=0,p=Dn;try{var C=kt;for(Dn=1;h>=F,R-=F,Ft=1<<32-bt(p)+R|C<vn?(tt=dn,dn=null):tt=dn.sibling;var Pn=De(he,dn,xe[vn],Ue);if(Pn===null){dn===null&&(dn=tt);break}h&&dn&&Pn.alternate===null&&p(he,dn),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn,dn=tt}if(vn===xe.length)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;vnvn?(tt=dn,dn=null):tt=dn.sibling;var ho=De(he,dn,Pn.value,Ue);if(ho===null){dn===null&&(dn=tt);break}h&&dn&&ho.alternate===null&&p(he,dn),de=N(ho,de,vn),un===null?nn=ho:un.sibling=ho,un=ho,dn=tt}if(Pn.done)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;!Pn.done;vn++,Pn=xe.next())Pn=Ae(he,Pn.value,Ue),Pn!==null&&(de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return Nn&&no(he,vn),nn}for(dn=D(he,dn);!Pn.done;vn++,Pn=xe.next())Pn=Ve(dn,he,vn,Pn.value,Ue),Pn!==null&&(h&&Pn.alternate!==null&&dn.delete(Pn.key===null?vn:Pn.key),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return h&&dn.forEach(function(vd){return p(he,vd)}),Nn&&no(he,vn),nn}function Vn(he,de,xe,Ue){if(typeof xe=="object"&&xe!==null&&xe.type===W&&xe.key===null&&(xe=xe.props.children),typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case A:e:{for(var nn=xe.key,un=de;un!==null;){if(un.key===nn){if(nn=xe.type,nn===W){if(un.tag===7){C(he,un.sibling),de=R(un,xe.props.children),de.return=he,he=de;break e}}else if(un.elementType===nn||typeof nn=="object"&&nn!==null&&nn.$$typeof===ne&&re(nn)===un.type){C(he,un.sibling),de=R(un,xe.props),de.ref=oe(he,un,xe),de.return=he,he=de;break e}C(he,un);break}else p(he,un);un=un.sibling}xe.type===W?(de=na(xe.props.children,he.mode,Ue,xe.key),de.return=he,he=de):(Ue=$s(xe.type,xe.key,xe.props,null,he.mode,Ue),Ue.ref=oe(he,de,xe),Ue.return=he,he=Ue)}return F(he);case K:e:{for(un=xe.key;de!==null;){if(de.key===un)if(de.tag===4&&de.stateNode.containerInfo===xe.containerInfo&&de.stateNode.implementation===xe.implementation){C(he,de.sibling),de=R(de,xe.children||[]),de.return=he,he=de;break e}else{C(he,de);break}else p(he,de);de=de.sibling}de=fc(xe,he.mode,Ue),de.return=he,he=de}return F(he);case ne:return un=xe._init,Vn(he,de,un(xe._payload),Ue)}if(Le(xe))return Ze(he,de,xe,Ue);if(V(xe))return Je(he,de,xe,Ue);ie(he,xe)}return typeof xe=="string"&&xe!==""||typeof xe=="number"?(xe=""+xe,de!==null&&de.tag===6?(C(he,de.sibling),de=R(de,xe),de.return=he,he=de):(C(he,de),de=dc(xe,he.mode,Ue),de.return=he,he=de),F(he)):C(he,de)}return Vn}var me=ae(!0),Ce=ae(!1),ve=tr(null),Me=null,be=null,Be=null;function Ke(){Be=be=Me=null}function ze(h){var p=ve.current;bn(ve),h._currentValue=p}function en(h,p,C){for(;h!==null;){var D=h.alternate;if((h.childLanes&p)!==p?(h.childLanes|=p,D!==null&&(D.childLanes|=p)):D!==null&&(D.childLanes&p)!==p&&(D.childLanes|=p),h===C)break;h=h.return}}function _e(h,p){Me=h,Be=be=null,h=h.dependencies,h!==null&&h.firstContext!==null&&(h.lanes&p&&(_t=!0),h.firstContext=null)}function We(h){var p=h._currentValue;if(Be!==h)if(h={context:h,memoizedValue:p,next:null},be===null){if(Me===null)throw Error(s(308));be=h,Me.dependencies={lanes:0,firstContext:h}}else be=be.next=h;return p}var Ge=null;function gn(h){Ge===null?Ge=[h]:Ge.push(h)}function an(h,p,C,D){var R=p.interleaved;return R===null?(C.next=C,gn(p)):(C.next=R.next,R.next=C),p.interleaved=C,cn(h,D)}function cn(h,p){h.lanes|=p;var C=h.alternate;for(C!==null&&(C.lanes|=p),C=h,h=h.return;h!==null;)h.childLanes|=p,C=h.alternate,C!==null&&(C.childLanes|=p),C=h,h=h.return;return C.tag===3?C.stateNode:null}var Re=!1;function sn(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ln(h,p){h=h.updateQueue,p.updateQueue===h&&(p.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,effects:h.effects})}function pn(h,p){return{eventTime:h,lane:p,tag:0,payload:null,callback:null,next:null}}function Tn(h,p,C){var D=h.updateQueue;if(D===null)return null;if(D=D.shared,Mn&2){var R=D.pending;return R===null?p.next=p:(p.next=R.next,R.next=p),D.pending=p,cn(h,C)}return R=D.interleaved,R===null?(p.next=p,gn(D)):(p.next=R.next,R.next=p),D.interleaved=p,cn(h,C)}function et(h,p,C){if(p=p.updateQueue,p!==null&&(p=p.shared,(C&4194240)!==0)){var D=p.lanes;D&=h.pendingLanes,C|=D,p.lanes=C,Fa(h,C)}}function Bn(h,p){var C=h.updateQueue,D=h.alternate;if(D!==null&&(D=D.updateQueue,C===D)){var R=null,N=null;if(C=C.firstBaseUpdate,C!==null){do{var F={eventTime:C.eventTime,lane:C.lane,tag:C.tag,payload:C.payload,callback:C.callback,next:null};N===null?R=N=F:N=N.next=F,C=C.next}while(C!==null);N===null?R=N=p:N=N.next=p}else R=N=p;C={baseState:D.baseState,firstBaseUpdate:R,lastBaseUpdate:N,shared:D.shared,effects:D.effects},h.updateQueue=C;return}h=C.lastBaseUpdate,h===null?C.firstBaseUpdate=p:h.next=p,C.lastBaseUpdate=p}function kn(h,p,C,D){var R=h.updateQueue;Re=!1;var N=R.firstBaseUpdate,F=R.lastBaseUpdate,te=R.shared.pending;if(te!==null){R.shared.pending=null;var ue=te,pe=ue.next;ue.next=null,F===null?N=pe:F.next=pe,F=ue;var ye=h.alternate;ye!==null&&(ye=ye.updateQueue,te=ye.lastBaseUpdate,te!==F&&(te===null?ye.firstBaseUpdate=pe:te.next=pe,ye.lastBaseUpdate=ue))}if(N!==null){var Ae=R.baseState;F=0,ye=pe=ue=null,te=N;do{var De=te.lane,Ve=te.eventTime;if((D&De)===De){ye!==null&&(ye=ye.next={eventTime:Ve,lane:0,tag:te.tag,payload:te.payload,callback:te.callback,next:null});e:{var Ze=h,Je=te;switch(De=p,Ve=C,Je.tag){case 1:if(Ze=Je.payload,typeof Ze=="function"){Ae=Ze.call(Ve,Ae,De);break e}Ae=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=Je.payload,De=typeof Ze=="function"?Ze.call(Ve,Ae,De):Ze,De==null)break e;Ae=q({},Ae,De);break e;case 2:Re=!0}}te.callback!==null&&te.lane!==0&&(h.flags|=64,De=R.effects,De===null?R.effects=[te]:De.push(te))}else Ve={eventTime:Ve,lane:De,tag:te.tag,payload:te.payload,callback:te.callback,next:null},ye===null?(pe=ye=Ve,ue=Ae):ye=ye.next=Ve,F|=De;if(te=te.next,te===null){if(te=R.shared.pending,te===null)break;De=te,te=De.next,De.next=null,R.lastBaseUpdate=De,R.shared.pending=null}}while(!0);if(ye===null&&(ue=Ae),R.baseState=ue,R.firstBaseUpdate=pe,R.lastBaseUpdate=ye,p=R.shared.interleaved,p!==null){R=p;do F|=R.lane,R=R.next;while(R!==p)}else N===null&&(R.shared.lanes=0);Zo|=F,h.lanes=F,h.memoizedState=Ae}}function Gt(h,p,C){if(h=p.effects,p.effects=null,h!==null)for(p=0;pC?C:4,h(!0);var D=Ta.transition;Ta.transition={};try{h(!1),p()}finally{Dn=C,Ta.transition=D}}function Wc(){return vt().memoizedState}function Wu(h,p,C){var D=co(h);if(C={lane:D,action:C,hasEagerState:!1,eagerState:null,next:null},wc(h))zc(p,C);else if(C=an(h,p,C,D),C!==null){var R=gt();cr(C,h,D,R),$c(C,p,D)}}function wu(h,p,C){var D=co(h),R={lane:D,action:C,hasEagerState:!1,eagerState:null,next:null};if(wc(h))zc(p,R);else{var N=h.alternate;if(h.lanes===0&&(N===null||N.lanes===0)&&(N=p.lastRenderedReducer,N!==null))try{var F=p.lastRenderedState,te=N(F,C);if(R.hasEagerState=!0,R.eagerState=te,Ct(te,F)){var ue=p.interleaved;ue===null?(R.next=R,gn(p)):(R.next=ue.next,ue.next=R),p.interleaved=R;return}}catch(pe){}finally{}C=an(h,p,R,D),C!==null&&(R=gt(),cr(C,h,D,R),$c(C,p,D))}}function wc(h){var p=h.alternate;return h===Wn||p!==null&&p===Wn}function zc(h,p){Yo=Ra=!0;var C=h.pending;C===null?p.next=p:(p.next=C.next,C.next=p),h.pending=p}function $c(h,p,C){if(C&4194240){var D=p.lanes;D&=h.pendingLanes,C|=D,p.lanes=C,Fa(h,C)}}var Ds={readContext:We,useCallback:Qn,useContext:Qn,useEffect:Qn,useImperativeHandle:Qn,useInsertionEffect:Qn,useLayoutEffect:Qn,useMemo:Qn,useReducer:Qn,useRef:Qn,useState:Qn,useDebugValue:Qn,useDeferredValue:Qn,useTransition:Qn,useMutableSource:Qn,useSyncExternalStore:Qn,useId:Qn,unstable_isNewReconciler:!1},zu={readContext:We,useCallback:function(p,C){return Lt().memoizedState=[p,C===void 0?null:C],p},useContext:We,useEffect:Ac,useImperativeHandle:function(p,C,D){return D=D!=null?D.concat([p]):null,Ps(4194308,4,Bc.bind(null,C,p),D)},useLayoutEffect:function(p,C){return Ps(4194308,4,p,C)},useInsertionEffect:function(p,C){return Ps(4,2,p,C)},useMemo:function(p,C){var D=Lt();return C=C===void 0?null:C,p=p(),D.memoizedState=[p,C],p},useReducer:function(p,C,D){var R=Lt();return C=D!==void 0?D(C):C,R.memoizedState=R.baseState=C,p={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:C},R.queue=p,p=p.dispatch=Wu.bind(null,Wn,p),[R.memoizedState,p]},useRef:function(p){var C=Lt();return p={current:p},C.memoizedState=p},useState:Sc,useDebugValue:Nl,useDeferredValue:function(p){return Lt().memoizedState=p},useTransition:function(){var p=Sc(!1),C=p[0];return p=Nu.bind(null,p[1]),Lt().memoizedState=p,[C,p]},useMutableSource:function(){},useSyncExternalStore:function(p,C,D){var R=Wn,N=Lt();if(Nn){if(D===void 0)throw Error(s(407));D=D()}else{if(D=C(),nt===null)throw Error(s(349));Nr&30||Mc(R,C,D)}N.memoizedState=D;var F={value:D,getSnapshot:C};return N.queue=F,Ac(Pc.bind(null,R,F,p),[p]),R.flags|=2048,Si(9,_c.bind(null,R,F,D,C),void 0,null),D},useId:function(){var p=Lt(),C=nt.identifierPrefix;if(Nn){var D=ar,R=Ft;D=(R&~(1<<32-bt(R)-1)).toString(32)+D,C=":"+C+"R"+D,D=Kt++,0<\/script>",h=h.removeChild(h.firstChild)):typeof D.is=="string"?h=F.createElement(C,{is:D.is}):(h=F.createElement(C),C==="select"&&(F=h,D.multiple?F.multiple=!0:D.size&&(F.size=D.size))):h=F.createElementNS(h,C),h[Bt]=p,h[Rr]=D,lu(h,p,!1,!1),p.stateNode=h;e:{switch(F=pt(C,D),C){case"dialog":Rn("cancel",h),Rn("close",h),R=D;break;case"iframe":case"object":case"embed":Rn("load",h),R=D;break;case"video":case"audio":for(R=0;Rwa&&(p.flags|=128,D=!0,bi(N,!1),p.lanes=4194304)}else{if(!D)if(h=oo(F),h!==null){if(p.flags|=128,D=!0,C=h.updateQueue,C!==null&&(p.updateQueue=C,p.flags|=4),bi(N,!0),N.tail===null&&N.tailMode==="hidden"&&!F.alternate&&!Nn)return ct(p),null}else 2*Ln()-N.renderingStartTime>wa&&C!==1073741824&&(p.flags|=128,D=!0,bi(N,!1),p.lanes=4194304);N.isBackwards?(F.sibling=p.child,p.child=F):(C=N.last,C!==null?C.sibling=F:p.child=F,N.last=F)}return N.tail!==null?(p=N.tail,N.rendering=p,N.tail=p.sibling,N.renderingStartTime=Ln(),p.sibling=null,C=Sn.current,An(Sn,D?C&1|2:C&1),p):(ct(p),null);case 22:case 23:return lc(),D=p.memoizedState!==null,h!==null&&h.memoizedState!==null!==D&&(p.flags|=8192),D&&p.mode&1?Ut&1073741824&&(ct(p),p.subtreeFlags&6&&(p.flags|=8192)):ct(p),null;case 24:return null;case 25:return null}throw Error(s(156,p.tag))}function Yu(h,p){switch(Ms(p),p.tag){case 1:return ot(p.type)&&Kr(),h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 3:return mt(),bn(lt),bn(qn),Xo(),h=p.flags,h&65536&&!(h&128)?(p.flags=h&-65537|128,p):null;case 5:return ro(p),null;case 13:if(bn(Sn),h=p.memoizedState,h!==null&&h.dehydrated!==null){if(p.alternate===null)throw Error(s(340));B()}return h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 19:return bn(Sn),null;case 4:return mt(),null;case 10:return ze(p.type._context),null;case 22:case 23:return lc(),null;case 24:return null;default:return null}}var Ts=!1,ut=!1,Qu=typeof WeakSet=="function"?WeakSet:Set,Ye=null;function Na(h,p){var C=h.ref;if(C!==null)if(typeof C=="function")try{C(null)}catch(D){$n(h,p,D)}else C.current=null}function Ql(h,p,C){try{C()}catch(D){$n(h,p,D)}}var du=!1;function Zu(h,p){if(Ei=vr,h=ms(),di(h)){if("selectionStart"in h)var C={start:h.selectionStart,end:h.selectionEnd};else e:{C=(C=h.ownerDocument)&&C.defaultView||window;var D=C.getSelection&&C.getSelection();if(D&&D.rangeCount!==0){C=D.anchorNode;var R=D.anchorOffset,N=D.focusNode;D=D.focusOffset;try{C.nodeType,N.nodeType}catch(Ue){C=null;break e}var F=0,te=-1,ue=-1,pe=0,ye=0,Ae=h,De=null;n:for(;;){for(var Ve;Ae!==C||R!==0&&Ae.nodeType!==3||(te=F+R),Ae!==N||D!==0&&Ae.nodeType!==3||(ue=F+D),Ae.nodeType===3&&(F+=Ae.nodeValue.length),(Ve=Ae.firstChild)!==null;)De=Ae,Ae=Ve;for(;;){if(Ae===h)break n;if(De===C&&++pe===R&&(te=F),De===N&&++ye===D&&(ue=F),(Ve=Ae.nextSibling)!==null)break;Ae=De,De=Ae.parentNode}Ae=Ve}C=te===-1||ue===-1?null:{start:te,end:ue}}else C=null}C=C||{start:0,end:0}}else C=null;for(ji={focusedElem:h,selectionRange:C},vr=!1,Ye=p;Ye!==null;)if(p=Ye,h=p.child,(p.subtreeFlags&1028)!==0&&h!==null)h.return=p,Ye=h;else for(;Ye!==null;){p=Ye;try{var Ze=p.alternate;if(p.flags&1024)switch(p.tag){case 0:case 11:case 15:break;case 1:if(Ze!==null){var Je=Ze.memoizedProps,Vn=Ze.memoizedState,he=p.stateNode,de=he.getSnapshotBeforeUpdate(p.elementType===p.type?Je:ir(p.type,Je),Vn);he.__reactInternalSnapshotBeforeUpdate=de}break;case 3:var xe=p.stateNode.containerInfo;xe.nodeType===1?xe.textContent="":xe.nodeType===9&&xe.documentElement&&xe.removeChild(xe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Ue){$n(p,p.return,Ue)}if(h=p.sibling,h!==null){h.return=p.return,Ye=h;break}Ye=p.return}return Ze=du,du=!1,Ze}function Ai(h,p,C){var D=p.updateQueue;if(D=D!==null?D.lastEffect:null,D!==null){var R=D=D.next;do{if((R.tag&h)===h){var N=R.destroy;R.destroy=void 0,N!==void 0&&Ql(p,C,N)}R=R.next}while(R!==D)}}function Rs(h,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var C=p=p.next;do{if((C.tag&h)===h){var D=C.create;C.destroy=D()}C=C.next}while(C!==p)}}function Zl(h){var p=h.ref;if(p!==null){var C=h.stateNode;switch(h.tag){case 5:h=C;break;default:h=C}typeof p=="function"?p(h):p.current=h}}function fu(h){var p=h.alternate;p!==null&&(h.alternate=null,fu(p)),h.child=null,h.deletions=null,h.sibling=null,h.tag===5&&(p=h.stateNode,p!==null&&(delete p[Bt],delete p[Rr],delete p[Mi],delete p[_i],delete p[Al])),h.stateNode=null,h.return=null,h.dependencies=null,h.memoizedProps=null,h.memoizedState=null,h.pendingProps=null,h.stateNode=null,h.updateQueue=null}function hu(h){return h.tag===5||h.tag===3||h.tag===4}function mu(h){e:for(;;){for(;h.sibling===null;){if(h.return===null||hu(h.return))return null;h=h.return}for(h.sibling.return=h.return,h=h.sibling;h.tag!==5&&h.tag!==6&&h.tag!==18;){if(h.flags&2||h.child===null||h.tag===4)continue e;h.child.return=h,h=h.child}if(!(h.flags&2))return h.stateNode}}function Jl(h,p,C){var D=h.tag;if(D===5||D===6)h=h.stateNode,p?C.nodeType===8?C.parentNode.insertBefore(h,p):C.insertBefore(h,p):(C.nodeType===8?(p=C.parentNode,p.insertBefore(h,C)):(p=C,p.appendChild(h)),C=C._reactRootContainer,C!=null||p.onclick!==null||(p.onclick=Ia));else if(D!==4&&(h=h.child,h!==null))for(Jl(h,p,C),h=h.sibling;h!==null;)Jl(h,p,C),h=h.sibling}function ql(h,p,C){var D=h.tag;if(D===5||D===6)h=h.stateNode,p?C.insertBefore(h,p):C.appendChild(h);else if(D!==4&&(h=h.child,h!==null))for(ql(h,p,C),h=h.sibling;h!==null;)ql(h,p,C),h=h.sibling}var at=null,sr=!1;function io(h,p,C){for(C=C.child;C!==null;)vu(h,p,C),C=C.sibling}function vu(h,p,C){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(la,C)}catch(te){}switch(C.tag){case 5:ut||Na(C,p);case 6:var D=at,R=sr;at=null,io(h,p,C),at=D,sr=R,at!==null&&(sr?(h=at,C=C.stateNode,h.nodeType===8?h.parentNode.removeChild(C):h.removeChild(C)):at.removeChild(C.stateNode));break;case 18:at!==null&&(sr?(h=at,C=C.stateNode,h.nodeType===8?zo(h.parentNode,C):h.nodeType===1&&zo(h,C),Mo(h)):zo(at,C.stateNode));break;case 4:D=at,R=sr,at=C.stateNode.containerInfo,sr=!0,io(h,p,C),at=D,sr=R;break;case 0:case 11:case 14:case 15:if(!ut&&(D=C.updateQueue,D!==null&&(D=D.lastEffect,D!==null))){R=D=D.next;do{var N=R,F=N.destroy;N=N.tag,F!==void 0&&(N&2||N&4)&&Ql(C,p,F),R=R.next}while(R!==D)}io(h,p,C);break;case 1:if(!ut&&(Na(C,p),D=C.stateNode,typeof D.componentWillUnmount=="function"))try{D.props=C.memoizedProps,D.state=C.memoizedState,D.componentWillUnmount()}catch(te){$n(C,p,te)}io(h,p,C);break;case 21:io(h,p,C);break;case 22:C.mode&1?(ut=(D=ut)||C.memoizedState!==null,io(h,p,C),ut=D):io(h,p,C);break;default:io(h,p,C)}}function xu(h){var p=h.updateQueue;if(p!==null){h.updateQueue=null;var C=h.stateNode;C===null&&(C=h.stateNode=new Qu),p.forEach(function(D){var R=id.bind(null,h,D);C.has(D)||(C.add(D),D.then(R,R))})}}function lr(h,p){var C=p.deletions;if(C!==null)for(var D=0;DR&&(R=F),D&=~N}if(D=R,D=Ln()-D,D=(120>D?120:480>D?480:1080>D?1080:1920>D?1920:3e3>D?3e3:4320>D?4320:1960*qu(D/1960))-D,10h?16:h,lo===null)var D=!1;else{if(h=lo,lo=null,Ns=0,Mn&6)throw Error(s(331));var R=Mn;for(Mn|=4,Ye=h.current;Ye!==null;){var N=Ye,F=N.child;if(Ye.flags&16){var te=N.deletions;if(te!==null){for(var ue=0;ueLn()-tc?qo(h,0):nc|=C),It(h,p)}function Su(h,p){p===0&&(h.mode&1?(p=ca,ca<<=1,!(ca&130023424)&&(ca=4194304)):p=1);var C=gt();h=cn(h,p),h!==null&&(jo(h,p,C),It(h,C))}function ad(h){var p=h.memoizedState,C=0;p!==null&&(C=p.retryLane),Su(h,C)}function id(h,p){var C=0;switch(h.tag){case 13:var D=h.stateNode,R=h.memoizedState;R!==null&&(C=R.retryLane);break;case 19:D=h.stateNode;break;default:throw Error(s(314))}D!==null&&D.delete(p),Su(h,C)}var bu;bu=function(p,C,D){if(p!==null)if(p.memoizedProps!==C.pendingProps||lt.current)_t=!0;else{if(!(p.lanes&D)&&!(C.flags&128))return _t=!1,Hu(p,C,D);_t=!!(p.flags&131072)}else _t=!1,Nn&&C.flags&1048576&&Rl(C,Go,C.index);switch(C.lanes=0,C.tag){case 2:var R=C.type;As(p,C),p=C.pendingProps;var N=Jr(C,qn.current);_e(C,D),N=Qo(null,C,R,p,N,D);var F=La();return C.flags|=1,typeof N=="object"&&N!==null&&typeof N.render=="function"&&N.$$typeof===void 0?(C.tag=1,C.memoizedState=null,C.updateQueue=null,ot(R)?(F=!0,Sa(C)):F=!1,C.memoizedState=N.state!==null&&N.state!==void 0?N.state:null,sn(C),N.updater=Ss,C.stateNode=N,N._reactInternals=C,wl(C,R,p,D),C=Fl(null,C,R,!0,F,D)):(C.tag=0,Nn&&F&&Ho(C),xt(null,C,N,D),C=C.child),C;case 16:R=C.elementType;e:{switch(As(p,C),p=C.pendingProps,N=R._init,R=N(R._payload),C.type=R,N=C.tag=ld(R),p=ir(R,p),N){case 0:C=kl(null,C,R,p,D);break e;case 1:C=tu(null,C,R,p,D);break e;case 11:C=Zc(null,C,R,p,D);break e;case 14:C=Jc(null,C,R,ir(R.type,p),D);break e}throw Error(s(306,R,""))}return C;case 0:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),kl(p,C,R,N,D);case 1:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),tu(p,C,R,N,D);case 3:e:{if(ru(C),p===null)throw Error(s(387));R=C.pendingProps,F=C.memoizedState,N=F.element,ln(p,C),kn(C,R,null,D);var te=C.memoizedState;if(R=te.element,F.isDehydrated)if(F={element:R,isDehydrated:!1,cache:te.cache,pendingSuspenseBoundaries:te.pendingSuspenseBoundaries,transitions:te.transitions},C.updateQueue.baseState=F,C.memoizedState=F,C.flags&256){N=Ua(Error(s(423)),C),C=ou(p,C,R,D,N);break e}else if(R!==N){N=Ua(Error(s(424)),C),C=ou(p,C,R,D,N);break e}else for(Mt=Rt(C.stateNode.containerInfo.firstChild),yt=C,Nn=!0,Vt=null,D=Ce(C,null,R,D),C.child=D;D;)D.flags=D.flags&-3|4096,D=D.sibling;else{if(B(),R===N){C=Wr(p,C,D);break e}xt(p,C,R,D)}C=C.child}return C;case 5:return to(C),p===null&&P(C),R=C.type,N=C.pendingProps,F=p!==null?p.memoizedProps:null,te=N.children,wo(R,N)?te=null:F!==null&&wo(R,F)&&(C.flags|=32),nu(p,C),xt(p,C,te,D),C.child;case 6:return p===null&&P(C),null;case 13:return au(p,C,D);case 4:return Mr(C,C.stateNode.containerInfo),R=C.pendingProps,p===null?C.child=me(C,null,R,D):xt(p,C,R,D),C.child;case 11:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),Zc(p,C,R,N,D);case 7:return xt(p,C,C.pendingProps,D),C.child;case 8:return xt(p,C,C.pendingProps.children,D),C.child;case 12:return xt(p,C,C.pendingProps.children,D),C.child;case 10:e:{if(R=C.type._context,N=C.pendingProps,F=C.memoizedProps,te=N.value,An(ve,R._currentValue),R._currentValue=te,F!==null)if(Ct(F.value,te)){if(F.children===N.children&&!lt.current){C=Wr(p,C,D);break e}}else for(F=C.child,F!==null&&(F.return=C);F!==null;){var ue=F.dependencies;if(ue!==null){te=F.child;for(var pe=ue.firstContext;pe!==null;){if(pe.context===R){if(F.tag===1){pe=pn(-1,D&-D),pe.tag=2;var ye=F.updateQueue;if(ye!==null){ye=ye.shared;var Ae=ye.pending;Ae===null?pe.next=pe:(pe.next=Ae.next,Ae.next=pe),ye.pending=pe}}F.lanes|=D,pe=F.alternate,pe!==null&&(pe.lanes|=D),en(F.return,D,C),ue.lanes|=D;break}pe=pe.next}}else if(F.tag===10)te=F.type===C.type?null:F.child;else if(F.tag===18){if(te=F.return,te===null)throw Error(s(341));te.lanes|=D,ue=te.alternate,ue!==null&&(ue.lanes|=D),en(te,D,C),te=F.sibling}else te=F.child;if(te!==null)te.return=F;else for(te=F;te!==null;){if(te===C){te=null;break}if(F=te.sibling,F!==null){F.return=te.return,te=F;break}te=te.return}F=te}xt(p,C,N.children,D),C=C.child}return C;case 9:return N=C.type,R=C.pendingProps.children,_e(C,D),N=We(N),R=R(N),C.flags|=1,xt(p,C,R,D),C.child;case 14:return R=C.type,N=ir(R,C.pendingProps),N=ir(R.type,N),Jc(p,C,R,N,D);case 15:return qc(p,C,C.type,C.pendingProps,D);case 17:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),As(p,C),C.tag=1,ot(R)?(p=!0,Sa(C)):p=!1,_e(C,D),Fc(C,R,N),wl(C,R,N,D),Fl(null,C,R,!0,p,D);case 19:return su(p,C,D);case 22:return eu(p,C,D)}throw Error(s(156,C.tag))};function Au(h,p){return wi(h,p)}function sd(h,p,C,D){this.tag=h,this.key=C,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=D,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yt(h,p,C,D){return new sd(h,p,C,D)}function uc(h){return h=h.prototype,!(!h||!h.isReactComponent)}function ld(h){if(typeof h=="function")return uc(h)?1:0;if(h!=null){if(h=h.$$typeof,h===G)return 11;if(h===le)return 14}return 2}function fo(h,p){var C=h.alternate;return C===null?(C=Yt(h.tag,p,h.key,h.mode),C.elementType=h.elementType,C.type=h.type,C.stateNode=h.stateNode,C.alternate=h,h.alternate=C):(C.pendingProps=p,C.type=h.type,C.flags=0,C.subtreeFlags=0,C.deletions=null),C.flags=h.flags&14680064,C.childLanes=h.childLanes,C.lanes=h.lanes,C.child=h.child,C.memoizedProps=h.memoizedProps,C.memoizedState=h.memoizedState,C.updateQueue=h.updateQueue,p=h.dependencies,C.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},C.sibling=h.sibling,C.index=h.index,C.ref=h.ref,C}function $s(h,p,C,D,R,N){var F=2;if(D=h,typeof h=="function")uc(h)&&(F=1);else if(typeof h=="string")F=5;else e:switch(h){case W:return na(C.children,R,N,p);case $:F=8,R|=8;break;case k:return h=Yt(12,C,p,R|2),h.elementType=k,h.lanes=N,h;case Y:return h=Yt(13,C,p,R),h.elementType=Y,h.lanes=N,h;case ee:return h=Yt(19,C,p,R),h.elementType=ee,h.lanes=N,h;case Q:return ks(C,R,N,p);default:if(typeof h=="object"&&h!==null)switch(h.$$typeof){case z:F=10;break e;case H:F=9;break e;case G:F=11;break e;case le:F=14;break e;case ne:F=16,D=null;break e}throw Error(s(130,h==null?h:typeof h=="undefined"?"undefined":o(h),""))}return p=Yt(F,C,p,R),p.elementType=h,p.type=D,p.lanes=N,p}function na(h,p,C,D){return h=Yt(7,h,D,p),h.lanes=C,h}function ks(h,p,C,D){return h=Yt(22,h,D,p),h.elementType=Q,h.lanes=C,h.stateNode={isHidden:!1},h}function dc(h,p,C){return h=Yt(6,h,null,p),h.lanes=C,h}function fc(h,p,C){return p=Yt(4,h.children!==null?h.children:[],h.key,p),p.lanes=C,p.stateNode={containerInfo:h.containerInfo,pendingChildren:null,implementation:h.implementation},p}function cd(h,p,C,D,R){this.tag=p,this.containerInfo=h,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ka(0),this.expirationTimes=ka(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ka(0),this.identifierPrefix=D,this.onRecoverableError=R,this.mutableSourceEagerHydrationData=null}function hc(h,p,C,D,R,N,F,te,ue){return h=new cd(h,p,C,te,ue),p===1?(p=1,N===!0&&(p|=8)):p=0,N=Yt(3,null,null,p),h.current=N,N.stateNode=h,N.memoizedState={element:D,isDehydrated:C,cache:null,transitions:null,pendingSuspenseBoundaries:null},sn(N),h}function ud(h,p,C){var D=3p}return!1}function y(d,p,C,I,A,N,F){this.acceptsBooleans=p===2||p===3||p===4,this.attributeName=I,this.attributeNamespace=A,this.mustUseProperty=C,this.propertyName=d,this.type=p,this.sanitizeURL=N,this.removeEmptyString=F}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(d){M[d]=new y(d,0,!1,d,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(d){var p=d[0];M[p]=new y(p,1,!1,d[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(d){M[d]=new y(d,2,!1,d.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(d){M[d]=new y(d,2,!1,d,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(d){M[d]=new y(d,3,!1,d.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(d){M[d]=new y(d,3,!0,d,null,!1,!1)}),["capture","download"].forEach(function(d){M[d]=new y(d,4,!1,d,null,!1,!1)}),["cols","rows","size","span"].forEach(function(d){M[d]=new y(d,6,!1,d,null,!1,!1)}),["rowSpan","start"].forEach(function(d){M[d]=new y(d,5,!1,d.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function D(d){return d[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(d){M[d]=new y(d,1,!1,d.toLowerCase(),null,!1,!1)}),M.xlinkHref=new y("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(d){M[d]=new y(d,1,!1,d.toLowerCase(),null,!0,!0)});function S(d,p,C,I){var A=M.hasOwnProperty(p)?M[p]:null;(A!==null?A.type!==0:I||!(2q||A[F]!==N[q]){var ue="\n"+A[F].replace(" at new "," at ");return d.displayName&&ue.includes("")&&(ue=ue.replace("",d.displayName)),ue}while(1<=F&&0<=q);break}}}finally{fe=!1,Error.prepareStackTrace=C}return(d=d?d.displayName||d.name:"")?le(d):""}function Ie(d){switch(d.tag){case 5:return le(d.type);case 16:return le("Lazy");case 13:return le("Suspense");case 19:return le("SuspenseList");case 0:case 2:case 15:return d=ge(d.type,!1),d;case 11:return d=ge(d.type.render,!1),d;case 1:return d=ge(d.type,!0),d;default:return""}}function Ee(d){if(d==null)return null;if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case W:return"Fragment";case L:return"Portal";case k:return"Profiler";case $:return"StrictMode";case Q:return"Suspense";case ee:return"SuspenseList"}if(typeof d=="object")switch(d.$$typeof){case X:return(d.displayName||"Context")+".Consumer";case z:return(d._context.displayName||"Context")+".Provider";case G:var p=d.render;return d=d.displayName,d||(d=p.displayName||p.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case se:return p=d.displayName||null,p!==null?p:Ee(d.type)||"Memo";case ne:p=d._payload,d=d._init;try{return Ee(d(p))}catch(C){}}return null}function je(d){var p=d.type;switch(d.tag){case 24:return"Cache";case 9:return(p.displayName||"Context")+".Consumer";case 10:return(p._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return d=p.render,d=d.displayName||d.name||"",p.displayName||(d!==""?"ForwardRef("+d+")":"ForwardRef");case 7:return"Fragment";case 5:return p;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ee(p);case 8:return p===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p}return null}function Ne(d){switch(typeof d=="undefined"?"undefined":i(d)){case"boolean":case"number":case"string":case"undefined":return d;case"object":return d;default:return""}}function on(d){var p=d.type;return(d=d.nodeName)&&d.toLowerCase()==="input"&&(p==="checkbox"||p==="radio")}function Xe(d){var p=on(d)?"checked":"value",C=Object.getOwnPropertyDescriptor(d.constructor.prototype,p),I=""+d[p];if(!d.hasOwnProperty(p)&&typeof C!="undefined"&&typeof C.get=="function"&&typeof C.set=="function"){var A=C.get,N=C.set;return Object.defineProperty(d,p,{configurable:!0,get:function(){return A.call(this)},set:function(q){I=""+q,N.call(this,q)}}),Object.defineProperty(d,p,{enumerable:C.enumerable}),{getValue:function(){return I},setValue:function(q){I=""+q},stopTracking:function(){d._valueTracker=null,delete d[p]}}}}function Pe(d){d._valueTracker||(d._valueTracker=Xe(d))}function qe(d){if(!d)return!1;var p=d._valueTracker;if(!p)return!0;var C=p.getValue(),I="";return d&&(I=on(d)?d.checked?"true":"false":d.value),d=I,d!==C?(p.setValue(d),!0):!1}function jn(d){if(d=d||(typeof document!="undefined"?document:void 0),typeof d=="undefined")return null;try{return d.activeElement||d.body}catch(p){return d.body}}function En(d,p){var C=p.checked;return te({},p,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:C!=null?C:d._wrapperState.initialChecked})}function hn(d,p){var C=p.defaultValue==null?"":p.defaultValue,I=p.checked!=null?p.checked:p.defaultChecked;C=Ne(p.value!=null?p.value:C),d._wrapperState={initialChecked:I,initialValue:C,controlled:p.type==="checkbox"||p.type==="radio"?p.checked!=null:p.value!=null}}function Cn(d,p){p=p.checked,p!=null&&S(d,"checked",p,!1)}function fn(d,p){Cn(d,p);var C=Ne(p.value),I=p.type;if(C!=null)I==="number"?(C===0&&d.value===""||d.value!=C)&&(d.value=""+C):d.value!==""+C&&(d.value=""+C);else if(I==="submit"||I==="reset"){d.removeAttribute("value");return}p.hasOwnProperty("value")?Se(d,p.type,C):p.hasOwnProperty("defaultValue")&&Se(d,p.type,Ne(p.defaultValue)),p.checked==null&&p.defaultChecked!=null&&(d.defaultChecked=!!p.defaultChecked)}function tn(d,p,C){if(p.hasOwnProperty("value")||p.hasOwnProperty("defaultValue")){var I=p.type;if(!(I!=="submit"&&I!=="reset"||p.value!==void 0&&p.value!==null))return;p=""+d._wrapperState.initialValue,C||p===d.value||(d.value=p),d.defaultValue=p}C=d.name,C!==""&&(d.name=""),d.defaultChecked=!!d._wrapperState.initialChecked,C!==""&&(d.name=C)}function Se(d,p,C){(p!=="number"||jn(d.ownerDocument)!==d)&&(C==null?d.defaultValue=""+d._wrapperState.initialValue:d.defaultValue!==""+C&&(d.defaultValue=""+C))}var Le=Array.isArray;function Oe(d,p,C,I){if(d=d.options,p){p={};for(var A=0;A"+p.valueOf().toString()+"",p=In.firstChild;d.firstChild;)d.removeChild(d.firstChild);for(;p.firstChild;)d.appendChild(p.firstChild)}});function rn(d,p){if(p){var C=d.firstChild;if(C&&C===d.lastChild&&C.nodeType===3){C.nodeValue=p;return}}d.textContent=p}var $e={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fe=["Webkit","ms","Moz","O"];Object.keys($e).forEach(function(d){Fe.forEach(function(p){p=p+d.charAt(0).toUpperCase()+d.substring(1),$e[p]=$e[d]})});function mn(d,p,C){return p==null||typeof p=="boolean"||p===""?"":C||typeof p!="number"||p===0||$e.hasOwnProperty(d)&&$e[d]?(""+p).trim():p+"px"}function _n(d,p){d=d.style;for(var C in p)if(p.hasOwnProperty(C)){var I=C.indexOf("--")===0,A=mn(C,p[C],I);C==="float"&&(C="cssFloat"),I?d.setProperty(C,A):d[C]=A}}var Dt=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rt(d,p){if(p){if(Dt[d]&&(p.children!=null||p.dangerouslySetInnerHTML!=null))throw Error(s(137,d));if(p.dangerouslySetInnerHTML!=null){if(p.children!=null)throw Error(s(60));if(typeof p.dangerouslySetInnerHTML!="object"||!("__html"in p.dangerouslySetInnerHTML))throw Error(s(61))}if(p.style!=null&&typeof p.style!="object")throw Error(s(62))}}function pt(d,p){if(d.indexOf("-")===-1)return typeof p.is=="string";switch(d){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jn=null;function dt(d){return d=d.target||d.srcElement||window,d.correspondingUseElement&&(d=d.correspondingUseElement),d.nodeType===3?d.parentNode:d}var Nt=null,Qt=null,ur=null;function ti(d){if(d=$o(d)){if(typeof Nt!="function")throw Error(s(280));var p=d.stateNode;p&&(p=ko(p),Nt(d.stateNode,d.type,p))}}function ri(d){Qt?ur?ur.push(d):ur=[d]:Qt=d}function oi(){if(Qt){var d=Qt,p=ur;if(ur=Qt=null,ti(d),p)for(d=0;d>>=0,d===0?32:31-(Fa(d)/Va|0)|0}var hr=64,ci=4194304;function jo(d){switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return d&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return d&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return d}}function ui(d,p){var C=d.pendingLanes;if(C===0)return 0;var I=0,A=d.suspendedLanes,N=d.pingedLanes,F=C&268435455;if(F!==0){var q=F&~A;q!==0?I=jo(q):(N&=F,N!==0&&(I=jo(N)))}else F=C&~A,F!==0?I=jo(F):N!==0&&(I=jo(N));if(I===0)return 0;if(p!==0&&p!==I&&!(p&A)&&(A=I&-I,N=p&-p,A>=N||A===16&&(N&4194240)!==0))return p;if(I&4&&(I|=C&16),p=d.entangledLanes,p!==0)for(d=d.entanglements,p&=I;0C;C++)p.push(d);return p}function Eo(d,p,C){d.pendingLanes|=p,p!==536870912&&(d.suspendedLanes=0,d.pingedLanes=0),d=d.eventTimes,p=31-bt(p),d[p]=C}function ol(d,p){var C=d.pendingLanes&~p;d.pendingLanes=p,d.suspendedLanes=0,d.pingedLanes=0,d.expiredLanes&=p,d.mutableReadLanes&=p,d.entangledLanes&=p,p=d.entanglements;var I=d.eventTimes;for(d=d.expirationTimes;0=ji),ia=" ",aa=!1;function ss(d,p){switch(d){case"keyup":return gl.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ls(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var Zt=!1;function cs(d,p){switch(d){case"compositionend":return ls(p);case"keypress":return p.which!==32?null:(aa=!0,ia);case"textInput":return d=p.data,d===ia&&aa?null:d;default:return null}}function us(d,p){if(Zt)return d==="compositionend"||!oa&&ss(d,p)?(d=pr(),mi=Hi=gr=null,Zt=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=p)return{node:C,offset:p-d};d=I}e:{for(;C;){if(C.nextSibling){C=C.nextSibling;break e}C=C.parentNode}C=void 0}C=fs(C)}}function Ao(d,p){return d&&p?d===p?!0:d&&d.nodeType===3?!1:p&&p.nodeType===3?Ao(d,p.parentNode):"contains"in d?d.contains(p):d.compareDocumentPosition?!!(d.compareDocumentPosition(p)&16):!1:!1}function ms(){for(var d=window,p=jn();e(p,d.HTMLIFrameElement);){try{var C=typeof p.contentWindow.location.href=="string"}catch(I){C=!1}if(C)d=p.contentWindow;else break;p=jn(d.document)}return p}function da(d){var p=d&&d.nodeName&&d.nodeName.toLowerCase();return p&&(p==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||p==="textarea"||d.contentEditable==="true")}function Hr(d){var p=ms(),C=d.focusedElem,I=d.selectionRange;if(p!==C&&C&&C.ownerDocument&&Ao(C.ownerDocument.documentElement,C)){if(I!==null&&da(C)){if(p=I.start,d=I.end,d===void 0&&(d=p),"selectionStart"in C)C.selectionStart=p,C.selectionEnd=Math.min(d,C.value.length);else if(d=(p=C.ownerDocument||document)&&p.defaultView||window,d.getSelection){d=d.getSelection();var A=C.textContent.length,N=Math.min(I.start,A);I=I.end===void 0?N:Math.min(I.end,A),!d.extend&&N>I&&(A=I,I=N,N=A),A=hs(C,N);var F=hs(C,I);A&&F&&(d.rangeCount!==1||d.anchorNode!==A.node||d.anchorOffset!==A.offset||d.focusNode!==F.node||d.focusOffset!==F.offset)&&(p=p.createRange(),p.setStart(A.node,A.offset),d.removeAllRanges(),N>I?(d.addRange(p),d.extend(F.node,F.offset)):(p.setEnd(F.node,F.offset),d.addRange(p)))}}for(p=[],d=C;d=d.parentNode;)d.nodeType===1&&p.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof C.focus=="function"&&C.focus(),C=0;C=document.documentMode,Cr=null,ha=null,Ro=null,vs=!1;function ma(d,p,C){var I=C.window===C?C.document:C.nodeType===9?C:C.ownerDocument;vs||Cr==null||Cr!==jn(I)||(I=Cr,"selectionStart"in I&&da(I)?I={start:I.selectionStart,end:I.selectionEnd}:(I=(I.ownerDocument&&I.ownerDocument.defaultView||window).getSelection(),I={anchorNode:I.anchorNode,anchorOffset:I.anchorOffset,focusNode:I.focusNode,focusOffset:I.focusOffset}),Ro&&To(Ro,I)||(Ro=I,I=No(ha,"onSelect"),0Zr||(d.current=Fo[Zr],Fo[Zr]=null,Zr--)}function Tn(d,p){Zr++,Fo[Zr]=d.current,d.current=p}var rr={},qn=tr(rr),lt=tr(!1),Br=rr;function Jr(d,p){var C=d.type.contextTypes;if(!C)return rr;var I=d.stateNode;if(I&&I.__reactInternalMemoizedUnmaskedChildContext===p)return I.__reactInternalMemoizedMaskedChildContext;var A={},N;for(N in C)A[N]=p[N];return I&&(d=d.stateNode,d.__reactInternalMemoizedUnmaskedChildContext=p,d.__reactInternalMemoizedMaskedChildContext=A),A}function ot(d){return d=d.childContextTypes,d!=null}function Kr(){bn(lt),bn(qn)}function Os(d,p,C){if(qn.current!==rr)throw Error(s(168));Tn(qn,p),Tn(lt,C)}function qr(d,p,C){var I=d.stateNode;if(p=p.childContextTypes,typeof I.getChildContext!="function")return C;I=I.getChildContext();for(var A in I)if(!(A in p))throw Error(s(108,je(d)||"Unknown",A));return te({},C,I)}function Si(d){return d=(d=d.stateNode)&&d.__reactInternalMemoizedMergedChildContext||rr,Br=qn.current,Tn(qn,d),Tn(lt,lt.current),!0}function Al(d,p,C){var I=d.stateNode;if(!I)throw Error(s(169));C?(d=qr(d,p,Br),I.__reactInternalMemoizedMergedChildContext=d,bn(lt),bn(qn),Tn(qn,d)):bn(lt),Tn(lt,C)}var kt=null,eo=!1,Pa=!1;function ys(d){kt===null?kt=[d]:kt.push(d)}function Ia(d){eo=!0,ys(d)}function yr(){if(!Pa&&kt!==null){Pa=!0;var d=0,p=Dn;try{var C=kt;for(Dn=1;d>=F,A-=F,Ft=1<<32-bt(p)+A|C<vn?(tt=dn,dn=null):tt=dn.sibling;var Pn=De(he,dn,xe[vn],Ue);if(Pn===null){dn===null&&(dn=tt);break}d&&dn&&Pn.alternate===null&&p(he,dn),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn,dn=tt}if(vn===xe.length)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;vnvn?(tt=dn,dn=null):tt=dn.sibling;var ho=De(he,dn,Pn.value,Ue);if(ho===null){dn===null&&(dn=tt);break}d&&dn&&ho.alternate===null&&p(he,dn),de=N(ho,de,vn),un===null?nn=ho:un.sibling=ho,un=ho,dn=tt}if(Pn.done)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;!Pn.done;vn++,Pn=xe.next())Pn=Te(he,Pn.value,Ue),Pn!==null&&(de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return Nn&&no(he,vn),nn}for(dn=I(he,dn);!Pn.done;vn++,Pn=xe.next())Pn=Ve(dn,he,vn,Pn.value,Ue),Pn!==null&&(d&&Pn.alternate!==null&&dn.delete(Pn.key===null?vn:Pn.key),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return d&&dn.forEach(function(vd){return p(he,vd)}),Nn&&no(he,vn),nn}function Vn(he,de,xe,Ue){if(typeof xe=="object"&&xe!==null&&xe.type===W&&xe.key===null&&(xe=xe.props.children),typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case T:e:{for(var nn=xe.key,un=de;un!==null;){if(un.key===nn){if(nn=xe.type,nn===W){if(un.tag===7){C(he,un.sibling),de=A(un,xe.props.children),de.return=he,he=de;break e}}else if(un.elementType===nn||typeof nn=="object"&&nn!==null&&nn.$$typeof===ne&&re(nn)===un.type){C(he,un.sibling),de=A(un,xe.props),de.ref=oe(he,un,xe),de.return=he,he=de;break e}C(he,un);break}else p(he,un);un=un.sibling}xe.type===W?(de=ni(xe.props.children,he.mode,Ue,xe.key),de.return=he,he=de):(Ue=$s(xe.type,xe.key,xe.props,null,he.mode,Ue),Ue.ref=oe(he,de,xe),Ue.return=he,he=Ue)}return F(he);case L:e:{for(un=xe.key;de!==null;){if(de.key===un)if(de.tag===4&&de.stateNode.containerInfo===xe.containerInfo&&de.stateNode.implementation===xe.implementation){C(he,de.sibling),de=A(de,xe.children||[]),de.return=he,he=de;break e}else{C(he,de);break}else p(he,de);de=de.sibling}de=fc(xe,he.mode,Ue),de.return=he,he=de}return F(he);case ne:return un=xe._init,Vn(he,de,un(xe._payload),Ue)}if(Le(xe))return Ze(he,de,xe,Ue);if(V(xe))return Je(he,de,xe,Ue);ae(he,xe)}return typeof xe=="string"&&xe!==""||typeof xe=="number"?(xe=""+xe,de!==null&&de.tag===6?(C(he,de.sibling),de=A(de,xe),de.return=he,he=de):(C(he,de),de=dc(xe,he.mode,Ue),de.return=he,he=de),F(he)):C(he,de)}return Vn}var me=ie(!0),Ce=ie(!1),ve=tr(null),Me=null,be=null,Be=null;function Ke(){Be=be=Me=null}function ze(d){var p=ve.current;bn(ve),d._currentValue=p}function en(d,p,C){for(;d!==null;){var I=d.alternate;if((d.childLanes&p)!==p?(d.childLanes|=p,I!==null&&(I.childLanes|=p)):I!==null&&(I.childLanes&p)!==p&&(I.childLanes|=p),d===C)break;d=d.return}}function _e(d,p){Me=d,Be=be=null,d=d.dependencies,d!==null&&d.firstContext!==null&&(d.lanes&p&&(_t=!0),d.firstContext=null)}function We(d){var p=d._currentValue;if(Be!==d)if(d={context:d,memoizedValue:p,next:null},be===null){if(Me===null)throw Error(s(308));be=d,Me.dependencies={lanes:0,firstContext:d}}else be=be.next=d;return p}var Ge=null;function gn(d){Ge===null?Ge=[d]:Ge.push(d)}function an(d,p,C,I){var A=p.interleaved;return A===null?(C.next=C,gn(p)):(C.next=A.next,A.next=C),p.interleaved=C,cn(d,I)}function cn(d,p){d.lanes|=p;var C=d.alternate;for(C!==null&&(C.lanes|=p),C=d,d=d.return;d!==null;)d.childLanes|=p,C=d.alternate,C!==null&&(C.childLanes|=p),C=d,d=d.return;return C.tag===3?C.stateNode:null}var Re=!1;function sn(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ln(d,p){d=d.updateQueue,p.updateQueue===d&&(p.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,effects:d.effects})}function pn(d,p){return{eventTime:d,lane:p,tag:0,payload:null,callback:null,next:null}}function An(d,p,C){var I=d.updateQueue;if(I===null)return null;if(I=I.shared,Mn&2){var A=I.pending;return A===null?p.next=p:(p.next=A.next,A.next=p),I.pending=p,cn(d,C)}return A=I.interleaved,A===null?(p.next=p,gn(I)):(p.next=A.next,A.next=p),I.interleaved=p,cn(d,C)}function et(d,p,C){if(p=p.updateQueue,p!==null&&(p=p.shared,(C&4194240)!==0)){var I=p.lanes;I&=d.pendingLanes,C|=I,p.lanes=C,Fi(d,C)}}function Bn(d,p){var C=d.updateQueue,I=d.alternate;if(I!==null&&(I=I.updateQueue,C===I)){var A=null,N=null;if(C=C.firstBaseUpdate,C!==null){do{var F={eventTime:C.eventTime,lane:C.lane,tag:C.tag,payload:C.payload,callback:C.callback,next:null};N===null?A=N=F:N=N.next=F,C=C.next}while(C!==null);N===null?A=N=p:N=N.next=p}else A=N=p;C={baseState:I.baseState,firstBaseUpdate:A,lastBaseUpdate:N,shared:I.shared,effects:I.effects},d.updateQueue=C;return}d=C.lastBaseUpdate,d===null?C.firstBaseUpdate=p:d.next=p,C.lastBaseUpdate=p}function kn(d,p,C,I){var A=d.updateQueue;Re=!1;var N=A.firstBaseUpdate,F=A.lastBaseUpdate,q=A.shared.pending;if(q!==null){A.shared.pending=null;var ue=q,pe=ue.next;ue.next=null,F===null?N=pe:F.next=pe,F=ue;var ye=d.alternate;ye!==null&&(ye=ye.updateQueue,q=ye.lastBaseUpdate,q!==F&&(q===null?ye.firstBaseUpdate=pe:q.next=pe,ye.lastBaseUpdate=ue))}if(N!==null){var Te=A.baseState;F=0,ye=pe=ue=null,q=N;do{var De=q.lane,Ve=q.eventTime;if((I&De)===De){ye!==null&&(ye=ye.next={eventTime:Ve,lane:0,tag:q.tag,payload:q.payload,callback:q.callback,next:null});e:{var Ze=d,Je=q;switch(De=p,Ve=C,Je.tag){case 1:if(Ze=Je.payload,typeof Ze=="function"){Te=Ze.call(Ve,Te,De);break e}Te=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=Je.payload,De=typeof Ze=="function"?Ze.call(Ve,Te,De):Ze,De==null)break e;Te=te({},Te,De);break e;case 2:Re=!0}}q.callback!==null&&q.lane!==0&&(d.flags|=64,De=A.effects,De===null?A.effects=[q]:De.push(q))}else Ve={eventTime:Ve,lane:De,tag:q.tag,payload:q.payload,callback:q.callback,next:null},ye===null?(pe=ye=Ve,ue=Te):ye=ye.next=Ve,F|=De;if(q=q.next,q===null){if(q=A.shared.pending,q===null)break;De=q,q=De.next,De.next=null,A.lastBaseUpdate=De,A.shared.pending=null}}while(!0);if(ye===null&&(ue=Te),A.baseState=ue,A.firstBaseUpdate=pe,A.lastBaseUpdate=ye,p=A.shared.interleaved,p!==null){A=p;do F|=A.lane,A=A.next;while(A!==p)}else N===null&&(A.shared.lanes=0);Zo|=F,d.lanes=F,d.memoizedState=Te}}function Gt(d,p,C){if(d=p.effects,p.effects=null,d!==null)for(p=0;pC?C:4,d(!0);var I=Ai.transition;Ai.transition={};try{d(!1),p()}finally{Dn=C,Ai.transition=I}}function Wc(){return vt().memoizedState}function Wu(d,p,C){var I=co(d);if(C={lane:I,action:C,hasEagerState:!1,eagerState:null,next:null},wc(d))zc(p,C);else if(C=an(d,p,C,I),C!==null){var A=gt();cr(C,d,I,A),$c(C,p,I)}}function wu(d,p,C){var I=co(d),A={lane:I,action:C,hasEagerState:!1,eagerState:null,next:null};if(wc(d))zc(p,A);else{var N=d.alternate;if(d.lanes===0&&(N===null||N.lanes===0)&&(N=p.lastRenderedReducer,N!==null))try{var F=p.lastRenderedState,q=N(F,C);if(A.hasEagerState=!0,A.eagerState=q,Ct(q,F)){var ue=p.interleaved;ue===null?(A.next=A,gn(p)):(A.next=ue.next,ue.next=A),p.interleaved=A;return}}catch(pe){}finally{}C=an(d,p,A,I),C!==null&&(A=gt(),cr(C,d,I,A),$c(C,p,I))}}function wc(d){var p=d.alternate;return d===Wn||p!==null&&p===Wn}function zc(d,p){Yo=Ri=!0;var C=d.pending;C===null?p.next=p:(p.next=C.next,C.next=p),d.pending=p}function $c(d,p,C){if(C&4194240){var I=p.lanes;I&=d.pendingLanes,C|=I,p.lanes=C,Fi(d,C)}}var Ds={readContext:We,useCallback:Qn,useContext:Qn,useEffect:Qn,useImperativeHandle:Qn,useInsertionEffect:Qn,useLayoutEffect:Qn,useMemo:Qn,useReducer:Qn,useRef:Qn,useState:Qn,useDebugValue:Qn,useDeferredValue:Qn,useTransition:Qn,useMutableSource:Qn,useSyncExternalStore:Qn,useId:Qn,unstable_isNewReconciler:!1},zu={readContext:We,useCallback:function(p,C){return Lt().memoizedState=[p,C===void 0?null:C],p},useContext:We,useEffect:Tc,useImperativeHandle:function(p,C,I){return I=I!=null?I.concat([p]):null,Ps(4194308,4,Bc.bind(null,C,p),I)},useLayoutEffect:function(p,C){return Ps(4194308,4,p,C)},useInsertionEffect:function(p,C){return Ps(4,2,p,C)},useMemo:function(p,C){var I=Lt();return C=C===void 0?null:C,p=p(),I.memoizedState=[p,C],p},useReducer:function(p,C,I){var A=Lt();return C=I!==void 0?I(C):C,A.memoizedState=A.baseState=C,p={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:C},A.queue=p,p=p.dispatch=Wu.bind(null,Wn,p),[A.memoizedState,p]},useRef:function(p){var C=Lt();return p={current:p},C.memoizedState=p},useState:Sc,useDebugValue:Nl,useDeferredValue:function(p){return Lt().memoizedState=p},useTransition:function(){var p=Sc(!1),C=p[0];return p=Nu.bind(null,p[1]),Lt().memoizedState=p,[C,p]},useMutableSource:function(){},useSyncExternalStore:function(p,C,I){var A=Wn,N=Lt();if(Nn){if(I===void 0)throw Error(s(407));I=I()}else{if(I=C(),nt===null)throw Error(s(349));Nr&30||Mc(A,C,I)}N.memoizedState=I;var F={value:I,getSnapshot:C};return N.queue=F,Tc(Pc.bind(null,A,F,p),[p]),A.flags|=2048,Sa(9,_c.bind(null,A,F,I,C),void 0,null),I},useId:function(){var p=Lt(),C=nt.identifierPrefix;if(Nn){var I=ir,A=Ft;I=(A&~(1<<32-bt(A)-1)).toString(32)+I,C=":"+C+"R"+I,I=Kt++,0<\/script>",d=d.removeChild(d.firstChild)):typeof I.is=="string"?d=F.createElement(C,{is:I.is}):(d=F.createElement(C),C==="select"&&(F=d,I.multiple?F.multiple=!0:I.size&&(F.size=I.size))):d=F.createElementNS(d,C),d[Bt]=p,d[Rr]=I,lu(d,p,!1,!1),p.stateNode=d;e:{switch(F=pt(C,I),C){case"dialog":Rn("cancel",d),Rn("close",d),A=I;break;case"iframe":case"object":case"embed":Rn("load",d),A=I;break;case"video":case"audio":for(A=0;Awi&&(p.flags|=128,I=!0,ba(N,!1),p.lanes=4194304)}else{if(!I)if(d=oo(F),d!==null){if(p.flags|=128,I=!0,C=d.updateQueue,C!==null&&(p.updateQueue=C,p.flags|=4),ba(N,!0),N.tail===null&&N.tailMode==="hidden"&&!F.alternate&&!Nn)return ct(p),null}else 2*Ln()-N.renderingStartTime>wi&&C!==1073741824&&(p.flags|=128,I=!0,ba(N,!1),p.lanes=4194304);N.isBackwards?(F.sibling=p.child,p.child=F):(C=N.last,C!==null?C.sibling=F:p.child=F,N.last=F)}return N.tail!==null?(p=N.tail,N.rendering=p,N.tail=p.sibling,N.renderingStartTime=Ln(),p.sibling=null,C=Sn.current,Tn(Sn,I?C&1|2:C&1),p):(ct(p),null);case 22:case 23:return lc(),I=p.memoizedState!==null,d!==null&&d.memoizedState!==null!==I&&(p.flags|=8192),I&&p.mode&1?Ut&1073741824&&(ct(p),p.subtreeFlags&6&&(p.flags|=8192)):ct(p),null;case 24:return null;case 25:return null}throw Error(s(156,p.tag))}function Yu(d,p){switch(Ms(p),p.tag){case 1:return ot(p.type)&&Kr(),d=p.flags,d&65536?(p.flags=d&-65537|128,p):null;case 3:return mt(),bn(lt),bn(qn),Ho(),d=p.flags,d&65536&&!(d&128)?(p.flags=d&-65537|128,p):null;case 5:return ro(p),null;case 13:if(bn(Sn),d=p.memoizedState,d!==null&&d.dehydrated!==null){if(p.alternate===null)throw Error(s(340));R()}return d=p.flags,d&65536?(p.flags=d&-65537|128,p):null;case 19:return bn(Sn),null;case 4:return mt(),null;case 10:return ze(p.type._context),null;case 22:case 23:return lc(),null;case 24:return null;default:return null}}var As=!1,ut=!1,Qu=typeof WeakSet=="function"?WeakSet:Set,Ye=null;function Ni(d,p){var C=d.ref;if(C!==null)if(typeof C=="function")try{C(null)}catch(I){$n(d,p,I)}else C.current=null}function Ql(d,p,C){try{C()}catch(I){$n(d,p,I)}}var du=!1;function Zu(d,p){if(ja=vr,d=ms(),da(d)){if("selectionStart"in d)var C={start:d.selectionStart,end:d.selectionEnd};else e:{C=(C=d.ownerDocument)&&C.defaultView||window;var I=C.getSelection&&C.getSelection();if(I&&I.rangeCount!==0){C=I.anchorNode;var A=I.anchorOffset,N=I.focusNode;I=I.focusOffset;try{C.nodeType,N.nodeType}catch(Ue){C=null;break e}var F=0,q=-1,ue=-1,pe=0,ye=0,Te=d,De=null;n:for(;;){for(var Ve;Te!==C||A!==0&&Te.nodeType!==3||(q=F+A),Te!==N||I!==0&&Te.nodeType!==3||(ue=F+I),Te.nodeType===3&&(F+=Te.nodeValue.length),(Ve=Te.firstChild)!==null;)De=Te,Te=Ve;for(;;){if(Te===d)break n;if(De===C&&++pe===A&&(q=F),De===N&&++ye===I&&(ue=F),(Ve=Te.nextSibling)!==null)break;Te=De,De=Te.parentNode}Te=Ve}C=q===-1||ue===-1?null:{start:q,end:ue}}else C=null}C=C||{start:0,end:0}}else C=null;for(Ea={focusedElem:d,selectionRange:C},vr=!1,Ye=p;Ye!==null;)if(p=Ye,d=p.child,(p.subtreeFlags&1028)!==0&&d!==null)d.return=p,Ye=d;else for(;Ye!==null;){p=Ye;try{var Ze=p.alternate;if(p.flags&1024)switch(p.tag){case 0:case 11:case 15:break;case 1:if(Ze!==null){var Je=Ze.memoizedProps,Vn=Ze.memoizedState,he=p.stateNode,de=he.getSnapshotBeforeUpdate(p.elementType===p.type?Je:ar(p.type,Je),Vn);he.__reactInternalSnapshotBeforeUpdate=de}break;case 3:var xe=p.stateNode.containerInfo;xe.nodeType===1?xe.textContent="":xe.nodeType===9&&xe.documentElement&&xe.removeChild(xe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Ue){$n(p,p.return,Ue)}if(d=p.sibling,d!==null){d.return=p.return,Ye=d;break}Ye=p.return}return Ze=du,du=!1,Ze}function Ta(d,p,C){var I=p.updateQueue;if(I=I!==null?I.lastEffect:null,I!==null){var A=I=I.next;do{if((A.tag&d)===d){var N=A.destroy;A.destroy=void 0,N!==void 0&&Ql(p,C,N)}A=A.next}while(A!==I)}}function Rs(d,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var C=p=p.next;do{if((C.tag&d)===d){var I=C.create;C.destroy=I()}C=C.next}while(C!==p)}}function Zl(d){var p=d.ref;if(p!==null){var C=d.stateNode;switch(d.tag){case 5:d=C;break;default:d=C}typeof p=="function"?p(d):p.current=d}}function fu(d){var p=d.alternate;p!==null&&(d.alternate=null,fu(p)),d.child=null,d.deletions=null,d.sibling=null,d.tag===5&&(p=d.stateNode,p!==null&&(delete p[Bt],delete p[Rr],delete p[Ma],delete p[_a],delete p[Tl])),d.stateNode=null,d.return=null,d.dependencies=null,d.memoizedProps=null,d.memoizedState=null,d.pendingProps=null,d.stateNode=null,d.updateQueue=null}function hu(d){return d.tag===5||d.tag===3||d.tag===4}function mu(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||hu(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function Jl(d,p,C){var I=d.tag;if(I===5||I===6)d=d.stateNode,p?C.nodeType===8?C.parentNode.insertBefore(d,p):C.insertBefore(d,p):(C.nodeType===8?(p=C.parentNode,p.insertBefore(d,C)):(p=C,p.appendChild(d)),C=C._reactRootContainer,C!=null||p.onclick!==null||(p.onclick=Ii));else if(I!==4&&(d=d.child,d!==null))for(Jl(d,p,C),d=d.sibling;d!==null;)Jl(d,p,C),d=d.sibling}function ql(d,p,C){var I=d.tag;if(I===5||I===6)d=d.stateNode,p?C.insertBefore(d,p):C.appendChild(d);else if(I!==4&&(d=d.child,d!==null))for(ql(d,p,C),d=d.sibling;d!==null;)ql(d,p,C),d=d.sibling}var it=null,sr=!1;function ao(d,p,C){for(C=C.child;C!==null;)vu(d,p,C),C=C.sibling}function vu(d,p,C){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(li,C)}catch(q){}switch(C.tag){case 5:ut||Ni(C,p);case 6:var I=it,A=sr;it=null,ao(d,p,C),it=I,sr=A,it!==null&&(sr?(d=it,C=C.stateNode,d.nodeType===8?d.parentNode.removeChild(C):d.removeChild(C)):it.removeChild(C.stateNode));break;case 18:it!==null&&(sr?(d=it,C=C.stateNode,d.nodeType===8?zo(d.parentNode,C):d.nodeType===1&&zo(d,C),Mo(d)):zo(it,C.stateNode));break;case 4:I=it,A=sr,it=C.stateNode.containerInfo,sr=!0,ao(d,p,C),it=I,sr=A;break;case 0:case 11:case 14:case 15:if(!ut&&(I=C.updateQueue,I!==null&&(I=I.lastEffect,I!==null))){A=I=I.next;do{var N=A,F=N.destroy;N=N.tag,F!==void 0&&(N&2||N&4)&&Ql(C,p,F),A=A.next}while(A!==I)}ao(d,p,C);break;case 1:if(!ut&&(Ni(C,p),I=C.stateNode,typeof I.componentWillUnmount=="function"))try{I.props=C.memoizedProps,I.state=C.memoizedState,I.componentWillUnmount()}catch(q){$n(C,p,q)}ao(d,p,C);break;case 21:ao(d,p,C);break;case 22:C.mode&1?(ut=(I=ut)||C.memoizedState!==null,ao(d,p,C),ut=I):ao(d,p,C);break;default:ao(d,p,C)}}function xu(d){var p=d.updateQueue;if(p!==null){d.updateQueue=null;var C=d.stateNode;C===null&&(C=d.stateNode=new Qu),p.forEach(function(I){var A=ad.bind(null,d,I);C.has(I)||(C.add(I),I.then(A,A))})}}function lr(d,p){var C=p.deletions;if(C!==null)for(var I=0;IA&&(A=F),I&=~N}if(I=A,I=Ln()-I,I=(120>I?120:480>I?480:1080>I?1080:1920>I?1920:3e3>I?3e3:4320>I?4320:1960*qu(I/1960))-I,10d?16:d,lo===null)var I=!1;else{if(d=lo,lo=null,Ns=0,Mn&6)throw Error(s(331));var A=Mn;for(Mn|=4,Ye=d.current;Ye!==null;){var N=Ye,F=N.child;if(Ye.flags&16){var q=N.deletions;if(q!==null){for(var ue=0;ueLn()-tc?qo(d,0):nc|=C),It(d,p)}function Su(d,p){p===0&&(d.mode&1?(p=ci,ci<<=1,!(ci&130023424)&&(ci=4194304)):p=1);var C=gt();d=cn(d,p),d!==null&&(Eo(d,p,C),It(d,C))}function id(d){var p=d.memoizedState,C=0;p!==null&&(C=p.retryLane),Su(d,C)}function ad(d,p){var C=0;switch(d.tag){case 13:var I=d.stateNode,A=d.memoizedState;A!==null&&(C=A.retryLane);break;case 19:I=d.stateNode;break;default:throw Error(s(314))}I!==null&&I.delete(p),Su(d,C)}var bu;bu=function(p,C,I){if(p!==null)if(p.memoizedProps!==C.pendingProps||lt.current)_t=!0;else{if(!(p.lanes&I)&&!(C.flags&128))return _t=!1,Xu(p,C,I);_t=!!(p.flags&131072)}else _t=!1,Nn&&C.flags&1048576&&Rl(C,Go,C.index);switch(C.lanes=0,C.tag){case 2:var A=C.type;Ts(p,C),p=C.pendingProps;var N=Jr(C,qn.current);_e(C,I),N=Qo(null,C,A,p,N,I);var F=Li();return C.flags|=1,typeof N=="object"&&N!==null&&typeof N.render=="function"&&N.$$typeof===void 0?(C.tag=1,C.memoizedState=null,C.updateQueue=null,ot(A)?(F=!0,Si(C)):F=!1,C.memoizedState=N.state!==null&&N.state!==void 0?N.state:null,sn(C),N.updater=Ss,C.stateNode=N,N._reactInternals=C,wl(C,A,p,I),C=Fl(null,C,A,!0,F,I)):(C.tag=0,Nn&&F&&Xo(C),xt(null,C,N,I),C=C.child),C;case 16:A=C.elementType;e:{switch(Ts(p,C),p=C.pendingProps,N=A._init,A=N(A._payload),C.type=A,N=C.tag=ld(A),p=ar(A,p),N){case 0:C=kl(null,C,A,p,I);break e;case 1:C=tu(null,C,A,p,I);break e;case 11:C=Zc(null,C,A,p,I);break e;case 14:C=Jc(null,C,A,ar(A.type,p),I);break e}throw Error(s(306,A,""))}return C;case 0:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),kl(p,C,A,N,I);case 1:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),tu(p,C,A,N,I);case 3:e:{if(ru(C),p===null)throw Error(s(387));A=C.pendingProps,F=C.memoizedState,N=F.element,ln(p,C),kn(C,A,null,I);var q=C.memoizedState;if(A=q.element,F.isDehydrated)if(F={element:A,isDehydrated:!1,cache:q.cache,pendingSuspenseBoundaries:q.pendingSuspenseBoundaries,transitions:q.transitions},C.updateQueue.baseState=F,C.memoizedState=F,C.flags&256){N=Ui(Error(s(423)),C),C=ou(p,C,A,I,N);break e}else if(A!==N){N=Ui(Error(s(424)),C),C=ou(p,C,A,I,N);break e}else for(Mt=Rt(C.stateNode.containerInfo.firstChild),yt=C,Nn=!0,Vt=null,I=Ce(C,null,A,I),C.child=I;I;)I.flags=I.flags&-3|4096,I=I.sibling;else{if(R(),A===N){C=Wr(p,C,I);break e}xt(p,C,A,I)}C=C.child}return C;case 5:return to(C),p===null&&_(C),A=C.type,N=C.pendingProps,F=p!==null?p.memoizedProps:null,q=N.children,wo(A,N)?q=null:F!==null&&wo(A,F)&&(C.flags|=32),nu(p,C),xt(p,C,q,I),C.child;case 6:return p===null&&_(C),null;case 13:return iu(p,C,I);case 4:return Mr(C,C.stateNode.containerInfo),A=C.pendingProps,p===null?C.child=me(C,null,A,I):xt(p,C,A,I),C.child;case 11:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),Zc(p,C,A,N,I);case 7:return xt(p,C,C.pendingProps,I),C.child;case 8:return xt(p,C,C.pendingProps.children,I),C.child;case 12:return xt(p,C,C.pendingProps.children,I),C.child;case 10:e:{if(A=C.type._context,N=C.pendingProps,F=C.memoizedProps,q=N.value,Tn(ve,A._currentValue),A._currentValue=q,F!==null)if(Ct(F.value,q)){if(F.children===N.children&&!lt.current){C=Wr(p,C,I);break e}}else for(F=C.child,F!==null&&(F.return=C);F!==null;){var ue=F.dependencies;if(ue!==null){q=F.child;for(var pe=ue.firstContext;pe!==null;){if(pe.context===A){if(F.tag===1){pe=pn(-1,I&-I),pe.tag=2;var ye=F.updateQueue;if(ye!==null){ye=ye.shared;var Te=ye.pending;Te===null?pe.next=pe:(pe.next=Te.next,Te.next=pe),ye.pending=pe}}F.lanes|=I,pe=F.alternate,pe!==null&&(pe.lanes|=I),en(F.return,I,C),ue.lanes|=I;break}pe=pe.next}}else if(F.tag===10)q=F.type===C.type?null:F.child;else if(F.tag===18){if(q=F.return,q===null)throw Error(s(341));q.lanes|=I,ue=q.alternate,ue!==null&&(ue.lanes|=I),en(q,I,C),q=F.sibling}else q=F.child;if(q!==null)q.return=F;else for(q=F;q!==null;){if(q===C){q=null;break}if(F=q.sibling,F!==null){F.return=q.return,q=F;break}q=q.return}F=q}xt(p,C,N.children,I),C=C.child}return C;case 9:return N=C.type,A=C.pendingProps.children,_e(C,I),N=We(N),A=A(N),C.flags|=1,xt(p,C,A,I),C.child;case 14:return A=C.type,N=ar(A,C.pendingProps),N=ar(A.type,N),Jc(p,C,A,N,I);case 15:return qc(p,C,C.type,C.pendingProps,I);case 17:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),Ts(p,C),C.tag=1,ot(A)?(p=!0,Si(C)):p=!1,_e(C,I),Fc(C,A,N),wl(C,A,N,I),Fl(null,C,A,!0,p,I);case 19:return su(p,C,I);case 22:return eu(p,C,I)}throw Error(s(156,C.tag))};function Tu(d,p){return wa(d,p)}function sd(d,p,C,I){this.tag=d,this.key=C,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=I,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yt(d,p,C,I){return new sd(d,p,C,I)}function uc(d){return d=d.prototype,!(!d||!d.isReactComponent)}function ld(d){if(typeof d=="function")return uc(d)?1:0;if(d!=null){if(d=d.$$typeof,d===G)return 11;if(d===se)return 14}return 2}function fo(d,p){var C=d.alternate;return C===null?(C=Yt(d.tag,p,d.key,d.mode),C.elementType=d.elementType,C.type=d.type,C.stateNode=d.stateNode,C.alternate=d,d.alternate=C):(C.pendingProps=p,C.type=d.type,C.flags=0,C.subtreeFlags=0,C.deletions=null),C.flags=d.flags&14680064,C.childLanes=d.childLanes,C.lanes=d.lanes,C.child=d.child,C.memoizedProps=d.memoizedProps,C.memoizedState=d.memoizedState,C.updateQueue=d.updateQueue,p=d.dependencies,C.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},C.sibling=d.sibling,C.index=d.index,C.ref=d.ref,C}function $s(d,p,C,I,A,N){var F=2;if(I=d,typeof d=="function")uc(d)&&(F=1);else if(typeof d=="string")F=5;else e:switch(d){case W:return ni(C.children,A,N,p);case $:F=8,A|=8;break;case k:return d=Yt(12,C,p,A|2),d.elementType=k,d.lanes=N,d;case Q:return d=Yt(13,C,p,A),d.elementType=Q,d.lanes=N,d;case ee:return d=Yt(19,C,p,A),d.elementType=ee,d.lanes=N,d;case Y:return ks(C,A,N,p);default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case z:F=10;break e;case X:F=9;break e;case G:F=11;break e;case se:F=14;break e;case ne:F=16,I=null;break e}throw Error(s(130,d==null?d:typeof d=="undefined"?"undefined":i(d),""))}return p=Yt(F,C,p,A),p.elementType=d,p.type=I,p.lanes=N,p}function ni(d,p,C,I){return d=Yt(7,d,I,p),d.lanes=C,d}function ks(d,p,C,I){return d=Yt(22,d,I,p),d.elementType=Y,d.lanes=C,d.stateNode={isHidden:!1},d}function dc(d,p,C){return d=Yt(6,d,null,p),d.lanes=C,d}function fc(d,p,C){return p=Yt(4,d.children!==null?d.children:[],d.key,p),p.lanes=C,p.stateNode={containerInfo:d.containerInfo,pendingChildren:null,implementation:d.implementation},p}function cd(d,p,C,I,A){this.tag=p,this.containerInfo=d,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ki(0),this.expirationTimes=ki(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ki(0),this.identifierPrefix=I,this.onRecoverableError=A,this.mutableSourceEagerHydrationData=null}function hc(d,p,C,I,A,N,F,q,ue){return d=new cd(d,p,C,q,ue),p===1?(p=1,N===!0&&(p|=8)):p=0,N=Yt(3,null,null,p),d.current=N,N.stateNode=d,N.memoizedState={element:I,isDehydrated:C,cache:null,transitions:null,pendingSuspenseBoundaries:null},sn(N),d}function ud(d,p,C){var I=3=0;--q){var ce=this.tryEntries[q],se=ce.completion;if(ce.tryLoc==="root")return V("end");if(ce.tryLoc<=this.prev){var fe=r.call(ce,"catchLoc"),ge=r.call(ce,"finallyLoc");if(fe&&ge){if(this.prev=0;--V){var q=this.tryEntries[V];if(q.tryLoc<=this.prev&&r.call(q,"finallyLoc")&&this.prev=0;--Z){var V=this.tryEntries[Z];if(V.finallyLoc===Q)return this.complete(V.completion,V.afterLoc),G(V),O}},catch:function(ne){for(var Q=this.tryEntries.length-1;Q>=0;--Q){var Z=this.tryEntries[Q];if(Z.tryLoc===ne){var V=Z.completion;if(V.type==="throw"){var q=V.arg;G(Z)}return q}}throw new Error("illegal catch attempt")},delegateYield:function(Q,Z,V){return this.delegate={iterator:ee(Q),resultName:Z,nextLoc:V},this.method==="next"&&(this.arg=g),O}},o}(y.exports);try{regeneratorRuntime=e}catch(o){typeof globalThis=="object"?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},82039:function(y,u){"use strict";/** + */function n(V){"@swc/helpers - typeof";return V&&typeof Symbol!="undefined"&&V.constructor===Symbol?"symbol":typeof V}var e=Symbol.for("react.element"),i=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),g=Symbol.for("react.provider"),x=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),o=Symbol.for("react.suspense"),l=Symbol.for("react.memo"),a=Symbol.for("react.lazy"),c=Symbol.iterator;function f(V){return V===null||typeof V!="object"?null:(V=c&&V[c]||V["@@iterator"],typeof V=="function"?V:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,j={};function E(V,te,ce){this.props=V,this.context=te,this.refs=j,this.updater=ce||m}E.prototype.isReactComponent={},E.prototype.setState=function(V,te){if(typeof V!="object"&&typeof V!="function"&&V!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,V,te,"setState")},E.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function y(){}y.prototype=E.prototype;function M(V,te,ce){this.props=V,this.context=te,this.refs=j,this.updater=ce||m}var P=M.prototype=new y;P.constructor=M,v(P,E.prototype),P.isPureReactComponent=!0;var D=Array.isArray,S=Object.prototype.hasOwnProperty,B={current:null},T={key:!0,ref:!0,__self:!0,__source:!0};function L(V,te,ce){var le,fe={},ge=null,Ie=null;if(te!=null)for(le in te.ref!==void 0&&(Ie=te.ref),te.key!==void 0&&(ge=""+te.key),te)S.call(te,le)&&!T.hasOwnProperty(le)&&(fe[le]=te[le]);var Ee=arguments.length-2;if(Ee===1)fe.children=ce;else if(1=0;--te){var ce=this.tryEntries[te],le=ce.completion;if(ce.tryLoc==="root")return V("end");if(ce.tryLoc<=this.prev){var fe=r.call(ce,"catchLoc"),ge=r.call(ce,"finallyLoc");if(fe&&ge){if(this.prev=0;--V){var te=this.tryEntries[V];if(te.tryLoc<=this.prev&&r.call(te,"finallyLoc")&&this.prev=0;--J){var V=this.tryEntries[J];if(V.finallyLoc===Y)return this.complete(V.completion,V.afterLoc),G(V),y}},catch:function(ne){for(var Y=this.tryEntries.length-1;Y>=0;--Y){var J=this.tryEntries[Y];if(J.tryLoc===ne){var V=J.completion;if(V.type==="throw"){var te=V.arg;G(J)}return te}}throw new Error("illegal catch attempt")},delegateYield:function(Y,J,V){return this.delegate={iterator:ee(Y),resultName:J,nextLoc:V},this.method==="next"&&(this.arg=g),y}},i}(O.exports);try{regeneratorRuntime=e}catch(i){typeof globalThis=="object"?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},82039:function(O,h){"use strict";/** * @license React * scheduler.production.min.js * @@ -30,29 +30,29 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function n(ee,le){var ne=ee.length;ee.push(le);e:for(;0>>1,Z=ee[Q];if(0>>1;Qt(ce,ne))set(fe,ce)?(ee[Q]=fe,ee[se]=ne,Q=se):(ee[Q]=ce,ee[q]=ne,Q=q);else if(set(fe,ne))ee[Q]=fe,ee[se]=ne,Q=se;else break e}}return le}function t(ee,le){var ne=ee.sortIndex-le.sortIndex;return ne!==0?ne:ee.id-le.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;u.unstable_now=function(){return r.now()}}else{var s=Date,g=s.now();u.unstable_now=function(){return s.now()-g}}var x=[],d=[],a=1,l=null,i=3,c=!1,f=!1,m=!1,v=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate!="undefined"?setImmediate:null;typeof navigator!="undefined"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function O(ee){for(var le=e(d);le!==null;){if(le.callback===null)o(d);else if(le.startTime<=ee)o(d),le.sortIndex=le.expirationTime,n(x,le);else break;le=e(d)}}function M(ee){if(m=!1,O(ee),!f)if(e(x)!==null)f=!0,G(_);else{var le=e(d);le!==null&&Y(M,le.startTime-ee)}}function _(ee,le){f=!1,m&&(m=!1,E(T),T=-1),c=!0;var ne=i;try{for(O(le),l=e(x);l!==null&&(!(l.expirationTime>le)||ee&&!W());){var Q=l.callback;if(typeof Q=="function"){l.callback=null,i=l.priorityLevel;var Z=Q(l.expirationTime<=le);le=u.unstable_now(),typeof Z=="function"?l.callback=Z:l===e(x)&&o(x),O(le)}else o(x);l=e(x)}if(l!==null)var V=!0;else{var q=e(d);q!==null&&Y(M,q.startTime-le),V=!1}return V}finally{l=null,i=ne,c=!1}}var I=!1,S=null,T=-1,A=5,K=-1;function W(){return!(u.unstable_now()-Kee||125Q?(ee.sortIndex=ne,n(d,ee),e(x)===null&&ee===e(d)&&(m?(E(T),T=-1):m=!0,Y(M,ne-Q))):(ee.sortIndex=Z,n(x,ee),f||c||(f=!0,G(_))),ee},u.unstable_shouldYield=W,u.unstable_wrapCallback=function(ee){var le=i;return function(){var ne=i;i=le;try{return ee.apply(this,arguments)}finally{i=ne}}}},20686:function(y,u,n){"use strict";y.exports=n(82039)},73396:function(){self.fetch||(self.fetch=function(y,u){return u=u||{},new Promise(function(n,e){var o=new XMLHttpRequest,t=[],r={},s=function x(){return{ok:(o.status/100|0)==2,statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:x,headers:{keys:function(){return t},entries:function(){return t.map(function(a){return[a,o.getResponseHeader(a)]})},get:function(a){return o.getResponseHeader(a)},has:function(a){return o.getResponseHeader(a)!=null}}}};for(var g in o.open(u.method||"get",y,!0),o.onload=function(){o.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(x,d){r[d]||t.push(r[d]=d)}),n(s())},o.onerror=e,o.withCredentials=u.credentials=="include",u.headers)o.setRequestHeader(g,u.headers[g]);o.send(u.body||null)})})},7402:function(y,u,n){"use strict";n.d(u,{TS:function(){return i},Tj:function(){return g},Ul:function(){return d},V0:function(){return E},hS:function(){return c},pb:function(){return s},yU:function(){return m}});/** + */function n(ee,se){var ne=ee.length;ee.push(se);e:for(;0>>1,J=ee[Y];if(0>>1;Yt(ce,ne))let(fe,ce)?(ee[Y]=fe,ee[le]=ne,Y=le):(ee[Y]=ce,ee[te]=ne,Y=te);else if(let(fe,ne))ee[Y]=fe,ee[le]=ne,Y=le;else break e}}return se}function t(ee,se){var ne=ee.sortIndex-se.sortIndex;return ne!==0?ne:ee.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;h.unstable_now=function(){return r.now()}}else{var s=Date,g=s.now();h.unstable_now=function(){return s.now()-g}}var x=[],u=[],o=1,l=null,a=3,c=!1,f=!1,m=!1,v=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate!="undefined"?setImmediate:null;typeof navigator!="undefined"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(ee){for(var se=e(u);se!==null;){if(se.callback===null)i(u);else if(se.startTime<=ee)i(u),se.sortIndex=se.expirationTime,n(x,se);else break;se=e(u)}}function M(ee){if(m=!1,y(ee),!f)if(e(x)!==null)f=!0,G(P);else{var se=e(u);se!==null&&Q(M,se.startTime-ee)}}function P(ee,se){f=!1,m&&(m=!1,j(B),B=-1),c=!0;var ne=a;try{for(y(se),l=e(x);l!==null&&(!(l.expirationTime>se)||ee&&!W());){var Y=l.callback;if(typeof Y=="function"){l.callback=null,a=l.priorityLevel;var J=Y(l.expirationTime<=se);se=h.unstable_now(),typeof J=="function"?l.callback=J:l===e(x)&&i(x),y(se)}else i(x);l=e(x)}if(l!==null)var V=!0;else{var te=e(u);te!==null&&Q(M,te.startTime-se),V=!1}return V}finally{l=null,a=ne,c=!1}}var D=!1,S=null,B=-1,T=5,L=-1;function W(){return!(h.unstable_now()-Lee||125Y?(ee.sortIndex=ne,n(u,ee),e(x)===null&&ee===e(u)&&(m?(j(B),B=-1):m=!0,Q(M,ne-Y))):(ee.sortIndex=J,n(x,ee),f||c||(f=!0,G(P))),ee},h.unstable_shouldYield=W,h.unstable_wrapCallback=function(ee){var se=a;return function(){var ne=a;a=se;try{return ee.apply(this,arguments)}finally{a=ne}}}},20686:function(O,h,n){"use strict";O.exports=n(82039)},73396:function(){self.fetch||(self.fetch=function(O,h){return h=h||{},new Promise(function(n,e){var i=new XMLHttpRequest,t=[],r={},s=function x(){return{ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:x,headers:{keys:function(){return t},entries:function(){return t.map(function(o){return[o,i.getResponseHeader(o)]})},get:function(o){return i.getResponseHeader(o)},has:function(o){return i.getResponseHeader(o)!=null}}}};for(var g in i.open(h.method||"get",O,!0),i.onload=function(){i.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(x,u){r[u]||t.push(r[u]=u)}),n(s())},i.onerror=e,i.withCredentials=h.credentials=="include",h.headers)i.setRequestHeader(g,h.headers[g]);i.send(h.body||null)})})},7402:function(O,h,n){"use strict";n.d(h,{TS:function(){return a},Tj:function(){return g},Ul:function(){return u},hS:function(){return c},pb:function(){return s},yU:function(){return m}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function e(_,I){(I==null||I>_.length)&&(I=_.length);for(var S=0,T=new Array(I);S=_.length?{done:!0}:{done:!1,value:_[T++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(_,I){if(_==null)return _;if(Array.isArray(_)){for(var S=[],T=0;T<_.length;T++){var A=_[T];I(A,T,_)&&S.push(A)}return S}throw new Error("filter() can't iterate on type "+(typeof _=="undefined"?"undefined":o(_)))},g=function(_,I){if(_==null)return _;if(Array.isArray(_)){for(var S=[],T=0;T<_.length;T++)S.push(I(_[T],T,_));return S}if(typeof _=="object"){var A=[];for(var K in _)Object.prototype.hasOwnProperty.call(_,K)&&A.push(I(_[K],K,_));return A}throw new Error("map() can't iterate on type "+(typeof _=="undefined"?"undefined":o(_)))},x=function(_,I){for(var S=_.criteria,T=I.criteria,A=S.length,K=0;K$)return 1}return 0},d=function(_){for(var I=function(z){var H=_[z];W.push({criteria:T.map(function(G){return G(H)}),value:H})},S=arguments.length,T=new Array(S>1?S-1:0),A=1;A>1,$=_(I[k]),$T?k:k+1},E=function(_,I,S){var T=[].concat(_);return T.splice(v(S,_,I),0,I),T},j=function(_,I){for(var S=[],T=[],A=I,K=r(_),W;!(W=K()).done;){var $=W.value;T.push($),A--,A||(A=I,S.push(T),T=[])}return T.length&&S.push(T),S},O=function(_){return typeof _=="object"&&_!==null},M=function(){for(var _=arguments.length,I=new Array(_),S=0;S<_;S++)I[S]=arguments[S];for(var T={},A=r(I),K;!(K=A()).done;)for(var W=K.value,$=r(Object.keys(W)),k;!(k=$()).done;){var z=k.value,H=T[z],G=W[z];Array.isArray(H)&&Array.isArray(G)?T[z]=[].concat(H,G):O(H)&&O(G)?T[z]=M(H,G):T[z]=G}return T}},47454:function(y,u,n){"use strict";n.d(u,{b:function(){return e}});/** + */function e(P,D){(D==null||D>P.length)&&(D=P.length);for(var S=0,B=new Array(D);S=P.length?{done:!0}:{done:!1,value:P[B++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(P,D){if(P==null)return P;if(Array.isArray(P)){for(var S=[],B=0;B$)return 1}return 0},u=function(P){for(var D=function(z){var X=P[z];W.push({criteria:B.map(function(G){return G(X)}),value:X})},S=arguments.length,B=new Array(S>1?S-1:0),T=1;T>1,$=P(D[k]),$B?k:k+1},j=function(P,D,S){var B=[].concat(P);return B.splice(v(S,P,D),0,D),B},E=function(P,D){for(var S=[],B=[],T=D,L=r(P),W;!(W=L()).done;){var $=W.value;B.push($),T--,T||(T=D,S.push(B),B=[])}return B.length&&S.push(B),S},y=function(P){return typeof P=="object"&&P!==null},M=function(){for(var P=arguments.length,D=new Array(P),S=0;S1?g-1:0),d=1;d1?g-1:0),u=1;ug.length)&&(x=g.length);for(var d=0,a=new Array(x);d=g.length?{done:!0}:{done:!1,value:g[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=void 0,s=function(){for(var g=arguments.length,x=new Array(g),d=0;d1?i-1:0),f=1;fg.length)&&(x=g.length);for(var u=0,o=new Array(x);u=g.length?{done:!0}:{done:!1,value:g[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=void 0,s=function(){for(var g=arguments.length,x=new Array(g),u=0;u1?a-1:0),f=1;fc.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=function(c,f,m){return cm?m:c},s=function(c){return c<0?0:c>1?1:c},g=function(c,f,m){return(c-f)/(m-f)},x=function(c,f){if(!c||isNaN(c))return c;var m,v,E,j;return f|=0,m=Math.pow(10,f),c*=m,j=+(c>0)|-(c<0),E=Math.abs(c%1)>=.4999999999854481,v=Math.floor(c),E&&(c=v+(j>0)),(E?c:Math.round(c))/m},d=function(c,f){return f===void 0&&(f=0),Number(c).toFixed(Math.max(f,0))},a=function(c,f){return f&&c>=f[0]&&c<=f[1]},l=function(c,f){for(var m=t(Object.keys(f)),v;!(v=m()).done;){var E=v.value,j=f[E];if(a(c,j))return E}},i=function(c){return Math.floor(c)!==c&&c.toString().split(".")[1].length||0}},56236:function(y,u,n){"use strict";n.d(u,{k:function(){return l}});/** + */function e(c,f){(f==null||f>c.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=function(c,f,m){return cm?m:c},s=function(c){return c<0?0:c>1?1:c},g=function(c,f,m){return(c-f)/(m-f)},x=function(c,f){if(!c||isNaN(c))return c;var m,v,j,E;return f|=0,m=Math.pow(10,f),c*=m,E=+(c>0)|-(c<0),j=Math.abs(c%1)>=.4999999999854481,v=Math.floor(c),j&&(c=v+(E>0)),(j?c:Math.round(c))/m},u=function(c,f){return f===void 0&&(f=0),Number(c).toFixed(Math.max(f,0))},o=function(c,f){return f&&c>=f[0]&&c<=f[1]},l=function(c,f){for(var m=t(Object.keys(f)),v;!(v=m()).done;){var j=v.value,E=f[j];if(o(c,E))return j}},a=function(c){return Math.floor(c)!==c&&c.toString().split(".")[1].length||0}},56236:function(O,h,n){"use strict";n.d(h,{k:function(){return l}});/** * Ghetto performance measurement tools. * * Uses NODE_ENV to remove itself from production builds. @@ -60,29 +60,29 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e,o=60,t=1e3/o,r=!!((e=window.performance)!=null&&e.now),s={},g={};function x(i,c){}function d(i,c){return;var f,m,v}function a(i){var c=i/t;return i.toFixed(i<10?1:0)+"ms ("+c.toFixed(2)+" frames)"}var l={mark:x,measure:d}},65380:function(y,u,n){"use strict";n.d(u,{Ly:function(){return e},a_:function(){return t},b5:function(){return r}});/** + */var e,i=60,t=1e3/i,r=!!((e=window.performance)!=null&&e.now),s={},g={};function x(a,c){}function u(a,c){return;var f,m,v}function o(a){var c=a/t;return a.toFixed(a<10?1:0)+"ms ("+c.toFixed(2)+" frames)"}var l={mark:x,measure:u}},65380:function(O,h,n){"use strict";n.d(h,{Ly:function(){return e},a_:function(){return t},b5:function(){return r}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(s){for(var g="",x=0;xa.length)&&(l=a.length);for(var i=0,c=new Array(l);i=a.length?{done:!0}:{done:!1,value:a[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(a,l){if(l)return l(s)(a);var i,c=[],f=function(){return i},m=function(E){c.push(E)},v=function(E){i=a(i,E);for(var j=0;j1?m-1:0),E=1;E1?S-1:0),A=1;A1?S-1:0),A=1;Ao.length)&&(l=o.length);for(var a=0,c=new Array(l);a=o.length?{done:!0}:{done:!1,value:o[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(o,l){if(l)return l(s)(o);var a,c=[],f=function(){return a},m=function(j){c.push(j)},v=function(j){a=o(a,j);for(var E=0;E1?m-1:0),j=1;j1?S-1:0),T=1;T1?S-1:0),T=1;T0&&A[A.length-1])&&(z[0]===6||z[0]===2)){W=0;continue}if(z[0]===3&&(!A||z[1]>A[0]&&z[1]0&&T[T.length-1])&&(z[0]===6||z[0]===2)){W=0;continue}if(z[0]===3&&(!T||z[1]>T[0]&&z[1]m.length)&&(v=m.length);for(var E=0,j=new Array(v);E=m.length?{done:!0}:{done:!1,value:m[j++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(m,v){v===void 0&&(v=function(j){return JSON.stringify(j)});var E=m.toLowerCase().trim();return function(j){if(!E)return!0;var O=v(j);return O?O.toLowerCase().includes(E):!1}}function s(m){return m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()}function g(m){return m.replace(/(^\w{1})|(\s+\w{1})/g,function(v){return v.toUpperCase()})}function x(m){return m.replace(/^\w/,function(v){return v.toUpperCase()})}var d=["Id","Tv"],a=["A","An","And","As","At","But","By","For","For","From","In","Into","Near","Nor","Of","On","Onto","Or","The","To","With"];function l(m){if(!m)return m;for(var v=m.replace(/([^\W_]+[^\s-]*) */g,function(A){return s(A)}),E=t(a),j;!(j=E()).done;){var O=j.value,M=new RegExp("\\s"+O+"\\s","g");v=v.replace(M,function(A){return A.toLowerCase()})}for(var _=t(d),I;!(I=_()).done;){var S=I.value,T=new RegExp("\\b"+S+"\\b","g");v=v.replace(T,function(A){return A.toLowerCase()})}return v}var i=/&(nbsp|amp|quot|lt|gt|apos);/g,c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:'"'};function f(m){return m&&m.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(i,function(v,E){return c[E]}).replace(/&#?([0-9]+);/gi,function(v,E){var j=parseInt(E,10);return String.fromCharCode(j)}).replace(/&#x?([0-9a-f]+);/gi,function(v,E){var j=parseInt(E,16);return String.fromCharCode(j)})}},27482:function(y,u,n){"use strict";n.d(u,{sg:function(){return e}});/** + */function e(m,v){(v==null||v>m.length)&&(v=m.length);for(var j=0,E=new Array(v);j=m.length?{done:!0}:{done:!1,value:m[E++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(m,v){v===void 0&&(v=function(E){return JSON.stringify(E)});var j=m.toLowerCase().trim();return function(E){if(!j)return!0;var y=v(E);return y?y.toLowerCase().includes(j):!1}}function s(m){return m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()}function g(m){return m.replace(/(^\w{1})|(\s+\w{1})/g,function(v){return v.toUpperCase()})}function x(m){return m.replace(/^\w/,function(v){return v.toUpperCase()})}var u=["Id","Tv"],o=["A","An","And","As","At","But","By","For","For","From","In","Into","Near","Nor","Of","On","Onto","Or","The","To","With"];function l(m){if(!m)return m;for(var v=m.replace(/([^\W_]+[^\s-]*) */g,function(T){return s(T)}),j=t(o),E;!(E=j()).done;){var y=E.value,M=new RegExp("\\s"+y+"\\s","g");v=v.replace(M,function(T){return T.toLowerCase()})}for(var P=t(u),D;!(D=P()).done;){var S=D.value,B=new RegExp("\\b"+S+"\\b","g");v=v.replace(B,function(T){return T.toLowerCase()})}return v}var a=/&(nbsp|amp|quot|lt|gt|apos);/g,c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:'"'};function f(m){return m&&m.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(a,function(v,j){return c[j]}).replace(/&#?([0-9]+);/gi,function(v,j){var E=parseInt(j,10);return String.fromCharCode(E)}).replace(/&#x?([0-9a-f]+);/gi,function(v,j){var E=parseInt(j,16);return String.fromCharCode(E)})}},27482:function(O,h,n){"use strict";n.d(h,{sg:function(){return e}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(r,s,g){g===void 0&&(g=!1);var x;return function(){for(var d=arguments.length,a=new Array(d),l=0;l=s?(r.apply(null,l),g=c):x=setTimeout(function(){return d.apply(void 0,[].concat(l))},s-(c-(g!=null?g:0)))}},t=function(r){return new Promise(function(s){return setTimeout(s,r)})}},87760:function(y,u,n){"use strict";n.d(u,{CO:function(){return g},Jk:function(){return c},Xd:function(){return l},Z4:function(){return x},tk:function(){return d}});var e=n(7402);/** + */var e=function(r,s,g){g===void 0&&(g=!1);var x;return function(){for(var u=arguments.length,o=new Array(u),l=0;l=s?(r.apply(null,l),g=c):x=setTimeout(function(){return u.apply(void 0,[].concat(l))},s-(c-(g!=null?g:0)))}},t=function(r){return new Promise(function(s){return setTimeout(s,r)})}},87760:function(O,h,n){"use strict";n.d(h,{CO:function(){return g},Jk:function(){return c},Xd:function(){return l},Z4:function(){return x},tk:function(){return u}});var e=n(7402);/** * N-dimensional vector manipulation functions. * * Vectors are plain number arrays, i.e. [x, y, z]. @@ -90,11 +90,11 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var o=function(m,v){return m+v},t=function(m,v){return m-v},r=function(m,v){return m*v},s=function(m,v){return m/v},g=function(){for(var m=arguments.length,v=new Array(m),E=0;Ed.length)&&(a=d.length);for(var l=0,i=new Array(a);l=d.length?{done:!0}:{done:!1,value:d[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=[/v4shim/i],s={},g=function(d){return s[d]||d},x=function(d){return function(a){return function(l){var i=l.type,c=l.payload;if(i==="asset/stylesheet"){Byond.loadCss(c);return}if(i==="asset/mappings"){for(var f=function(){var E=v.value;if(r.some(function(M){return M.test(E)}))return"continue";var j=c[E],O=E.split(".").pop();s[E]=j,O==="css"&&Byond.loadCss(j),O==="js"&&Byond.loadJs(j)},m=t(Object.keys(c)),v;!(v=m()).done;)f();return}a(l)}}}},7081:function(y,u,n){"use strict";n.d(u,{H$:function(){return m},J3:function(){return f},JV:function(){return j},Oc:function(){return A},QY:function(){return W},d4:function(){return k},jB:function(){return _},pX:function(){return I}});var e=n(56236),o=n(74429),t=n(21547),r=n(37912),s=n(49945),g=n(92736),x=n(67278);/** + */function e(u,o){(o==null||o>u.length)&&(o=u.length);for(var l=0,a=new Array(o);l=u.length?{done:!0}:{done:!1,value:u[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=[/v4shim/i],s={},g=function(u){return s[u]||u},x=function(u){return function(o){return function(l){var a=l.type,c=l.payload;if(a==="asset/stylesheet"){Byond.loadCss(c);return}if(a==="asset/mappings"){for(var f=function(){var j=v.value;if(r.some(function(M){return M.test(j)}))return"continue";var E=c[j],y=j.split(".").pop();s[j]=E,y==="css"&&Byond.loadCss(E),y==="js"&&Byond.loadJs(E)},m=t(Object.keys(c)),v;!(v=m()).done;)f();return}o(l)}}}},7081:function(O,h,n){"use strict";n.d(h,{H$:function(){return m},J3:function(){return f},JV:function(){return E},Oc:function(){return T},QY:function(){return W},d4:function(){return k},jB:function(){return P},pX:function(){return D}});var e=n(56236),i=n(74429),t=n(21547),r=n(37912),s=n(49945),g=n(92736),x=n(67278);/** * This file provides a clear separation layer between backend updates * and what state our React app sees. * @@ -105,303 +105,303 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function d(z,H){(H==null||H>z.length)&&(H=z.length);for(var G=0,Y=new Array(H);G=z.length?{done:!0}:{done:!1,value:z[Y++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=(0,g.h)("backend"),f,m=function(z){f=z},v=(0,o.VP)("backend/update"),E=(0,o.VP)("backend/setSharedState"),j=(0,o.VP)("backend/suspendStart"),O=function(){return{type:"backend/suspendSuccess",payload:{timestamp:Date.now()}}},M={config:{},data:{},shared:{},suspended:Date.now(),suspending:!1},_=function(z,H){z===void 0&&(z=M);var G=H.type,Y=H.payload;if(G==="backend/update"){var ee=a({},z.config,Y.config),le=a({},z.data,Y.static_data,Y.data),ne=a({},z.shared);if(Y.shared)for(var Q=i(Object.keys(Y.shared)),Z;!(Z=Q()).done;){var V=Z.value,q=Y.shared[V];q===""?ne[V]=void 0:ne[V]=JSON.parse(q)}return a({},z,{config:ee,data:le,shared:ne,suspended:!1})}if(G==="backend/setSharedState"){var ce=Y.key,se=Y.nextState,fe;return a({},z,{shared:a({},z.shared,(fe={},fe[ce]=se,fe))})}if(G==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),G==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),G==="backend/suspendStart")return a({},z,{suspending:!0});if(G==="backend/suspendSuccess"){var ge=Y.timestamp;return a({},z,{data:{},shared:{},config:a({},z.config,{title:"",status:1}),suspending:!1,suspended:ge})}return z},I=function(z){var H,G;return function(Y){return function(ee){var le=T(z.getState()).suspended,ne=ee.type,Q=ee.payload;if(ne==="update"){z.dispatch(v(Q));return}if(ne==="suspend"){z.dispatch(O());return}if(ne==="ping"){Byond.sendMessage("ping/reply");return}if(ne==="byond/mousedown"&&r.Nh.emit("byond/mousedown"),ne==="byond/mouseup"&&r.Nh.emit("byond/mouseup"),ne==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),ne==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),ne==="backend/suspendStart"&&!G){c.log("suspending ("+Byond.windowId+")");var Z=function(){return Byond.sendMessage("suspend")};Z(),G=setInterval(Z,2e3)}if(ne==="backend/suspendSuccess"&&((0,x.Su)(),clearInterval(G),G=void 0,Byond.winset(Byond.windowId,{"is-visible":!1}),setTimeout(function(){return(0,s.$)()})),ne==="backend/update"){var V,q,ce=(q=Q.config)==null||(V=q.window)==null?void 0:V.fancy;H===void 0?H=ce:H!==ce&&(c.log("changing fancy mode to",ce),H=ce,Byond.winset(Byond.windowId,{titlebar:!ce,"can-resize":!ce}))}return ne==="backend/update"&&le&&(c.log("backend/update",Q),(0,x.P7)(),(0,t.MN)(),setTimeout(function(){e.k.mark("resume/start");var se=T(z.getState()).suspended;se||(Byond.winset(Byond.windowId,{"is-visible":!0}),e.k.mark("resume/finish"))})),Y(ee)}}},S=function(z,H){H===void 0&&(H={});var G=typeof H=="object"&&H!==null&&!Array.isArray(H);if(!G){c.error("Payload for act() must be an object, got this:",H);return}Byond.sendMessage("act/"+z,H)},T=function(z){return z.backend||{}},A=function(){var z,H=f==null||(z=f.getState())==null?void 0:z.backend;return a({},H,{act:S})},K=function(z,H){var G,Y=f==null||(G=f.getState())==null?void 0:G.backend,ee,le=(ee=Y==null?void 0:Y.shared)!=null?ee:{},ne=z in le?le[z]:H;return[ne,function(Q){f.dispatch(E({key:z,nextState:typeof Q=="function"?Q(ne):Q}))}]},W=function(z,H){var G,Y=f==null||(G=f.getState())==null?void 0:G.backend,ee,le=(ee=Y==null?void 0:Y.shared)!=null?ee:{},ne=z in le?le[z]:H;return[ne,function(Q){Byond.sendMessage({type:"setSharedState",key:z,value:JSON.stringify(typeof Q=="function"?Q(ne):Q)||""})}]},$=function(){return f.dispatch},k=function(z){return z(f==null?void 0:f.getState())}},96781:function(y,u,n){"use strict";n.d(u,{Fl:function(){return I},WP:function(){return S},az:function(){return T},zA:function(){return l}});var e=n(65380),o=n(61358),t=n(79500),r=n(92736);/** + */function u(z,X){(X==null||X>z.length)&&(X=z.length);for(var G=0,Q=new Array(X);G=z.length?{done:!0}:{done:!1,value:z[Q++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=(0,g.h)("backend"),f,m=function(z){f=z},v=(0,i.VP)("backend/update"),j=(0,i.VP)("backend/setSharedState"),E=(0,i.VP)("backend/suspendStart"),y=function(){return{type:"backend/suspendSuccess",payload:{timestamp:Date.now()}}},M={config:{},data:{},shared:{},suspended:Date.now(),suspending:!1},P=function(z,X){z===void 0&&(z=M);var G=X.type,Q=X.payload;if(G==="backend/update"){var ee=o({},z.config,Q.config),se=o({},z.data,Q.static_data,Q.data),ne=o({},z.shared);if(Q.shared)for(var Y=a(Object.keys(Q.shared)),J;!(J=Y()).done;){var V=J.value,te=Q.shared[V];te===""?ne[V]=void 0:ne[V]=JSON.parse(te)}return o({},z,{config:ee,data:se,shared:ne,suspended:!1})}if(G==="backend/setSharedState"){var ce=Q.key,le=Q.nextState,fe;return o({},z,{shared:o({},z.shared,(fe={},fe[ce]=le,fe))})}if(G==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),G==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),G==="backend/suspendStart")return o({},z,{suspending:!0});if(G==="backend/suspendSuccess"){var ge=Q.timestamp;return o({},z,{data:{},shared:{},config:o({},z.config,{title:"",status:1}),suspending:!1,suspended:ge})}return z},D=function(z){var X,G;return function(Q){return function(ee){var se=B(z.getState()).suspended,ne=ee.type,Y=ee.payload;if(ne==="update"){z.dispatch(v(Y));return}if(ne==="suspend"){z.dispatch(y());return}if(ne==="ping"){Byond.sendMessage("ping/reply");return}if(ne==="byond/mousedown"&&r.Nh.emit("byond/mousedown"),ne==="byond/mouseup"&&r.Nh.emit("byond/mouseup"),ne==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),ne==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),ne==="backend/suspendStart"&&!G){c.log("suspending ("+Byond.windowId+")");var J=function(){return Byond.sendMessage("suspend")};J(),G=setInterval(J,2e3)}if(ne==="backend/suspendSuccess"&&((0,x.Su)(),clearInterval(G),G=void 0,Byond.winset(Byond.windowId,{"is-visible":!1}),setTimeout(function(){return(0,s.$)()})),ne==="backend/update"){var V,te,ce=(te=Y.config)==null||(V=te.window)==null?void 0:V.fancy;X===void 0?X=ce:X!==ce&&(c.log("changing fancy mode to",ce),X=ce,Byond.winset(Byond.windowId,{titlebar:!ce,"can-resize":!ce}))}return ne==="backend/update"&&se&&(c.log("backend/update",Y),(0,x.P7)(),(0,t.MN)(),setTimeout(function(){e.k.mark("resume/start");var le=B(z.getState()).suspended;le||(Byond.winset(Byond.windowId,{"is-visible":!0}),e.k.mark("resume/finish"))})),Q(ee)}}},S=function(z,X){X===void 0&&(X={});var G=typeof X=="object"&&X!==null&&!Array.isArray(X);if(!G){c.error("Payload for act() must be an object, got this:",X);return}Byond.sendMessage("act/"+z,X)},B=function(z){return z.backend||{}},T=function(){var z,X=f==null||(z=f.getState())==null?void 0:z.backend;return o({},X,{act:S})},L=function(z,X){var G,Q=f==null||(G=f.getState())==null?void 0:G.backend,ee,se=(ee=Q==null?void 0:Q.shared)!=null?ee:{},ne=z in se?se[z]:X;return[ne,function(Y){f.dispatch(j({key:z,nextState:typeof Y=="function"?Y(ne):Y}))}]},W=function(z,X){var G,Q=f==null||(G=f.getState())==null?void 0:G.backend,ee,se=(ee=Q==null?void 0:Q.shared)!=null?ee:{},ne=z in se?se[z]:X;return[ne,function(Y){Byond.sendMessage({type:"setSharedState",key:z,value:JSON.stringify(typeof Y=="function"?Y(ne):Y)||""})}]},$=function(){return f.dispatch},k=function(z){return z(f==null?void 0:f.getState())}},96781:function(O,h,n){"use strict";n.d(h,{Fl:function(){return D},WP:function(){return S},az:function(){return B},zA:function(){return l}});var e=n(65380),i=n(61358),t=n(79500),r=n(92736);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function s(A,K){(K==null||K>A.length)&&(K=A.length);for(var W=0,$=new Array(K);W=0)&&(W[k]=A[k]);return W}function d(A,K){if(A){if(typeof A=="string")return s(A,K);var W=Object.prototype.toString.call(A).slice(8,-1);if(W==="Object"&&A.constructor&&(W=A.constructor.name),W==="Map"||W==="Set")return Array.from(W);if(W==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(W))return s(A,K)}}function a(A,K){var W=typeof Symbol!="undefined"&&A[Symbol.iterator]||A["@@iterator"];if(W)return(W=W.call(A)).next.bind(W);if(Array.isArray(A)||(W=d(A))||K&&A&&typeof A.length=="number"){W&&(A=W);var $=0;return function(){return $>=A.length?{done:!0}:{done:!1,value:A[$++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(A){if(typeof A=="string")return A.endsWith("px")?parseFloat(A)/12+"rem":A;if(typeof A=="number")return A+"rem"},i=function(A){if(typeof A=="string")return l(A);if(typeof A=="number")return l(A*.5)},c=function(A){return!f(A)},f=function(A){return typeof A=="string"&&t.NE.includes(A)},m=function(A){return function(K,W){(typeof W=="number"||typeof W=="string")&&(K[A]=W)}},v=function(A,K){return function(W,$){(typeof $=="number"||typeof $=="string")&&(W[A]=K($))}},E=function(A,K){return function(W,$){$&&(W[A]=K)}},j=function(A,K,W){return function($,k){if(typeof k=="number"||typeof k=="string")for(var z=0;z=0)&&(l[c]=d[c]);return l}var g=5;function x(d){var a=d.fixBlur,l=a===void 0?!0:a,i=d.fixErrors,c=i===void 0?!1:i,f=d.objectFit,m=f===void 0?"fill":f,v=d.src,E=s(d,["fixBlur","fixErrors","objectFit","src"]),j=(0,o.useRef)(0),O=(0,t.Fl)(E);return O.style=r({},O.style,{"-ms-interpolation-mode":l?"nearest-neighbor":"auto",objectFit:m}),(0,e.jsx)("img",r({onError:function(M){if(c&&j.currentT.length)&&(L=T.length);for(var W=0,$=new Array(L);W=0)&&(W[k]=T[k]);return W}function u(T,L){if(T){if(typeof T=="string")return s(T,L);var W=Object.prototype.toString.call(T).slice(8,-1);if(W==="Object"&&T.constructor&&(W=T.constructor.name),W==="Map"||W==="Set")return Array.from(W);if(W==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(W))return s(T,L)}}function o(T,L){var W=typeof Symbol!="undefined"&&T[Symbol.iterator]||T["@@iterator"];if(W)return(W=W.call(T)).next.bind(W);if(Array.isArray(T)||(W=u(T))||L&&T&&typeof T.length=="number"){W&&(T=W);var $=0;return function(){return $>=T.length?{done:!0}:{done:!1,value:T[$++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(T){if(typeof T=="string")return T.endsWith("px")?parseFloat(T)/12+"rem":T;if(typeof T=="number")return T+"rem"},a=function(T){if(typeof T=="string")return l(T);if(typeof T=="number")return l(T*.5)},c=function(T){return!f(T)},f=function(T){return typeof T=="string"&&t.NE.includes(T)},m=function(T){return function(L,W){(typeof W=="number"||typeof W=="string")&&(L[T]=W)}},v=function(T,L){return function(W,$){(typeof $=="number"||typeof $=="string")&&(W[T]=L($))}},j=function(T,L){return function(W,$){$&&(W[T]=L)}},E=function(T,L,W){return function($,k){if(typeof k=="number"||typeof k=="string")for(var z=0;z=0)&&(l[c]=u[c]);return l}var g=5;function x(u){var o=u.fixBlur,l=o===void 0?!0:o,a=u.fixErrors,c=a===void 0?!1:a,f=u.objectFit,m=f===void 0?"fill":f,v=u.src,j=s(u,["fixBlur","fixErrors","objectFit","src"]),E=(0,i.useRef)(0),y=(0,t.Fl)(j);return y.style=r({},y.style,{"-ms-interpolation-mode":l?"nearest-neighbor":"auto",objectFit:m}),(0,e.jsx)("img",r({onError:function(M){if(c&&E.current=0)&&(i[f]=a[f]);return i}var g=function(a){var l=a.className,i=a.collapsing,c=a.children,f=s(a,["className","collapsing","children"]);return(0,e.jsx)("table",r({className:(0,o.Ly)(["Table",i&&"Table--collapsing",l,(0,t.WP)(f)])},(0,t.Fl)(f),{children:(0,e.jsx)("tbody",{children:c})}))},x=function(a){var l=a.className,i=a.header,c=s(a,["className","header"]);return(0,e.jsx)("tr",r({className:(0,o.Ly)(["Table__row",i&&"Table__row--header",l,(0,t.WP)(a)])},(0,t.Fl)(c)))},d=function(a){var l=a.className,i=a.collapsing,c=a.header,f=s(a,["className","collapsing","header"]);return(0,e.jsx)("td",r({className:(0,o.Ly)(["Table__cell",i&&"Table__cell--collapsing",c&&"Table__cell--header",l,(0,t.WP)(a)])},(0,t.Fl)(f)))};g.Row=x,g.Cell=d},88569:function(y,u,n){"use strict";n.d(u,{zv:function(){return l},y5:function(){return i},Z8:function(){return E},Y0:function(){return I},az:function(){return O.az},$n:function(){return Yn},D1:function(){return ma},t1:function(){return Qa},Nt:function(){return xa},BK:function(){return cl},Rr:function(){return ts},cG:function(){return rs},Hx:function(){return pa},ms:function(){return ds},so:function(){return Jt},In:function(){return W},_V:function(){return dl._},pd:function(){return Or},N6:function(){return js},Wx:function(){return ya},Ki:function(){return $t},aF:function(){return Sl},tx:function(){return Da},IC:function(){return Mi},Q7:function(){return Qr},ND:function(){return cs},z2:function(){return di},SM:function(){return Os},wn:function(){return ys},Ap:function(){return Lr},BJ:function(){return Cr},XI:function(){return Ca.XI},tU:function(){return ht},fs:function(){return ar},m_:function(){return st}});var e=n(20462),o=n(4089),t=n(61358);/** + */function r(){return r=Object.assign||function(o){for(var l=1;l=0)&&(a[f]=o[f]);return a}var g=function(o){var l=o.className,a=o.collapsing,c=o.children,f=s(o,["className","collapsing","children"]);return(0,e.jsx)("table",r({className:(0,i.Ly)(["Table",a&&"Table--collapsing",l,(0,t.WP)(f)])},(0,t.Fl)(f),{children:(0,e.jsx)("tbody",{children:c})}))},x=function(o){var l=o.className,a=o.header,c=s(o,["className","header"]);return(0,e.jsx)("tr",r({className:(0,i.Ly)(["Table__row",a&&"Table__row--header",l,(0,t.WP)(o)])},(0,t.Fl)(c)))},u=function(o){var l=o.className,a=o.collapsing,c=o.header,f=s(o,["className","collapsing","header"]);return(0,e.jsx)("td",r({className:(0,i.Ly)(["Table__cell",a&&"Table__cell--collapsing",c&&"Table__cell--header",l,(0,t.WP)(o)])},(0,t.Fl)(f)))};g.Row=x,g.Cell=u},88569:function(O,h,n){"use strict";n.d(h,{zv:function(){return l},y5:function(){return a},Z8:function(){return j},Y0:function(){return D},az:function(){return y.az},$n:function(){return Yn},D1:function(){return mi},t1:function(){return Qi},Nt:function(){return xi},BK:function(){return cl},Rr:function(){return ts},cG:function(){return rs},Hx:function(){return pi},ms:function(){return ds},so:function(){return Jt},In:function(){return W},_V:function(){return dl._},pd:function(){return Or},N6:function(){return Es},Wx:function(){return yi},Ki:function(){return $t},aF:function(){return Sl},tx:function(){return Di},IC:function(){return Ma},Q7:function(){return Qr},ND:function(){return cs},z2:function(){return da},SM:function(){return Os},wn:function(){return ys},Ap:function(){return Lr},BJ:function(){return Cr},XI:function(){return Ci.XI},tU:function(){return ht},fs:function(){return ir},m_:function(){return st}});var e=n(20462),i=n(4089),t=n(61358);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function r(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&s(P,b)}function s(P,b){return s=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},s(P,b)}var g=function(P){return typeof P=="number"&&Number.isFinite(P)&&!Number.isNaN(P)},x=1e3/60,d=.8333,a=.001,l=function(P){"use strict";r(b,P);function b(U){var B;B=P.call(this,U)||this,B.ref=(0,t.createRef)(),B.currentValue=0;var w=U.initial,X=U.value;return w!==void 0&&g(w)?B.currentValue=w:g(X)&&(B.currentValue=X),B}var L=b.prototype;return L.componentDidMount=function(){this.currentValue!==this.props.value&&this.startTicking()},L.componentWillUnmount=function(){this.stopTicking()},L.shouldComponentUpdate=function(B){return B.value!==this.props.value&&this.startTicking(),!1},L.startTicking=function(){var B=this;this.interval===void 0&&(this.interval=setInterval(function(){return B.tick()},x))},L.stopTicking=function(){this.interval!==void 0&&(clearInterval(this.interval),this.interval=void 0)},L.tick=function(){var B=this.currentValue,w=this.props.value;g(w)?this.currentValue=B*d+w*(1-d):this.stopTicking(),Math.abs(w-this.currentValue)=0)&&(L[B]=P[B]);return L}function I(P){var b=P.className,L=_(P,["className"]);return(0,e.jsx)(O.az,M({className:(0,j.Ly)(["BlockQuote",b])},L))}var S=n(87239);/** + */function M(){return M=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function D(_){var b=_.className,K=P(_,["className"]);return(0,e.jsx)(y.az,M({className:(0,E.Ly)(["BlockQuote",b])},K))}var S=n(87239);/** * @file * @copyright 2020 Aleksej Komarov * @author Original Aleksej Komarov * @author Changes ThePotato97 * @license MIT - */function T(){return T=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var K=/-o$/,W=function(P){var b=P.name,L=P.size,U=P.spin,B=P.className,w=P.rotation,X=A(P,["name","size","spin","className","rotation"]),oe=X.style||{};L&&(oe.fontSize=L*100+"%"),w&&(oe.transform="rotate("+w+"deg)"),X.style=oe;var ie=(0,O.Fl)(X),re="";if(b.startsWith("tg-"))re=b;else{var ae=K.test(b),me=b.replace(K,""),Ce=!me.startsWith("fa-");re=ae?"far ":"fas ",Ce&&(re+="fa-"),re+=me,U&&(re+=" fa-spin")}return(0,e.jsx)("i",T({className:(0,j.Ly)(["Icon",re,B,(0,O.WP)(X)])},ie))},$=function(P){var b=P.className,L=P.children,U=A(P,["className","children"]);return(0,e.jsx)("span",T({className:(0,j.Ly)(["IconStack",b,(0,O.WP)(U)])},(0,O.Fl)(U),{children:L}))};W.Stack=$;function k(P){if(P==null)return window;if(P.toString()!=="[object Window]"){var b=P.ownerDocument;return b&&b.defaultView||window}return P}function z(P,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](P):P instanceof b}function H(P){var b=k(P).Element;return z(P,b)||z(P,Element)}function G(P){var b=k(P).HTMLElement;return z(P,b)||z(P,HTMLElement)}function Y(P){if(typeof ShadowRoot=="undefined")return!1;var b=k(P).ShadowRoot;return z(P,b)||z(P,ShadowRoot)}var ee=Math.max,le=Math.min,ne=Math.round;function Q(){var P=navigator.userAgentData;return P!=null&&P.brands&&Array.isArray(P.brands)?P.brands.map(function(b){return b.brand+"/"+b.version}).join(" "):navigator.userAgent}function Z(){return!/^((?!chrome|android).)*safari/i.test(Q())}function V(P,b,L){b===void 0&&(b=!1),L===void 0&&(L=!1);var U=P.getBoundingClientRect(),B=1,w=1;b&&G(P)&&(B=P.offsetWidth>0&&ne(U.width)/P.offsetWidth||1,w=P.offsetHeight>0&&ne(U.height)/P.offsetHeight||1);var X=H(P)?k(P):window,oe=X.visualViewport,ie=!Z()&&L,re=(U.left+(ie&&oe?oe.offsetLeft:0))/B,ae=(U.top+(ie&&oe?oe.offsetTop:0))/w,me=U.width/B,Ce=U.height/w;return{width:me,height:Ce,top:ae,right:re+me,bottom:ae+Ce,left:re,x:re,y:ae}}function q(P){var b=k(P),L=b.pageXOffset,U=b.pageYOffset;return{scrollLeft:L,scrollTop:U}}function ce(P){return{scrollLeft:P.scrollLeft,scrollTop:P.scrollTop}}function se(P){return P===k(P)||!G(P)?q(P):ce(P)}function fe(P){return P?(P.nodeName||"").toLowerCase():null}function ge(P){return((H(P)?P.ownerDocument:P.document)||window.document).documentElement}function Ie(P){return V(ge(P)).left+q(P).scrollLeft}function je(P){return k(P).getComputedStyle(P)}function Ee(P){var b=je(P),L=b.overflow,U=b.overflowX,B=b.overflowY;return/auto|scroll|overlay|hidden/.test(L+B+U)}function Ne(P){var b=P.getBoundingClientRect(),L=ne(b.width)/P.offsetWidth||1,U=ne(b.height)/P.offsetHeight||1;return L!==1||U!==1}function on(P,b,L){L===void 0&&(L=!1);var U=G(b),B=G(b)&&Ne(b),w=ge(b),X=V(P,B,L),oe={scrollLeft:0,scrollTop:0},ie={x:0,y:0};return(U||!U&&!L)&&((fe(b)!=="body"||Ee(w))&&(oe=se(b)),G(b)?(ie=V(b,!0),ie.x+=b.clientLeft,ie.y+=b.clientTop):w&&(ie.x=Ie(w))),{x:X.left+oe.scrollLeft-ie.x,y:X.top+oe.scrollTop-ie.y,width:X.width,height:X.height}}function He(P){var b=V(P),L=P.offsetWidth,U=P.offsetHeight;return Math.abs(b.width-L)<=1&&(L=b.width),Math.abs(b.height-U)<=1&&(U=b.height),{x:P.offsetLeft,y:P.offsetTop,width:L,height:U}}function Pe(P){return fe(P)==="html"?P:P.assignedSlot||P.parentNode||(Y(P)?P.host:null)||ge(P)}function qe(P){return["html","body","#document"].indexOf(fe(P))>=0?P.ownerDocument.body:G(P)&&Ee(P)?P:qe(Pe(P))}function En(P,b){var L;b===void 0&&(b=[]);var U=qe(P),B=U===((L=P.ownerDocument)==null?void 0:L.body),w=k(U),X=B?[w].concat(w.visualViewport||[],Ee(U)?U:[]):U,oe=b.concat(X);return B?oe:oe.concat(En(Pe(X)))}function jn(P){return["table","td","th"].indexOf(fe(P))>=0}function hn(P){return!G(P)||je(P).position==="fixed"?null:P.offsetParent}function Cn(P){var b=/firefox/i.test(Q()),L=/Trident/i.test(Q());if(L&&G(P)){var U=je(P);if(U.position==="fixed")return null}var B=Pe(P);for(Y(B)&&(B=B.host);G(B)&&["html","body"].indexOf(fe(B))<0;){var w=je(B);if(w.transform!=="none"||w.perspective!=="none"||w.contain==="paint"||["transform","perspective"].indexOf(w.willChange)!==-1||b&&w.willChange==="filter"||b&&w.filter&&w.filter!=="none")return B;B=B.parentNode}return null}function fn(P){for(var b=k(P),L=hn(P);L&&jn(L)&&je(L).position==="static";)L=hn(L);return L&&(fe(L)==="html"||fe(L)==="body"&&je(L).position==="static")?b:L||Cn(P)||b}var tn="top",Se="bottom",Le="right",Oe="left",ke="auto",Qe=[tn,Se,Le,Oe],we="start",Xe="end",Kn="clippingParents",Un="viewport",In="popper",xn="reference",rn=Qe.reduce(function(P,b){return P.concat([b+"-"+we,b+"-"+Xe])},[]),$e=[].concat(Qe,[ke]).reduce(function(P,b){return P.concat([b,b+"-"+we,b+"-"+Xe])},[]),Fe="beforeRead",mn="read",_n="afterRead",Dt="beforeMain",rt="main",pt="afterMain",Jn="beforeWrite",dt="write",Nt="afterWrite",Qt=[Fe,mn,_n,Dt,rt,pt,Jn,dt,Nt];function ur(P){var b=new Map,L=new Set,U=[];P.forEach(function(w){b.set(w.name,w)});function B(w){L.add(w.name);var X=[].concat(w.requires||[],w.requiresIfExists||[]);X.forEach(function(oe){if(!L.has(oe)){var ie=b.get(oe);ie&&B(ie)}}),U.push(w)}return P.forEach(function(w){L.has(w.name)||B(w)}),U}function ta(P){var b=ur(P);return Qt.reduce(function(L,U){return L.concat(b.filter(function(B){return B.phase===U}))},[])}function ra(P){var b;return function(){return b||(b=new Promise(function(L){Promise.resolve().then(function(){b=void 0,L(P())})})),b}}function oa(P){var b=P.reduce(function(L,U){var B=L[U.name];return L[U.name]=B?Object.assign({},B,U,{options:Object.assign({},B.options,U.options),data:Object.assign({},B.data,U.data)}):U,L},{});return Object.keys(b).map(function(L){return b[L]})}var mo={placement:"bottom",modifiers:[],strategy:"absolute"};function vo(){for(var P=arguments.length,b=new Array(P),L=0;L=0?"x":"y"}function Ir(P){var b=P.reference,L=P.element,U=P.placement,B=U?Et(U):null,w=U?jt(U):null,X=b.x+b.width/2-L.width/2,oe=b.y+b.height/2-L.height/2,ie;switch(B){case tn:ie={x:X,y:b.y-L.height};break;case Se:ie={x:X,y:b.y+b.height};break;case Le:ie={x:b.x+b.width,y:oe};break;case Oe:ie={x:b.x-L.width,y:oe};break;default:ie={x:b.x,y:b.y}}var re=B?dr(B):null;if(re!=null){var ae=re==="y"?"height":"width";switch(w){case we:ie[re]=ie[re]-(b[ae]/2-L[ae]/2);break;case Xe:ie[re]=ie[re]+(b[ae]/2-L[ae]/2);break;default:}}return ie}function po(P){var b=P.state,L=P.name;b.modifiersData[L]=Ir({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var J={name:"popperOffsets",enabled:!0,phase:"read",fn:po,data:{}},Te={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Qs(P,b){var L=P.x,U=P.y,B=b.devicePixelRatio||1;return{x:ne(L*B)/B||0,y:ne(U*B)/B||0}}function fr(P){var b,L=P.popper,U=P.popperRect,B=P.placement,w=P.variation,X=P.offsets,oe=P.position,ie=P.gpuAcceleration,re=P.adaptive,ae=P.roundOffsets,me=P.isFixed,Ce=X.x,ve=Ce===void 0?0:Ce,Me=X.y,be=Me===void 0?0:Me,Be=typeof ae=="function"?ae({x:ve,y:be}):{x:ve,y:be};ve=Be.x,be=Be.y;var Ke=X.hasOwnProperty("x"),ze=X.hasOwnProperty("y"),en=Oe,_e=tn,We=window;if(re){var Ge=fn(L),gn="clientHeight",an="clientWidth";if(Ge===k(L)&&(Ge=ge(L),je(Ge).position!=="static"&&oe==="absolute"&&(gn="scrollHeight",an="scrollWidth")),Ge=Ge,B===tn||(B===Oe||B===Le)&&w===Xe){_e=Se;var cn=me&&Ge===We&&We.visualViewport?We.visualViewport.height:Ge[gn];be-=cn-U.height,be*=ie?1:-1}if(B===Oe||(B===tn||B===Se)&&w===Xe){en=Le;var Re=me&&Ge===We&&We.visualViewport?We.visualViewport.width:Ge[an];ve-=Re-U.width,ve*=ie?1:-1}}var sn=Object.assign({position:oe},re&&Te),ln=ae===!0?Qs({x:ve,y:be},k(L)):{x:ve,y:be};if(ve=ln.x,be=ln.y,ie){var pn;return Object.assign({},sn,(pn={},pn[_e]=ze?"0":"",pn[en]=Ke?"0":"",pn.transform=(We.devicePixelRatio||1)<=1?"translate("+ve+"px, "+be+"px)":"translate3d("+ve+"px, "+be+"px, 0)",pn))}return Object.assign({},sn,(b={},b[_e]=ze?be+"px":"",b[en]=Ke?ve+"px":"",b.transform="",b))}function Li(P){var b=P.state,L=P.options,U=L.gpuAcceleration,B=U===void 0?!0:U,w=L.adaptive,X=w===void 0?!0:w,oe=L.roundOffsets,ie=oe===void 0?!0:oe,re={placement:Et(b.placement),variation:jt(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:B,isFixed:b.options.strategy==="fixed"};b.modifiersData.popperOffsets!=null&&(b.styles.popper=Object.assign({},b.styles.popper,fr(Object.assign({},re,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:X,roundOffsets:ie})))),b.modifiersData.arrow!=null&&(b.styles.arrow=Object.assign({},b.styles.arrow,fr(Object.assign({},re,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:ie})))),b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})}var Ui={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Li,data:{}};function Zs(P){var b=P.state;Object.keys(b.elements).forEach(function(L){var U=b.styles[L]||{},B=b.attributes[L]||{},w=b.elements[L];!G(w)||!fe(w)||(Object.assign(w.style,U),Object.keys(B).forEach(function(X){var oe=B[X];oe===!1?w.removeAttribute(X):w.setAttribute(X,oe===!0?"":oe)}))})}function Ni(P){var b=P.state,L={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(b.elements.popper.style,L.popper),b.styles=L,b.elements.arrow&&Object.assign(b.elements.arrow.style,L.arrow),function(){Object.keys(b.elements).forEach(function(U){var B=b.elements[U],w=b.attributes[U]||{},X=Object.keys(b.styles.hasOwnProperty(U)?b.styles[U]:L[U]),oe=X.reduce(function(ie,re){return ie[re]="",ie},{});!G(B)||!fe(B)||(Object.assign(B.style,oe),Object.keys(w).forEach(function(ie){B.removeAttribute(ie)}))})}}var Wi={name:"applyStyles",enabled:!0,phase:"write",fn:Zs,effect:Ni,requires:["computeStyles"]};function wi(P,b,L){var U=Et(P),B=[Oe,tn].indexOf(U)>=0?-1:1,w=typeof L=="function"?L(Object.assign({},b,{placement:P})):L,X=w[0],oe=w[1];return X=X||0,oe=(oe||0)*B,[Oe,Le].indexOf(U)>=0?{x:oe,y:X}:{x:X,y:oe}}function zi(P){var b=P.state,L=P.options,U=P.name,B=L.offset,w=B===void 0?[0,0]:B,X=$e.reduce(function(ae,me){return ae[me]=wi(me,b.rects,w),ae},{}),oe=X[b.placement],ie=oe.x,re=oe.y;b.modifiersData.popperOffsets!=null&&(b.modifiersData.popperOffsets.x+=ie,b.modifiersData.popperOffsets.y+=re),b.modifiersData[U]=X}var Js={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:zi},qs={left:"right",right:"left",bottom:"top",top:"bottom"};function Ln(P){return P.replace(/left|right|bottom|top/g,function(b){return qs[b]})}var el={start:"end",end:"start"};function aa(P){return P.replace(/start|end/g,function(b){return el[b]})}function $i(P,b){var L=k(P),U=ge(P),B=L.visualViewport,w=U.clientWidth,X=U.clientHeight,oe=0,ie=0;if(B){w=B.width,X=B.height;var re=Z();(re||!re&&b==="fixed")&&(oe=B.offsetLeft,ie=B.offsetTop)}return{width:w,height:X,x:oe+Ie(P),y:ie}}function ia(P){var b,L=ge(P),U=q(P),B=(b=P.ownerDocument)==null?void 0:b.body,w=ee(L.scrollWidth,L.clientWidth,B?B.scrollWidth:0,B?B.clientWidth:0),X=ee(L.scrollHeight,L.clientHeight,B?B.scrollHeight:0,B?B.clientHeight:0),oe=-U.scrollLeft+Ie(P),ie=-U.scrollTop;return je(B||L).direction==="rtl"&&(oe+=ee(L.clientWidth,B?B.clientWidth:0)-w),{width:w,height:X,x:oe,y:ie}}function ki(P,b){var L=b.getRootNode&&b.getRootNode();if(P.contains(b))return!0;if(L&&Y(L)){var U=b;do{if(U&&P.isSameNode(U))return!0;U=U.parentNode||U.host}while(U)}return!1}function sa(P){return Object.assign({},P,{left:P.x,top:P.y,right:P.x+P.width,bottom:P.y+P.height})}function la(P,b){var L=V(P,!1,b==="fixed");return L.top=L.top+P.clientTop,L.left=L.left+P.clientLeft,L.bottom=L.top+P.clientHeight,L.right=L.left+P.clientWidth,L.width=P.clientWidth,L.height=P.clientHeight,L.x=L.left,L.y=L.top,L}function St(P,b,L){return b===Un?sa($i(P,L)):H(b)?la(b,L):sa(ia(ge(P)))}function nl(P){var b=En(Pe(P)),L=["absolute","fixed"].indexOf(je(P).position)>=0,U=L&&G(P)?fn(P):P;return H(U)?b.filter(function(B){return H(B)&&ki(B,U)&&fe(B)!=="body"}):[]}function bt(P,b,L,U){var B=b==="clippingParents"?nl(P):[].concat(b),w=[].concat(B,[L]),X=w[0],oe=w.reduce(function(ie,re){var ae=St(P,re,U);return ie.top=ee(ae.top,ie.top),ie.right=le(ae.right,ie.right),ie.bottom=le(ae.bottom,ie.bottom),ie.left=ee(ae.left,ie.left),ie},St(P,X,U));return oe.width=oe.right-oe.left,oe.height=oe.bottom-oe.top,oe.x=oe.left,oe.y=oe.top,oe}function Fi(){return{top:0,right:0,bottom:0,left:0}}function Vi(P){return Object.assign({},Fi(),P)}function Gi(P,b){return b.reduce(function(L,U){return L[U]=P,L},{})}function hr(P,b){b===void 0&&(b={});var L=b,U=L.placement,B=U===void 0?P.placement:U,w=L.strategy,X=w===void 0?P.strategy:w,oe=L.boundary,ie=oe===void 0?Kn:oe,re=L.rootBoundary,ae=re===void 0?Un:re,me=L.elementContext,Ce=me===void 0?In:me,ve=L.altBoundary,Me=ve===void 0?!1:ve,be=L.padding,Be=be===void 0?0:be,Ke=Vi(typeof Be!="number"?Be:Gi(Be,Qe)),ze=Ce===In?xn:In,en=P.rects.popper,_e=P.elements[Me?ze:Ce],We=bt(H(_e)?_e:_e.contextElement||ge(P.elements.popper),ie,ae,X),Ge=V(P.elements.reference),gn=Ir({reference:Ge,element:en,strategy:"absolute",placement:B}),an=sa(Object.assign({},en,gn)),cn=Ce===In?an:Ge,Re={top:We.top-cn.top+Ke.top,bottom:cn.bottom-We.bottom+Ke.bottom,left:We.left-cn.left+Ke.left,right:cn.right-We.right+Ke.right},sn=P.modifiersData.offset;if(Ce===In&&sn){var ln=sn[B];Object.keys(Re).forEach(function(pn){var Tn=[Le,Se].indexOf(pn)>=0?1:-1,et=[tn,Se].indexOf(pn)>=0?"y":"x";Re[pn]+=ln[et]*Tn})}return Re}function ca(P,b){b===void 0&&(b={});var L=b,U=L.placement,B=L.boundary,w=L.rootBoundary,X=L.padding,oe=L.flipVariations,ie=L.allowedAutoPlacements,re=ie===void 0?$e:ie,ae=jt(U),me=ae?oe?rn:rn.filter(function(Me){return jt(Me)===ae}):Qe,Ce=me.filter(function(Me){return re.indexOf(Me)>=0});Ce.length===0&&(Ce=me);var ve=Ce.reduce(function(Me,be){return Me[be]=hr(P,{placement:be,boundary:B,rootBoundary:w,padding:X})[Et(be)],Me},{});return Object.keys(ve).sort(function(Me,be){return ve[Me]-ve[be]})}function Eo(P){if(Et(P)===ke)return[];var b=Ln(P);return[aa(P),b,aa(b)]}function ua(P){var b=P.state,L=P.options,U=P.name;if(!b.modifiersData[U]._skip){for(var B=L.mainAxis,w=B===void 0?!0:B,X=L.altAxis,oe=X===void 0?!0:X,ie=L.fallbackPlacements,re=L.padding,ae=L.boundary,me=L.rootBoundary,Ce=L.altBoundary,ve=L.flipVariations,Me=ve===void 0?!0:ve,be=L.allowedAutoPlacements,Be=b.options.placement,Ke=Et(Be),ze=Ke===Be,en=ie||(ze||!Me?[Ln(Be)]:Eo(Be)),_e=[Be].concat(en).reduce(function(Mr,mt){return Mr.concat(Et(mt)===ke?ca(b,{placement:mt,boundary:ae,rootBoundary:me,padding:re,flipVariations:Me,allowedAutoPlacements:be}):mt)},[]),We=b.rects.reference,Ge=b.rects.popper,gn=new Map,an=!0,cn=_e[0],Re=0;Re<_e.length;Re++){var sn=_e[Re],ln=Et(sn),pn=jt(sn)===we,Tn=[tn,Se].indexOf(ln)>=0,et=Tn?"width":"height",Bn=hr(b,{placement:sn,boundary:ae,rootBoundary:me,altBoundary:Ce,padding:re}),kn=Tn?pn?Le:Oe:pn?Se:tn;We[et]>Ge[et]&&(kn=Ln(kn));var Gt=Ln(kn),yn=[];if(w&&yn.push(Bn[ln]<=0),oe&&yn.push(Bn[kn]<=0,Bn[Gt]<=0),yn.every(function(Mr){return Mr})){cn=sn,an=!1;break}gn.set(sn,yn)}if(an)for(var wn=Me?3:1,Gn=function(mt){var to=_e.find(function(ro){var Sn=gn.get(ro);if(Sn)return Sn.slice(0,mt).every(function(oo){return oo})});if(to)return cn=to,"break"},Hn=wn;Hn>0;Hn--){var Ht=Gn(Hn);if(Ht==="break")break}b.placement!==cn&&(b.modifiersData[U]._skip=!0,b.placement=cn,b.reset=!0)}}var tl={name:"flip",enabled:!0,phase:"main",fn:ua,requiresIfExists:["offset"],data:{_skip:!1}};function rl(P){return P==="x"?"y":"x"}function Dr(P,b,L){return ee(P,le(b,L))}function Hi(P,b,L){var U=Dr(P,b,L);return U>L?L:U}function ka(P){var b=P.state,L=P.options,U=P.name,B=L.mainAxis,w=B===void 0?!0:B,X=L.altAxis,oe=X===void 0?!1:X,ie=L.boundary,re=L.rootBoundary,ae=L.altBoundary,me=L.padding,Ce=L.tether,ve=Ce===void 0?!0:Ce,Me=L.tetherOffset,be=Me===void 0?0:Me,Be=hr(b,{boundary:ie,rootBoundary:re,padding:me,altBoundary:ae}),Ke=Et(b.placement),ze=jt(b.placement),en=!ze,_e=dr(Ke),We=rl(_e),Ge=b.modifiersData.popperOffsets,gn=b.rects.reference,an=b.rects.popper,cn=typeof be=="function"?be(Object.assign({},b.rects,{placement:b.placement})):be,Re=typeof cn=="number"?{mainAxis:cn,altAxis:cn}:Object.assign({mainAxis:0,altAxis:0},cn),sn=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null,ln={x:0,y:0};if(Ge){if(w){var pn,Tn=_e==="y"?tn:Oe,et=_e==="y"?Se:Le,Bn=_e==="y"?"height":"width",kn=Ge[_e],Gt=kn+Be[Tn],yn=kn-Be[et],wn=ve?-an[Bn]/2:0,Gn=ze===we?gn[Bn]:an[Bn],Hn=ze===we?-an[Bn]:-gn[Bn],Ht=b.elements.arrow,Mr=ve&&Ht?He(Ht):{width:0,height:0},mt=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:Fi(),to=mt[Tn],ro=mt[et],Sn=Dr(0,gn[Bn],Mr[Bn]),oo=en?gn[Bn]/2-wn-Sn-to-Re.mainAxis:Gn-Sn-to-Re.mainAxis,Di=en?-gn[Bn]/2+wn+Sn+ro+Re.mainAxis:Hn+Sn+ro+Re.mainAxis,Xo=b.elements.arrow&&fn(b.elements.arrow),Aa=Xo?_e==="y"?Xo.clientTop||0:Xo.clientLeft||0:0,Ta=(pn=sn==null?void 0:sn[_e])!=null?pn:0,Nr=kn+oo-Ta-Aa,Wn=kn+Di-Ta,zn=Dr(ve?le(Gt,Nr):Gt,kn,ve?ee(yn,Wn):yn);Ge[_e]=zn,ln[_e]=zn-kn}if(oe){var Fn,Ra=_e==="x"?tn:Oe,Yo=_e==="x"?Se:Le,Kt=Ge[We],Ba=We==="y"?"height":"width",Qn=Kt+Be[Ra],Ka=Kt-Be[Yo],Qo=[tn,Oe].indexOf(Ke)!==-1,La=(Fn=sn==null?void 0:sn[We])!=null?Fn:0,Lt=Qo?Qn:Kt-gn[Ba]-an[Ba]-La+Re.altAxis,vt=Qo?Kt+gn[Ba]+an[Ba]-La-Re.altAxis:Ka,ao=ve&&Qo?Hi(Lt,Kt,vt):Dr(ve?Lt:Qn,Kt,ve?vt:Ka);Ge[We]=ao,ln[We]=ao-Kt}b.modifiersData[U]=ln}}var jo={name:"preventOverflow",enabled:!0,phase:"main",fn:ka,requiresIfExists:["offset"]},ol=function(b,L){return b=typeof b=="function"?b(Object.assign({},L.rects,{placement:L.placement})):b,Vi(typeof b!="number"?b:Gi(b,Qe))};function Fa(P){var b,L=P.state,U=P.name,B=P.options,w=L.elements.arrow,X=L.modifiersData.popperOffsets,oe=Et(L.placement),ie=dr(oe),re=[Oe,Le].indexOf(oe)>=0,ae=re?"height":"width";if(!(!w||!X)){var me=ol(B.padding,L),Ce=He(w),ve=ie==="y"?tn:Oe,Me=ie==="y"?Se:Le,be=L.rects.reference[ae]+L.rects.reference[ie]-X[ie]-L.rects.popper[ae],Be=X[ie]-L.rects.reference[ie],Ke=fn(w),ze=Ke?ie==="y"?Ke.clientHeight||0:Ke.clientWidth||0:0,en=be/2-Be/2,_e=me[ve],We=ze-Ce[ae]-me[Me],Ge=ze/2-Ce[ae]/2+en,gn=Dr(_e,Ge,We),an=ie;L.modifiersData[U]=(b={},b[an]=gn,b.centerOffset=gn-Ge,b)}}function Dn(P){var b=P.state,L=P.options,U=L.element,B=U===void 0?"[data-popper-arrow]":U;B!=null&&(typeof B=="string"&&(B=b.elements.popper.querySelector(B),!B)||ki(b.elements.popper,B)&&(b.elements.arrow=B))}var Xi={name:"arrow",enabled:!0,phase:"main",fn:Fa,effect:Dn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Va(P,b,L){return L===void 0&&(L={x:0,y:0}),{top:P.top-b.height-L.y,right:P.right-b.width+L.x,bottom:P.bottom-b.height+L.y,left:P.left-b.width-L.x}}function da(P){return[tn,Le,Se,Oe].some(function(b){return P[b]>=0})}function Yi(P){var b=P.state,L=P.name,U=b.rects.reference,B=b.rects.popper,w=b.modifiersData.preventOverflow,X=hr(b,{elementContext:"reference"}),oe=hr(b,{altBoundary:!0}),ie=Va(X,U),re=Va(oe,B,w),ae=da(ie),me=da(re);b.modifiersData[L]={referenceClippingOffsets:ie,popperEscapeOffsets:re,isReferenceHidden:ae,hasPopperEscaped:me},b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":ae,"data-popper-escaped":me})}var Qi={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Yi},Zi=[Pr,J,Ui,Wi,Js,tl,jo,Xi,Qi],fa=xo({defaultModifiers:Zi}),zr=n(32394);function At(){return At=Object.assign||function(P){for(var b=1;b=0)&&(K[R]=_[R]);return K}var L=/-o$/,W=function(_){var b=_.name,K=_.size,U=_.spin,R=_.className,w=_.rotation,H=T(_,["name","size","spin","className","rotation"]),oe=H.style||{};K&&(oe.fontSize=K*100+"%"),w&&(oe.transform="rotate("+w+"deg)"),H.style=oe;var ae=(0,y.Fl)(H),re="";if(b.startsWith("tg-"))re=b;else{var ie=L.test(b),me=b.replace(L,""),Ce=!me.startsWith("fa-");re=ie?"far ":"fas ",Ce&&(re+="fa-"),re+=me,U&&(re+=" fa-spin")}return(0,e.jsx)("i",B({className:(0,E.Ly)(["Icon",re,R,(0,y.WP)(H)])},ae))},$=function(_){var b=_.className,K=_.children,U=T(_,["className","children"]);return(0,e.jsx)("span",B({className:(0,E.Ly)(["IconStack",b,(0,y.WP)(U)])},(0,y.Fl)(U),{children:K}))};W.Stack=$;function k(_){if(_==null)return window;if(_.toString()!=="[object Window]"){var b=_.ownerDocument;return b&&b.defaultView||window}return _}function z(_,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](_):_ instanceof b}function X(_){var b=k(_).Element;return z(_,b)||z(_,Element)}function G(_){var b=k(_).HTMLElement;return z(_,b)||z(_,HTMLElement)}function Q(_){if(typeof ShadowRoot=="undefined")return!1;var b=k(_).ShadowRoot;return z(_,b)||z(_,ShadowRoot)}var ee=Math.max,se=Math.min,ne=Math.round;function Y(){var _=navigator.userAgentData;return _!=null&&_.brands&&Array.isArray(_.brands)?_.brands.map(function(b){return b.brand+"/"+b.version}).join(" "):navigator.userAgent}function J(){return!/^((?!chrome|android).)*safari/i.test(Y())}function V(_,b,K){b===void 0&&(b=!1),K===void 0&&(K=!1);var U=_.getBoundingClientRect(),R=1,w=1;b&&G(_)&&(R=_.offsetWidth>0&&ne(U.width)/_.offsetWidth||1,w=_.offsetHeight>0&&ne(U.height)/_.offsetHeight||1);var H=X(_)?k(_):window,oe=H.visualViewport,ae=!J()&&K,re=(U.left+(ae&&oe?oe.offsetLeft:0))/R,ie=(U.top+(ae&&oe?oe.offsetTop:0))/w,me=U.width/R,Ce=U.height/w;return{width:me,height:Ce,top:ie,right:re+me,bottom:ie+Ce,left:re,x:re,y:ie}}function te(_){var b=k(_),K=b.pageXOffset,U=b.pageYOffset;return{scrollLeft:K,scrollTop:U}}function ce(_){return{scrollLeft:_.scrollLeft,scrollTop:_.scrollTop}}function le(_){return _===k(_)||!G(_)?te(_):ce(_)}function fe(_){return _?(_.nodeName||"").toLowerCase():null}function ge(_){return((X(_)?_.ownerDocument:_.document)||window.document).documentElement}function Ie(_){return V(ge(_)).left+te(_).scrollLeft}function Ee(_){return k(_).getComputedStyle(_)}function je(_){var b=Ee(_),K=b.overflow,U=b.overflowX,R=b.overflowY;return/auto|scroll|overlay|hidden/.test(K+R+U)}function Ne(_){var b=_.getBoundingClientRect(),K=ne(b.width)/_.offsetWidth||1,U=ne(b.height)/_.offsetHeight||1;return K!==1||U!==1}function on(_,b,K){K===void 0&&(K=!1);var U=G(b),R=G(b)&&Ne(b),w=ge(b),H=V(_,R,K),oe={scrollLeft:0,scrollTop:0},ae={x:0,y:0};return(U||!U&&!K)&&((fe(b)!=="body"||je(w))&&(oe=le(b)),G(b)?(ae=V(b,!0),ae.x+=b.clientLeft,ae.y+=b.clientTop):w&&(ae.x=Ie(w))),{x:H.left+oe.scrollLeft-ae.x,y:H.top+oe.scrollTop-ae.y,width:H.width,height:H.height}}function Xe(_){var b=V(_),K=_.offsetWidth,U=_.offsetHeight;return Math.abs(b.width-K)<=1&&(K=b.width),Math.abs(b.height-U)<=1&&(U=b.height),{x:_.offsetLeft,y:_.offsetTop,width:K,height:U}}function Pe(_){return fe(_)==="html"?_:_.assignedSlot||_.parentNode||(Q(_)?_.host:null)||ge(_)}function qe(_){return["html","body","#document"].indexOf(fe(_))>=0?_.ownerDocument.body:G(_)&&je(_)?_:qe(Pe(_))}function jn(_,b){var K;b===void 0&&(b=[]);var U=qe(_),R=U===((K=_.ownerDocument)==null?void 0:K.body),w=k(U),H=R?[w].concat(w.visualViewport||[],je(U)?U:[]):U,oe=b.concat(H);return R?oe:oe.concat(jn(Pe(H)))}function En(_){return["table","td","th"].indexOf(fe(_))>=0}function hn(_){return!G(_)||Ee(_).position==="fixed"?null:_.offsetParent}function Cn(_){var b=/firefox/i.test(Y()),K=/Trident/i.test(Y());if(K&&G(_)){var U=Ee(_);if(U.position==="fixed")return null}var R=Pe(_);for(Q(R)&&(R=R.host);G(R)&&["html","body"].indexOf(fe(R))<0;){var w=Ee(R);if(w.transform!=="none"||w.perspective!=="none"||w.contain==="paint"||["transform","perspective"].indexOf(w.willChange)!==-1||b&&w.willChange==="filter"||b&&w.filter&&w.filter!=="none")return R;R=R.parentNode}return null}function fn(_){for(var b=k(_),K=hn(_);K&&En(K)&&Ee(K).position==="static";)K=hn(K);return K&&(fe(K)==="html"||fe(K)==="body"&&Ee(K).position==="static")?b:K||Cn(_)||b}var tn="top",Se="bottom",Le="right",Oe="left",ke="auto",Qe=[tn,Se,Le,Oe],we="start",He="end",Kn="clippingParents",Un="viewport",In="popper",xn="reference",rn=Qe.reduce(function(_,b){return _.concat([b+"-"+we,b+"-"+He])},[]),$e=[].concat(Qe,[ke]).reduce(function(_,b){return _.concat([b,b+"-"+we,b+"-"+He])},[]),Fe="beforeRead",mn="read",_n="afterRead",Dt="beforeMain",rt="main",pt="afterMain",Jn="beforeWrite",dt="write",Nt="afterWrite",Qt=[Fe,mn,_n,Dt,rt,pt,Jn,dt,Nt];function ur(_){var b=new Map,K=new Set,U=[];_.forEach(function(w){b.set(w.name,w)});function R(w){K.add(w.name);var H=[].concat(w.requires||[],w.requiresIfExists||[]);H.forEach(function(oe){if(!K.has(oe)){var ae=b.get(oe);ae&&R(ae)}}),U.push(w)}return _.forEach(function(w){K.has(w.name)||R(w)}),U}function ti(_){var b=ur(_);return Qt.reduce(function(K,U){return K.concat(b.filter(function(R){return R.phase===U}))},[])}function ri(_){var b;return function(){return b||(b=new Promise(function(K){Promise.resolve().then(function(){b=void 0,K(_())})})),b}}function oi(_){var b=_.reduce(function(K,U){var R=K[U.name];return K[U.name]=R?Object.assign({},R,U,{options:Object.assign({},R.options,U.options),data:Object.assign({},R.data,U.data)}):U,K},{});return Object.keys(b).map(function(K){return b[K]})}var mo={placement:"bottom",modifiers:[],strategy:"absolute"};function vo(){for(var _=arguments.length,b=new Array(_),K=0;K<_;K++)b[K]=arguments[K];return!b.some(function(U){return!(U&&typeof U.getBoundingClientRect=="function")})}function xo(_){_===void 0&&(_={});var b=_,K=b.defaultModifiers,U=K===void 0?[]:K,R=b.defaultOptions,w=R===void 0?mo:R;return function(oe,ae,re){re===void 0&&(re=w);var ie={placement:"bottom",orderedModifiers:[],options:Object.assign({},mo,w),modifiersData:{},elements:{reference:oe,popper:ae},attributes:{},styles:{}},me=[],Ce=!1,ve={state:ie,setOptions:function(Ke){var ze=typeof Ke=="function"?Ke(ie.options):Ke;be(),ie.options=Object.assign({},w,ie.options,ze),ie.scrollParents={reference:X(oe)?jn(oe):oe.contextElement?jn(oe.contextElement):[],popper:jn(ae)};var en=ti(oi([].concat(U,ie.options.modifiers)));return ie.orderedModifiers=en.filter(function(_e){return _e.enabled}),Me(),ve.update()},forceUpdate:function(){if(!Ce){var Ke=ie.elements,ze=Ke.reference,en=Ke.popper;if(vo(ze,en)){ie.rects={reference:on(ze,fn(en),ie.options.strategy==="fixed"),popper:Xe(en)},ie.reset=!1,ie.placement=ie.options.placement,ie.orderedModifiers.forEach(function(Re){return ie.modifiersData[Re.name]=Object.assign({},Re.data)});for(var _e=0;_e=0?"x":"y"}function Ir(_){var b=_.reference,K=_.element,U=_.placement,R=U?jt(U):null,w=U?Et(U):null,H=b.x+b.width/2-K.width/2,oe=b.y+b.height/2-K.height/2,ae;switch(R){case tn:ae={x:H,y:b.y-K.height};break;case Se:ae={x:H,y:b.y+b.height};break;case Le:ae={x:b.x+b.width,y:oe};break;case Oe:ae={x:b.x-K.width,y:oe};break;default:ae={x:b.x,y:b.y}}var re=R?dr(R):null;if(re!=null){var ie=re==="y"?"height":"width";switch(w){case we:ae[re]=ae[re]-(b[ie]/2-K[ie]/2);break;case He:ae[re]=ae[re]+(b[ie]/2-K[ie]/2);break;default:}}return ae}function po(_){var b=_.state,K=_.name;b.modifiersData[K]=Ir({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var Z={name:"popperOffsets",enabled:!0,phase:"read",fn:po,data:{}},Ae={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Qs(_,b){var K=_.x,U=_.y,R=b.devicePixelRatio||1;return{x:ne(K*R)/R||0,y:ne(U*R)/R||0}}function fr(_){var b,K=_.popper,U=_.popperRect,R=_.placement,w=_.variation,H=_.offsets,oe=_.position,ae=_.gpuAcceleration,re=_.adaptive,ie=_.roundOffsets,me=_.isFixed,Ce=H.x,ve=Ce===void 0?0:Ce,Me=H.y,be=Me===void 0?0:Me,Be=typeof ie=="function"?ie({x:ve,y:be}):{x:ve,y:be};ve=Be.x,be=Be.y;var Ke=H.hasOwnProperty("x"),ze=H.hasOwnProperty("y"),en=Oe,_e=tn,We=window;if(re){var Ge=fn(K),gn="clientHeight",an="clientWidth";if(Ge===k(K)&&(Ge=ge(K),Ee(Ge).position!=="static"&&oe==="absolute"&&(gn="scrollHeight",an="scrollWidth")),Ge=Ge,R===tn||(R===Oe||R===Le)&&w===He){_e=Se;var cn=me&&Ge===We&&We.visualViewport?We.visualViewport.height:Ge[gn];be-=cn-U.height,be*=ae?1:-1}if(R===Oe||(R===tn||R===Se)&&w===He){en=Le;var Re=me&&Ge===We&&We.visualViewport?We.visualViewport.width:Ge[an];ve-=Re-U.width,ve*=ae?1:-1}}var sn=Object.assign({position:oe},re&&Ae),ln=ie===!0?Qs({x:ve,y:be},k(K)):{x:ve,y:be};if(ve=ln.x,be=ln.y,ae){var pn;return Object.assign({},sn,(pn={},pn[_e]=ze?"0":"",pn[en]=Ke?"0":"",pn.transform=(We.devicePixelRatio||1)<=1?"translate("+ve+"px, "+be+"px)":"translate3d("+ve+"px, "+be+"px, 0)",pn))}return Object.assign({},sn,(b={},b[_e]=ze?be+"px":"",b[en]=Ke?ve+"px":"",b.transform="",b))}function La(_){var b=_.state,K=_.options,U=K.gpuAcceleration,R=U===void 0?!0:U,w=K.adaptive,H=w===void 0?!0:w,oe=K.roundOffsets,ae=oe===void 0?!0:oe,re={placement:jt(b.placement),variation:Et(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:R,isFixed:b.options.strategy==="fixed"};b.modifiersData.popperOffsets!=null&&(b.styles.popper=Object.assign({},b.styles.popper,fr(Object.assign({},re,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:H,roundOffsets:ae})))),b.modifiersData.arrow!=null&&(b.styles.arrow=Object.assign({},b.styles.arrow,fr(Object.assign({},re,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:ae})))),b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})}var Ua={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:La,data:{}};function Zs(_){var b=_.state;Object.keys(b.elements).forEach(function(K){var U=b.styles[K]||{},R=b.attributes[K]||{},w=b.elements[K];!G(w)||!fe(w)||(Object.assign(w.style,U),Object.keys(R).forEach(function(H){var oe=R[H];oe===!1?w.removeAttribute(H):w.setAttribute(H,oe===!0?"":oe)}))})}function Na(_){var b=_.state,K={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(b.elements.popper.style,K.popper),b.styles=K,b.elements.arrow&&Object.assign(b.elements.arrow.style,K.arrow),function(){Object.keys(b.elements).forEach(function(U){var R=b.elements[U],w=b.attributes[U]||{},H=Object.keys(b.styles.hasOwnProperty(U)?b.styles[U]:K[U]),oe=H.reduce(function(ae,re){return ae[re]="",ae},{});!G(R)||!fe(R)||(Object.assign(R.style,oe),Object.keys(w).forEach(function(ae){R.removeAttribute(ae)}))})}}var Wa={name:"applyStyles",enabled:!0,phase:"write",fn:Zs,effect:Na,requires:["computeStyles"]};function wa(_,b,K){var U=jt(_),R=[Oe,tn].indexOf(U)>=0?-1:1,w=typeof K=="function"?K(Object.assign({},b,{placement:_})):K,H=w[0],oe=w[1];return H=H||0,oe=(oe||0)*R,[Oe,Le].indexOf(U)>=0?{x:oe,y:H}:{x:H,y:oe}}function za(_){var b=_.state,K=_.options,U=_.name,R=K.offset,w=R===void 0?[0,0]:R,H=$e.reduce(function(ie,me){return ie[me]=wa(me,b.rects,w),ie},{}),oe=H[b.placement],ae=oe.x,re=oe.y;b.modifiersData.popperOffsets!=null&&(b.modifiersData.popperOffsets.x+=ae,b.modifiersData.popperOffsets.y+=re),b.modifiersData[U]=H}var Js={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:za},qs={left:"right",right:"left",bottom:"top",top:"bottom"};function Ln(_){return _.replace(/left|right|bottom|top/g,function(b){return qs[b]})}var el={start:"end",end:"start"};function ii(_){return _.replace(/start|end/g,function(b){return el[b]})}function $a(_,b){var K=k(_),U=ge(_),R=K.visualViewport,w=U.clientWidth,H=U.clientHeight,oe=0,ae=0;if(R){w=R.width,H=R.height;var re=J();(re||!re&&b==="fixed")&&(oe=R.offsetLeft,ae=R.offsetTop)}return{width:w,height:H,x:oe+Ie(_),y:ae}}function ai(_){var b,K=ge(_),U=te(_),R=(b=_.ownerDocument)==null?void 0:b.body,w=ee(K.scrollWidth,K.clientWidth,R?R.scrollWidth:0,R?R.clientWidth:0),H=ee(K.scrollHeight,K.clientHeight,R?R.scrollHeight:0,R?R.clientHeight:0),oe=-U.scrollLeft+Ie(_),ae=-U.scrollTop;return Ee(R||K).direction==="rtl"&&(oe+=ee(K.clientWidth,R?R.clientWidth:0)-w),{width:w,height:H,x:oe,y:ae}}function ka(_,b){var K=b.getRootNode&&b.getRootNode();if(_.contains(b))return!0;if(K&&Q(K)){var U=b;do{if(U&&_.isSameNode(U))return!0;U=U.parentNode||U.host}while(U)}return!1}function si(_){return Object.assign({},_,{left:_.x,top:_.y,right:_.x+_.width,bottom:_.y+_.height})}function li(_,b){var K=V(_,!1,b==="fixed");return K.top=K.top+_.clientTop,K.left=K.left+_.clientLeft,K.bottom=K.top+_.clientHeight,K.right=K.left+_.clientWidth,K.width=_.clientWidth,K.height=_.clientHeight,K.x=K.left,K.y=K.top,K}function St(_,b,K){return b===Un?si($a(_,K)):X(b)?li(b,K):si(ai(ge(_)))}function nl(_){var b=jn(Pe(_)),K=["absolute","fixed"].indexOf(Ee(_).position)>=0,U=K&&G(_)?fn(_):_;return X(U)?b.filter(function(R){return X(R)&&ka(R,U)&&fe(R)!=="body"}):[]}function bt(_,b,K,U){var R=b==="clippingParents"?nl(_):[].concat(b),w=[].concat(R,[K]),H=w[0],oe=w.reduce(function(ae,re){var ie=St(_,re,U);return ae.top=ee(ie.top,ae.top),ae.right=se(ie.right,ae.right),ae.bottom=se(ie.bottom,ae.bottom),ae.left=ee(ie.left,ae.left),ae},St(_,H,U));return oe.width=oe.right-oe.left,oe.height=oe.bottom-oe.top,oe.x=oe.left,oe.y=oe.top,oe}function Fa(){return{top:0,right:0,bottom:0,left:0}}function Va(_){return Object.assign({},Fa(),_)}function Ga(_,b){return b.reduce(function(K,U){return K[U]=_,K},{})}function hr(_,b){b===void 0&&(b={});var K=b,U=K.placement,R=U===void 0?_.placement:U,w=K.strategy,H=w===void 0?_.strategy:w,oe=K.boundary,ae=oe===void 0?Kn:oe,re=K.rootBoundary,ie=re===void 0?Un:re,me=K.elementContext,Ce=me===void 0?In:me,ve=K.altBoundary,Me=ve===void 0?!1:ve,be=K.padding,Be=be===void 0?0:be,Ke=Va(typeof Be!="number"?Be:Ga(Be,Qe)),ze=Ce===In?xn:In,en=_.rects.popper,_e=_.elements[Me?ze:Ce],We=bt(X(_e)?_e:_e.contextElement||ge(_.elements.popper),ae,ie,H),Ge=V(_.elements.reference),gn=Ir({reference:Ge,element:en,strategy:"absolute",placement:R}),an=si(Object.assign({},en,gn)),cn=Ce===In?an:Ge,Re={top:We.top-cn.top+Ke.top,bottom:cn.bottom-We.bottom+Ke.bottom,left:We.left-cn.left+Ke.left,right:cn.right-We.right+Ke.right},sn=_.modifiersData.offset;if(Ce===In&&sn){var ln=sn[R];Object.keys(Re).forEach(function(pn){var An=[Le,Se].indexOf(pn)>=0?1:-1,et=[tn,Se].indexOf(pn)>=0?"y":"x";Re[pn]+=ln[et]*An})}return Re}function ci(_,b){b===void 0&&(b={});var K=b,U=K.placement,R=K.boundary,w=K.rootBoundary,H=K.padding,oe=K.flipVariations,ae=K.allowedAutoPlacements,re=ae===void 0?$e:ae,ie=Et(U),me=ie?oe?rn:rn.filter(function(Me){return Et(Me)===ie}):Qe,Ce=me.filter(function(Me){return re.indexOf(Me)>=0});Ce.length===0&&(Ce=me);var ve=Ce.reduce(function(Me,be){return Me[be]=hr(_,{placement:be,boundary:R,rootBoundary:w,padding:H})[jt(be)],Me},{});return Object.keys(ve).sort(function(Me,be){return ve[Me]-ve[be]})}function jo(_){if(jt(_)===ke)return[];var b=Ln(_);return[ii(_),b,ii(b)]}function ui(_){var b=_.state,K=_.options,U=_.name;if(!b.modifiersData[U]._skip){for(var R=K.mainAxis,w=R===void 0?!0:R,H=K.altAxis,oe=H===void 0?!0:H,ae=K.fallbackPlacements,re=K.padding,ie=K.boundary,me=K.rootBoundary,Ce=K.altBoundary,ve=K.flipVariations,Me=ve===void 0?!0:ve,be=K.allowedAutoPlacements,Be=b.options.placement,Ke=jt(Be),ze=Ke===Be,en=ae||(ze||!Me?[Ln(Be)]:jo(Be)),_e=[Be].concat(en).reduce(function(Mr,mt){return Mr.concat(jt(mt)===ke?ci(b,{placement:mt,boundary:ie,rootBoundary:me,padding:re,flipVariations:Me,allowedAutoPlacements:be}):mt)},[]),We=b.rects.reference,Ge=b.rects.popper,gn=new Map,an=!0,cn=_e[0],Re=0;Re<_e.length;Re++){var sn=_e[Re],ln=jt(sn),pn=Et(sn)===we,An=[tn,Se].indexOf(ln)>=0,et=An?"width":"height",Bn=hr(b,{placement:sn,boundary:ie,rootBoundary:me,altBoundary:Ce,padding:re}),kn=An?pn?Le:Oe:pn?Se:tn;We[et]>Ge[et]&&(kn=Ln(kn));var Gt=Ln(kn),On=[];if(w&&On.push(Bn[ln]<=0),oe&&On.push(Bn[kn]<=0,Bn[Gt]<=0),On.every(function(Mr){return Mr})){cn=sn,an=!1;break}gn.set(sn,On)}if(an)for(var wn=Me?3:1,Gn=function(mt){var to=_e.find(function(ro){var Sn=gn.get(ro);if(Sn)return Sn.slice(0,mt).every(function(oo){return oo})});if(to)return cn=to,"break"},Xn=wn;Xn>0;Xn--){var Xt=Gn(Xn);if(Xt==="break")break}b.placement!==cn&&(b.modifiersData[U]._skip=!0,b.placement=cn,b.reset=!0)}}var tl={name:"flip",enabled:!0,phase:"main",fn:ui,requiresIfExists:["offset"],data:{_skip:!1}};function rl(_){return _==="x"?"y":"x"}function Dr(_,b,K){return ee(_,se(b,K))}function Xa(_,b,K){var U=Dr(_,b,K);return U>K?K:U}function ki(_){var b=_.state,K=_.options,U=_.name,R=K.mainAxis,w=R===void 0?!0:R,H=K.altAxis,oe=H===void 0?!1:H,ae=K.boundary,re=K.rootBoundary,ie=K.altBoundary,me=K.padding,Ce=K.tether,ve=Ce===void 0?!0:Ce,Me=K.tetherOffset,be=Me===void 0?0:Me,Be=hr(b,{boundary:ae,rootBoundary:re,padding:me,altBoundary:ie}),Ke=jt(b.placement),ze=Et(b.placement),en=!ze,_e=dr(Ke),We=rl(_e),Ge=b.modifiersData.popperOffsets,gn=b.rects.reference,an=b.rects.popper,cn=typeof be=="function"?be(Object.assign({},b.rects,{placement:b.placement})):be,Re=typeof cn=="number"?{mainAxis:cn,altAxis:cn}:Object.assign({mainAxis:0,altAxis:0},cn),sn=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null,ln={x:0,y:0};if(Ge){if(w){var pn,An=_e==="y"?tn:Oe,et=_e==="y"?Se:Le,Bn=_e==="y"?"height":"width",kn=Ge[_e],Gt=kn+Be[An],On=kn-Be[et],wn=ve?-an[Bn]/2:0,Gn=ze===we?gn[Bn]:an[Bn],Xn=ze===we?-an[Bn]:-gn[Bn],Xt=b.elements.arrow,Mr=ve&&Xt?Xe(Xt):{width:0,height:0},mt=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:Fa(),to=mt[An],ro=mt[et],Sn=Dr(0,gn[Bn],Mr[Bn]),oo=en?gn[Bn]/2-wn-Sn-to-Re.mainAxis:Gn-Sn-to-Re.mainAxis,Da=en?-gn[Bn]/2+wn+Sn+ro+Re.mainAxis:Xn+Sn+ro+Re.mainAxis,Ho=b.elements.arrow&&fn(b.elements.arrow),Ti=Ho?_e==="y"?Ho.clientTop||0:Ho.clientLeft||0:0,Ai=(pn=sn==null?void 0:sn[_e])!=null?pn:0,Nr=kn+oo-Ai-Ti,Wn=kn+Da-Ai,zn=Dr(ve?se(Gt,Nr):Gt,kn,ve?ee(On,Wn):On);Ge[_e]=zn,ln[_e]=zn-kn}if(oe){var Fn,Ri=_e==="x"?tn:Oe,Yo=_e==="x"?Se:Le,Kt=Ge[We],Bi=We==="y"?"height":"width",Qn=Kt+Be[Ri],Ki=Kt-Be[Yo],Qo=[tn,Oe].indexOf(Ke)!==-1,Li=(Fn=sn==null?void 0:sn[We])!=null?Fn:0,Lt=Qo?Qn:Kt-gn[Bi]-an[Bi]-Li+Re.altAxis,vt=Qo?Kt+gn[Bi]+an[Bi]-Li-Re.altAxis:Ki,io=ve&&Qo?Xa(Lt,Kt,vt):Dr(ve?Lt:Qn,Kt,ve?vt:Ki);Ge[We]=io,ln[We]=io-Kt}b.modifiersData[U]=ln}}var Eo={name:"preventOverflow",enabled:!0,phase:"main",fn:ki,requiresIfExists:["offset"]},ol=function(b,K){return b=typeof b=="function"?b(Object.assign({},K.rects,{placement:K.placement})):b,Va(typeof b!="number"?b:Ga(b,Qe))};function Fi(_){var b,K=_.state,U=_.name,R=_.options,w=K.elements.arrow,H=K.modifiersData.popperOffsets,oe=jt(K.placement),ae=dr(oe),re=[Oe,Le].indexOf(oe)>=0,ie=re?"height":"width";if(!(!w||!H)){var me=ol(R.padding,K),Ce=Xe(w),ve=ae==="y"?tn:Oe,Me=ae==="y"?Se:Le,be=K.rects.reference[ie]+K.rects.reference[ae]-H[ae]-K.rects.popper[ie],Be=H[ae]-K.rects.reference[ae],Ke=fn(w),ze=Ke?ae==="y"?Ke.clientHeight||0:Ke.clientWidth||0:0,en=be/2-Be/2,_e=me[ve],We=ze-Ce[ie]-me[Me],Ge=ze/2-Ce[ie]/2+en,gn=Dr(_e,Ge,We),an=ae;K.modifiersData[U]=(b={},b[an]=gn,b.centerOffset=gn-Ge,b)}}function Dn(_){var b=_.state,K=_.options,U=K.element,R=U===void 0?"[data-popper-arrow]":U;R!=null&&(typeof R=="string"&&(R=b.elements.popper.querySelector(R),!R)||ka(b.elements.popper,R)&&(b.elements.arrow=R))}var Ha={name:"arrow",enabled:!0,phase:"main",fn:Fi,effect:Dn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Vi(_,b,K){return K===void 0&&(K={x:0,y:0}),{top:_.top-b.height-K.y,right:_.right-b.width+K.x,bottom:_.bottom-b.height+K.y,left:_.left-b.width-K.x}}function di(_){return[tn,Le,Se,Oe].some(function(b){return _[b]>=0})}function Ya(_){var b=_.state,K=_.name,U=b.rects.reference,R=b.rects.popper,w=b.modifiersData.preventOverflow,H=hr(b,{elementContext:"reference"}),oe=hr(b,{altBoundary:!0}),ae=Vi(H,U),re=Vi(oe,R,w),ie=di(ae),me=di(re);b.modifiersData[K]={referenceClippingOffsets:ae,popperEscapeOffsets:re,isReferenceHidden:ie,hasPopperEscaped:me},b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":ie,"data-popper-escaped":me})}var Qa={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ya},Za=[Pr,Z,Ua,Wa,Js,tl,Eo,Ha,Qa],fi=xo({defaultModifiers:Za}),zr=n(32394);function Tt(){return Tt=Object.assign||function(_){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Ha(P,b){var L,U,B,w,X={label:0,sent:function(){if(B[0]&1)throw B[1];return B[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ae){return ie([re,ae])}}function ie(re){if(L)throw new TypeError("Generator is already executing.");for(;X;)try{if(L=1,U&&(B=re[0]&2?U.return:re[0]?U.throw||((B=U.return)&&B.call(U),0):U.next)&&!(B=B.call(U,re[1])).done)return B;switch(U=0,B&&(re=[re[0]&2,B.value]),re[0]){case 0:case 1:B=re;break;case 4:return X.label++,{value:re[1],done:!1};case 5:X.label++,U=re[1],re=[0];continue;case 7:re=X.ops.pop(),X.trys.pop();continue;default:if(B=X.trys,!(B=B.length>0&&B[B.length-1])&&(re[0]===6||re[0]===2)){X=0;continue}if(re[0]===3&&(!B||re[1]>B[0]&&re[1]=0)&&(K[R]=_[R]);return K}function Xi(_,b){var K,U,R,w,H={label:0,sent:function(){if(R[0]&1)throw R[1];return R[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ie){return ae([re,ie])}}function ae(re){if(K)throw new TypeError("Generator is already executing.");for(;H;)try{if(K=1,U&&(R=re[0]&2?U.return:re[0]?U.throw||((R=U.return)&&R.call(U),0):U.next)&&!(R=R.call(U,re[1])).done)return R;switch(U=0,R&&(re=[re[0]&2,R.value]),re[0]){case 0:case 1:R=re;break;case 4:return H.label++,{value:re[1],done:!1};case 5:H.label++,U=re[1],re=[0];continue;case 7:re=H.ops.pop(),H.trys.pop();continue;default:if(R=H.trys,!(R=R.length>0&&R[R.length-1])&&(re[0]===6||re[0]===2)){H=0;continue}if(re[0]===3&&(!R||re[1]>R[0]&&re[1]=0)&&(L[B]=P[B]);return L}function kr(P,b){return kr=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},kr(P,b)}var br=(0,vr.h)("ByondUi"),xr=[],gr=function(P){var b=xr.length;xr.push(null);var L=P||"byondui_"+b;return br.log("allocated '"+L+"'"),{render:function(U){br.log("rendering '"+L+"'"),xr[b]=L,Byond.winset(L,U)},unmount:function(){br.log("unmounting '"+L+"'"),xr[b]=null,Byond.winset(L,{parent:""})}}};window.addEventListener("beforeunload",function(){for(var P=0;P=0)&&(K[R]=_[R]);return K}function kr(_,b){return kr=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},kr(_,b)}var br=(0,vr.h)("ByondUi"),xr=[],gr=function(_){var b=xr.length;xr.push(null);var K=_||"byondui_"+b;return br.log("allocated '"+K+"'"),{render:function(U){br.log("rendering '"+K+"'"),xr[b]=K,Byond.winset(K,U)},unmount:function(){br.log("unmounting '"+K+"'"),xr[b]=null,Byond.winset(K,{parent:""})}}};window.addEventListener("beforeunload",function(){for(var _=0;_=0)&&(L[B]=P[B]);return L}function jr(P,b){return jr=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},jr(P,b)}var Ya=function(P,b,L,U){var B,w;if(P.length===0)return[];var X=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(P)),function(re){return(B=Math).min.apply(B,[].concat(re))}),oe=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(P)),function(re){return(w=Math).max.apply(w,[].concat(re))});L!==void 0&&(X[0]=L[0],oe[0]=L[1]),U!==void 0&&(X[1]=U[0],oe[1]=U[1]);var ie=(0,pr.Tj)(P,function(re){return(0,pr.Tj)((0,pr.yU)(re,X,oe,b),function(ae){var me=ae[0],Ce=ae[1],ve=ae[2],Me=ae[3];return(me-Ce)/(ve-Ce)*Me})});return ie},Po=function(P){for(var b="",L=0;L0){var ze=Ke[0],en=Ke[Ke.length-1];Ke.push([Be[0]+Me,en[1]]),Ke.push([Be[0]+Me,-Me]),Ke.push([-Me,-Me]),Ke.push([-Me,ze[1]])}var _e=Po(Ke),We=Er({},be,{className:"",ref:this.ref});return(0,e.jsx)(O.az,Er({position:"relative"},be,{children:(0,e.jsx)(O.az,Er({},We,{children:(0,e.jsx)("svg",{viewBox:"0 0 "+Be[0]+" "+Be[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},children:(0,e.jsx)("polyline",{transform:"scale(1, -1) translate(0, -"+Be[1]+")",fill:ae,stroke:Ce,strokeWidth:Me,points:_e})})}))}))},b}(t.Component),Qa={Line:sl};/** + */function vi(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function jr(){return jr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Er(_,b){return Er=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Er(_,b)}var Yi=function(_,b,K,U){var R,w;if(_.length===0)return[];var H=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(_)),function(re){return(R=Math).min.apply(R,[].concat(re))}),oe=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(_)),function(re){return(w=Math).max.apply(w,[].concat(re))});K!==void 0&&(H[0]=K[0],oe[0]=K[1]),U!==void 0&&(H[1]=U[0],oe[1]=U[1]);var ae=(0,pr.Tj)(_,function(re){return(0,pr.Tj)((0,pr.yU)(re,H,oe,b),function(ie){var me=ie[0],Ce=ie[1],ve=ie[2],Me=ie[3];return(me-Ce)/(ve-Ce)*Me})});return ae},Po=function(_){for(var b="",K=0;K<_.length;K++){var U=_[K];b+=U[0]+","+U[1]+" "}return b},sl=function(_){"use strict";es(b,_);function b(U){var R;return R=_.call(this,U)||this,R.handleResize=function(){var w=R.ref.current;w&&R.setState({viewBox:[w.offsetWidth,w.offsetHeight]})},R.ref=(0,t.createRef)(),R.state={viewBox:[600,200]},R.handleResize=R.handleResize.bind(vi(R)),R}var K=b.prototype;return K.componentDidMount=function(){window.addEventListener("resize",this.handleResize),this.handleResize()},K.componentWillUnmount=function(){window.removeEventListener("resize",this.handleResize)},K.render=function(){var R=this.props,w=R.data,H=w===void 0?[]:w,oe=R.rangeX,ae=R.rangeY,re=R.fillColor,ie=re===void 0?"none":re,me=R.strokeColor,Ce=me===void 0?"#ffffff":me,ve=R.strokeWidth,Me=ve===void 0?2:ve,be=ft(R,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),Be=this.state.viewBox,Ke=Yi(H,Be,oe,ae);if(Ke.length>0){var ze=Ke[0],en=Ke[Ke.length-1];Ke.push([Be[0]+Me,en[1]]),Ke.push([Be[0]+Me,-Me]),Ke.push([-Me,-Me]),Ke.push([-Me,ze[1]])}var _e=Po(Ke),We=jr({},be,{className:"",ref:this.ref});return(0,e.jsx)(y.az,jr({position:"relative"},be,{children:(0,e.jsx)(y.az,jr({},We,{children:(0,e.jsx)("svg",{viewBox:"0 0 "+Be[0]+" "+Be[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},children:(0,e.jsx)("polyline",{transform:"scale(1, -1) translate(0, -"+Be[1]+")",fill:ie,stroke:Ce,strokeWidth:Me,points:_e})})}))}))},b}(t.Component),Qi={Line:sl};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Io(){return Io=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function xa(P){var b=P.children,L=P.color,U=P.title,B=P.buttons,w=P.icon,X=P.child_mt,oe=X===void 0?1:X,ie=Do(P,["children","color","title","buttons","icon","child_mt"]),re=(0,t.useState)(P.open),ae=re[0],me=re[1];return(0,e.jsxs)(O.az,{mb:1,children:[(0,e.jsxs)("div",{className:"Table",children:[(0,e.jsx)("div",{className:"Table__cell",children:(0,e.jsx)(Yn,Io({fluid:!0,color:L,icon:w||(ae?"chevron-down":"chevron-right"),onClick:function(){return me(!ae)}},ie,{children:U}))}),B&&(0,e.jsx)("div",{className:"Table__cell Table__cell--collapsing",children:B})]}),ae&&(0,e.jsx)(O.az,{mt:oe,children:b})]})}/** + */function Io(){return Io=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function xi(_){var b=_.children,K=_.color,U=_.title,R=_.buttons,w=_.icon,H=_.child_mt,oe=H===void 0?1:H,ae=Do(_,["children","color","title","buttons","icon","child_mt"]),re=(0,t.useState)(_.open),ie=re[0],me=re[1];return(0,e.jsxs)(y.az,{mb:1,children:[(0,e.jsxs)("div",{className:"Table",children:[(0,e.jsx)("div",{className:"Table__cell",children:(0,e.jsx)(Yn,Io({fluid:!0,color:K,icon:w||(ie?"chevron-down":"chevron-right"),onClick:function(){return me(!ie)}},ae,{children:U}))}),R&&(0,e.jsx)("div",{className:"Table__cell Table__cell--collapsing",children:R})]}),ie&&(0,e.jsx)(y.az,{mt:oe,children:b})]})}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function ga(){return ga=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function cl(P){var b=P.content,L=P.children,U=P.className,B=ll(P,["content","children","className"]);return B.color=b?null:"default",B.backgroundColor=P.color||"default",(0,e.jsx)("div",ga({className:(0,j.Ly)(["ColorBox",U,(0,O.WP)(B)])},(0,O.Fl)(B),{children:b||"."}))}/** + */function gi(){return gi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function cl(_){var b=_.content,K=_.children,U=_.className,R=ll(_,["content","children","className"]);return R.color=b?null:"default",R.backgroundColor=_.color||"default",(0,e.jsx)("div",gi({className:(0,E.Ly)(["ColorBox",U,(0,y.WP)(R)])},(0,y.Fl)(R),{children:b||"."}))}/** * @file * @copyright 2022 raffclar * @license MIT - */var ns=function(P){var b=P.title,L=P.onClose,U=P.children,B=P.width,w=P.height;return(0,e.jsx)("div",{className:"Dialog",children:(0,e.jsxs)(O.az,{className:"Dialog__content",width:B||"370px",height:w,children:[(0,e.jsxs)("div",{className:"Dialog__header",children:[(0,e.jsx)("div",{className:"Dialog__title",children:b}),(0,e.jsx)(O.az,{mr:2,children:(0,e.jsx)(Yn,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-start",onClick:L})})]}),U]})})},Fr=function(P){var b=P.onClick,L=P.children;return(0,e.jsx)(Yn,{onClick:b,className:"Dialog__button",verticalAlignContent:"middle",children:L})};ns.Button=Fr;var pc=function(P){var b=P.documentName,L=P.onSave,U=P.onDiscard,B=P.onClose;return _jsxs(ns,{title:"Notepad",onClose:B,children:[_jsxs("div",{className:"Dialog__body",children:["Do you want to save changes to ",b,"?"]}),_jsxs("div",{className:"Dialog__footer",children:[_jsx(Fr,{onClick:L,children:"Save"}),_jsx(Fr,{onClick:U,children:"Don't Save"}),_jsx(Fr,{onClick:B,children:"Cancel"})]})]})};/** + */var ns=function(_){var b=_.title,K=_.onClose,U=_.children,R=_.width,w=_.height;return(0,e.jsx)("div",{className:"Dialog",children:(0,e.jsxs)(y.az,{className:"Dialog__content",width:R||"370px",height:w,children:[(0,e.jsxs)("div",{className:"Dialog__header",children:[(0,e.jsx)("div",{className:"Dialog__title",children:b}),(0,e.jsx)(y.az,{mr:2,children:(0,e.jsx)(Yn,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-start",onClick:K})})]}),U]})})},Fr=function(_){var b=_.onClick,K=_.children;return(0,e.jsx)(Yn,{onClick:b,className:"Dialog__button",verticalAlignContent:"middle",children:K})};ns.Button=Fr;var pc=function(_){var b=_.documentName,K=_.onSave,U=_.onDiscard,R=_.onClose;return _jsxs(ns,{title:"Notepad",onClose:R,children:[_jsxs("div",{className:"Dialog__body",children:["Do you want to save changes to ",b,"?"]}),_jsxs("div",{className:"Dialog__footer",children:[_jsx(Fr,{onClick:K,children:"Save"}),_jsx(Fr,{onClick:U,children:"Don't Save"}),_jsx(Fr,{onClick:R,children:"Cancel"})]})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Za(){return Za=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function ts(P){var b=P.className,L=P.children,U=ul(P,["className","children"]);return(0,e.jsx)(O.az,Za({className:(0,j.Ly)(["Dimmer",b])},U,{children:(0,e.jsx)("div",{className:"Dimmer__inner",children:L})}))}/** + */function Zi(){return Zi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function ts(_){var b=_.className,K=_.children,U=ul(_,["className","children"]);return(0,e.jsx)(y.az,Zi({className:(0,E.Ly)(["Dimmer",b])},U,{children:(0,e.jsx)("div",{className:"Dimmer__inner",children:K})}))}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function rs(P){var b=P.hidden,L=P.vertical;return(0,e.jsx)("div",{className:(0,j.Ly)(["Divider",b&&"Divider--hidden",L?"Divider--vertical":"Divider--horizontal"])})}var os=n(31200),dl=n(77829);function as(P,b,L,U,B,w,X){try{var oe=P[w](X),ie=oe.value}catch(re){L(re);return}oe.done?b(ie):Promise.resolve(ie).then(U,B)}function fl(P){return function(){var b=this,L=arguments;return new Promise(function(U,B){var w=P.apply(b,L);function X(ie){as(w,U,B,X,oe,"next",ie)}function oe(ie){as(w,U,B,X,oe,"throw",ie)}X(void 0)})}}function Ja(){return Ja=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function hl(P,b){var L,U,B,w,X={label:0,sent:function(){if(B[0]&1)throw B[1];return B[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ae){return ie([re,ae])}}function ie(re){if(L)throw new TypeError("Generator is already executing.");for(;X;)try{if(L=1,U&&(B=re[0]&2?U.return:re[0]?U.throw||((B=U.return)&&B.call(U),0):U.next)&&!(B=B.call(U,re[1])).done)return B;switch(U=0,B&&(re=[re[0]&2,B.value]),re[0]){case 0:case 1:B=re;break;case 4:return X.label++,{value:re[1],done:!1};case 5:X.label++,U=re[1],re=[0];continue;case 7:re=X.ops.pop(),X.trys.pop();continue;default:if(B=X.trys,!(B=B.length>0&&B[B.length-1])&&(re[0]===6||re[0]===2)){X=0;continue}if(re[0]===3&&(!B||re[1]>B[0]&&re[1]=0)&&(K[R]=_[R]);return K}function hl(_,b){var K,U,R,w,H={label:0,sent:function(){if(R[0]&1)throw R[1];return R[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ie){return ae([re,ie])}}function ae(re){if(K)throw new TypeError("Generator is already executing.");for(;H;)try{if(K=1,U&&(R=re[0]&2?U.return:re[0]?U.throw||((R=U.return)&&R.call(U),0):U.next)&&!(R=R.call(U,re[1])).done)return R;switch(U=0,R&&(re=[re[0]&2,R.value]),re[0]){case 0:case 1:R=re;break;case 4:return H.label++,{value:re[1],done:!1};case 5:H.label++,U=re[1],re=[0];continue;case 7:re=H.ops.pop(),H.trys.pop();continue;default:if(R=H.trys,!(R=R.length>0&&R[R.length-1])&&(re[0]===6||re[0]===2)){H=0;continue}if(re[0]===3&&(!R||re[1]>R[0]&&re[1]0&&(B.setState({suppressingFlicker:!0}),clearTimeout(B.flickerTimer),B.flickerTimer=setTimeout(function(){B.setState({suppressingFlicker:!1})},w))},B.handleDragStart=function(w){var X=B.props,oe=X.value,ie=X.dragMatrix,re=B.state.editing;re||(document.body.style["pointer-events"]="none",B.ref=w.target,B.setState({dragging:!1,origin:ri(w,ie),value:oe,internalValue:oe}),B.timer=setTimeout(function(){B.setState({dragging:!0})},250),B.dragInterval=setInterval(function(){var ae=B.state,me=ae.dragging,Ce=ae.value,ve=B.props.onDrag;me&&ve&&ve(w,Ce)},B.props.updateRate||xl),document.addEventListener("mousemove",B.handleDragMove),document.addEventListener("mouseup",B.handleDragEnd))},B.handleDragMove=function(w){var X=B.props,oe=X.minValue,ie=X.maxValue,re=X.step,ae=X.stepPixelSize,me=X.dragMatrix;B.setState(function(Ce){var ve=ni({},Ce),Me=ri(w,me)-ve.origin;if(Ce.dragging){var be=Number.isFinite(oe)?oe%re:0;ve.internalValue=(0,o.qE)(ve.internalValue+Me*re/ae,oe-re,ie+re),ve.value=(0,o.qE)(ve.internalValue-ve.internalValue%re+be,oe,ie),ve.origin=ri(w,me)}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},B.handleDragEnd=function(w){var X=B.props,oe=X.onChange,ie=X.onDrag,re=B.state,ae=re.dragging,me=re.value,Ce=re.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(B.timer),clearInterval(B.dragInterval),B.setState({dragging:!1,editing:!ae,origin:null}),document.removeEventListener("mousemove",B.handleDragMove),document.removeEventListener("mouseup",B.handleDragEnd),ae)B.suppressFlicker(),oe&&oe(w,me),ie&&ie(w,me);else if(B.inputRef){var ve=B.inputRef.current;ve.value=Ce,setTimeout(function(){ve.focus(),ve.select()},100)}},B}var L=b.prototype;return L.render=function(){var B=this,w=this.state,X=w.dragging,oe=w.editing,ie=w.value,re=w.suppressingFlicker,ae=this.props,me=ae.animated,Ce=ae.value,ve=ae.unit,Me=ae.minValue,be=ae.maxValue,Be=ae.unclamped,Ke=ae.format,ze=ae.onChange,en=ae.onDrag,_e=ae.children,We=ae.height,Ge=ae.lineHeight,gn=ae.fontSize,an=Ce;(X||re)&&(an=ie);var cn=(0,e.jsxs)(e.Fragment,{children:[me&&!X&&!re?(0,e.jsx)(l,{value:an,format:Ke}):Ke?Ke(an):an,ve?" "+ve:""]}),Re=(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:We,lineHeight:Ge,fontsize:gn},onBlur:function(sn){if(oe){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,o.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){B.setState({editing:!1});return}B.setState({editing:!1,value:ln}),B.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln)}},onKeyDown:function(sn){if(sn.keyCode===13){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,o.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){B.setState({editing:!1});return}B.setState({editing:!1,value:ln}),B.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln);return}if(sn.keyCode===27){B.setState({editing:!1});return}}});return _e({dragging:X,editing:oe,value:Ce,displayValue:an,displayElement:cn,inputElement:Re,handleDragStart:this.handleDragStart})},b}(t.Component);pa.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]};var gl=n(20878),oi=n.n(gl),Ea=function(b){return Array.isArray(b)?b[0]:b},pl=function(b){if(typeof b=="function"){for(var L=arguments.length,U=new Array(L>1?L-1:0),B=1;B_e.length-3?_e.length-1:yn-2;var Hn=(wn=et.current)==null?void 0:wn.children[Gn];Hn==null||Hn.scrollIntoView({block:"nearest"})}function Gt(yn){if(!(_e.length<1||re)){var wn=0,Gn=_e.length-1,Hn;Bn<0?Hn=yn==="next"?Gn:wn:yn==="next"?Hn=Bn===Gn?wn:Bn+1:Hn=Bn===wn?Gn:Bn-1,ln&&L&&kn(Hn),ze==null||ze(So(_e[Hn]))}}return(0,t.useEffect)(function(){var yn;ln&&(L&&Bn!==jl&&kn(Bn),(yn=et.current)==null||yn.focus())},[ln]),(0,e.jsx)(cs,{isOpen:ln,onClickOutside:function(){return pn(!1)},placement:We?"top-start":"bottom-start",content:(0,e.jsxs)("div",{className:"Layout Dropdown__menu",style:{minWidth:be},ref:et,children:[_e.length===0&&(0,e.jsx)("div",{className:"Dropdown__menuentry",children:"No options"}),_e.map(function(yn,wn){var Gn=So(yn);return(0,e.jsx)("div",{className:(0,j.Ly)(["Dropdown__menuentry",an===Gn&&"selected"]),onClick:function(){pn(!1),ze==null||ze(Gn)},children:typeof yn=="string"?yn:yn.displayText},wn)})]}),children:(0,e.jsxs)("div",{className:"Dropdown",style:{width:(0,O.zA)(Re)},children:[(0,e.jsxs)("div",{className:(0,j.Ly)(["Dropdown__control","Button","Button--dropdown","Button--color--"+ie,re&&"Button--disabled",B]),onClick:function(yn){re&&!ln||(pn(!ln),Ke==null||Ke(yn))},children:[me&&(0,e.jsx)(W,{mr:1,name:me,rotation:Ce,spin:ve}),(0,e.jsx)("span",{className:"Dropdown__selected-text",style:{overflow:X?"hidden":"visible"},children:ae||an&&So(an)||gn}),!Be&&(0,e.jsx)("span",{className:"Dropdown__arrow-button",children:(0,e.jsx)(W,{name:Tn?"chevron-up":"chevron-down"})})]}),U&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-left",onClick:function(){Gt("previous")}}),(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-right",onClick:function(){Gt("next")}})]})]})})}function ja(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function Vr(){return Vr=Object.assign||function(P){for(var b=1;b0&&(R.setState({suppressingFlicker:!0}),clearTimeout(R.flickerTimer),R.flickerTimer=setTimeout(function(){R.setState({suppressingFlicker:!1})},w))},R.handleDragStart=function(w){var H=R.props,oe=H.value,ae=H.dragMatrix,re=R.state.editing;re||(document.body.style["pointer-events"]="none",R.ref=w.target,R.setState({dragging:!1,origin:ra(w,ae),value:oe,internalValue:oe}),R.timer=setTimeout(function(){R.setState({dragging:!0})},250),R.dragInterval=setInterval(function(){var ie=R.state,me=ie.dragging,Ce=ie.value,ve=R.props.onDrag;me&&ve&&ve(w,Ce)},R.props.updateRate||xl),document.addEventListener("mousemove",R.handleDragMove),document.addEventListener("mouseup",R.handleDragEnd))},R.handleDragMove=function(w){var H=R.props,oe=H.minValue,ae=H.maxValue,re=H.step,ie=H.stepPixelSize,me=H.dragMatrix;R.setState(function(Ce){var ve=na({},Ce),Me=ra(w,me)-ve.origin;if(Ce.dragging){var be=Number.isFinite(oe)?oe%re:0;ve.internalValue=(0,i.qE)(ve.internalValue+Me*re/ie,oe-re,ae+re),ve.value=(0,i.qE)(ve.internalValue-ve.internalValue%re+be,oe,ae),ve.origin=ra(w,me)}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},R.handleDragEnd=function(w){var H=R.props,oe=H.onChange,ae=H.onDrag,re=R.state,ie=re.dragging,me=re.value,Ce=re.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(R.timer),clearInterval(R.dragInterval),R.setState({dragging:!1,editing:!ie,origin:null}),document.removeEventListener("mousemove",R.handleDragMove),document.removeEventListener("mouseup",R.handleDragEnd),ie)R.suppressFlicker(),oe&&oe(w,me),ae&&ae(w,me);else if(R.inputRef){var ve=R.inputRef.current;ve.value=Ce,setTimeout(function(){ve.focus(),ve.select()},100)}},R}var K=b.prototype;return K.render=function(){var R=this,w=this.state,H=w.dragging,oe=w.editing,ae=w.value,re=w.suppressingFlicker,ie=this.props,me=ie.animated,Ce=ie.value,ve=ie.unit,Me=ie.minValue,be=ie.maxValue,Be=ie.unclamped,Ke=ie.format,ze=ie.onChange,en=ie.onDrag,_e=ie.children,We=ie.height,Ge=ie.lineHeight,gn=ie.fontSize,an=Ce;(H||re)&&(an=ae);var cn=(0,e.jsxs)(e.Fragment,{children:[me&&!H&&!re?(0,e.jsx)(l,{value:an,format:Ke}):Ke?Ke(an):an,ve?" "+ve:""]}),Re=(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:We,lineHeight:Ge,fontsize:gn},onBlur:function(sn){if(oe){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,i.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){R.setState({editing:!1});return}R.setState({editing:!1,value:ln}),R.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln)}},onKeyDown:function(sn){if(sn.keyCode===13){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,i.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){R.setState({editing:!1});return}R.setState({editing:!1,value:ln}),R.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln);return}if(sn.keyCode===27){R.setState({editing:!1});return}}});return _e({dragging:H,editing:oe,value:Ce,displayValue:an,displayElement:cn,inputElement:Re,handleDragStart:this.handleDragStart})},b}(t.Component);pi.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]};var gl=n(20878),oa=n.n(gl),ji=function(b){return Array.isArray(b)?b[0]:b},pl=function(b){if(typeof b=="function"){for(var K=arguments.length,U=new Array(K>1?K-1:0),R=1;R_e.length-3?_e.length-1:On-2;var Xn=(wn=et.current)==null?void 0:wn.children[Gn];Xn==null||Xn.scrollIntoView({block:"nearest"})}function Gt(On){if(!(_e.length<1||re)){var wn=0,Gn=_e.length-1,Xn;Bn<0?Xn=On==="next"?Gn:wn:On==="next"?Xn=Bn===Gn?wn:Bn+1:Xn=Bn===wn?Gn:Bn-1,ln&&K&&kn(Xn),ze==null||ze(So(_e[Xn]))}}return(0,t.useEffect)(function(){var On;ln&&(K&&Bn!==El&&kn(Bn),(On=et.current)==null||On.focus())},[ln]),(0,e.jsx)(cs,{isOpen:ln,onClickOutside:function(){return pn(!1)},placement:We?"top-start":"bottom-start",content:(0,e.jsxs)("div",{className:"Layout Dropdown__menu",style:{minWidth:be},ref:et,children:[_e.length===0&&(0,e.jsx)("div",{className:"Dropdown__menuentry",children:"No options"}),_e.map(function(On,wn){var Gn=So(On);return(0,e.jsx)("div",{className:(0,E.Ly)(["Dropdown__menuentry",an===Gn&&"selected"]),onClick:function(){pn(!1),ze==null||ze(Gn)},children:typeof On=="string"?On:On.displayText},wn)})]}),children:(0,e.jsxs)("div",{className:"Dropdown",style:{width:(0,y.zA)(Re)},children:[(0,e.jsxs)("div",{className:(0,E.Ly)(["Dropdown__control","Button","Button--dropdown","Button--color--"+ae,re&&"Button--disabled",R]),onClick:function(On){re&&!ln||(pn(!ln),Ke==null||Ke(On))},children:[me&&(0,e.jsx)(W,{mr:1,name:me,rotation:Ce,spin:ve}),(0,e.jsx)("span",{className:"Dropdown__selected-text",style:{overflow:H?"hidden":"visible"},children:ie||an&&So(an)||gn}),!Be&&(0,e.jsx)("span",{className:"Dropdown__arrow-button",children:(0,e.jsx)(W,{name:An?"chevron-up":"chevron-down"})})]}),U&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-left",onClick:function(){Gt("previous")}}),(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-right",onClick:function(){Gt("next")}})]})]})})}function Ei(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function Vr(){return Vr=Object.assign||function(_){for(var b=1;b=0)&&(L[B]=P[B]);return L}var si=function(P){return(0,j.Ly)(["Flex",P.inline&&"Flex--inline",(0,O.WP)(P)])},li=function(P){var b=P.className,L=P.direction,U=P.wrap,B=P.align,w=P.justify,X=P.inline,oe=Hr(P,["className","direction","wrap","align","justify","inline"]);return(0,O.Fl)(zt({style:zt({},oe.style,{flexDirection:L,flexWrap:U===!0?"wrap":U,alignItems:B,justifyContent:w})},oe))},Jt=function(P){var b=P.className,L=Hr(P,["className"]);return(0,e.jsx)("div",zt({className:(0,j.Ly)([b,si(L)])},li(L)))},ci=function(P){return(0,j.Ly)(["Flex__item",(0,O.WP)(P)])},ui=function(P){var b=P.className,L=P.style,U=P.grow,B=P.order,w=P.shrink,X=P.basis,oe=P.align,ie=Hr(P,["className","style","grow","order","shrink","basis","align"]),re,ae=(re=X!=null?X:P.width)!=null?re:U!==void 0?0:void 0;return(0,O.Fl)(zt({style:zt({},L,{flexGrow:U!==void 0&&Number(U),flexShrink:w!==void 0&&Number(w),flexBasis:(0,O.zA)(ae),order:B,alignSelf:oe})},ie))},Ol=function(P){var b=P.className,L=Hr(P,["className"]);return(0,e.jsx)("div",zt({className:(0,j.Ly)([b,ci(P)])},ui(L)))};Jt.Item=Ol;var Ca=n(19996);/** + */function zt(){return zt=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var sa=function(_){return(0,E.Ly)(["Flex",_.inline&&"Flex--inline",(0,y.WP)(_)])},la=function(_){var b=_.className,K=_.direction,U=_.wrap,R=_.align,w=_.justify,H=_.inline,oe=Xr(_,["className","direction","wrap","align","justify","inline"]);return(0,y.Fl)(zt({style:zt({},oe.style,{flexDirection:K,flexWrap:U===!0?"wrap":U,alignItems:R,justifyContent:w})},oe))},Jt=function(_){var b=_.className,K=Xr(_,["className"]);return(0,e.jsx)("div",zt({className:(0,E.Ly)([b,sa(K)])},la(K)))},ca=function(_){return(0,E.Ly)(["Flex__item",(0,y.WP)(_)])},ua=function(_){var b=_.className,K=_.style,U=_.grow,R=_.order,w=_.shrink,H=_.basis,oe=_.align,ae=Xr(_,["className","style","grow","order","shrink","basis","align"]),re,ie=(re=H!=null?H:_.width)!=null?re:U!==void 0?0:void 0;return(0,y.Fl)(zt({style:zt({},K,{flexGrow:U!==void 0&&Number(U),flexShrink:w!==void 0&&Number(w),flexBasis:(0,y.zA)(ie),order:R,alignSelf:oe})},ae))},Ol=function(_){var b=_.className,K=Xr(_,["className"]);return(0,e.jsx)("div",zt({className:(0,E.Ly)([b,ca(_)])},ua(K)))};Jt.Item=Ol;var Ci=n(19996);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function bo(){return bo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Ao(P){var b=P.children,L=Ct(P,["children"]);return vr.v.error("Grid component is deprecated. Use a Stack instead."),(0,e.jsx)(Ca.XI,bo({},L,{children:(0,e.jsx)(Ca.XI.Row,{children:b})}))}function fs(P){var b=P.size,L=b===void 0?1:b,U=P.style,B=Ct(P,["size","style"]);return(0,e.jsx)(Ca.XI.Cell,bo({style:bo({width:L+"%"},U)},B))}Ao.Column=fs;var hs=n(79500);/** + */function bo(){return bo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function To(_){var b=_.children,K=Ct(_,["children"]);return vr.v.error("Grid component is deprecated. Use a Stack instead."),(0,e.jsx)(Ci.XI,bo({},K,{children:(0,e.jsx)(Ci.XI.Row,{children:b})}))}function fs(_){var b=_.size,K=b===void 0?1:b,U=_.style,R=Ct(_,["size","style"]);return(0,e.jsx)(Ci.XI.Cell,bo({style:bo({width:K+"%"},U)},R))}To.Column=fs;var hs=n(79500);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function To(){return To=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var di=function(P){var b=P.className,L=P.value,U=P.minValue,B=U===void 0?0:U,w=P.maxValue,X=w===void 0?1:w,oe=P.color,ie=P.ranges,re=ie===void 0?{}:ie,ae=P.children,me=ms(P,["className","value","minValue","maxValue","color","ranges","children"]),Ce=(0,o.hs)(L,B,X),ve=ae!==void 0,Me=oe||(0,o.TG)(L,re)||"default",be=(0,O.Fl)(me),Be=["ProgressBar",b,(0,O.WP)(me)],Ke={width:(0,o.J$)(Ce)*100+"%"};return hs.NE.includes(Me)||Me==="default"?Be.push("ProgressBar--color--"+Me):(be.style=To({},be.style,{borderColor:Me}),Ke.backgroundColor=Me),(0,e.jsxs)("div",To({className:(0,j.Ly)(Be)},be,{children:[(0,e.jsx)("div",{className:"ProgressBar__fill ProgressBar__fill--animated",style:Ke}),(0,e.jsx)("div",{className:"ProgressBar__content",children:ve?ae:(0,o.Mg)(Ce*100)+"%"})]}))};/** + */function Ao(){return Ao=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var da=function(_){var b=_.className,K=_.value,U=_.minValue,R=U===void 0?0:U,w=_.maxValue,H=w===void 0?1:w,oe=_.color,ae=_.ranges,re=ae===void 0?{}:ae,ie=_.children,me=ms(_,["className","value","minValue","maxValue","color","ranges","children"]),Ce=(0,i.hs)(K,R,H),ve=ie!==void 0,Me=oe||(0,i.TG)(K,re)||"default",be=(0,y.Fl)(me),Be=["ProgressBar",b,(0,y.WP)(me)],Ke={width:(0,i.J$)(Ce)*100+"%"};return hs.NE.includes(Me)||Me==="default"?Be.push("ProgressBar--color--"+Me):(be.style=Ao({},be.style,{borderColor:Me}),Ke.backgroundColor=Me),(0,e.jsxs)("div",Ao({className:(0,E.Ly)(Be)},be,{children:[(0,e.jsx)("div",{className:"ProgressBar__fill ProgressBar__fill--animated",style:Ke}),(0,e.jsx)("div",{className:"ProgressBar__content",children:ve?ie:(0,i.Mg)(Ce*100)+"%"})]}))};/** * @file * @copyright 2021 Aleksej Komarov * @license MIT - */function Xr(){return Xr=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var Cr=function(P){var b=P.className,L=P.vertical,U=P.fill,B=P.zebra,w=fi(P,["className","vertical","fill","zebra"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack",U&&"Stack--fill",L?"Stack--vertical":"Stack--horizontal",B&&"Stack--zebra",b,si(P)])},li(Xr({direction:L?"column":"row"},w))))},hi=function(P){var b=P.className,L=P.innerRef,U=fi(P,["className","innerRef"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack__item",b,ci(U)]),ref:L},ui(U)))};Cr.Item=hi;var Ro=function(P){var b=P.className,L=P.hidden,U=fi(P,["className","hidden"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack__item","Stack__divider",L&&"Stack__divider--hidden",b,ci(U)])},ui(U)))};Cr.Divider=Ro;function vs(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function mi(){return mi=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Ko(P,b){return Ko=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},Ko(P,b)}var yl=.5,xi=1.5,Ml=.1,_l=null;/** + */function Hr(){return Hr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var Cr=function(_){var b=_.className,K=_.vertical,U=_.fill,R=_.zebra,w=fa(_,["className","vertical","fill","zebra"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack",U&&"Stack--fill",K?"Stack--vertical":"Stack--horizontal",R&&"Stack--zebra",b,sa(_)])},la(Hr({direction:K?"column":"row"},w))))},ha=function(_){var b=_.className,K=_.innerRef,U=fa(_,["className","innerRef"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack__item",b,ca(U)]),ref:K},ua(U)))};Cr.Item=ha;var Ro=function(_){var b=_.className,K=_.hidden,U=fa(_,["className","hidden"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack__item","Stack__divider",K&&"Stack__divider--hidden",b,ca(U)])},ua(U)))};Cr.Divider=Ro;function vs(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function ma(){return ma=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Ko(_,b){return Ko=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Ko(_,b)}var yl=.5,xa=1.5,Ml=.1,_l=null;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Oa(){return Oa=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Lo(P){return typeof P!="number"&&typeof P!="string"?"":String(P)}var gs=(0,Sr.sg)(function(P){return P()},250);function Or(P){var b=P.autoFocus,L=P.autoSelect,U=P.className,B=P.disabled,w=P.expensive,X=P.fluid,oe=P.maxLength,ie=P.monospace,re=P.onChange,ae=P.onEnter,me=P.onEscape,Ce=P.onInput,ve=P.placeholder,Me=P.selfClear,be=P.value,Be=xs(P,["autoFocus","autoSelect","className","disabled","expensive","fluid","maxLength","monospace","onChange","onEnter","onEscape","onInput","placeholder","selfClear","value"]),Ke=(0,t.useRef)(null);function ze(_e){var We;if(Ce){var Ge=(We=_e.currentTarget)==null?void 0:We.value;w?gs(function(){return Ce(_e,Ge)}):Ce(_e,Ge)}}function en(_e){if(_e.key===S._.Enter){ae==null||ae(_e,_e.currentTarget.value),Me?_e.currentTarget.value="":(_e.currentTarget.blur(),re==null||re(_e,_e.currentTarget.value));return}(0,S.K)(_e.key)&&(me==null||me(_e),_e.currentTarget.value=Lo(be),_e.currentTarget.blur())}return(0,t.useEffect)(function(){var _e=Ke.current;if(_e){var We=Lo(be);_e.value!==We&&(_e.value=We),!(!b&&!L)&&setTimeout(function(){_e.focus(),L&&_e.select()},1)}},[]),(0,e.jsxs)(O.az,Oa({className:(0,j.Ly)(["Input",X&&"Input--fluid",ie&&"Input--monospace",U])},Be,{children:[(0,e.jsx)("div",{className:"Input__baseline",children:"."}),(0,e.jsx)("input",{className:"Input__input",disabled:B,maxLength:oe,onBlur:function(_e){return re==null?void 0:re(_e,_e.target.value)},onChange:ze,onKeyDown:en,placeholder:ve,ref:Ke})]}))}var ps=n(52130);function Es(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&gi(P,b)}function gi(P,b){return gi=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},gi(P,b)}var Cc=null;/** + */function Oi(){return Oi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Lo(_){return typeof _!="number"&&typeof _!="string"?"":String(_)}var gs=(0,Sr.sg)(function(_){return _()},250);function Or(_){var b=_.autoFocus,K=_.autoSelect,U=_.className,R=_.disabled,w=_.expensive,H=_.fluid,oe=_.maxLength,ae=_.monospace,re=_.onChange,ie=_.onEnter,me=_.onEscape,Ce=_.onInput,ve=_.placeholder,Me=_.selfClear,be=_.value,Be=xs(_,["autoFocus","autoSelect","className","disabled","expensive","fluid","maxLength","monospace","onChange","onEnter","onEscape","onInput","placeholder","selfClear","value"]),Ke=(0,t.useRef)(null);function ze(_e){var We;if(Ce){var Ge=(We=_e.currentTarget)==null?void 0:We.value;w?gs(function(){return Ce(_e,Ge)}):Ce(_e,Ge)}}function en(_e){if(_e.key===S._.Enter){ie==null||ie(_e,_e.currentTarget.value),Me?_e.currentTarget.value="":(_e.currentTarget.blur(),re==null||re(_e,_e.currentTarget.value));return}(0,S.K)(_e.key)&&(me==null||me(_e),_e.currentTarget.value=Lo(be),_e.currentTarget.blur())}return(0,t.useEffect)(function(){var _e=Ke.current;if(_e){var We=Lo(be);_e.value!==We&&(_e.value=We),!(!b&&!K)&&setTimeout(function(){_e.focus(),K&&_e.select()},1)}},[]),(0,e.jsxs)(y.az,Oi({className:(0,E.Ly)(["Input",H&&"Input--fluid",ae&&"Input--monospace",U])},Be,{children:[(0,e.jsx)("div",{className:"Input__baseline",children:"."}),(0,e.jsx)("input",{className:"Input__input",disabled:R,maxLength:oe,onBlur:function(_e){return re==null?void 0:re(_e,_e.target.value)},onChange:ze,onKeyDown:en,placeholder:ve,ref:Ke})]}))}var ps=n(52130);function js(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&ga(_,b)}function ga(_,b){return ga=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},ga(_,b)}var Cc=null;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function qt(){return qt=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function js(P){var b=P.animated,L=P.format,U=P.maxValue,B=P.minValue,w=P.onChange,X=P.onDrag,oe=P.step,ie=P.stepPixelSize,re=P.suppressFlicker,ae=P.unclamped,me=P.unit,Ce=P.value,ve=P.bipolar,Me=P.children,be=P.className,Be=P.color,Ke=P.fillValue,ze=P.ranges,en=ze===void 0?{}:ze,_e=P.size,We=_e===void 0?1:_e,Ge=P.style,gn=Pl(P,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unclamped","unit","value","bipolar","children","className","color","fillValue","ranges","size","style"]);return(0,e.jsx)(pa,{dragMatrix:[0,-1],animated:b,format:L,maxValue:U,minValue:B,onChange:w,onDrag:X,step:oe,stepPixelSize:ie,suppressFlicker:re,unclamped:ae,unit:me,value:Ce,children:function(an){var cn=an.displayElement,Re=an.displayValue,sn=an.dragging,ln=an.handleDragStart,pn=an.inputElement,Tn=an.value,et=(0,o.hs)(Ke!=null?Ke:Re,B,U),Bn=(0,o.hs)(Re,B,U),kn=Be||(0,o.TG)(Ke!=null?Ke:Tn,en)||"default",Gt=Math.min((Bn-.5)*270,225);return(0,e.jsxs)("div",qt({className:(0,j.Ly)(["Knob","Knob--color--"+kn,ve&&"Knob--bipolar",be,(0,O.WP)(gn)])},(0,O.Fl)(qt({style:qt({fontSize:We+"em"},Ge)},gn)),{onMouseDown:ln,children:[(0,e.jsx)("div",{className:"Knob__circle",children:(0,e.jsx)("div",{className:"Knob__cursorBox",style:{transform:"rotate("+Gt+"deg)"},children:(0,e.jsx)("div",{className:"Knob__cursor"})})}),sn&&(0,e.jsx)("div",{className:"Knob__popupValue",children:cn}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringTrackPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringTrack",cx:"50",cy:"50",r:"50"})}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringFillPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringFill",style:{strokeDashoffset:Math.max(((ve?2.75:2)-et*1.5)*Math.PI*50,0)},cx:"50",cy:"50",r:"50"})}),pn]}))}})}/** + */function qt(){return qt=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Es(_){var b=_.animated,K=_.format,U=_.maxValue,R=_.minValue,w=_.onChange,H=_.onDrag,oe=_.step,ae=_.stepPixelSize,re=_.suppressFlicker,ie=_.unclamped,me=_.unit,Ce=_.value,ve=_.bipolar,Me=_.children,be=_.className,Be=_.color,Ke=_.fillValue,ze=_.ranges,en=ze===void 0?{}:ze,_e=_.size,We=_e===void 0?1:_e,Ge=_.style,gn=Pl(_,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unclamped","unit","value","bipolar","children","className","color","fillValue","ranges","size","style"]);return(0,e.jsx)(pi,{dragMatrix:[0,-1],animated:b,format:K,maxValue:U,minValue:R,onChange:w,onDrag:H,step:oe,stepPixelSize:ae,suppressFlicker:re,unclamped:ie,unit:me,value:Ce,children:function(an){var cn=an.displayElement,Re=an.displayValue,sn=an.dragging,ln=an.handleDragStart,pn=an.inputElement,An=an.value,et=(0,i.hs)(Ke!=null?Ke:Re,R,U),Bn=(0,i.hs)(Re,R,U),kn=Be||(0,i.TG)(Ke!=null?Ke:An,en)||"default",Gt=Math.min((Bn-.5)*270,225);return(0,e.jsxs)("div",qt({className:(0,E.Ly)(["Knob","Knob--color--"+kn,ve&&"Knob--bipolar",be,(0,y.WP)(gn)])},(0,y.Fl)(qt({style:qt({fontSize:We+"em"},Ge)},gn)),{onMouseDown:ln,children:[(0,e.jsx)("div",{className:"Knob__circle",children:(0,e.jsx)("div",{className:"Knob__cursorBox",style:{transform:"rotate("+Gt+"deg)"},children:(0,e.jsx)("div",{className:"Knob__cursor"})})}),sn&&(0,e.jsx)("div",{className:"Knob__popupValue",children:cn}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringTrackPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringTrack",cx:"50",cy:"50",r:"50"})}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringFillPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringFill",style:{strokeDashoffset:Math.max(((ve?2.75:2)-et*1.5)*Math.PI*50,0)},cx:"50",cy:"50",r:"50"})}),pn]}))}})}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Uo(){return Uo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function ya(P){var b=P.children,L=P.wrap,U=Rn(P,["children","wrap"]);return(0,e.jsx)(Jt,Uo({mx:-.5,wrap:L,align:"stretch",justify:"space-between"},U,{children:b}))}function Ma(P){var b=P.label,L=P.children,U=P.mx,B=U===void 0?1:U,w=Rn(P,["label","children","mx"]);return(0,e.jsx)(Jt.Item,{mx:B,children:(0,e.jsxs)(Jt,Uo({height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},w,{children:[(0,e.jsx)(Jt.Item,{}),(0,e.jsx)(Jt.Item,{children:L}),(0,e.jsx)(Jt.Item,{color:"label",children:b})]}))})}ya.Item=Ma;/** + */function Uo(){return Uo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function yi(_){var b=_.children,K=_.wrap,U=Rn(_,["children","wrap"]);return(0,e.jsx)(Jt,Uo({mx:-.5,wrap:K,align:"stretch",justify:"space-between"},U,{children:b}))}function Mi(_){var b=_.label,K=_.children,U=_.mx,R=U===void 0?1:U,w=Rn(_,["label","children","mx"]);return(0,e.jsx)(Jt.Item,{mx:R,children:(0,e.jsxs)(Jt,Uo({height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},w,{children:[(0,e.jsx)(Jt.Item,{}),(0,e.jsx)(Jt.Item,{children:K}),(0,e.jsx)(Jt.Item,{color:"label",children:b})]}))})}yi.Item=Mi;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var $t=function(P){var b=P.children;return(0,e.jsx)("table",{className:"LabeledList",children:b})},Cs=function(P){var b=P.className,L=P.label,U=P.labelColor,B=U===void 0?"label":U,w=P.labelWrap,X=P.color,oe=P.textAlign,ie=P.buttons,re=P.content,ae=P.children,me=P.verticalAlign,Ce=me===void 0?"baseline":me,ve=P.tooltip,Me;L&&(Me=L,typeof L=="string"&&(Me+=":")),ve!==void 0&&(Me=(0,e.jsx)(st,{content:ve,children:(0,e.jsx)(O.az,{as:"span",style:{borderBottom:"2px dotted rgba(255, 255, 255, 0.8)"},children:Me})}));var be=(0,e.jsx)(O.az,{as:"td",color:B,className:(0,j.Ly)(["LabeledList__cell",!w&&"LabeledList__label--nowrap"]),verticalAlign:Ce,children:Me});return(0,e.jsxs)("tr",{className:(0,j.Ly)(["LabeledList__row",b]),children:[be,(0,e.jsxs)(O.az,{as:"td",color:X,textAlign:oe,className:(0,j.Ly)(["LabeledList__cell","LabeledList__content"]),colSpan:ie?void 0:2,verticalAlign:Ce,children:[re,ae]}),ie&&(0,e.jsx)("td",{className:"LabeledList__cell LabeledList__buttons",children:ie})]})},pi=function(P){var b=P.size?(0,O.zA)(Math.max(0,P.size-1)):0;return(0,e.jsx)("tr",{className:"LabeledList__row",children:(0,e.jsx)("td",{colSpan:3,style:{paddingTop:b,paddingBottom:b},children:(0,e.jsx)(rs,{})})})};$t.Item=Cs,$t.Divider=pi;/** + */var $t=function(_){var b=_.children;return(0,e.jsx)("table",{className:"LabeledList",children:b})},Cs=function(_){var b=_.className,K=_.label,U=_.labelColor,R=U===void 0?"label":U,w=_.labelWrap,H=_.color,oe=_.textAlign,ae=_.buttons,re=_.content,ie=_.children,me=_.verticalAlign,Ce=me===void 0?"baseline":me,ve=_.tooltip,Me;K&&(Me=K,typeof K=="string"&&(Me+=":")),ve!==void 0&&(Me=(0,e.jsx)(st,{content:ve,children:(0,e.jsx)(y.az,{as:"span",style:{borderBottom:"2px dotted rgba(255, 255, 255, 0.8)"},children:Me})}));var be=(0,e.jsx)(y.az,{as:"td",color:R,className:(0,E.Ly)(["LabeledList__cell",!w&&"LabeledList__label--nowrap"]),verticalAlign:Ce,children:Me});return(0,e.jsxs)("tr",{className:(0,E.Ly)(["LabeledList__row",b]),children:[be,(0,e.jsxs)(y.az,{as:"td",color:H,textAlign:oe,className:(0,E.Ly)(["LabeledList__cell","LabeledList__content"]),colSpan:ae?void 0:2,verticalAlign:Ce,children:[re,ie]}),ae&&(0,e.jsx)("td",{className:"LabeledList__cell LabeledList__buttons",children:ae})]})},pa=function(_){var b=_.size?(0,y.zA)(Math.max(0,_.size-1)):0;return(0,e.jsx)("tr",{className:"LabeledList__row",children:(0,e.jsx)("td",{colSpan:3,style:{paddingTop:b,paddingBottom:b},children:(0,e.jsx)(rs,{})})})};$t.Item=Cs,$t.Divider=pa;/** * @file * @copyright 2022 Aleksej Komarov * @license MIT - */function Ar(){return Ar=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function _a(P,b){return _a=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},_a(P,b)}var Il=function(P){"use strict";No(b,P);function b(U){var B;return B=P.call(this,U)||this,B.handleClick=function(w){if(!B.props.menuRef.current){vr.v.log("Menu.handleClick(): No ref");return}B.props.menuRef.current.contains(w.target)?vr.v.log("Menu.handleClick(): Inside"):(vr.v.log("Menu.handleClick(): Outside"),B.props.onOutsideClick())},B}var L=b.prototype;return L.componentWillMount=function(){window.addEventListener("click",this.handleClick)},L.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},L.render=function(){var B=this.props,w=B.width,X=B.children;return(0,e.jsx)("div",{className:"MenuBar__menu",style:{width:w},children:X})},b}(t.Component),Dl=function(P){"use strict";No(b,P);function b(U){var B;return B=P.call(this,U)||this,B.menuRef=(0,t.createRef)(),B}var L=b.prototype;return L.render=function(){var B=this.props,w=B.open,X=B.openWidth,oe=B.children,ie=B.disabled,re=B.display,ae=B.onMouseOver,me=B.onClick,Ce=B.onOutsideClick,ve=Tr(B,["open","openWidth","children","disabled","display","onMouseOver","onClick","onOutsideClick"]),Me=ve.className,be=Tr(ve,["className"]);return(0,e.jsxs)("div",{ref:this.menuRef,children:[(0,e.jsx)(O.az,Ar({className:(0,j.Ly)(["MenuBar__MenuBarButton","MenuBar__font","MenuBar__hover",Me])},be,{onClick:ie?function(){return null}:me,onMouseOver:ae,children:(0,e.jsx)("span",{className:"MenuBar__MenuBarButton-text",children:re})})),w&&(0,e.jsx)(Il,{width:X,menuRef:this.menuRef,onOutsideClick:Ce,children:oe})]})},b}(t.Component),Wo=function(P){var b=P.entry,L=P.children,U=P.openWidth,B=P.display,w=P.setOpenMenuBar,X=P.openMenuBar,oe=P.setOpenOnHover,ie=P.openOnHover,re=P.disabled,ae=P.className;return(0,e.jsx)(Dl,{openWidth:U,display:B,disabled:re,open:X===b,className:ae,onClick:function(){var me=X===b?null:b;w(me),oe(!ie)},onOutsideClick:function(){w(null),oe(!1)},onMouseOver:function(){ie&&w(b)},children:L})},Pa=function(P){var b=P.value,L=P.displayText,U=P.onClick,B=P.checked;return(0,e.jsxs)(O.az,{className:(0,j.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__MenuItemToggle","MenuBar__hover"]),onClick:function(){return U(b)},children:[(0,e.jsx)("div",{className:"MenuBar__MenuItemToggle__check",children:B&&(0,e.jsx)(W,{size:1.3,name:"check"})}),L]})};Wo.MenuItemToggle=Pa;var Ia=function(P){var b=P.value,L=P.displayText,U=P.onClick;return(0,e.jsx)(O.az,{className:(0,j.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__hover"]),onClick:function(){return U(b)},children:L})};Wo.MenuItem=Ia;var Ei=function(){return(0,e.jsx)("div",{className:"MenuBar__Separator"})};Wo.Separator=Ei;var ji=function(P){var b=P.children;return(0,e.jsx)(O.az,{className:"MenuBar",children:b})};ji.Dropdown=Wo;/** + */function Tr(){return Tr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function _i(_,b){return _i=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},_i(_,b)}var Il=function(_){"use strict";No(b,_);function b(U){var R;return R=_.call(this,U)||this,R.handleClick=function(w){if(!R.props.menuRef.current){vr.v.log("Menu.handleClick(): No ref");return}R.props.menuRef.current.contains(w.target)?vr.v.log("Menu.handleClick(): Inside"):(vr.v.log("Menu.handleClick(): Outside"),R.props.onOutsideClick())},R}var K=b.prototype;return K.componentWillMount=function(){window.addEventListener("click",this.handleClick)},K.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},K.render=function(){var R=this.props,w=R.width,H=R.children;return(0,e.jsx)("div",{className:"MenuBar__menu",style:{width:w},children:H})},b}(t.Component),Dl=function(_){"use strict";No(b,_);function b(U){var R;return R=_.call(this,U)||this,R.menuRef=(0,t.createRef)(),R}var K=b.prototype;return K.render=function(){var R=this.props,w=R.open,H=R.openWidth,oe=R.children,ae=R.disabled,re=R.display,ie=R.onMouseOver,me=R.onClick,Ce=R.onOutsideClick,ve=Ar(R,["open","openWidth","children","disabled","display","onMouseOver","onClick","onOutsideClick"]),Me=ve.className,be=Ar(ve,["className"]);return(0,e.jsxs)("div",{ref:this.menuRef,children:[(0,e.jsx)(y.az,Tr({className:(0,E.Ly)(["MenuBar__MenuBarButton","MenuBar__font","MenuBar__hover",Me])},be,{onClick:ae?function(){return null}:me,onMouseOver:ie,children:(0,e.jsx)("span",{className:"MenuBar__MenuBarButton-text",children:re})})),w&&(0,e.jsx)(Il,{width:H,menuRef:this.menuRef,onOutsideClick:Ce,children:oe})]})},b}(t.Component),Wo=function(_){var b=_.entry,K=_.children,U=_.openWidth,R=_.display,w=_.setOpenMenuBar,H=_.openMenuBar,oe=_.setOpenOnHover,ae=_.openOnHover,re=_.disabled,ie=_.className;return(0,e.jsx)(Dl,{openWidth:U,display:R,disabled:re,open:H===b,className:ie,onClick:function(){var me=H===b?null:b;w(me),oe(!ae)},onOutsideClick:function(){w(null),oe(!1)},onMouseOver:function(){ae&&w(b)},children:K})},Pi=function(_){var b=_.value,K=_.displayText,U=_.onClick,R=_.checked;return(0,e.jsxs)(y.az,{className:(0,E.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__MenuItemToggle","MenuBar__hover"]),onClick:function(){return U(b)},children:[(0,e.jsx)("div",{className:"MenuBar__MenuItemToggle__check",children:R&&(0,e.jsx)(W,{size:1.3,name:"check"})}),K]})};Wo.MenuItemToggle=Pi;var Ii=function(_){var b=_.value,K=_.displayText,U=_.onClick;return(0,e.jsx)(y.az,{className:(0,E.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__hover"]),onClick:function(){return U(b)},children:K})};Wo.MenuItem=Ii;var ja=function(){return(0,e.jsx)("div",{className:"MenuBar__Separator"})};Wo.Separator=ja;var Ea=function(_){var b=_.children;return(0,e.jsx)(y.az,{className:"MenuBar",children:b})};Ea.Dropdown=Wo;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function wo(){return wo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Sl(P){var b=P.className,L=P.children,U=P.onEnter,B=Ci(P,["className","children","onEnter"]),w;return U&&(w=function(X){X.key===S._.Enter&&U(X)}),(0,e.jsx)(ts,{onKeyDown:w,children:(0,e.jsx)("div",wo({className:(0,j.Ly)(["Modal",b,(0,O.WP)(B)])},(0,O.Fl)(B),{children:L}))})}var Oi=n(7081);function yi(){return yi=Object.assign||function(P){for(var b=1;b500&&(Ce=500);var ve=re.offsetY-256*me;return ve<-200&&(ve=-200),ve>200&&(ve=200),re.offsetX=Ce,re.offsetY=ve,U.onZoom&&U.onZoom(re.zoom),re})},B}var L=b.prototype;return L.render=function(){var B=(0,Oi.Oc)().config,w=this.state,X=w.dragging,oe=w.offsetX,ie=w.offsetY,re=w.zoom,ae=re===void 0?1:re,me=this.props.children,Ce=(0,os.l)(B.map+"_nanomap_z"+B.mapZLevel+".png"),ve=this.props.zoomScale*ae+"px",Me={width:ve,height:ve,"margin-top":ie+"px","margin-left":oe+"px",overflow:"hidden",position:"relative","background-image":"url("+Ce+")","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:X?"move":"auto"};return(0,e.jsxs)(O.az,{className:"NanoMap__container",children:[(0,e.jsx)(O.az,{style:Me,textAlign:"center",onMouseDown:this.handleDragStart,onClick:this.handleOnClick,children:(0,e.jsx)(O.az,{children:me})}),(0,e.jsx)(Bt,{zoom:ae,onZoom:this.handleZoom})]})},b}(t.Component),Yr=function(P){var b=P.x,L=P.y,U=P.zoom,B=U===void 0?1:U,w=P.icon,X=P.tooltip,oe=P.color,ie=P.onClick,re=function(Ce){Rt(Ce),ie&&ie(Ce)},ae=b*2*B-B-3,me=L*2*B-B-3;return(0,e.jsx)("div",{children:(0,e.jsxs)(O.az,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:me+"px",left:ae+"px",onMouseDown:re,children:[(0,e.jsx)(W,{name:w,color:oe,fontSize:"6px"}),(0,e.jsx)(st,{content:X})]})})};Da.Marker=Yr;var Bt=function(P){var b=(0,Oi.Oc)(),L=b.act,U=b.config,B=b.data;return(0,e.jsx)(O.az,{className:"NanoMap__zoomer",children:(0,e.jsxs)($t,{children:[(0,e.jsx)($t.Item,{label:"Zoom",children:(0,e.jsx)(Lr,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(w){return w+"x"},value:P.zoom,onDrag:function(w,X){return P.onZoom(w,X)}})}),(0,e.jsx)($t.Item,{label:"Z-Level",children:B.map_levels.sort(function(w,X){return Number(w)-Number(X)}).map(function(w){return(0,e.jsx)(Yn,{selected:~~w===~~U.mapZLevel,onClick:function(){L("setZLevel",{mapZLevel:w})},children:w},w)})})]})})};Da.Zoomer=Bt;/** + */function wo(){return wo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Sl(_){var b=_.className,K=_.children,U=_.onEnter,R=Ca(_,["className","children","onEnter"]),w;return U&&(w=function(H){H.key===S._.Enter&&U(H)}),(0,e.jsx)(ts,{onKeyDown:w,children:(0,e.jsx)("div",wo({className:(0,E.Ly)(["Modal",b,(0,y.WP)(R)])},(0,y.Fl)(R),{children:K}))})}var Oa=n(7081);function ya(){return ya=Object.assign||function(_){for(var b=1;b500&&(Ce=500);var ve=re.offsetY-256*me;return ve<-200&&(ve=-200),ve>200&&(ve=200),re.offsetX=Ce,re.offsetY=ve,U.onZoom&&U.onZoom(re.zoom),re})},R}var K=b.prototype;return K.render=function(){var R=(0,Oa.Oc)().config,w=this.state,H=w.dragging,oe=w.offsetX,ae=w.offsetY,re=w.zoom,ie=re===void 0?1:re,me=this.props.children,Ce=(0,os.l)(R.map+"_nanomap_z"+R.mapZLevel+".png"),ve=this.props.zoomScale*ie+"px",Me={width:ve,height:ve,"margin-top":ae+"px","margin-left":oe+"px",overflow:"hidden",position:"relative","background-image":"url("+Ce+")","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:H?"move":"auto"};return(0,e.jsxs)(y.az,{className:"NanoMap__container",children:[(0,e.jsx)(y.az,{style:Me,textAlign:"center",onMouseDown:this.handleDragStart,onClick:this.handleOnClick,children:(0,e.jsx)(y.az,{children:me})}),(0,e.jsx)(Bt,{zoom:ie,onZoom:this.handleZoom})]})},b}(t.Component),Yr=function(_){var b=_.x,K=_.y,U=_.zoom,R=U===void 0?1:U,w=_.icon,H=_.tooltip,oe=_.color,ae=_.onClick,re=function(Ce){Rt(Ce),ae&&ae(Ce)},ie=b*2*R-R-3,me=K*2*R-R-3;return(0,e.jsx)("div",{children:(0,e.jsxs)(y.az,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:me+"px",left:ie+"px",onMouseDown:re,children:[(0,e.jsx)(W,{name:w,color:oe,fontSize:"6px"}),(0,e.jsx)(st,{content:H})]})})};Di.Marker=Yr;var Bt=function(_){var b=(0,Oa.Oc)(),K=b.act,U=b.config,R=b.data;return(0,e.jsx)(y.az,{className:"NanoMap__zoomer",children:(0,e.jsxs)($t,{children:[(0,e.jsx)($t.Item,{label:"Zoom",children:(0,e.jsx)(Lr,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(w){return w+"x"},value:_.zoom,onDrag:function(w,H){return _.onZoom(w,H)}})}),(0,e.jsx)($t.Item,{label:"Z-Level",children:R.map_levels.sort(function(w,H){return Number(w)-Number(H)}).map(function(w){return(0,e.jsx)(Yn,{selected:~~w===~~U.mapZLevel,onClick:function(){K("setZLevel",{mapZLevel:w})},children:w},w)})})]})})};Di.Zoomer=Bt;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Rr(){return Rr=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Mi(P){var b=P.className,L=P.color,U=P.info,B=P.success,w=P.danger,X=P.warning,oe=er(P,["className","color","info","success","danger","warning"]);return(0,e.jsx)(O.az,Rr({className:(0,j.Ly)(["NoticeBox",L&&"NoticeBox--color--"+L,U&&"NoticeBox--type--info",B&&"NoticeBox--type--success",X&&"NoticeBox--type--warning ",w&&"NoticeBox--type--danger",b])},oe))}/** + */function Rr(){return Rr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Ma(_){var b=_.className,K=_.color,U=_.info,R=_.success,w=_.danger,H=_.warning,oe=er(_,["className","color","info","success","danger","warning"]);return(0,e.jsx)(y.az,Rr({className:(0,E.Ly)(["NoticeBox",K&&"NoticeBox--color--"+K,U&&"NoticeBox--type--info",R&&"NoticeBox--type--success",H&&"NoticeBox--type--warning ",w&&"NoticeBox--type--danger",b])},oe))}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function _i(){return _i=Object.assign||function(P){for(var b=1;b0&&(B.setState({suppressingFlicker:!0}),clearTimeout(B.flickerTimer),B.flickerTimer=setTimeout(function(){return B.setState({suppressingFlicker:!1})},ie))},B.handleDragStart=function(X){var oe=B.props,ie=oe.value,re=oe.disabled,ae=B.state.editing;re||ae||(document.body.style["pointer-events"]="none",B.ref=X.target,B.setState({dragging:!1,origin:X.screenY,value:ie,internalValue:ie}),B.timer=setTimeout(function(){B.setState({dragging:!0})},250),B.dragInterval=setInterval(function(){var me=B.state,Ce=me.dragging,ve=me.value,Me=B.props.onDrag;Ce&&Me&&Me(+ve)},B.props.updateRate||$o),document.addEventListener("mousemove",B.handleDragMove),document.addEventListener("mouseup",B.handleDragEnd))},B.handleDragMove=function(X){var oe=B.props,ie=oe.minValue,re=oe.maxValue,ae=oe.step,me=oe.stepPixelSize;B.setState(function(Ce){var ve=_i({},Ce),Me=ve.origin-X.screenY;if(Ce.dragging){var be=Number.isFinite(ie)?ie%ae:0;ve.internalValue=(0,o.qE)(Number(ve.internalValue)+Me*ae/(me||1),ie-ae,re+ae),ve.value=(0,o.qE)(Number(ve.internalValue)-Number(ve.internalValue)%ae+be,ie,re),ve.origin=X.screenY}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},B.handleDragEnd=function(X){var oe=B.props,ie=oe.onChange,re=oe.onDrag,ae=B.state,me=ae.dragging,Ce=ae.value,ve=ae.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(B.timer),clearInterval(B.dragInterval),B.setState({dragging:!1,editing:!me,origin:null}),document.removeEventListener("mousemove",B.handleDragMove),document.removeEventListener("mouseup",B.handleDragEnd),me)B.suppressFlicker(),ie&&ie(+Ce),re&&re(+Ce);else if(B.inputRef){var Me=B.inputRef.current;Me.value=String(ve),setTimeout(function(){Me.focus(),Me.select()},100)}},B}var L=b.prototype;return L.render=function(){var B=this,w=this.state,X=w.dragging,oe=w.editing,ie=w.value,re=w.suppressingFlicker,ae=this.props,me=ae.className,Ce=ae.fluid,ve=ae.animated,Me=ae.value,be=ae.unit,Be=ae.minValue,Ke=ae.maxValue,ze=ae.height,en=ae.width,_e=ae.lineHeight,We=ae.fontSize,Ge=ae.disabled,gn=ae.format,an=ae.onChange,cn=ae.onDrag,Re=Me;(X||re)&&(Re=ie);var sn=(0,e.jsxs)("div",{className:"NumberInput__content",children:[ve&&!X&&!re?(0,e.jsx)(l,{value:+Re,format:gn}):gn?gn(+Re):Re,be?" "+be:""]});return(0,e.jsxs)(O.az,{className:(0,j.Ly)(["NumberInput",Ce&&"NumberInput--fluid",me]),minWidth:en,minHeight:ze,lineHeight:_e,fontSize:We,onMouseDown:this.handleDragStart,children:[(0,e.jsx)("div",{className:"NumberInput__barContainer",children:(0,e.jsx)("div",{className:"NumberInput__bar",style:{height:(0,o.qE)((+Re-Be)/(Ke-Be)*100,0,100)+"%"}})}),sn,(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:ze,lineHeight:_e,fontSize:We},onBlur:function(ln){if(oe){var pn=(0,o.qE)(parseFloat(ln.target.value),Be,Ke);if(Number.isNaN(pn)){B.setState({editing:!1});return}B.setState({editing:!1,value:pn}),B.suppressFlicker(),an&&an(pn),cn&&cn(pn)}},onKeyDown:function(ln){if(!Ge){if(ln.key===S._.Enter){var pn=ln.target,Tn=(0,o.qE)(parseFloat(pn.value),Be,Ke);if(Number.isNaN(Tn)){B.setState({editing:!1});return}B.setState({editing:!1,value:Tn}),B.suppressFlicker(),an&&an(Tn),cn&&cn(Tn);return}if((0,S.K)(ln.key)){B.setState({editing:!1});return}}}})]})},b}(t.Component),ko=n(6544);function Fo(){return Fo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function bn(P,b){return bn=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},bn(P,b)}var An=0,rr=1e4,qn=function(P,b,L,U){var B=b||An,w=L||L===0?L:rr,X=U?P.replace(/[^\-\d.]/g,""):P.replace(/[^\-\d]/g,"");return U&&(X=Jr(X,B),X=ot(".",X)),b<0?(X=Br(X),X=ot("-",X)):X=X.replaceAll("-",""),B<=1&&w>=0?lt(X,B,w,U):X},lt=function(P,b,L,U){var B=U?parseFloat(P):parseInt(P,10);if(!isNaN(B)&&(P.slice(-1)!=="."||B0?(P=P.replace("-",""),b="-".concat(P)):L===0&&P.indexOf("-",L+1)>0&&(b=P.replaceAll("-","")),b},Jr=function(P,b){var L=P,U=Math.sign(b)*Math.floor(Math.abs(b));return P.indexOf(".")===0?L=String(U).concat(P):P.indexOf("-")===0&&P.indexOf(".")===1&&(L=U+".".concat(P.slice(2))),L},ot=function(P,b){var L=b.indexOf(P),U=b.length,B=b;if(L!==-1&&L0&&(R.setState({suppressingFlicker:!0}),clearTimeout(R.flickerTimer),R.flickerTimer=setTimeout(function(){return R.setState({suppressingFlicker:!1})},ae))},R.handleDragStart=function(H){var oe=R.props,ae=oe.value,re=oe.disabled,ie=R.state.editing;re||ie||(document.body.style["pointer-events"]="none",R.ref=H.target,R.setState({dragging:!1,origin:H.screenY,value:ae,internalValue:ae}),R.timer=setTimeout(function(){R.setState({dragging:!0})},250),R.dragInterval=setInterval(function(){var me=R.state,Ce=me.dragging,ve=me.value,Me=R.props.onDrag;Ce&&Me&&Me(+ve)},R.props.updateRate||$o),document.addEventListener("mousemove",R.handleDragMove),document.addEventListener("mouseup",R.handleDragEnd))},R.handleDragMove=function(H){var oe=R.props,ae=oe.minValue,re=oe.maxValue,ie=oe.step,me=oe.stepPixelSize;R.setState(function(Ce){var ve=_a({},Ce),Me=ve.origin-H.screenY;if(Ce.dragging){var be=Number.isFinite(ae)?ae%ie:0;ve.internalValue=(0,i.qE)(Number(ve.internalValue)+Me*ie/(me||1),ae-ie,re+ie),ve.value=(0,i.qE)(Number(ve.internalValue)-Number(ve.internalValue)%ie+be,ae,re),ve.origin=H.screenY}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},R.handleDragEnd=function(H){var oe=R.props,ae=oe.onChange,re=oe.onDrag,ie=R.state,me=ie.dragging,Ce=ie.value,ve=ie.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(R.timer),clearInterval(R.dragInterval),R.setState({dragging:!1,editing:!me,origin:null}),document.removeEventListener("mousemove",R.handleDragMove),document.removeEventListener("mouseup",R.handleDragEnd),me)R.suppressFlicker(),ae&&ae(+Ce),re&&re(+Ce);else if(R.inputRef){var Me=R.inputRef.current;Me.value=String(ve),setTimeout(function(){Me.focus(),Me.select()},100)}},R}var K=b.prototype;return K.render=function(){var R=this,w=this.state,H=w.dragging,oe=w.editing,ae=w.value,re=w.suppressingFlicker,ie=this.props,me=ie.className,Ce=ie.fluid,ve=ie.animated,Me=ie.value,be=ie.unit,Be=ie.minValue,Ke=ie.maxValue,ze=ie.height,en=ie.width,_e=ie.lineHeight,We=ie.fontSize,Ge=ie.disabled,gn=ie.format,an=ie.onChange,cn=ie.onDrag,Re=Me;(H||re)&&(Re=ae);var sn=(0,e.jsxs)("div",{className:"NumberInput__content",children:[ve&&!H&&!re?(0,e.jsx)(l,{value:+Re,format:gn}):gn?gn(+Re):Re,be?" "+be:""]});return(0,e.jsxs)(y.az,{className:(0,E.Ly)(["NumberInput",Ce&&"NumberInput--fluid",me]),minWidth:en,minHeight:ze,lineHeight:_e,fontSize:We,onMouseDown:this.handleDragStart,children:[(0,e.jsx)("div",{className:"NumberInput__barContainer",children:(0,e.jsx)("div",{className:"NumberInput__bar",style:{height:(0,i.qE)((+Re-Be)/(Ke-Be)*100,0,100)+"%"}})}),sn,(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:ze,lineHeight:_e,fontSize:We},onBlur:function(ln){if(oe){var pn=(0,i.qE)(parseFloat(ln.target.value),Be,Ke);if(Number.isNaN(pn)){R.setState({editing:!1});return}R.setState({editing:!1,value:pn}),R.suppressFlicker(),an&&an(pn),cn&&cn(pn)}},onKeyDown:function(ln){if(!Ge){if(ln.key===S._.Enter){var pn=ln.target,An=(0,i.qE)(parseFloat(pn.value),Be,Ke);if(Number.isNaN(An)){R.setState({editing:!1});return}R.setState({editing:!1,value:An}),R.suppressFlicker(),an&&an(An),cn&&cn(An);return}if((0,S.K)(ln.key)){R.setState({editing:!1});return}}}})]})},b}(t.Component),ko=n(6544);function Fo(){return Fo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function bn(_,b){return bn=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},bn(_,b)}var Tn=0,rr=1e4,qn=function(_,b,K,U){var R=b||Tn,w=K||K===0?K:rr,H=U?_.replace(/[^\-\d.]/g,""):_.replace(/[^\-\d]/g,"");return U&&(H=Jr(H,R),H=ot(".",H)),b<0?(H=Br(H),H=ot("-",H)):H=H.replaceAll("-",""),R<=1&&w>=0?lt(H,R,w,U):H},lt=function(_,b,K,U){var R=U?parseFloat(_):parseInt(_,10);if(!isNaN(R)&&(_.slice(-1)!=="."||R0?(_=_.replace("-",""),b="-".concat(_)):K===0&&_.indexOf("-",K+1)>0&&(b=_.replaceAll("-","")),b},Jr=function(_,b){var K=_,U=Math.sign(b)*Math.floor(Math.abs(b));return _.indexOf(".")===0?K=String(U).concat(_):_.indexOf("-")===0&&_.indexOf(".")===1&&(K=U+".".concat(_.slice(2))),K},ot=function(_,b){var K=b.indexOf(_),U=b.length,R=b;if(K!==-1&&K=0)&&(L[B]=P[B]);return L}var Tl=function(P){var b=P.value,L=P.minValue,U=L===void 0?1:L,B=P.maxValue,w=B===void 0?1:B,X=P.ranges,oe=P.alertAfter,ie=P.alertBefore,re=P.format,ae=P.size,me=ae===void 0?1:ae,Ce=P.className,ve=P.style,Me=Sa(P,["value","minValue","maxValue","ranges","alertAfter","alertBefore","format","size","className","style"]),be=scale(b,U,w),Be=clamp01(be),Ke=X?{}:{primary:[0,1]};X&&Object.keys(X).forEach(function(_e){var We=X[_e];Ke[_e]=[scale(We[0],U,w),scale(We[1],U,w)]});var ze=function(){if(oe&&ie&&oeb)return!0}else if(oeb)return!0;return!1},en=ze()&&keyOfMatchingRange(Be,Ke);return _jsxs(Box,{inline:!0,children:[_jsx("div",qr({className:classes(["RoundGauge",Ce,computeBoxClassName(Me)])},computeBoxProps(qr({style:qr({fontSize:me+"em"},ve)},Me)),{children:_jsxs("svg",{viewBox:"0 0 100 50",children:[(oe||ie)&&_jsx("g",{className:classes(["RoundGauge__alert",en?"active RoundGauge__alert--"+en:""]),children:_jsx("path",{d:"M48.211,14.578C48.55,13.9 49.242,13.472 50,13.472C50.758,13.472 51.45,13.9 51.789,14.578C54.793,20.587 60.795,32.589 63.553,38.106C63.863,38.726 63.83,39.462 63.465,40.051C63.101,40.641 62.457,41 61.764,41C55.996,41 44.004,41 38.236,41C37.543,41 36.899,40.641 36.535,40.051C36.17,39.462 36.137,38.726 36.447,38.106C39.205,32.589 45.207,20.587 48.211,14.578ZM50,34.417C51.426,34.417 52.583,35.574 52.583,37C52.583,38.426 51.426,39.583 50,39.583C48.574,39.583 47.417,38.426 47.417,37C47.417,35.574 48.574,34.417 50,34.417ZM50,32.75C50,32.75 53,31.805 53,22.25C53,20.594 51.656,19.25 50,19.25C48.344,19.25 47,20.594 47,22.25C47,31.805 50,32.75 50,32.75Z"})}),_jsx("g",{children:_jsx("circle",{className:"RoundGauge__ringTrack",cx:"50",cy:"50",r:"45"})}),_jsx("g",{children:Object.keys(Ke).map(function(_e,We){var Ge=Ke[_e];return _jsx("circle",{className:"RoundGauge__ringFill RoundGauge--color--"+_e,style:{strokeDashoffset:Math.max((2-(Ge[1]-Ge[0]))*Math.PI*50,0)},transform:"rotate("+(180+180*Ge[0])+" 50 50)",cx:"50",cy:"50",r:"45"},We)})}),_jsxs("g",{className:"RoundGauge__needle",transform:"rotate("+(Be*180-90)+" 50 50)",children:[_jsx("polygon",{className:"RoundGauge__needleLine",points:"46,50 50,0 54,50"}),_jsx("circle",{className:"RoundGauge__needleMiddle",cx:"50",cy:"50",r:"8"})]})]})})),_jsx(AnimatedNumber,{value:b,format:re,size:me})]})},kt=n(37912);/** + */function qr(){return qr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var Al=function(_){var b=_.value,K=_.minValue,U=K===void 0?1:K,R=_.maxValue,w=R===void 0?1:R,H=_.ranges,oe=_.alertAfter,ae=_.alertBefore,re=_.format,ie=_.size,me=ie===void 0?1:ie,Ce=_.className,ve=_.style,Me=Si(_,["value","minValue","maxValue","ranges","alertAfter","alertBefore","format","size","className","style"]),be=scale(b,U,w),Be=clamp01(be),Ke=H?{}:{primary:[0,1]};H&&Object.keys(H).forEach(function(_e){var We=H[_e];Ke[_e]=[scale(We[0],U,w),scale(We[1],U,w)]});var ze=function(){if(oe&&ae&&oeb)return!0}else if(oeb)return!0;return!1},en=ze()&&keyOfMatchingRange(Be,Ke);return _jsxs(Box,{inline:!0,children:[_jsx("div",qr({className:classes(["RoundGauge",Ce,computeBoxClassName(Me)])},computeBoxProps(qr({style:qr({fontSize:me+"em"},ve)},Me)),{children:_jsxs("svg",{viewBox:"0 0 100 50",children:[(oe||ae)&&_jsx("g",{className:classes(["RoundGauge__alert",en?"active RoundGauge__alert--"+en:""]),children:_jsx("path",{d:"M48.211,14.578C48.55,13.9 49.242,13.472 50,13.472C50.758,13.472 51.45,13.9 51.789,14.578C54.793,20.587 60.795,32.589 63.553,38.106C63.863,38.726 63.83,39.462 63.465,40.051C63.101,40.641 62.457,41 61.764,41C55.996,41 44.004,41 38.236,41C37.543,41 36.899,40.641 36.535,40.051C36.17,39.462 36.137,38.726 36.447,38.106C39.205,32.589 45.207,20.587 48.211,14.578ZM50,34.417C51.426,34.417 52.583,35.574 52.583,37C52.583,38.426 51.426,39.583 50,39.583C48.574,39.583 47.417,38.426 47.417,37C47.417,35.574 48.574,34.417 50,34.417ZM50,32.75C50,32.75 53,31.805 53,22.25C53,20.594 51.656,19.25 50,19.25C48.344,19.25 47,20.594 47,22.25C47,31.805 50,32.75 50,32.75Z"})}),_jsx("g",{children:_jsx("circle",{className:"RoundGauge__ringTrack",cx:"50",cy:"50",r:"45"})}),_jsx("g",{children:Object.keys(Ke).map(function(_e,We){var Ge=Ke[_e];return _jsx("circle",{className:"RoundGauge__ringFill RoundGauge--color--"+_e,style:{strokeDashoffset:Math.max((2-(Ge[1]-Ge[0]))*Math.PI*50,0)},transform:"rotate("+(180+180*Ge[0])+" 50 50)",cx:"50",cy:"50",r:"45"},We)})}),_jsxs("g",{className:"RoundGauge__needle",transform:"rotate("+(Be*180-90)+" 50 50)",children:[_jsx("polygon",{className:"RoundGauge__needleLine",points:"46,50 50,0 54,50"}),_jsx("circle",{className:"RoundGauge__needleMiddle",cx:"50",cy:"50",r:"8"})]})]})})),_jsx(AnimatedNumber,{value:b,format:re,size:me})]})},kt=n(37912);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function eo(){return eo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ys=function(P){var b=P.buttons,L=P.children,U=P.className,B=P.fill,w=P.fitted,X=P.onScroll,oe=P.scrollable,ie=P.scrollableHorizontal,re=P.title,ae=P.container_id,me=P.flexGrow,Ce=P.noTopPadding,ve=P.stretchContents,Me=Pi(P,["buttons","children","className","fill","fitted","onScroll","scrollable","scrollableHorizontal","title","container_id","flexGrow","noTopPadding","stretchContents"]),be=(0,t.useRef)(null),Be=(0,j.b5)(re)||(0,j.b5)(b);return(0,t.useEffect)(function(){if(be!=null&&be.current&&!(!oe&&!ie)){var Ke=be.current;return(0,kt.tk)(Ke),function(){Ke&&(0,kt.WK)(Ke)}}},[]),(0,e.jsxs)("div",eo({id:ae||"",className:(0,j.Ly)(["Section",B&&"Section--fill",w&&"Section--fitted",oe&&"Section--scrollable",ie&&"Section--scrollableHorizontal",me&&"Section--flex",U,(0,O.WP)(Me)])},(0,O.Fl)(Me),{children:[Be&&(0,e.jsxs)("div",{className:"Section__title",children:[(0,e.jsx)("span",{className:"Section__titleText",children:re}),(0,e.jsx)("div",{className:"Section__buttons",children:b})]}),(0,e.jsx)("div",{className:"Section__rest",children:(0,e.jsx)("div",{className:(0,j.Ly)(["Section__content",!!ve&&"Section__content--stretchContents",!!Ce&&"Section__content--noTopPadding"]),onScroll:X,ref:be,children:L})})]}))};/** + */function eo(){return eo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ys=function(_){var b=_.buttons,K=_.children,U=_.className,R=_.fill,w=_.fitted,H=_.onScroll,oe=_.scrollable,ae=_.scrollableHorizontal,re=_.title,ie=_.container_id,me=_.flexGrow,Ce=_.noTopPadding,ve=_.stretchContents,Me=Pa(_,["buttons","children","className","fill","fitted","onScroll","scrollable","scrollableHorizontal","title","container_id","flexGrow","noTopPadding","stretchContents"]),be=(0,t.useRef)(null),Be=(0,E.b5)(re)||(0,E.b5)(b);return(0,t.useEffect)(function(){if(be!=null&&be.current&&!(!oe&&!ae)){var Ke=be.current;return(0,kt.tk)(Ke),function(){Ke&&(0,kt.WK)(Ke)}}},[]),(0,e.jsxs)("div",eo({id:ie||"",className:(0,E.Ly)(["Section",R&&"Section--fill",w&&"Section--fitted",oe&&"Section--scrollable",ae&&"Section--scrollableHorizontal",me&&"Section--flex",U,(0,y.WP)(Me)])},(0,y.Fl)(Me),{children:[Be&&(0,e.jsxs)("div",{className:"Section__title",children:[(0,e.jsx)("span",{className:"Section__titleText",children:re}),(0,e.jsx)("div",{className:"Section__buttons",children:b})]}),(0,e.jsx)("div",{className:"Section__rest",children:(0,e.jsx)("div",{className:(0,E.Ly)(["Section__content",!!ve&&"Section__content--stretchContents",!!Ce&&"Section__content--noTopPadding"]),onScroll:H,ref:be,children:K})})]}))};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Ii(){return Ii=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Lr(P){var b=P.animated,L=P.format,U=P.maxValue,B=P.minValue,w=P.onChange,X=P.onDrag,oe=P.step,ie=P.stepPixelSize,re=P.suppressFlicker,ae=P.unit,me=P.value,Ce=P.className,ve=P.fillValue,Me=P.color,be=P.ranges,Be=be===void 0?{}:be,Ke=P.children,ze=yr(P,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),en=Ke!==void 0;return(0,e.jsx)(pa,{dragMatrix:[1,0],animated:b,format:L,maxValue:U,minValue:B,onChange:w,onDrag:X,step:oe,stepPixelSize:ie,suppressFlicker:re,unit:ae,value:me,children:function(_e){var We=_e.displayElement,Ge=_e.displayValue,gn=_e.dragging,an=_e.handleDragStart,cn=_e.inputElement,Re=_e.value,sn=ve!=null,ln=(0,o.hs)(ve!=null?ve:Ge,B,U),pn=(0,o.hs)(Ge,B,U),Tn=Me||(0,o.TG)(ve!=null?ve:Re,Be)||"default";return(0,e.jsxs)("div",Ii({className:(0,j.Ly)(["Slider","ProgressBar","ProgressBar--color--"+Tn,Ce,(0,O.WP)(ze)])},(0,O.Fl)(ze),{onMouseDown:an,children:[(0,e.jsx)("div",{className:(0,j.Ly)(["ProgressBar__fill",sn&&"ProgressBar__fill--animated"]),style:{width:(0,o.J$)(ln)*100+"%",opacity:.4}}),(0,e.jsx)("div",{className:"ProgressBar__fill",style:{width:(0,o.J$)(Math.min(ln,pn))*100+"%"}}),(0,e.jsxs)("div",{className:"Slider__cursorOffset",style:{width:(0,o.J$)(pn)*100+"%"},children:[(0,e.jsx)("div",{className:"Slider__cursor"}),(0,e.jsx)("div",{className:"Slider__pointer"}),gn&&(0,e.jsx)("div",{className:"Slider__popupValue",children:We})]}),(0,e.jsx)("div",{className:"ProgressBar__content",children:en?Ke:We}),cn]}))}})}var Vo=function(P){return _jsxs(Box,{style:P.style,children:[_jsxs(Box,{className:"Section__title",style:P.titleStyle,children:[_jsx(Box,{className:"Section__titleText",style:P.textStyle,children:P.title}),_jsx("div",{className:"Section__buttons",children:P.titleSubtext})]}),_jsx(Box,{className:"Section__rest",children:_jsx(Box,{className:"Section__content",children:P.children})})]})};/** + */function Ia(){return Ia=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Lr(_){var b=_.animated,K=_.format,U=_.maxValue,R=_.minValue,w=_.onChange,H=_.onDrag,oe=_.step,ae=_.stepPixelSize,re=_.suppressFlicker,ie=_.unit,me=_.value,Ce=_.className,ve=_.fillValue,Me=_.color,be=_.ranges,Be=be===void 0?{}:be,Ke=_.children,ze=yr(_,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),en=Ke!==void 0;return(0,e.jsx)(pi,{dragMatrix:[1,0],animated:b,format:K,maxValue:U,minValue:R,onChange:w,onDrag:H,step:oe,stepPixelSize:ae,suppressFlicker:re,unit:ie,value:me,children:function(_e){var We=_e.displayElement,Ge=_e.displayValue,gn=_e.dragging,an=_e.handleDragStart,cn=_e.inputElement,Re=_e.value,sn=ve!=null,ln=(0,i.hs)(ve!=null?ve:Ge,R,U),pn=(0,i.hs)(Ge,R,U),An=Me||(0,i.TG)(ve!=null?ve:Re,Be)||"default";return(0,e.jsxs)("div",Ia({className:(0,E.Ly)(["Slider","ProgressBar","ProgressBar--color--"+An,Ce,(0,y.WP)(ze)])},(0,y.Fl)(ze),{onMouseDown:an,children:[(0,e.jsx)("div",{className:(0,E.Ly)(["ProgressBar__fill",sn&&"ProgressBar__fill--animated"]),style:{width:(0,i.J$)(ln)*100+"%",opacity:.4}}),(0,e.jsx)("div",{className:"ProgressBar__fill",style:{width:(0,i.J$)(Math.min(ln,pn))*100+"%"}}),(0,e.jsxs)("div",{className:"Slider__cursorOffset",style:{width:(0,i.J$)(pn)*100+"%"},children:[(0,e.jsx)("div",{className:"Slider__cursor"}),(0,e.jsx)("div",{className:"Slider__pointer"}),gn&&(0,e.jsx)("div",{className:"Slider__popupValue",children:We})]}),(0,e.jsx)("div",{className:"ProgressBar__content",children:en?Ke:We}),cn]}))}})}var Vo=function(_){return _jsxs(Box,{style:_.style,children:[_jsxs(Box,{className:"Section__title",style:_.titleStyle,children:[_jsx(Box,{className:"Section__titleText",style:_.textStyle,children:_.title}),_jsx("div",{className:"Section__buttons",children:_.titleSubtext})]}),_jsx(Box,{className:"Section__rest",children:_jsx(Box,{className:"Section__content",children:_.children})})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Ur(){return Ur=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ht=function(P){var b=P.className,L=P.vertical,U=P.fill,B=P.fluid,w=P.children,X=Go(P,["className","vertical","fill","fluid","children"]);return(0,e.jsx)("div",Ur({className:(0,j.Ly)(["Tabs",L?"Tabs--vertical":"Tabs--horizontal",U&&"Tabs--fill",B&&"Tabs--fluid",b,(0,O.WP)(X)])},(0,O.Fl)(X),{children:w}))},Ot=function(P){var b=P.className,L=P.selected,U=P.color,B=P.icon,w=P.iconSpin,X=P.leftSlot,oe=P.rightSlot,ie=P.children,re=P.onClick,ae=Go(P,["className","selected","color","icon","iconSpin","leftSlot","rightSlot","children","onClick"]),me=function(Ce){re&&(re(Ce),Ce.target.blur())};return(0,e.jsxs)("div",Ur({className:(0,j.Ly)(["Tab","Tabs__Tab","Tab--color--"+U,L&&"Tab--selected",b,(0,O.WP)(ae)]),onClick:me},(0,O.Fl)(ae),{children:[(0,j.b5)(X)&&(0,e.jsx)("div",{className:"Tab__left",children:X})||!!B&&(0,e.jsx)("div",{className:"Tab__left",children:(0,e.jsx)(W,{name:B,spin:w})}),(0,e.jsx)("div",{className:"Tab__text",children:ie}),(0,j.b5)(oe)&&(0,e.jsx)("div",{className:"Tab__right",children:oe})]}))};ht.Tab=Ot;/** + */function Ur(){return Ur=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ht=function(_){var b=_.className,K=_.vertical,U=_.fill,R=_.fluid,w=_.children,H=Go(_,["className","vertical","fill","fluid","children"]);return(0,e.jsx)("div",Ur({className:(0,E.Ly)(["Tabs",K?"Tabs--vertical":"Tabs--horizontal",U&&"Tabs--fill",R&&"Tabs--fluid",b,(0,y.WP)(H)])},(0,y.Fl)(H),{children:w}))},Ot=function(_){var b=_.className,K=_.selected,U=_.color,R=_.icon,w=_.iconSpin,H=_.leftSlot,oe=_.rightSlot,ae=_.children,re=_.onClick,ie=Go(_,["className","selected","color","icon","iconSpin","leftSlot","rightSlot","children","onClick"]),me=function(Ce){re&&(re(Ce),Ce.target.blur())};return(0,e.jsxs)("div",Ur({className:(0,E.Ly)(["Tab","Tabs__Tab","Tab--color--"+U,K&&"Tab--selected",b,(0,y.WP)(ie)]),onClick:me},(0,y.Fl)(ie),{children:[(0,E.b5)(H)&&(0,e.jsx)("div",{className:"Tab__left",children:H})||!!R&&(0,e.jsx)("div",{className:"Tab__left",children:(0,e.jsx)(W,{name:R,spin:w})}),(0,e.jsx)("div",{className:"Tab__text",children:ae}),(0,E.b5)(oe)&&(0,e.jsx)("div",{className:"Tab__right",children:oe})]}))};ht.Tab=Ot;/** * @file * @copyright 2020 Aleksej Komarov * @author Warlockd * @license MIT - */function or(){return or=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ar=(0,t.forwardRef)(function(P,b){var L=P.autoFocus,U=P.autoSelect,B=P.displayedValue,w=P.dontUseTabForIndent,X=P.maxLength,oe=P.noborder,ie=P.onChange,re=P.onEnter,ae=P.onEscape,me=P.onInput,Ce=P.placeholder,ve=P.scrollbar,Me=P.selfClear,be=P.value,Be=Ft(P,["autoFocus","autoSelect","displayedValue","dontUseTabForIndent","maxLength","noborder","onChange","onEnter","onEscape","onInput","placeholder","scrollbar","selfClear","value"]),Ke=Be.className,ze=Be.fluid,en=Be.nowrap,_e=Ft(Be,["className","fluid","nowrap"]),We=(0,t.useRef)(null),Ge=(0,t.useState)(0),gn=Ge[0],an=Ge[1],cn=function(Re){if(Re.key===S._.Enter){if(Re.shiftKey){Re.currentTarget.focus();return}re==null||re(Re,Re.currentTarget.value),Me&&(Re.currentTarget.value=""),Re.currentTarget.blur();return}if((0,S.K)(Re.key)){ae==null||ae(Re),Me?Re.currentTarget.value="":(Re.currentTarget.value=Lo(be),Re.currentTarget.blur());return}if(!w&&Re.key===S._.Tab){Re.preventDefault();var sn=Re.currentTarget,ln=sn.value,pn=sn.selectionStart,Tn=sn.selectionEnd;Re.currentTarget.value=ln.substring(0,pn)+" "+ln.substring(Tn),Re.currentTarget.selectionEnd=pn+1}};return(0,t.useImperativeHandle)(b,function(){return We.current}),(0,t.useEffect)(function(){if(!(!L&&!U)){var Re=We.current;Re&&(L||U)&&setTimeout(function(){Re.focus(),U&&Re.select()},1)}},[]),(0,t.useEffect)(function(){var Re=We.current;if(Re){var sn=Lo(be);Re.value!==sn&&(Re.value=sn)}},[be]),(0,e.jsxs)(O.az,or({className:(0,j.Ly)(["TextArea",ze&&"TextArea--fluid",oe&&"TextArea--noborder",Ke])},_e,{children:[!!B&&(0,e.jsx)("div",{style:{height:"100%",overflow:"hidden",position:"absolute",width:"100%"},children:(0,e.jsx)("div",{className:(0,j.Ly)(["TextArea__textarea","TextArea__textarea_custom"]),style:{transform:"translateY(-"+gn+"px)"},children:B})}),(0,e.jsx)("textarea",{className:(0,j.Ly)(["TextArea__textarea",ve&&"TextArea__textarea--scrollable",en&&"TextArea__nowrap"]),maxLength:X,onBlur:function(Re){return ie==null?void 0:ie(Re,Re.target.value)},onChange:function(Re){return me==null?void 0:me(Re,Re.target.value)},onKeyDown:cn,onScroll:function(){B&&We.current&&an(We.current.scrollTop)},placeholder:Ce,ref:We,style:{color:B?"rgba(0, 0, 0, 0)":"inherit"}})]}))}),no=n(41242);function Rl(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&Ho(P,b)}function Ho(P,b){return Ho=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},Ho(P,b)}var Ms=function(P){return typeof P=="number"&&Number.isFinite(P)&&!Number.isNaN(P)},yt=null;function Mt(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function Nn(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&ba(P,b)}function Vt(P,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](P):P instanceof b}function ba(P,b){return ba=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},ba(P,b)}var Bl=null,_s=function(P){var b=P.children,L=useRef(null),U=useState(1),B=U[0],w=U[1],X=useState(0),oe=X[0],ie=X[1],re=useCallback(function(){var ae=L.current;if(!(!b||!Array.isArray(b)||!ae||B>=b.length)){var me=document.body.offsetHeight-ae.getBoundingClientRect().bottom,Ce=Math.ceil(ae.offsetHeight/B);if(me>0){var ve=Math.min(b.length,B+Math.max(1,Math.ceil(me/Ce)));w(ve),ie((b.length-ve)*Ce)}}},[L,B,b]);return useEffect(function(){re();var ae=setInterval(re,100);return function(){return clearInterval(ae)}},[re]),_jsxs("div",{className:"VirtualList",children:[_jsx("div",{className:"VirtualList__Container",ref:L,children:Array.isArray(b)?b.slice(0,B):null}),_jsx("div",{className:"VirtualList__Padding",style:{paddingBottom:""+oe+"px"}})]})};/** + */function or(){return or=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ir=(0,t.forwardRef)(function(_,b){var K=_.autoFocus,U=_.autoSelect,R=_.displayedValue,w=_.dontUseTabForIndent,H=_.maxLength,oe=_.noborder,ae=_.onChange,re=_.onEnter,ie=_.onEscape,me=_.onInput,Ce=_.placeholder,ve=_.scrollbar,Me=_.selfClear,be=_.value,Be=Ft(_,["autoFocus","autoSelect","displayedValue","dontUseTabForIndent","maxLength","noborder","onChange","onEnter","onEscape","onInput","placeholder","scrollbar","selfClear","value"]),Ke=Be.className,ze=Be.fluid,en=Be.nowrap,_e=Ft(Be,["className","fluid","nowrap"]),We=(0,t.useRef)(null),Ge=(0,t.useState)(0),gn=Ge[0],an=Ge[1],cn=function(Re){if(Re.key===S._.Enter){if(Re.shiftKey){Re.currentTarget.focus();return}re==null||re(Re,Re.currentTarget.value),Me&&(Re.currentTarget.value=""),Re.currentTarget.blur();return}if((0,S.K)(Re.key)){ie==null||ie(Re),Me?Re.currentTarget.value="":(Re.currentTarget.value=Lo(be),Re.currentTarget.blur());return}if(!w&&Re.key===S._.Tab){Re.preventDefault();var sn=Re.currentTarget,ln=sn.value,pn=sn.selectionStart,An=sn.selectionEnd;Re.currentTarget.value=ln.substring(0,pn)+" "+ln.substring(An),Re.currentTarget.selectionEnd=pn+1}};return(0,t.useImperativeHandle)(b,function(){return We.current}),(0,t.useEffect)(function(){if(!(!K&&!U)){var Re=We.current;Re&&(K||U)&&setTimeout(function(){Re.focus(),U&&Re.select()},1)}},[]),(0,t.useEffect)(function(){var Re=We.current;if(Re){var sn=Lo(be);Re.value!==sn&&(Re.value=sn)}},[be]),(0,e.jsxs)(y.az,or({className:(0,E.Ly)(["TextArea",ze&&"TextArea--fluid",oe&&"TextArea--noborder",Ke])},_e,{children:[!!R&&(0,e.jsx)("div",{style:{height:"100%",overflow:"hidden",position:"absolute",width:"100%"},children:(0,e.jsx)("div",{className:(0,E.Ly)(["TextArea__textarea","TextArea__textarea_custom"]),style:{transform:"translateY(-"+gn+"px)"},children:R})}),(0,e.jsx)("textarea",{className:(0,E.Ly)(["TextArea__textarea",ve&&"TextArea__textarea--scrollable",en&&"TextArea__nowrap"]),maxLength:H,onBlur:function(Re){return ae==null?void 0:ae(Re,Re.target.value)},onChange:function(Re){return me==null?void 0:me(Re,Re.target.value)},onKeyDown:cn,onScroll:function(){R&&We.current&&an(We.current.scrollTop)},placeholder:Ce,ref:We,style:{color:R?"rgba(0, 0, 0, 0)":"inherit"}})]}))}),no=n(41242);function Rl(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&Xo(_,b)}function Xo(_,b){return Xo=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Xo(_,b)}var Ms=function(_){return typeof _=="number"&&Number.isFinite(_)&&!Number.isNaN(_)},yt=null;function Mt(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function Nn(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&bi(_,b)}function Vt(_,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](_):_ instanceof b}function bi(_,b){return bi=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},bi(_,b)}var Bl=null,_s=function(_){var b=_.children,K=useRef(null),U=useState(1),R=U[0],w=U[1],H=useState(0),oe=H[0],ae=H[1],re=useCallback(function(){var ie=K.current;if(!(!b||!Array.isArray(b)||!ie||R>=b.length)){var me=document.body.offsetHeight-ie.getBoundingClientRect().bottom,Ce=Math.ceil(ie.offsetHeight/R);if(me>0){var ve=Math.min(b.length,R+Math.max(1,Math.ceil(me/Ce)));w(ve),ae((b.length-ve)*Ce)}}},[K,R,b]);return useEffect(function(){re();var ie=setInterval(re,100);return function(){return clearInterval(ie)}},[re]),_jsxs("div",{className:"VirtualList",children:[_jsx("div",{className:"VirtualList__Container",ref:K,children:Array.isArray(b)?b.slice(0,R):null}),_jsx("div",{className:"VirtualList__Padding",style:{paddingBottom:""+oe+"px"}})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */},79500:function(y,u,n){"use strict";n.d(u,{Ai:function(){return e},Fo:function(){return d},KA:function(){return o},KS:function(){return r},NE:function(){return x},b_:function(){return i},bz:function(){return t},lm:function(){return g},wM:function(){return l}});/** + */},79500:function(O,h,n){"use strict";n.d(h,{Ai:function(){return e},Fo:function(){return u},KA:function(){return i},KS:function(){return r},NE:function(){return x},b_:function(){return a},bz:function(){return t},lm:function(){return g},wM:function(){return l}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=273.15,o=2,t=1,r=0,s=null,g={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},manifest:{command:"#3333FF",security:"#8e0000",medical:"#006600",engineering:"#b27300",science:"#a65ba6",cargo:"#bb9040",planetside:"#555555",civilian:"#a32800",miscellaneous:"#666666",silicon:"#222222"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"},reagent:{acidicbuffer:"#fbc314",basicbuffer:"#3853a4"}},x=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"],d=[{name:"Mercenary",freq:1213,color:"#6D3F40"},{name:"Raider",freq:1277,color:"#6D3F40"},{name:"Special Ops",freq:1341,color:"#5C5C8A"},{name:"AI Private",freq:1343,color:"#FF00FF"},{name:"Response Team",freq:1345,color:"#5C5C8A"},{name:"Supply",freq:1347,color:"#5F4519"},{name:"Service",freq:1349,color:"#6eaa2c"},{name:"Science",freq:1351,color:"#993399"},{name:"Command",freq:1353,color:"#193A7A"},{name:"Medical",freq:1355,color:"#008160"},{name:"Engineering",freq:1357,color:"#A66300"},{name:"Security",freq:1359,color:"#A30000"},{name:"Explorer",freq:1361,color:"#555555"},{name:"Talon",freq:1363,color:"#555555"},{name:"Common",freq:1459,color:"#008000"},{name:"Entertainment",freq:1461,color:"#339966"},{name:"Security(I)",freq:1475,color:"#008000"},{name:"Medical(I)",freq:1485,color:"#008000"}],a=[{id:"oxygen",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"nitrogen",name:"Nitrogen",label:"N\u2082",color:"green"},{id:"carbon_dioxide",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"phoron",name:"Phoron",label:"Phoron",color:"pink"},{id:"volatile_fuel",name:"Volatile Fuel",label:"EXP",color:"teal"},{id:"nitrous_oxide",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"other",name:"Other",label:"Other",color:"white"},{id:"pressure",name:"Pressure",label:"Pressure",color:"average"},{id:"temperature",name:"Temperature",label:"Temperature",color:"yellow"}],l=function(f,m){if(!f)return m||"None";for(var v=f.toLowerCase(),E=f.replace(/(^\w{1})|(\s+\w{1})/g,function(O){return O.toUpperCase()}),j=0;j0&&se[se.length-1])&&(Ee[0]===6||Ee[0]===2)){ge=0;continue}if(Ee[0]===3&&(!se||Ee[1]>se[0]&&Ee[1]je&&(se[ge]=je-V[ge],fe=!0)}return[fe,se]},G=function(Z){var V;x.log("drag start"),i=!0,v=(0,o.Z4)([Z.screenX,Z.screenY],_()),(V=Z.target)==null||V.focus(),document.addEventListener("mousemove",ee),document.addEventListener("mouseup",Y),ee(Z)},Y=function(Z){x.log("drag end"),ee(Z),document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",Y),i=!1,$()},ee=function(Z){i&&(Z.preventDefault(),S((0,o.Z4)([Z.screenX,Z.screenY],v)))},le=function(Z,V){return function(q){var ce;E=[Z,V],x.log("resize start",E),c=!0,v=(0,o.Z4)([q.screenX,q.screenY],_()),j=I(),(ce=q.target)==null||ce.focus(),document.addEventListener("mousemove",Q),document.addEventListener("mouseup",ne),Q(q)}},ne=function(Z){x.log("resize end",O),Q(Z),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ne),c=!1,$()},Q=function(Z){if(c){Z.preventDefault();var V=(0,o.Z4)([Z.screenX,Z.screenY],_()),q=(0,o.Z4)(V,v);O=(0,o.CO)(j,(0,o.tk)(E,q),[1,1]),O[0]=Math.max(O[0],150*a),O[1]=Math.max(O[1],50*a),T(O)}}},37912:function(y,u,n){"use strict";n.d(u,{Nh:function(){return t},WK:function(){return j},tk:function(){return E},y4:function(){return s}});var e=n(47454),o=n(6544);/** + */function r(J,V,te,ce,le,fe,ge){try{var Ie=J[fe](ge),Ee=Ie.value}catch(je){te(je);return}Ie.done?V(Ee):Promise.resolve(Ee).then(ce,le)}function s(J){return function(){var V=this,te=arguments;return new Promise(function(ce,le){var fe=J.apply(V,te);function ge(Ee){r(fe,ce,le,ge,Ie,"next",Ee)}function Ie(Ee){r(fe,ce,le,ge,Ie,"throw",Ee)}ge(void 0)})}}function g(J,V){var te,ce,le,fe,ge={label:0,sent:function(){if(le[0]&1)throw le[1];return le[1]},trys:[],ops:[]};return fe={next:Ie(0),throw:Ie(1),return:Ie(2)},typeof Symbol=="function"&&(fe[Symbol.iterator]=function(){return this}),fe;function Ie(je){return function(Ne){return Ee([je,Ne])}}function Ee(je){if(te)throw new TypeError("Generator is already executing.");for(;ge;)try{if(te=1,ce&&(le=je[0]&2?ce.return:je[0]?ce.throw||((le=ce.return)&&le.call(ce),0):ce.next)&&!(le=le.call(ce,je[1])).done)return le;switch(ce=0,le&&(je=[je[0]&2,le.value]),je[0]){case 0:case 1:le=je;break;case 4:return ge.label++,{value:je[1],done:!1};case 5:ge.label++,ce=je[1],je=[0];continue;case 7:je=ge.ops.pop(),ge.trys.pop();continue;default:if(le=ge.trys,!(le=le.length>0&&le[le.length-1])&&(je[0]===6||je[0]===2)){ge=0;continue}if(je[0]===3&&(!le||je[1]>le[0]&&je[1]Ee&&(le[ge]=Ee-V[ge],fe=!0)}return[fe,le]},G=function(J){var V;x.log("drag start"),a=!0,v=(0,i.Z4)([J.screenX,J.screenY],P()),(V=J.target)==null||V.focus(),document.addEventListener("mousemove",ee),document.addEventListener("mouseup",Q),ee(J)},Q=function(J){x.log("drag end"),ee(J),document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",Q),a=!1,$()},ee=function(J){a&&(J.preventDefault(),S((0,i.Z4)([J.screenX,J.screenY],v)))},se=function(J,V){return function(te){var ce;j=[J,V],x.log("resize start",j),c=!0,v=(0,i.Z4)([te.screenX,te.screenY],P()),E=D(),(ce=te.target)==null||ce.focus(),document.addEventListener("mousemove",Y),document.addEventListener("mouseup",ne),Y(te)}},ne=function(J){x.log("resize end",y),Y(J),document.removeEventListener("mousemove",Y),document.removeEventListener("mouseup",ne),c=!1,$()},Y=function(J){if(c){J.preventDefault();var V=(0,i.Z4)([J.screenX,J.screenY],P()),te=(0,i.Z4)(V,v);y=(0,i.CO)(E,(0,i.tk)(j,te),[1,1]),y[0]=Math.max(y[0],150*o),y[1]=Math.max(y[1],50*o),B(y)}}},37912:function(O,h,n){"use strict";n.d(h,{Nh:function(){return t},WK:function(){return E},tk:function(){return j},y4:function(){return s}});var e=n(47454),i=n(6544);/** * Normalized browser focus events and BYOND-specific focus helpers. * * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var t=new e.b,r=!1,s=function(I){I===void 0&&(I={}),r=!!I.ignoreWindowFocus},g,x=!0,d=function(I,S){if(r){x=!0;return}if(g&&(clearTimeout(g),g=null),S){g=setTimeout(function(){return d(I)});return}x!==I&&(x=I,t.emit(I?"window-focus":"window-blur"),t.emit("window-focus-change",I))},a=null,l=function(I){var S=String(I.tagName).toLowerCase();return S==="input"||S==="textarea"},i=function(I){c(),a=I,a.addEventListener("blur",c)},c=function(){a&&(a.removeEventListener("blur",c),a=null)},f=null,m=null,v=[],E=function(I){v.push(I)},j=function(I){var S=v.indexOf(I);S>=0&&v.splice(S,1)},O=function(I){if(!(a||!x))for(var S=document.body;I&&I!==S;){if(v.includes(I)){if(I.contains(f))return;f=I,I.focus();return}I=I.parentElement}};window.addEventListener("mousemove",function(I){var S=I.target;S!==m&&v.length<2&&(m=S,O(S))}),window.addEventListener("click",function(I){var S=I.target;S!==m&&(m=S,O(S))}),window.addEventListener("focusin",function(I){m=null,f=I.target,d(!0),l(I.target)&&i(I.target)}),window.addEventListener("focusout",function(I){m=null,d(!1,!0)}),window.addEventListener("blur",function(I){m=null,d(!1,!0)}),window.addEventListener("beforeunload",function(I){d(!1)});var M={},_=function(){"use strict";function I(T,A,K){this.event=T,this.type=A,this.code=T.keyCode,this.ctrl=T.ctrlKey,this.shift=T.shiftKey,this.alt=T.altKey,this.repeat=!!K}var S=I.prototype;return S.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},S.isModifierKey=function(){return this.code===o.Ss||this.code===o.re||this.code===o.cH},S.isDown=function(){return this.type==="keydown"},S.isUp=function(){return this.type==="keyup"},S.toString=function(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=o.sV&&this.code<=o.Yw?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)},I}();document.addEventListener("keydown",function(I){if(!l(I.target)){var S=I.keyCode,T=new _(I,"keydown",M[S]);t.emit("keydown",T),t.emit("key",T),M[S]=!0}}),document.addEventListener("keyup",function(I){if(!l(I.target)){var S=I.keyCode,T=new _(I,"keyup");t.emit("keyup",T),t.emit("key",T),M[S]=!1}})},49945:function(y,u,n){"use strict";n.d(u,{$:function(){return e}});/** + */var t=new e.b,r=!1,s=function(D){D===void 0&&(D={}),r=!!D.ignoreWindowFocus},g,x=!0,u=function(D,S){if(r){x=!0;return}if(g&&(clearTimeout(g),g=null),S){g=setTimeout(function(){return u(D)});return}x!==D&&(x=D,t.emit(D?"window-focus":"window-blur"),t.emit("window-focus-change",D))},o=null,l=function(D){var S=String(D.tagName).toLowerCase();return S==="input"||S==="textarea"},a=function(D){c(),o=D,o.addEventListener("blur",c)},c=function(){o&&(o.removeEventListener("blur",c),o=null)},f=null,m=null,v=[],j=function(D){v.push(D)},E=function(D){var S=v.indexOf(D);S>=0&&v.splice(S,1)},y=function(D){if(!(o||!x))for(var S=document.body;D&&D!==S;){if(v.includes(D)){if(D.contains(f))return;f=D,D.focus();return}D=D.parentElement}};window.addEventListener("mousemove",function(D){var S=D.target;S!==m&&v.length<2&&(m=S,y(S))}),window.addEventListener("click",function(D){var S=D.target;S!==m&&(m=S,y(S))}),window.addEventListener("focusin",function(D){m=null,f=D.target,u(!0),l(D.target)&&a(D.target)}),window.addEventListener("focusout",function(D){m=null,u(!1,!0)}),window.addEventListener("blur",function(D){m=null,u(!1,!0)}),window.addEventListener("beforeunload",function(D){u(!1)});var M={},P=function(){"use strict";function D(B,T,L){this.event=B,this.type=T,this.code=B.keyCode,this.ctrl=B.ctrlKey,this.shift=B.shiftKey,this.alt=B.altKey,this.repeat=!!L}var S=D.prototype;return S.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},S.isModifierKey=function(){return this.code===i.Ss||this.code===i.re||this.code===i.cH},S.isDown=function(){return this.type==="keydown"},S.isUp=function(){return this.type==="keyup"},S.toString=function(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=i.sV&&this.code<=i.Yw?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)},D}();document.addEventListener("keydown",function(D){if(!l(D.target)){var S=D.keyCode,B=new P(D,"keydown",M[S]);t.emit("keydown",B),t.emit("key",B),M[S]=!0}}),document.addEventListener("keyup",function(D){if(!l(D.target)){var S=D.keyCode,B=new P(D,"keyup");t.emit("keyup",B),t.emit("key",B),M[S]=!1}})},49945:function(O,h,n){"use strict";n.d(h,{$:function(){return e}});/** * Various focus helpers. * * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(){Byond.winset("mapwindow.map",{focus:!0})},o=function(){Byond.winset(Byond.windowId,{focus:!0})}},41242:function(y,u,n){"use strict";n.d(u,{QL:function(){return t},d5:function(){return r},fU:function(){return a},qQ:function(){return l},up:function(){return s}});/** + */var e=function(){Byond.winset("mapwindow.map",{focus:!0})},i=function(){Byond.winset(Byond.windowId,{focus:!0})}},41242:function(O,h,n){"use strict";n.d(h,{QL:function(){return t},d5:function(){return r},fU:function(){return o},qQ:function(){return l},up:function(){return s}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y","R","Q","F","N","H"],o=e.indexOf(" "),t=function(i,c,f){if(c===void 0&&(c=-o),f===void 0&&(f=""),!isFinite(i))return i.toString();var m=Math.floor(Math.log10(Math.abs(i))),v=Math.max(c*3,m),E=Math.floor(v/3),j=e[Math.min(E+o,e.length-1)],O=i/Math.pow(1e3,E),M=O.toFixed(2);return M.endsWith(".00")?M=M.slice(0,-3):M.endsWith(".0")&&(M=M.slice(0,-2)),(M+" "+j.trim()+f).trim()},r=function(i,c){return c===void 0&&(c=0),t(i,c,"W")},s=function(i,c){if(c===void 0&&(c=0),!Number.isFinite(i))return String(i);var f=Number(i.toFixed(c)),m=f<0,v=Math.abs(f),E=v.toString().split(".");E[0]=E[0].replace(/\B(?=(\d{3})+(?!\d))/g,"\u2009");var j=E.join(".");return m?"-"+j:j},g=function(i){var c=20*Math.log10(i),f=c>=0?"+":"-",m=Math.abs(c);return m===1/0?m="Inf":m=m.toFixed(2),""+f+m+" dB"},x=null,d=function(i,c,f){if(c===void 0&&(c=0),f===void 0&&(f=""),!isFinite(i))return"NaN";var m=Math.floor(Math.log10(i)),v=Math.max(c*3,m),E=Math.floor(v/3),j=x[E],O=i/Math.pow(1e3,E),M=Math.max(0,2-v%3),_=O.toFixed(M);return(_+" "+j+" "+f).trim()},a=function(i,c){c===void 0&&(c="default");var f=Math.floor(i/10),m=Math.floor(f/3600),v=Math.floor(f%3600/60),E=f%60;if(c==="short"){var j=m>0?""+m+"h":"",O=v>0?""+v+"m":"",M=E>0?""+E+"s":"";return""+j+O+M}var _=String(m).padStart(2,"0"),I=String(v).padStart(2,"0"),S=String(E).padStart(2,"0");return _+":"+I+":"+S},l=function(i){if(!Number.isFinite(i))return i;var c=i.toString().split(".");return c[0]=c[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),c.join(".")}},52130:function(y,u,n){"use strict";n.d(u,{Bm:function(){return j}});var e=n(6544),o=n(37912),t=n(92736);/** + */var e=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y","R","Q","F","N","H"],i=e.indexOf(" "),t=function(a,c,f){if(c===void 0&&(c=-i),f===void 0&&(f=""),!isFinite(a))return a.toString();var m=Math.floor(Math.log10(Math.abs(a))),v=Math.max(c*3,m),j=Math.floor(v/3),E=e[Math.min(j+i,e.length-1)],y=a/Math.pow(1e3,j),M=y.toFixed(2);return M.endsWith(".00")?M=M.slice(0,-3):M.endsWith(".0")&&(M=M.slice(0,-2)),(M+" "+E.trim()+f).trim()},r=function(a,c){return c===void 0&&(c=0),t(a,c,"W")},s=function(a,c){if(c===void 0&&(c=0),!Number.isFinite(a))return String(a);var f=Number(a.toFixed(c)),m=f<0,v=Math.abs(f),j=v.toString().split(".");j[0]=j[0].replace(/\B(?=(\d{3})+(?!\d))/g,"\u2009");var E=j.join(".");return m?"-"+E:E},g=function(a){var c=20*Math.log10(a),f=c>=0?"+":"-",m=Math.abs(c);return m===1/0?m="Inf":m=m.toFixed(2),""+f+m+" dB"},x=null,u=function(a,c,f){if(c===void 0&&(c=0),f===void 0&&(f=""),!isFinite(a))return"NaN";var m=Math.floor(Math.log10(a)),v=Math.max(c*3,m),j=Math.floor(v/3),E=x[j],y=a/Math.pow(1e3,j),M=Math.max(0,2-v%3),P=y.toFixed(M);return(P+" "+E+" "+f).trim()},o=function(a,c){c===void 0&&(c="default");var f=Math.floor(a/10),m=Math.floor(f/3600),v=Math.floor(f%3600/60),j=f%60;if(c==="short"){var E=m>0?""+m+"h":"",y=v>0?""+v+"m":"",M=j>0?""+j+"s":"";return""+E+y+M}var P=String(m).padStart(2,"0"),D=String(v).padStart(2,"0"),S=String(j).padStart(2,"0");return P+":"+D+":"+S},l=function(a){if(!Number.isFinite(a))return a;var c=a.toString().split(".");return c[0]=c[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),c.join(".")}},52130:function(O,h,n){"use strict";n.d(h,{Bm:function(){return E}});var e=n(6544),i=n(37912),t=n(92736);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function r(M,_){(_==null||_>M.length)&&(_=M.length);for(var I=0,S=new Array(_);I<_;I++)S[I]=M[I];return S}function s(M,_){if(M){if(typeof M=="string")return r(M,_);var I=Object.prototype.toString.call(M).slice(8,-1);if(I==="Object"&&M.constructor&&(I=M.constructor.name),I==="Map"||I==="Set")return Array.from(I);if(I==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I))return r(M,_)}}function g(M,_){var I=typeof Symbol!="undefined"&&M[Symbol.iterator]||M["@@iterator"];if(I)return(I=I.call(M)).next.bind(I);if(Array.isArray(M)||(I=s(M))||_&&M&&typeof M.length=="number"){I&&(M=I);var S=0;return function(){return S>=M.length?{done:!0}:{done:!1,value:M[S++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var x=(0,t.h)("hotkeys"),d={},a=[e.s6,e.Ri,e.iy,e.aW,e.Ss,e.re,e.gf,e.R,e.iU,e.zh,e.sP],l={},i=[],c=function(M){if(M===16)return"Shift";if(M===17)return"Ctrl";if(M===18)return"Alt";if(M===33)return"Northeast";if(M===34)return"Southeast";if(M===35)return"Southwest";if(M===36)return"Northwest";if(M===37)return"West";if(M===38)return"North";if(M===39)return"East";if(M===40)return"South";if(M===45)return"Insert";if(M===46)return"Delete";if(M>=48&&M<=57||M>=65&&M<=90)return String.fromCharCode(M);if(M>=96&&M<=105)return"Numpad"+(M-96);if(M>=112&&M<=123)return"F"+(M-111);if(M===188)return",";if(M===189)return"-";if(M===190)return"."},f=function(M){var _=String(M);if(_==="Ctrl+F5"||_==="Ctrl+R"){location.reload();return}if(_!=="Ctrl+F"&&!(M.event.defaultPrevented||M.isModifierKey()||a.includes(M.code))){var I=c(M.code);if(I){var S=d[I];if(S)return x.debug("macro",S),Byond.command(S);if(M.isDown()&&!l[I]){l[I]=!0;var T='TguiKeyDown "'+I+'"';return x.debug(T),Byond.command(T)}if(M.isUp()&&l[I]){l[I]=!1;var A='TguiKeyUp "'+I+'"';return x.debug(A),Byond.command(A)}}}},m=function(M){a.push(M)},v=function(M){var _=a.indexOf(M);_>=0&&a.splice(_,1)},E=function(){for(var M=g(Object.keys(l)),_;!(_=M()).done;){var I=_.value;l[I]&&(l[I]=!1,x.log('releasing key "'+I+'"'),Byond.command('TguiKeyUp "'+I+'"'))}},j=function(){Byond.winget("default.*").then(function(M){for(var _={},I=g(Object.keys(M)),S;!(S=I()).done;){var T=S.value,A=T.split("."),K=A[1],W=A[2];K&&W&&(_[K]||(_[K]={}),_[K][W]=M[T])}for(var $=/\\"/g,k=function(le){return le.substring(1,le.length-1).replace($,'"')},z=g(Object.keys(_)),H;!(H=z()).done;){var G=H.value,Y=_[G],ee=k(Y.name);d[ee]=k(Y.command)}x.debug("loaded macros",d)}),o.Nh.on("window-blur",function(){E()}),o.Nh.on("key",function(M){for(var _=g(i),I;!(I=_()).done;){var S=I.value;S(M)}f(M)})},O=function(M){i.push(M);var _=!1;return function(){_||(_=!0,i.splice(i.indexOf(M),1))}}},30705:function(y,u,n){"use strict";n.d(u,{b:function(){return e}});var e=function(o,t,r){return r===void 0&&(r=1e3),fetch(o,t).catch(function(){return new Promise(function(s){setTimeout(function(){e(o,t,r).then(s)},r)})})}},20544:function(y,u,n){"use strict";n.r(u),n.d(u,{AICard:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.name,i=a.has_ai,c=a.integrity,f=a.backup_capacitor,m=a.flushing,v=a.has_laws,E=a.laws,j=a.wireless,O=a.radio;if(i){var M;c>=75?M="green":c>=25?M="yellow":M="red";var _;return f>=75&&(_="green"),f>=25?_="yellow":_="red",(0,e.jsx)(r.p8,{width:600,height:470,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.wn,{title:"Stored AI",children:[(0,e.jsx)(t.az,{bold:!0,inline:!0,children:(0,e.jsx)("h3",{children:l})}),(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsx)(t.z2,{color:M,value:c/100})}),(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.z2,{color:_,value:f/100})})]})}),(0,e.jsx)(t.az,{color:"red",children:(0,e.jsx)("h2",{children:m===1?"Wipe of AI in progress...":""})})]}),(0,e.jsx)(t.wn,{title:"Laws",children:!!v&&(0,e.jsx)(t.az,{children:E.map(function(I,S){return(0,e.jsx)(t.az,{inline:!0,children:I},S)})})||(0,e.jsx)(t.az,{color:"red",children:(0,e.jsx)("h3",{children:"No laws detected."})})}),(0,e.jsx)(t.wn,{title:"Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Wireless Activity",children:(0,e.jsx)(t.$n,{icon:j?"check":"times",color:j?"green":"red",onClick:function(){return d("wireless")},children:j?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"Subspace Transceiver",children:(0,e.jsx)(t.$n,{icon:O?"check":"times",color:O?"green":"red",onClick:function(){return d("radio")},children:O?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"AI Power",children:(0,e.jsx)(t.$n.Confirm,{icon:"radiation",confirmIcon:"radiation",disabled:m||c===0,confirmColor:"red",onClick:function(){return d("wipe")},children:"Shutdown"})})]})})]})})}else return(0,e.jsx)(r.p8,{width:600,height:470,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Stored AI",children:(0,e.jsx)(t.az,{children:(0,e.jsx)("h3",{children:"No AI detected."})})})})})}},43252:function(y,u,n){"use strict";n.r(u),n.d(u,{APC:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(72859),g=n(98071),x=function(f){var m=(0,o.Oc)(),v=m.act,E=m.data,j=E.gridCheck,O=E.failTime,M=(0,e.jsx)(l,{});return j?M=(0,e.jsx)(i,{}):O&&(M=(0,e.jsx)(c,{})),(0,e.jsx)(r.p8,{width:450,height:475,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:M})})},d={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},a={1:{icon:"terminal",content:"Override Programming",action:"hack"}},l=function(f){var m=(0,o.Oc)(),v=m.act,E=m.data,j=E.locked,O=E.siliconUser,M=E.externalPower,_=E.chargingStatus,I=E.powerChannels,S=E.powerCellStatus,T=E.emagged,A=E.isOperating,K=E.chargeMode,W=E.totalCharging,$=E.totalLoad,k=E.coverLocked,z=E.nightshiftSetting,H=E.emergencyLights,G=j&&!O,Y=d[M]||d[0],ee=d[_]||d[0],le=I||[],ne=S/100;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.InterfaceLockNoticeBox,{deny:T,denialMessage:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"bad",fontSize:"1.5rem",children:"Fault in ID authenticator."}),(0,e.jsx)(t.az,{color:"bad",children:"Please contact maintenance for service."})]})}),(0,e.jsx)(t.wn,{title:"Power Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Main Breaker",color:Y.color,buttons:(0,e.jsx)(t.$n,{icon:A?"power-off":"times",selected:A&&!G,color:A?"":"bad",disabled:G,onClick:function(){return v("breaker")},children:A?"On":"Off"}),children:["[ ",Y.externalPowerText," ]"]}),(0,e.jsx)(t.Ki.Item,{label:"Power Cell",children:(0,e.jsx)(t.z2,{color:"good",value:ne})}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Mode",color:ee.color,buttons:(0,e.jsx)(t.$n,{icon:K?"sync":"times",selected:K,disabled:G,onClick:function(){return v("charge")},children:K?"Auto":"Off"}),children:["[ ",ee.chargingText," ]"]})]})}),(0,e.jsx)(t.wn,{title:"Power Channels",children:(0,e.jsxs)(t.Ki,{children:[le.map(function(Q){var Z=Q.topicParams;return(0,e.jsxs)(t.Ki.Item,{label:Q.title,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{inline:!0,mx:2,color:Q.status>=2?"good":"bad",children:Q.status>=2?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"sync",selected:!G&&(Q.status===1||Q.status===3),disabled:G,onClick:function(){return v("channel",Z.auto)},children:"Auto"}),(0,e.jsx)(t.$n,{icon:"power-off",selected:!G&&Q.status===2,disabled:G,onClick:function(){return v("channel",Z.on)},children:"On"}),(0,e.jsx)(t.$n,{icon:"times",selected:!G&&Q.status===0,disabled:G,onClick:function(){return v("channel",Z.off)},children:"Off"})]}),children:[Q.powerLoad," W"]},Q.title)}),(0,e.jsx)(t.Ki.Item,{label:"Total Load",children:W?(0,e.jsxs)("b",{children:[$," W (+ ",W," W charging)"]}):(0,e.jsxs)("b",{children:[$," W"]})})]})}),(0,e.jsx)(t.wn,{title:"Misc",buttons:!!E.siliconUser&&(0,e.jsx)(t.$n,{icon:"lightbulb-o",onClick:function(){return v("overload")},children:"Overload"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Cover Lock",buttons:(0,e.jsx)(t.$n,{icon:k?"lock":"unlock",selected:k,disabled:G,onClick:function(){return v("cover")},children:k?"Engaged":"Disengaged"})}),(0,e.jsx)(t.Ki.Item,{label:"Night Shift Lighting",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===2,onClick:function(){return v("nightshift",{nightshift:2})},children:"Disabled"}),(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===1,onClick:function(){return v("nightshift",{nightshift:1})},children:"Automatic"}),(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===3,onClick:function(){return v("nightshift",{nightshift:3})},children:"Enabled"})]})}),(0,e.jsx)(t.Ki.Item,{label:"Emergency Lighting",buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:H,onClick:function(){return v("emergency_lighting")},children:H?"Enabled":"Disabled"})})]})})]})},i=function(f){return(0,e.jsxs)(s.FullscreenNotice,{title:"System Failure",children:[(0,e.jsx)(t.az,{fontSize:"1.5rem",bold:!0,children:(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"})}),(0,e.jsx)(t.az,{fontSize:"1.5rem",bold:!0,children:"Power surge detected, grid check in effect..."})]})},c=function(f){var m=(0,o.Oc)(),v=m.data,E=m.act,j=v.locked,O=v.siliconUser,M=v.failTime,_=(0,e.jsx)(t.$n,{icon:"repeat",color:"good",onClick:function(){return E("reboot")},children:"Restart Now"});return j&&!O&&(_=(0,e.jsx)(t.az,{color:"bad",children:"Swipe an ID card for manual reboot."})),(0,e.jsxs)(t.Rr,{textAlign:"center",children:[(0,e.jsx)(t.az,{color:"bad",children:(0,e.jsx)("h1",{children:"SYSTEM FAILURE"})}),(0,e.jsx)(t.az,{color:"average",children:(0,e.jsx)("h2",{children:"I/O regulators malfunction detected! Waiting for system reboot..."})}),(0,e.jsxs)(t.az,{color:"good",children:["Automatic reboot in ",M," seconds..."]}),(0,e.jsx)(t.az,{mt:4,children:_})]})}},77056:function(y,u,n){"use strict";n.r(u),n.d(u,{AccountsTerminal:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(l){var i=(0,o.Oc)(),c=i.act,f=i.data,m=f.id_inserted,v=f.id_card,E=f.access_level,j=f.machine_id;return(0,e.jsx)(r.p8,{width:400,height:640,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Machine",color:"average",children:j}),(0,e.jsx)(t.Ki.Item,{label:"ID",children:(0,e.jsx)(t.$n,{icon:m?"eject":"sign-in-alt",fluid:!0,onClick:function(){return c("insert_card")},children:v})})]})}),E>0&&(0,e.jsx)(g,{})]})})},g=function(l){var i=(0,o.Oc)(),c=i.act,f=i.data,m=f.creating_new_account,v=f.detailed_account_view;return(0,e.jsxs)(t.wn,{title:"Menu",children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:!m&&!v,icon:"home",onClick:function(){return c("view_accounts_list")},children:"Home"}),(0,e.jsx)(t.tU.Tab,{selected:!!m,icon:"cog",onClick:function(){return c("create_account")},children:"New Account"}),m?"":(0,e.jsx)(t.tU.Tab,{icon:"print",onClick:function(){return c("print")},children:"Print"})]}),m&&(0,e.jsx)(x,{})||v&&(0,e.jsx)(d,{})||(0,e.jsx)(a,{})]})},x=function(l){var i=(0,o.Oc)().act,c=(0,o.QY)("holder",""),f=c[0],m=c[1],v=(0,o.QY)("money",""),E=v[0],j=v[1];return(0,e.jsxs)(t.wn,{title:"Create Account",children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Account Holder",children:(0,e.jsx)(t.pd,{value:f,fluid:!0,onInput:function(O,M){return m(M)}})}),(0,e.jsx)(t.Ki.Item,{label:"Initial Deposit",children:(0,e.jsx)(t.pd,{value:E,fluid:!0,onInput:function(O,M){return j(M)}})})]}),(0,e.jsx)(t.$n,{disabled:!f||!E,mt:1,fluid:!0,icon:"plus",onClick:function(){return i("finalise_create_account",{holder_name:f,starting_funds:E})},children:"Create"})]})},d=function(l){var i=(0,o.Oc)(),c=i.act,f=i.data,m=f.access_level,v=f.station_account_number,E=f.account_number,j=f.owner_name,O=f.money,M=f.suspended,_=f.transactions;return(0,e.jsxs)(t.wn,{title:"Account Details",buttons:(0,e.jsx)(t.$n,{icon:"ban",selected:M,onClick:function(){return c("toggle_suspension")},children:"Suspend"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Account Number",children:["#",E]}),(0,e.jsx)(t.Ki.Item,{label:"Holder",children:j}),(0,e.jsxs)(t.Ki.Item,{label:"Balance",children:[O,"\u20AE"]}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:M?"bad":"good",children:M?"SUSPENDED":"Active"})]}),(0,e.jsx)(t.wn,{title:"CentCom Administrator",mt:1,children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Payroll",children:(0,e.jsx)(t.$n.Confirm,{color:"bad",fluid:!0,icon:"ban",confirmIcon:"ban",confirmContent:"This cannot be undone.",disabled:E===v,onClick:function(){return c("revoke_payroll")},children:"Revoke"})})})}),m>=2&&(0,e.jsxs)(t.wn,{title:"Silent Funds Transfer",children:[(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return c("add_funds")},children:"Add Funds"}),(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return c("remove_funds")},children:"Remove Funds"})]}),(0,e.jsx)(t.wn,{title:"Transactions",mt:1,children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Timestamp"}),(0,e.jsx)(t.XI.Cell,{children:"Target"}),(0,e.jsx)(t.XI.Cell,{children:"Reason"}),(0,e.jsx)(t.XI.Cell,{children:"Value"}),(0,e.jsx)(t.XI.Cell,{children:"Terminal"})]}),_.map(function(I,S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{children:[I.date," ",I.time]}),(0,e.jsx)(t.XI.Cell,{children:I.target_name}),(0,e.jsx)(t.XI.Cell,{children:I.purpose}),(0,e.jsxs)(t.XI.Cell,{children:[I.amount,"\u20AE"]}),(0,e.jsx)(t.XI.Cell,{children:I.source_terminal})]},S)})]})})]})},a=function(l){var i=(0,o.Oc)(),c=i.act,f=i.data,m=f.accounts;return(0,e.jsx)(t.wn,{title:"NanoTrasen Accounts",children:m.length&&(0,e.jsx)(t.Ki,{children:m.map(function(v){return(0,e.jsx)(t.Ki.Item,{label:v.owner_name+v.suspended,color:v.suspended?"bad":void 0,children:(0,e.jsx)(t.$n,{fluid:!0,onClick:function(){return c("view_account_detail",{account_index:v.account_index})},children:"#"+v.account_number})},v.account_index)})})||(0,e.jsx)(t.az,{color:"bad",children:"There are no accounts available."})})}},16980:function(y,u,n){"use strict";n.r(u),n.d(u,{AdminShuttleController:function(){return g},ShuttleList:function(){return x}});var e=n(20462),o=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(){return(0,e.jsx)(s.p8,{width:600,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(x,{})})})},x=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.shuttles,m=c.overmap_ships;return(0,e.jsxs)(r.wn,{noTopPadding:!0,children:[(0,e.jsx)(r.wn,{title:"Classic Shuttles",children:(0,e.jsx)(r.XI,{children:(0,o.Ul)(f,function(v){return v.name}).map(function(v){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{m:0,onClick:function(){return i("adminobserve",{ref:v.ref})},children:"JMP"})}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{m:0,onClick:function(){return i("classicmove",{ref:v.ref})},children:"Fly"})}),(0,e.jsx)(r.XI.Cell,{children:v.name}),(0,e.jsx)(r.XI.Cell,{children:v.current_location}),(0,e.jsx)(r.XI.Cell,{children:d(v.status)})]},v.ref)})})}),(0,e.jsx)(r.wn,{title:"Overmap Ships",children:(0,e.jsx)(r.XI,{children:(0,o.Ul)(m,function(v){var E;return((E=v.name)==null?void 0:E.toLowerCase())||v.name||v.ref}).map(function(v){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return i("adminobserve",{ref:v.ref})},children:"JMP"})}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return i("overmap_control",{ref:v.ref})},children:"Control"})}),(0,e.jsx)(r.XI.Cell,{children:v.name})]},v.ref)})})})]})},d=function(a){switch(a){case 0:return"Idle";case 1:return"Warmup";case 2:return"Transit";default:return"UNK"}}},15301:function(y,u,n){"use strict";n.r(u),n.d(u,{AdminTicketPanel:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(15581),g={open:"Open",resolved:"Resolved",closed:"Closed",unknown:"Unknown"},x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.id,f=i.title,m=i.name,v=i.state,E=i.opened_at,j=i.closed_at,O=i.opened_at_date,M=i.closed_at_date,_=i.actions,I=i.log;return(0,e.jsx)(s.p8,{width:900,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{title:"Ticket #"+c,buttons:(0,e.jsxs)(r.az,{nowrap:!0,children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return l("retitle")},children:"Rename Ticket"}),(0,e.jsx)(r.$n,{onClick:function(){return l("legacy")},children:"Legacy UI"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Admin Help Ticket",children:["#",c,": ",(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:m}})]}),(0,e.jsx)(r.Ki.Item,{label:"State",children:g[v]}),g[v]===g.open?(0,e.jsx)(r.Ki.Item,{label:"Opened At",children:O+" ("+(0,o.Mg)((0,o.LI)(E/600*10,0)/10,1)+" minutes ago.)"}):(0,e.jsxs)(r.Ki.Item,{label:"Closed At",children:[M+" ("+(0,o.Mg)((0,o.LI)(j/600*10,0)/10,1)+" minutes ago.)",(0,e.jsx)(r.$n,{onClick:function(){return l("reopen")},children:"Reopen"})]}),(0,e.jsx)(r.Ki.Item,{label:"Actions",children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:_}})}),(0,e.jsx)(r.Ki.Item,{label:"Log",children:Object.keys(I).map(function(S,T){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:I[S]}},T)})})]})})})})}},14415:function(y,u,n){"use strict";n.r(u),n.d(u,{AgentCard:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.entries,i=a.electronic_warfare;return(0,e.jsx)(r.p8,{width:550,height:400,theme:"syndicate",children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Info",children:(0,e.jsx)(t.XI,{children:l.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{onClick:function(){return d(c.name.toLowerCase().replace(/ /g,""))},icon:"cog"})}),(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsx)(t.XI.Cell,{children:c.value})]},c.name)})})}),(0,e.jsx)(t.wn,{title:"Electronic Warfare",children:(0,e.jsx)(t.$n.Checkbox,{checked:i,onClick:function(){return d("electronic_warfare")},children:i?"Electronic warfare is enabled. This will prevent you from being tracked by the AI.":"Electronic warfare disabled."})})]})})}},40645:function(y,u,n){"use strict";n.r(u),n.d(u,{AiAirlock:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s={2:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Offline"}},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.power,c=l.wires,f=l.shock,m=l.shock_timeleft,v=l.id_scanner,E=l.lights,j=l.locked,O=l.safe,M=l.speed,_=l.opened,I=l.welded,S=s[i.main]||s[0],T=s[i.backup]||s[0],A=s[f]||s[0];return(0,e.jsx)(r.p8,{width:500,height:390,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Power Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Main",color:S.color,buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",disabled:!i.main,onClick:function(){return a("disrupt-main")},children:"Disrupt"}),children:[i.main?"Online":"Offline"," ",(!c.main_1||!c.main_2)&&"[Wires have been cut!]"||i.main_timeleft>0&&"["+i.main_timeleft+"s]"]}),(0,e.jsxs)(t.Ki.Item,{label:"Backup",color:T.color,buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",disabled:!i.backup,onClick:function(){return a("disrupt-backup")},children:"Disrupt"}),children:[i.backup?"Online":"Offline"," ",(!c.backup_1||!c.backup_2)&&"[Wires have been cut!]"||i.backup_timeleft>0&&"["+i.backup_timeleft+"s]"]}),(0,e.jsxs)(t.Ki.Item,{label:"Electrify",color:A.color,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"wrench",disabled:!(c.shock&&f===0),onClick:function(){return a("shock-restore")},children:"Restore"}),(0,e.jsx)(t.$n,{icon:"bolt",disabled:!c.shock,onClick:function(){return a("shock-temp")},children:"Temporary"}),(0,e.jsx)(t.$n,{icon:"bolt",disabled:!c.shock,onClick:function(){return a("shock-perm")},children:"Permanent"})]}),children:[f===2?"Safe":"Electrified"," ",!c.shock&&"[Wires have been cut!]"||m>0&&"["+m+"s]"||m===-1&&"[Permanent]"]})]})}),(0,e.jsx)(t.wn,{title:"Access and Door Control",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"ID Scan",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:v?"power-off":"times",selected:v,disabled:!c.id_scanner,onClick:function(){return a("idscan-toggle")},children:v?"Enabled":"Disabled"}),children:!c.id_scanner&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Divider,{}),(0,e.jsx)(t.Ki.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:j?"lock":"unlock",selected:j,disabled:!c.bolts,onClick:function(){return a("bolt-toggle")},children:j?"Lowered":"Raised"}),children:!c.bolts&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:E?"power-off":"times",selected:E,disabled:!c.lights,onClick:function(){return a("light-toggle")},children:E?"Enabled":"Disabled"}),children:!c.lights&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:O?"power-off":"times",selected:O,disabled:!c.safe,onClick:function(){return a("safe-toggle")},children:O?"Enabled":"Disabled"}),children:!c.safe&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:M?"power-off":"times",selected:M,disabled:!c.timing,onClick:function(){return a("speed-toggle")},children:M?"Enabled":"Disabled"}),children:!c.timing&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Divider,{}),(0,e.jsx)(t.Ki.Item,{label:"Door Control",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:_?"sign-out-alt":"sign-in-alt",selected:_,disabled:j||I,onClick:function(){return a("open-close")},children:_?"Open":"Closed"}),children:!!(j||I)&&(0,e.jsxs)("span",{children:["[Door is ",j?"bolted":"",j&&I?" and ":"",I?"welded":"","!]"]})})]})})]})})}},89570:function(y,u,n){"use strict";n.r(u),n.d(u,{AiRestorer:function(){return s},AiRestorerContent:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:370,height:360,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.AI_present,c=l.error,f=l.name,m=l.laws,v=l.isDead,E=l.restoring,j=l.health,O=l.ejectable;return(0,e.jsxs)(e.Fragment,{children:[c&&(0,e.jsx)(t.IC,{textAlign:"center",children:c}),!!O&&(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",disabled:!i,onClick:function(){return a("PRG_eject")},children:i?f:"----------"}),!!i&&(0,e.jsxs)(t.wn,{title:O?"System Status":f,buttons:(0,e.jsx)(t.az,{inline:!0,bold:!0,color:v?"bad":"good",children:v?"Nonfunctional":"Functional"}),children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsx)(t.z2,{value:j,minValue:0,maxValue:100,ranges:{good:[70,1/0],average:[50,70],bad:[-1/0,50]}})})}),!!E&&(0,e.jsx)(t.az,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",disabled:E,mt:1,onClick:function(){return a("PRG_beginReconstruction")},children:"Begin Reconstruction"}),(0,e.jsx)(t.wn,{title:"Laws",children:m.map(function(M){return(0,e.jsx)(t.az,{className:"candystripe",children:M},M)})})]})]})}},69622:function(y,u,n){"use strict";n.r(u),n.d(u,{AiSupermatter:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(72859),g=function(a){var l=(0,o.Oc)().data,i=l.detonating,c=(0,e.jsx)(d,{});return i&&(c=(0,e.jsx)(x,{})),(0,e.jsx)(r.p8,{width:500,height:300,children:(0,e.jsx)(r.p8.Content,{children:c})})},x=function(a){return(0,e.jsx)(s.FullscreenNotice,{title:"DETONATION IMMINENT",children:(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,color:"bad",children:[(0,e.jsx)(t.In,{color:"bad",name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),(0,e.jsx)(t.az,{color:"bad",children:"CRYSTAL DELAMINATING"}),(0,e.jsx)(t.az,{color:"bad",children:"Evacuate area immediately"})]})})},d=function(a){var l=(0,o.Oc)().data,i=l.integrity_percentage,c=l.ambient_temp,f=l.ambient_pressure;return(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Crystal Integrity",children:(0,e.jsx)(t.z2,{value:i,maxValue:100,ranges:{good:[90,1/0],average:[25,90],bad:[-1/0,25]}})}),(0,e.jsx)(t.Ki.Item,{label:"Environment Temperature",children:(0,e.jsxs)(t.z2,{value:c,maxValue:1e4,ranges:{bad:[5e3,1/0],average:[4e3,5e3],good:[-1/0,4e3]},children:[c," K"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Environment Pressure",children:[f," kPa"]})]})})}},15991:function(y,u,n){"use strict";n.r(u),n.d(u,{AirAlarm:function(){return l}});var e=n(20462),o=n(4089),t=n(61358),r=n(7081),s=n(88569),g=n(79500),x=n(15581),d=n(26634),a=n(98071),l=function(_){var I=function(ee){H(ee)},S=(0,r.Oc)(),T=S.act,A=S.data,K=A.locked,W=A.siliconUser,$=A.remoteUser,k=(0,t.useState)(""),z=k[0],H=k[1],G=K&&!W&&!$;return(0,e.jsx)(x.p8,{width:440,height:650,children:(0,e.jsxs)(x.p8.Content,{scrollable:!0,children:[(0,e.jsx)(a.InterfaceLockNoticeBox,{}),(0,e.jsx)(i,{}),(0,e.jsx)(c,{}),!G&&(0,e.jsx)(m,{screen:z,onScreen:I})]})})},i=function(_){var I=(0,r.Oc)().data,S=I.environment_data,T=I.atmos_alarm,A=I.fire_alarm,K=I.emagged,W=(S||[]).filter(function(z){return z.value>=.01}),$={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},k=$[I.danger_level]||$[0];return(0,e.jsx)(s.wn,{title:"Air Status",children:(0,e.jsxs)(s.Ki,{children:[W.length>0&&(0,e.jsxs)(e.Fragment,{children:[W.map(function(z){var H=$[z.danger_level]||$[0];return(0,e.jsxs)(s.Ki.Item,{label:(0,g.wM)(z.name),color:H.color,children:[(0,o.Mg)(z.value,2),z.unit]},z.name)}),(0,e.jsx)(s.Ki.Item,{label:"Local status",color:k.color,children:k.localStatusText}),(0,e.jsx)(s.Ki.Item,{label:"Area status",color:T||A?"bad":"good",children:T&&"Atmosphere Alarm"||A&&"Fire Alarm"||"Nominal"})]})||(0,e.jsx)(s.Ki.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!K&&(0,e.jsx)(s.Ki.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},c=function(_){var I=(0,r.Oc)(),S=I.act,T=I.data,A=T.target_temperature,K=T.rcon;return(0,e.jsx)(s.wn,{title:"Comfort Settings",children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"Remote Control",children:[(0,e.jsx)(s.$n,{selected:K===1,onClick:function(){return S("rcon",{rcon:1})},children:"Off"}),(0,e.jsx)(s.$n,{selected:K===2,onClick:function(){return S("rcon",{rcon:2})},children:"Auto"}),(0,e.jsx)(s.$n,{selected:K===3,onClick:function(){return S("rcon",{rcon:3})},children:"On"})]}),(0,e.jsx)(s.Ki.Item,{label:"Thermostat",children:(0,e.jsx)(s.$n,{onClick:function(){return S("temperature")},children:A})})]})})},f={home:{title:"Air Controls",component:function(){return v}},vents:{title:"Vent Controls",component:function(){return E}},scrubbers:{title:"Scrubber Controls",component:function(){return j}},modes:{title:"Operating Mode",component:function(){return O}},thresholds:{title:"Alarm Thresholds",component:function(){return M}}},m=function(_){var I=f[_.screen]||f.home,S=I.component();return(0,e.jsx)(s.wn,{title:I.title,buttons:_.screen&&(0,e.jsx)(s.$n,{icon:"arrow-left",onClick:function(){return _.onScreen()},children:"Back"}),children:(0,e.jsx)(S,{onScreen:_.onScreen})})},v=function(_){var I=(0,r.Oc)(),S=I.act,T=I.data,A=T.mode,K=T.atmos_alarm;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.$n,{icon:K?"exclamation-triangle":"exclamation",color:K&&"caution",onClick:function(){return S(K?"reset":"alarm")},children:"Area Atmosphere Alarm"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:A===3?"exclamation-triangle":"exclamation",color:A===3&&"danger",onClick:function(){return S("mode",{mode:A===3?1:3})},children:"Panic Siphon"}),(0,e.jsx)(s.az,{mt:2}),(0,e.jsx)(s.$n,{icon:"sign-out-alt",onClick:function(){return _.onScreen("vents")},children:"Vent Controls"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"filter",onClick:function(){return _.onScreen("scrubbers")},children:"Scrubber Controls"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"cog",onClick:function(){return _.onScreen("modes")},children:"Operating Mode"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"chart-bar",onClick:function(){return _.onScreen("thresholds")},children:"Alarm Thresholds"})]})},E=function(_){var I=(0,r.Oc)().data,S=I.vents;return!S||S.length===0?"Nothing to show":S.map(function(T){return(0,e.jsx)(d.Vent,{vent:T},T.id_tag)})},j=function(_){var I=(0,r.Oc)().data,S=I.scrubbers;return!S||S.length===0?"Nothing to show":S.map(function(T){return(0,e.jsx)(d.Scrubber,{scrubber:T},T.id_tag)})},O=function(_){var I=(0,r.Oc)(),S=I.act,T=I.data,A=T.modes;return!A||A.length===0?"Nothing to show":A.map(function(K){return(0,e.jsxs)(t.Fragment,{children:[(0,e.jsx)(s.$n,{icon:K.selected?"check-square-o":"square-o",selected:K.selected,color:K.selected&&K.danger&&"danger",onClick:function(){return S("mode",{mode:K.mode})},children:K.name}),(0,e.jsx)(s.az,{mt:1})]},K.mode)})},M=function(_){var I=(0,r.Oc)(),S=I.act,T=I.data,A=T.thresholds;return(0,e.jsxs)("table",{className:"LabeledList",style:{width:"100%"},children:[(0,e.jsx)("thead",{children:(0,e.jsxs)("tr",{children:[(0,e.jsx)("td",{}),(0,e.jsx)("td",{className:"color-bad",children:"min2"}),(0,e.jsx)("td",{className:"color-average",children:"min1"}),(0,e.jsx)("td",{className:"color-average",children:"max1"}),(0,e.jsx)("td",{className:"color-bad",children:"max2"})]})}),(0,e.jsx)("tbody",{children:A.map(function(K){return(0,e.jsxs)("tr",{children:[(0,e.jsx)("td",{className:"LabeledList__label",children:(0,e.jsx)("span",{className:"color-"+(0,g.b_)(K.name),children:(0,g.wM)(K.name)})}),K.settings.map(function(W){return(0,e.jsx)("td",{children:(0,e.jsx)(s.$n,{onClick:function(){return S("threshold",{env:W.env,var:W.val})},children:(0,o.Mg)(W.selected,2)})},W.val)})]},K.name)})})]})}},51225:function(y,u,n){"use strict";n.r(u),n.d(u,{AlertModal:function(){return l}});var e=n(20462),o=n(61358),t=n(6544),r=n(7081),s=n(88569),g=n(15581),x=n(44149),d=-1,a=1,l=function(f){var m=(0,r.Oc)(),v=m.act,E=m.data,j=E.autofocus,O=E.buttons,M=O===void 0?[]:O,_=E.large_buttons,I=E.message,S=I===void 0?"":I,T=E.timeout,A=E.title,K=(0,o.useState)(0),W=K[0],$=K[1],k=115+(S.length>30?Math.ceil(S.length/4):0)+(S.length&&_?5:0),z=325+(M.length>2?55:0),H=function(G){W===0&&G===d?$(M.length-1):W===M.length-1&&G===a?$(0):$(W+G)};return(0,e.jsxs)(g.p8,{height:k,title:A,width:z,children:[!!T&&(0,e.jsx)(x.Loader,{value:T}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(G){var Y=window.event?G.which:G.keyCode;Y===t.iy||Y===t.Ri?v("choose",{choice:M[W]}):Y===t.s6?v("cancel"):Y===t.iU?(G.preventDefault(),H(d)):(Y===t.aW||Y===t.zh)&&(G.preventDefault(),H(a))},children:(0,e.jsx)(s.wn,{fill:!0,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,m:1,children:(0,e.jsx)(s.az,{color:"label",overflow:"hidden",children:S})}),(0,e.jsxs)(s.BJ.Item,{children:[!!j&&(0,e.jsx)(s.y5,{}),(0,e.jsx)(i,{selected:W})]})]})})})]})},i=function(f){var m=(0,r.Oc)().data,v=m.buttons,E=v===void 0?[]:v,j=m.large_buttons,O=m.swapped_buttons,M=f.selected;return(0,e.jsx)(s.so,{align:"center",direction:O?"row":"row-reverse",fill:!0,justify:"space-around",wrap:!0,children:E==null?void 0:E.map(function(_,I){return j&&E.length<3?(0,e.jsx)(s.so.Item,{grow:!0,children:(0,e.jsx)(c,{button:_,id:I.toString(),selected:M===I})},I):(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(c,{button:_,id:I.toString(),selected:M===I})},I)})})},c=function(f){var m=(0,r.Oc)(),v=m.act,E=m.data,j=E.large_buttons,O=f.button,M=f.selected,_=O.length>7?O.length:7;return(0,e.jsx)(s.$n,{fluid:!!j,height:!!j&&2,onClick:function(){return v("choose",{choice:O})},m:.5,pl:2,pr:2,pt:j?.33:0,selected:M,textAlign:"center",width:!j&&_,children:j?O.toUpperCase():O})}},20730:function(y,u,n){"use strict";n.r(u),n.d(u,{AlgaeFarm:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.usePower,c=l.materials,f=l.last_flow_rate,m=l.last_power_draw,v=l.inputDir,E=l.outputDir,j=l.input,O=l.output,M=l.errorText;return(0,e.jsx)(s.p8,{width:500,height:300,children:(0,e.jsxs)(s.p8.Content,{children:[M&&(0,e.jsx)(r.IC,{warning:!0,children:(0,e.jsx)(r.az,{inline:!0,verticalAlign:"middle",children:M})}),(0,e.jsxs)(r.wn,{title:"Status",buttons:(0,e.jsx)(r.$n,{icon:"power-off",selected:i===2,onClick:function(){return a("toggle")},children:"Processing"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Flow Rate",children:[f," L/s"]}),(0,e.jsxs)(r.Ki.Item,{label:"Power Draw",children:[m," W"]}),(0,e.jsx)(r.Ki.Divider,{size:1}),c.map(function(_){return(0,e.jsxs)(r.Ki.Item,{label:(0,o.ZH)(_.display),children:[(0,e.jsxs)(r.z2,{width:"80%",value:_.qty,maxValue:_.max,children:[_.qty,"/",_.max]}),(0,e.jsx)(r.$n,{ml:1,onClick:function(){return a("ejectMaterial",{mat:_.name})},children:"Eject"})]},_.name)})]}),(0,e.jsx)(r.XI,{mt:1,children:(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.wn,{title:"Gas Input ("+v+")",children:j?(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Total Pressure",children:[j.pressure," kPa"]}),(0,e.jsxs)(r.Ki.Item,{label:j.name,children:[j.percent,"% (",j.moles," moles)"]})]}):(0,e.jsx)(r.az,{color:"bad",children:"No connection detected."})})}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.wn,{title:"Gas Output ("+E+")",children:O?(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Total Pressure",children:[O.pressure," kPa"]}),(0,e.jsxs)(r.Ki.Item,{label:O.name,children:[O.percent,"% (",O.moles," moles)"]})]}):(0,e.jsx)(r.az,{color:"bad",children:"No connection detected."})})})]})})]})]})})}},31607:function(y,u,n){"use strict";n.r(u),n.d(u,{AppearanceChangerEars:function(){return x},AppearanceChangerGender:function(){return g},AppearanceChangerSpecies:function(){return s},AppearanceChangerTails:function(){return d},AppearanceChangerWings:function(){return a}});var e=n(20462),o=n(7402),t=n(7081),r=n(88569),s=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.species,v=f.specimen,E=(0,o.Ul)(m||[],function(j){return j.specimen});return(0,e.jsx)(r.wn,{title:"Species",fill:!0,scrollable:!0,children:E.map(function(j){return(0,e.jsx)(r.$n,{selected:v===j.specimen,onClick:function(){return c("race",{race:j.specimen})},children:j.specimen},j.specimen)})})},g=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.gender,v=f.gender_id,E=f.genders,j=f.id_genders;return(0,e.jsx)(r.wn,{title:"Gender & Sex",fill:!0,scrollable:!0,children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Biological Sex",children:E.map(function(O){return(0,e.jsx)(r.$n,{selected:O.gender_key===m,onClick:function(){return c("gender",{gender:O.gender_key})},children:O.gender_name},O.gender_key)})}),(0,e.jsx)(r.Ki.Item,{label:"Gender Identity",children:j.map(function(O){return(0,e.jsx)(r.$n,{selected:O.gender_key===v,onClick:function(){return c("gender_id",{gender_id:O.gender_key})},children:O.gender_name},O.gender_key)})})]})})},x=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.ear_style,v=f.ear_styles;return(0,e.jsxs)(r.wn,{title:"Ears",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("ear",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,o.Ul)(v,function(E){return E.name.toLowerCase()}).map(function(E){return(0,e.jsx)(r.$n,{onClick:function(){return c("ear",{ref:E.instance})},selected:E.name===m,children:E.name},E.instance)})]})},d=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.tail_style,v=f.tail_styles;return(0,e.jsxs)(r.wn,{title:"Tails",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("tail",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,o.Ul)(v,function(E){return E.name.toLowerCase()}).map(function(E){return(0,e.jsx)(r.$n,{onClick:function(){return c("tail",{ref:E.instance})},selected:E.name===m,children:E.name},E.instance)})]})},a=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.wing_style,v=f.wing_styles;return(0,e.jsxs)(r.wn,{title:"Wings",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("wing",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,o.Ul)(v,function(E){return E.name.toLowerCase()}).map(function(E){return(0,e.jsx)(r.$n,{onClick:function(){return c("wing",{ref:E.instance})},selected:E.name===m,children:E.name},E.instance)})]})}},47565:function(y,u,n){"use strict";n.r(u),n.d(u,{AppearanceChangerColors:function(){return r},AppearanceChangerMarkings:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.change_eye_color,i=a.change_skin_tone,c=a.change_skin_color,f=a.change_hair_color,m=a.change_facial_hair_color,v=a.eye_color,E=a.skin_color,j=a.hair_color,O=a.facial_hair_color,M=a.ears_color,_=a.ears2_color,I=a.tail_color,S=a.tail2_color,T=a.wing_color,A=a.wing2_color;return(0,e.jsxs)(t.wn,{title:"Colors",fill:!0,scrollable:!0,children:[l?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:v,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("eye_color")},children:"Change Eye Color"})]}):"",i?(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{onClick:function(){return d("skin_tone")},children:"Change Skin Tone"})}):"",c?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:E,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("skin_color")},children:"Change Skin Color"})]}):"",f?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:j,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("hair_color")},children:"Change Hair Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:M,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("ears_color")},children:"Change Ears Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:_,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("ears2_color")},children:"Change Secondary Ears Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:I,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("tail_color")},children:"Change Tail Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:S,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("tail2_color")},children:"Change Secondary Tail Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:T,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("wing_color")},children:"Change Wing Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:A,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("wing2_color")},children:"Change Secondary Wing Color"})]})]}):null,m?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:O,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("facial_hair_color")},children:"Change Facial Hair Color"})]}):null]})},s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.markings;return(0,e.jsxs)(t.wn,{title:"Markings",fill:!0,scrollable:!0,children:[(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{onClick:function(){return d("marking",{todo:1,name:"na"})},children:"Add Marking"})}),(0,e.jsx)(t.Ki,{children:l.map(function(i){return(0,e.jsxs)(t.Ki.Item,{label:i.marking_name,children:[(0,e.jsx)(t.BK,{color:i.marking_color,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return d("marking",{todo:4,name:i.marking_name})},children:"Change Color"}),(0,e.jsx)(t.$n,{onClick:function(){return d("marking",{todo:0,name:i.marking_name})},children:"-"}),(0,e.jsx)(t.$n,{onClick:function(){return d("marking",{todo:3,name:i.marking_name})},children:"Move down"}),(0,e.jsx)(t.$n,{onClick:function(){return d("marking",{todo:2,name:i.marking_name})},children:"Move up"})]},i.marking_name)})})]})}},70972:function(y,u,n){"use strict";n.r(u),n.d(u,{AppearanceChangerFacialHair:function(){return s},AppearanceChangerHair:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.hair_style,i=a.hair_styles;return(0,e.jsx)(t.wn,{title:"Hair",fill:!0,scrollable:!0,children:i.map(function(c){return(0,e.jsx)(t.$n,{onClick:function(){return d("hair",{hair:c.hairstyle})},selected:c.hairstyle===l,children:c.hairstyle},c.hairstyle)})})},s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.facial_hair_style,i=a.facial_hair_styles;return(0,e.jsx)(t.wn,{title:"Facial Hair",fill:!0,scrollable:!0,children:i.map(function(c){return(0,e.jsx)(t.$n,{onClick:function(){return d("facial_hair",{facial_hair:c.facialhairstyle})},selected:c.facialhairstyle===l,children:c.facialhairstyle},c.facialhairstyle)})})}},66779:function(y,u,n){"use strict";n.r(u),n.d(u,{AppearanceChanger:function(){return l},AppearanceChangerDefaultError:function(){return i}});var e=n(20462),o=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(31607),d=n(47565),a=n(70972),l=function(c){var f=(0,r.Oc)(),m=f.act,v=f.config,E=f.data,j=E.name,O=E.specimen,M=E.gender,_=E.gender_id,I=E.hair_style,S=E.facial_hair_style,T=E.ear_style,A=E.tail_style,K=E.wing_style,W=E.change_race,$=E.change_gender,k=E.change_eye_color,z=E.change_skin_tone,H=E.change_skin_color,G=E.change_hair_color,Y=E.change_facial_hair_color,ee=E.change_hair,le=E.change_facial_hair,ne=E.mapRef,Q=v.title,Z=[],V=k||z||H||G||Y,q=(0,e.jsx)(s.az,{});Z[-1]=(0,e.jsx)(i,{}),Z[0]=W?(0,e.jsx)(x.AppearanceChangerSpecies,{}):(0,e.jsx)(i,{}),Z[1]=$?(0,e.jsx)(x.AppearanceChangerGender,{}):(0,e.jsx)(i,{}),Z[2]=V?(0,e.jsx)(d.AppearanceChangerColors,{}):(0,e.jsx)(i,{}),Z[3]=ee?(0,e.jsx)(a.AppearanceChangerHair,{}):(0,e.jsx)(i,{}),Z[4]=le?(0,e.jsx)(a.AppearanceChangerFacialHair,{}):(0,e.jsx)(i,{}),Z[5]=ee?(0,e.jsx)(x.AppearanceChangerEars,{}):(0,e.jsx)(i,{}),Z[6]=ee?(0,e.jsx)(x.AppearanceChangerTails,{}):(0,e.jsx)(i,{}),Z[7]=ee?(0,e.jsx)(x.AppearanceChangerWings,{}):(0,e.jsx)(i,{}),Z[8]=ee?(0,e.jsx)(d.AppearanceChangerMarkings,{}):(0,e.jsx)(i,{});var ce=-1;W?ce=0:$?ce=1:V?ce=2:ee?ce=4:le&&(ce=5);var se=(0,t.useState)(ce),fe=se[0],ge=se[1];return(0,e.jsx)(g.p8,{width:700,height:650,title:(0,o.jT)(Q),children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(s.wn,{title:"Reflection",children:(0,e.jsxs)(s.so,{children:[(0,e.jsx)(s.so.Item,{grow:1,children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsx)(s.Ki.Item,{label:"Name",children:j}),(0,e.jsx)(s.Ki.Item,{label:"Species",color:W?void 0:"grey",children:O}),(0,e.jsx)(s.Ki.Item,{label:"Biological Sex",color:$?void 0:"grey",children:M?(0,o.ZH)(M):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Gender Identity",color:V?void 0:"grey",children:_?(0,o.ZH)(_):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Hair Style",color:ee?void 0:"grey",children:I?(0,o.ZH)(I):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Facial Hair Style",color:le?void 0:"grey",children:S?(0,o.ZH)(S):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Ear Style",color:ee?void 0:"grey",children:T?(0,o.ZH)(T):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Tail Style",color:ee?void 0:"grey",children:A?(0,o.ZH)(A):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Wing Style",color:ee?void 0:"grey",children:K?(0,o.ZH)(K):"Not Set"})]})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.D1,{style:{width:"256px",height:"256px"},params:{id:ne,type:"map"}})})]})}),(0,e.jsxs)(s.tU,{children:[W?(0,e.jsx)(s.tU.Tab,{selected:fe===0,onClick:function(){return ge(0)},children:"Race"}):null,$?(0,e.jsx)(s.tU.Tab,{selected:fe===1,onClick:function(){return ge(1)},children:"Gender & Sex"}):null,V?(0,e.jsx)(s.tU.Tab,{selected:fe===2,onClick:function(){return ge(2)},children:"Colors"}):null,ee?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.tU.Tab,{selected:fe===3,onClick:function(){return ge(3)},children:"Hair"}),(0,e.jsx)(s.tU.Tab,{selected:fe===5,onClick:function(){return ge(5)},children:"Ear"}),(0,e.jsx)(s.tU.Tab,{selected:fe===6,onClick:function(){return ge(6)},children:"Tail"}),(0,e.jsx)(s.tU.Tab,{selected:fe===7,onClick:function(){return ge(7)},children:"Wing"}),(0,e.jsx)(s.tU.Tab,{selected:fe===8,onClick:function(){return ge(8)},children:"Markings"})]}):null,le?(0,e.jsx)(s.tU.Tab,{selected:fe===4,onClick:function(){return ge(4)},children:"Facial Hair"}):null]}),(0,e.jsx)(s.az,{height:"43%",children:Z[fe]})]})})},i=function(c){return(0,e.jsx)(s.az,{textColor:"red",children:"Disabled"})}},44212:function(y,u,n){"use strict";n.r(u)},8910:function(y,u,n){"use strict";n.r(u),n.d(u,{ArcadeBattle:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.temp,i=a.enemyAction,c=a.enemyName,f=a.playerHP,m=a.playerMP,v=a.enemyHP,E=a.gameOver;return(0,e.jsx)(r.p8,{width:400,height:240,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{title:c,textAlign:"center",children:[(0,e.jsxs)(t.wn,{color:"label",children:[(0,e.jsx)(t.az,{children:l}),(0,e.jsx)(t.az,{children:!E&&i})]}),(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Player Health",children:(0,e.jsxs)(t.z2,{value:f,minValue:0,maxValue:30,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[f,"HP"]})}),(0,e.jsx)(t.Ki.Item,{label:"Player Magic",children:(0,e.jsxs)(t.z2,{value:m,minValue:0,maxValue:10,ranges:{purple:[11,1/0],violet:[3,11],bad:[-1/0,3]},children:[m,"MP"]})})]})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Enemy HP",children:(0,e.jsxs)(t.z2,{value:v,minValue:0,maxValue:45,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[v,"HP"]})})})})]}),E&&(0,e.jsx)(t.$n,{fluid:!0,mt:1,color:"green",onClick:function(){return d("newgame")},children:"New Game"})||(0,e.jsxs)(t.so,{mt:2,justify:"space-between",spacing:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",onClick:function(){return d("attack")},children:"Attack!"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",onClick:function(){return d("heal")},children:"Heal!"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",onClick:function(){return d("charge")},children:"Recharge!"})})]})]})})})}},61968:function(y,u,n){"use strict";n.r(u),n.d(u,{AreaScrubberControl:function(){return x}});var e=n(20462),o=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=function(a){var l=(0,r.Oc)(),i=l.act,c=l.data,f=(0,t.useState)(!1),m=f[0],v=f[1],E=c.scrubbers;return E?(0,e.jsx)(g.p8,{width:600,height:400,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsxs)(s.wn,{children:[(0,e.jsxs)(s.so,{wrap:"wrap",children:[(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"search",onClick:function(){return i("scan")},children:"Scan"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",grow:1,children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"layer-group",selected:m,onClick:function(){return v(!m)},children:"Show Areas"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"toggle-on",onClick:function(){return i("allon")},children:"All On"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",grow:1,children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"toggle-off",onClick:function(){return i("alloff")},children:"All Off"})})]}),(0,e.jsx)(s.so,{wrap:"wrap",children:E.map(function(j){return(0,e.jsx)(s.so.Item,{m:"2px",basis:"32%",children:(0,e.jsx)(d,{scrubber:j,showArea:m})},j.id)})})]})})}):(0,e.jsxs)(s.wn,{title:"Error",children:[(0,e.jsx)(s.az,{color:"bad",children:"No Scrubbers Detected."}),(0,e.jsx)(s.$n,{fluid:!0,icon:"search",onClick:function(){return i("scan")},children:"Scan"})]})},d=function(a){var l=(0,r.Oc)().act,i=a.scrubber,c=a.showArea;return(0,e.jsxs)(s.wn,{title:i.name,children:[(0,e.jsx)(s.$n,{fluid:!0,icon:"power-off",selected:i.on,onClick:function(){return l("toggle",{id:i.id})},children:i.on?"Enabled":"Disabled"}),(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"Pressure",children:[i.pressure," kPa"]}),(0,e.jsxs)(s.Ki.Item,{label:"Flow Rate",children:[i.flow_rate," L/s"]}),(0,e.jsxs)(s.Ki.Item,{label:"Load",children:[i.load," W"]}),c&&(0,e.jsx)(s.Ki.Item,{label:"Area",children:(0,o.Sn)(i.area)})]})]})}},29615:function(y,u,n){"use strict";n.r(u),n.d(u,{AssemblyInfrared:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.visible;return(0,e.jsx)(r.p8,{children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Infrared Unit",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Laser",children:(0,e.jsx)(t.$n,{icon:"power-off",fluid:!0,selected:l,onClick:function(){return d("state")},children:l?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Visibility",children:(0,e.jsx)(t.$n,{icon:"eye",fluid:!0,selected:i,onClick:function(){return d("visible")},children:i?"Able to be seen":"Invisible"})})]})})})})}},95027:function(y,u,n){"use strict";n.r(u),n.d(u,{AssemblyProx:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.timing,f=i.time,m=i.range,v=i.maxRange,E=i.scanning;return(0,e.jsx)(g.p8,{children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Timing Unit",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Timer",buttons:(0,e.jsx)(r.$n,{icon:"stopwatch",selected:c,onClick:function(){return l("timing")},children:c?"Counting Down":"Disabled"}),children:(0,e.jsx)(r.Q7,{animated:!0,fluid:!0,step:1,value:f,minValue:0,maxValue:600,format:function(j){return(0,s.fU)((0,o.LI)(j*10,0))},onDrag:function(j){return l("set_time",{time:j})}})})})}),(0,e.jsx)(r.wn,{title:"Prox Unit",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Range",children:(0,e.jsx)(r.Q7,{step:1,minValue:1,value:m,maxValue:v,onDrag:function(j){return l("range",{range:j})}})}),(0,e.jsxs)(r.Ki.Item,{label:"Armed",children:[(0,e.jsx)(r.$n,{mr:1,icon:E?"lock":"lock-open",selected:E,onClick:function(){return l("scanning")},children:E?"ARMED":"Unarmed"}),"Movement sensor is active when armed!"]})]})})]})})}},18721:function(y,u,n){"use strict";n.r(u),n.d(u,{AssemblyTimer:function(){return d}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=n(46836),d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.timing,m=c.time;return(0,e.jsx)(g.p8,{children:(0,e.jsx)(g.p8.Content,{children:(0,e.jsx)(r.wn,{title:"Timing Unit",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Timer",buttons:(0,e.jsx)(r.$n,{icon:"stopwatch",selected:f,onClick:function(){return i("timing")},children:f?"Counting Down":"Disabled"}),children:(0,e.jsx)(x.NumberInputModal,{animated:!0,fluid:!0,step:1,value:m,minValue:0,maxValue:600,format:function(v){return(0,s.fU)((0,o.LI)(v*10,0))},onDrag:function(v){return i("set_time",{time:v})}})})})})})})}},16561:function(y,u,n){"use strict";n.r(u),n.d(u,{AtmosAlertConsole:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.priority_alarms,i=l===void 0?[]:l,c=a.minor_alarms,f=c===void 0?[]:c;return(0,e.jsx)(r.p8,{width:350,height:300,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Alarms",children:(0,e.jsxs)("ul",{children:[i.length===0&&(0,e.jsx)("li",{className:"color-good",children:"No Priority Alerts"}),i.map(function(m){return(0,e.jsx)("li",{children:(0,e.jsx)(t.$n,{icon:"times",color:"bad",onClick:function(){return d("clear",{ref:m.ref})},children:m.name})},m.name)}),f.length===0&&(0,e.jsx)("li",{className:"color-good",children:"No Minor Alerts"}),f.map(function(m){return(0,e.jsx)("li",{children:(0,e.jsx)(t.$n,{icon:"times",color:"average",onClick:function(){return d("clear",{ref:m.ref})},children:m.name})},m.name)})]})})})})}},74737:function(y,u,n){"use strict";n.r(u),n.d(u,{AtmosControl:function(){return x},AtmosControlContent:function(){return d}});var e=n(20462),o=n(7402),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=function(a){return(0,e.jsx)(g.p8,{width:600,height:440,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(d,{})})})},d=function(a){var l=(0,r.Oc)(),i=l.act,c=l.data,f=l.config,m=(0,o.Ul)(c.alarms||[],function(S){return S.name}),v=(0,t.useState)(0),E=v[0],j=v[1],O=(0,t.useState)(1),M=O[0],_=O[1],I;return E===0?I=(0,e.jsx)(s.wn,{title:"Alarms",children:m.map(function(S){return(0,e.jsx)(s.$n,{color:S.danger===2?"bad":S.danger===1?"average":"",onClick:function(){return i("alarm",{alarm:S.ref})},children:S.name},S.name)})}):E===1&&(I=(0,e.jsx)(s.az,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.jsx)(s.tx,{zoomScale:c.zoomScale,onZoom:function(S){return _(S)},children:m.filter(function(S){return~~S.z===~~f.mapZLevel}).map(function(S){return(0,e.jsx)(s.tx.Marker,{x:S.x,y:S.y,zoom:M,icon:"bell",tooltip:S.name,color:S.danger?"red":"green",onClick:function(){return i("alarm",{alarm:S.ref})}},S.ref)})})})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(s.tU,{children:[(0,e.jsxs)(s.tU.Tab,{selected:E===0,onClick:function(){return j(0)},children:[(0,e.jsx)(s.In,{name:"table"})," Alarm View"]},"AlarmView"),(0,e.jsxs)(s.tU.Tab,{selected:E===1,onClick:function(){return j(1)},children:[(0,e.jsx)(s.In,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,e.jsx)(s.az,{m:2,children:I})]})}},13238:function(y,u,n){"use strict";n.r(u),n.d(u,{AtmosFilter:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.rate,c=a.max_rate,f=a.last_flow_rate,m=a.filter_types,v=m===void 0?[]:m;return(0,e.jsx)(r.p8,{width:390,height:187,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.$n,{icon:l?"power-off":"times",selected:l,onClick:function(){return d("power")},children:l?"On":"Off"})}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer Rate",children:[(0,e.jsx)(t.az,{inline:!0,mr:1,children:(0,e.jsx)(t.zv,{value:f,format:function(E){return E+" L/s"}})}),(0,e.jsx)(t.Q7,{animated:!0,step:1,value:i,width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(E){return d("rate",{rate:E})}}),(0,e.jsx)(t.$n,{ml:1,icon:"plus",disabled:i===c,onClick:function(){return d("rate",{rate:"max"})},children:"Max"})]}),(0,e.jsx)(t.Ki.Item,{label:"Filter",children:v.map(function(E){return(0,e.jsx)(t.$n,{selected:E.selected,onClick:function(){return d("filter",{filterset:E.f_type})},children:E.name},E.name)})})]})})})})}},68541:function(y,u,n){"use strict";n.r(u),n.d(u,{AtmosMixer:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.set_pressure,c=a.max_pressure,f=a.node1_concentration,m=a.node2_concentration,v=a.node1_dir,E=a.node2_dir;return(0,e.jsx)(r.p8,{width:370,height:195,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.$n,{icon:l?"power-off":"times",selected:l,onClick:function(){return d("power")},children:l?"On":"Off"})}),(0,e.jsxs)(t.Ki.Item,{label:"Output Pressure",children:[(0,e.jsx)(t.Q7,{animated:!0,value:i,unit:"kPa",width:"75px",minValue:0,maxValue:c,step:10,onChange:function(j){return d("pressure",{pressure:j})}}),(0,e.jsx)(t.$n,{ml:1,icon:"plus",disabled:i===c,onClick:function(){return d("pressure",{pressure:"max"})},children:"Max"})]}),(0,e.jsx)(t.Ki.Divider,{size:1}),(0,e.jsx)(t.Ki.Item,{color:"label",children:(0,e.jsx)("u",{children:"Concentrations"})}),(0,e.jsx)(t.Ki.Item,{label:"Node 1 ("+v+")",children:(0,e.jsx)(t.Q7,{animated:!0,value:f,unit:"%",width:"60px",step:1,minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(j){return d("node1",{concentration:j})}})}),(0,e.jsx)(t.Ki.Item,{label:"Node 2 ("+E+")",children:(0,e.jsx)(t.Q7,{animated:!0,value:m,unit:"%",width:"60px",step:1,minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(j){return d("node2",{concentration:j})}})})]})})})})}},43855:function(y,u,n){"use strict";n.r(u),n.d(u,{Autolathe:function(){return m}});var e=n(20462),o=n(7402),t=n(15813),r=n(61282),s=n(7081),g=n(88569),x=n(15581),d=n(2858);function a(v,E){(E==null||E>v.length)&&(E=v.length);for(var j=0,O=new Array(E);j=v.length?{done:!0}:{done:!1,value:v[O++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=function(v,E,j){var O=function(){var T=I.value,A=E.find(function(K){return K.name===T});if(!A)return"continue";if(A.amount=0)&&(j[M]=v[M]);return j}var a={Alphabetical:function(v,E){return v.name>E.name},"By availability":function(v,E){return-(v.affordable-E.affordable)},"By price":function(v,E){return v.price-E.price}},l=function(v){var E=function(ne){$(ne)},j=function(ne){H(ne)},O=function(ne){ee(ne)},M=(0,r.Oc)(),_=M.act,I=M.data,S=I.processing,T=I.points,A=I.beaker,K=(0,t.useState)(""),W=K[0],$=K[1],k=(0,t.useState)("Alphabetical"),z=k[0],H=k[1],G=(0,t.useState)(!1),Y=G[0],ee=G[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsx)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:S&&(0,e.jsx)(s.wn,{title:"Processing",children:"The biogenerator is processing reagents!"})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(s.wn,{children:[T," points available.",(0,e.jsx)(s.$n,{ml:1,icon:"blender",onClick:function(){return _("activate")},children:"Activate"}),(0,e.jsx)(s.$n,{ml:1,icon:"eject",disabled:!A,onClick:function(){return _("detach")},children:"Eject Beaker"})]}),(0,e.jsx)(c,{searchText:W,sortOrder:z,descending:Y,onSearchText:E,onSortOrder:j,onDescending:O}),(0,e.jsx)(i,{searchText:W,sortOrder:z,descending:Y})]})})})},i=function(v){var E=(0,r.Oc)(),j=E.act,O=E.data,M=O.points,_=O.items,I=_===void 0?[]:_,S=O.build_eff,T=O.beaker,A=(0,o.XZ)(v.searchText,function($){return $[0]}),K=!1,W=Object.entries(I).map(function($){var k=Object.entries($[1]).filter(A).map(function(z){return z[1].affordable=+(M>=z[1].price/S),z[1]}).sort(a[v.sortOrder]);if(k.length!==0)return v.descending&&(k=k.reverse()),K=!0,(0,e.jsx)(m,{title:$[0],items:k,build_eff:S,beaker:T},$[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:K?W:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(v){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",value:v.searchText,width:"100%",onInput:function(E,j){return v.onSearchText(j)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:v.sortOrder,options:Object.keys(a),width:"100%",lineHeight:"19px",onSelected:function(E){return v.onSortOrder(E)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:v.descending?"arrow-down":"arrow-up",height:"19px",tooltip:v.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return v.onDescending(!v.descending)}})})]})})},f=function(v,E){return!(!v.affordable||v.reagent&&!E)},m=function(v){var E=(0,r.Oc)(),j=E.act,O=E.data,M=v.title,_=v.items,I=v.build_eff,S=v.beaker,T=d(v,["title","items","build_eff","beaker"]);return(0,e.jsx)(s.Nt,x({open:!0,title:M},T,{children:_.map(function(A){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:A.name}),(0,e.jsx)(s.$n,{disabled:!f(A,S),width:"15%",textAlign:"center",style:{float:"right"},onClick:function(){return j("purchase",{cat:M,name:A.name})},children:(A.price/I).toLocaleString("en-US")}),(0,e.jsx)(s.az,{style:{clear:"both"}})]},A.name)})}))}},13469:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesignerBodyRecords:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act,x=s.bodyrecords;return(0,e.jsx)(t.wn,{title:"Body Records",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Main"})},children:"Back"}),children:x?x.map(function(d){return(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("view_brec",{view_brec:d.recref})},children:d.name},d.name)}):""})}},17796:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesignerMain:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act;return(0,e.jsxs)(t.wn,{title:"Database Functions",children:[(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("menu",{menu:"Body Records"})},children:"View Individual Body Records"}),(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("menu",{menu:"Stock Records"})},children:"View Stock Body Records"})]})}},24983:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesignerOOCNotes:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act,x=s.activeBodyRecord;return(0,e.jsx)(t.wn,{title:"Body OOC Notes (This is OOC!)",height:"100%",scrollable:!0,buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Specific Record"})},children:"Back"}),style:{wordBreak:"break-all"},children:x&&x.booc||"ERROR: Body record not found!"})}},31687:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesignerSpecificRecord:function(){return s}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)().act,d=g.activeBodyRecord,a=g.mapRef;return d?(0,e.jsxs)(r.so,{direction:"column",children:[(0,e.jsx)(r.so.Item,{basis:"165px",children:(0,e.jsx)(r.wn,{title:"Specific Record",buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return x("menu",{menu:"Main"})},children:"Back"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Name",children:d.real_name}),(0,e.jsx)(r.Ki.Item,{label:"Species",children:d.speciesname}),(0,e.jsx)(r.Ki.Item,{label:"Bio. Sex",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"bio_gender",target_value:1})},children:(0,o.ZH)(d.gender)})}),(0,e.jsx)(r.Ki.Item,{label:"Synthetic",children:d.synthetic}),(0,e.jsxs)(r.Ki.Item,{label:"Mind Compat",children:[d.locked,(0,e.jsx)(r.$n,{ml:1,icon:"eye",disabled:!d.booc,onClick:function(){return x("boocnotes")},children:"View OOC Notes"})]})]})})}),(0,e.jsx)(r.so.Item,{basis:"130px",children:(0,e.jsx)(r.D1,{style:{width:"100%",height:"128px"},params:{id:a,type:"map"}})}),(0,e.jsx)(r.so.Item,{basis:"300px",children:(0,e.jsx)(r.wn,{title:"Customize",height:"300px",style:{overflow:"auto"},children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Scale",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"size_multiplier",target_value:1})},children:d.scale})}),Object.keys(d.styles).map(function(l){var i=d.styles[l];return(0,e.jsxs)(r.Ki.Item,{label:l,children:[i.styleHref?(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:i.styleHref,target_value:1})},children:i.style}):"",i.colorHref?(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:i.colorHref,target_value:1})},children:i.color}),(0,e.jsx)(r.BK,{verticalAlign:"top",width:"32px",height:"20px",color:i.color,style:{border:"1px solid #fff"}})]}):"",i.colorHref2?(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:i.colorHref2,target_value:1})},children:i.color2}),(0,e.jsx)(r.BK,{verticalAlign:"top",width:"32px",height:"20px",color:i.color2,style:{border:"1px solid #fff"}})]}):""]},l)}),(0,e.jsx)(r.Ki.Item,{label:"Digitigrade",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"digitigrade",target_value:1})},children:d.digitigrade?"Yes":"No"})}),(0,e.jsxs)(r.Ki.Item,{label:"Body Markings",children:[(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return x("href_conversion",{target_href:"marking_style",target_value:1})},children:"Add Marking"}),(0,e.jsx)(r.so,{wrap:"wrap",justify:"center",align:"center",children:Object.keys(d.markings).map(function(l){var i=d.markings[l];return(0,e.jsx)(r.so.Item,{basis:"100%",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{mr:.2,fluid:!0,icon:"times",color:"red",onClick:function(){return x("href_conversion",{target_href:"marking_remove",target_value:l})}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,backgroundColor:i,onClick:function(){return x("href_conversion",{target_href:"marking_color",target_value:l})},children:l})})]})},l)})})]})]})})})]}):(0,e.jsx)(r.az,{color:"bad",children:"ERROR: Record Not Found!"})}},99123:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesignerStockRecords:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act,x=s.stock_bodyrecords;return(0,e.jsx)(t.wn,{title:"Stock Records",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Main"})},children:"Back"}),children:x.map(function(d){return(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("view_stock_brec",{view_stock_brec:d})},children:d},d)})})}},87706:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyDesigner:function(){return l}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(13469),g=n(17796),x=n(24983),d=n(31687),a=n(99123),l=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.menu,E=m.disk,j=m.diskStored,O=m.activeBodyRecord,M=m.stock_bodyrecords,_=m.bodyrecords,I=m.mapRef,S={Main:(0,e.jsx)(g.BodyDesignerMain,{}),"Body Records":(0,e.jsx)(s.BodyDesignerBodyRecords,{bodyrecords:_}),"Stock Records":(0,e.jsx)(a.BodyDesignerStockRecords,{stock_bodyrecords:M}),"Specific Record":(0,e.jsx)(d.BodyDesignerSpecificRecord,{activeBodyRecord:O,mapRef:I}),"OOC Notes":(0,e.jsx)(x.BodyDesignerOOCNotes,{activeBodyRecord:O})},T=S[v];return(0,e.jsx)(r.p8,{width:400,height:650,children:(0,e.jsxs)(r.p8.Content,{children:[E?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"save",onClick:function(){return f("savetodisk")},disabled:!O,children:"Save To Disk"}),(0,e.jsx)(t.$n,{icon:"save",onClick:function(){return f("loadfromdisk")},disabled:!j,children:"Load From Disk"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return f("ejectdisk")},children:"Eject"})]}):"",T]})})}},25375:function(y,u,n){"use strict";n.r(u)},85168:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerEmpty:function(){return t}});var e=n(20462),o=n(88569),t=function(){return(0,e.jsx)(o.wn,{textAlign:"center",flexGrow:!0,children:(0,e.jsx)(o.so,{height:"100%",children:(0,e.jsxs)(o.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(o.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No occupant detected."]})})})}},43780:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerMain:function(){return a}});var e=n(20462),o=n(88569),t=n(49354),r=n(53187),s=n(81417),g=n(32915),x=n(73457),d=n(70765),a=function(l){var i=l.occupant;return(0,e.jsxs)(o.az,{children:[(0,e.jsx)(s.BodyScannerMainOccupant,{occupant:i}),(0,e.jsx)(d.BodyScannerMainReagents,{occupant:i}),(0,e.jsx)(t.BodyScannerMainAbnormalities,{occupant:i}),(0,e.jsx)(r.BodyScannerMainDamage,{occupant:i}),(0,e.jsx)(g.BodyScannerMainOrgansExternal,{organs:i.extOrgan}),(0,e.jsx)(x.BodyScannerMainOrgansInternal,{organs:i.intOrgan})]})}},49354:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerMainAbnormalities:function(){return r}});var e=n(20462),o=n(88569),t=n(47710),r=function(s){var g=s.occupant,x=g.hasBorer||g.blind||g.colourblind||g.nearsighted||g.hasVirus;return x=x||g.humanPrey||g.livingPrey||g.objectPrey,x?(0,e.jsx)(o.wn,{title:"Abnormalities",children:t.abnormalities.map(function(d,a){if(g[d[0]])return(0,e.jsx)(o.az,{color:d[1],bold:d[1]==="bad",children:d[2](g)},a)})}):(0,e.jsx)(o.wn,{title:"Abnormalities",children:(0,e.jsx)(o.az,{color:"label",children:"No abnormalities found."})})}},53187:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerMainDamage:function(){return g}});var e=n(20462),o=n(4089),t=n(88569),r=n(47710),s=n(65518),g=function(d){var a=d.occupant;return(0,e.jsx)(t.wn,{title:"Damage",children:(0,e.jsx)(t.XI,{children:(0,s.mapTwoByTwo)(r.damages,function(l,i,c){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.XI.Row,{color:"label",children:[(0,e.jsxs)(t.XI.Cell,{children:[l[0],":"]}),(0,e.jsx)(t.XI.Cell,{children:!!i&&i[0]+":"})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(x,{value:a[l[1]],marginBottom:c0&&"0.5rem",value:a.totalLoss/100,ranges:r.damageRange,children:[(0,e.jsxs)(t.az,{style:{float:"left"},inline:!0,children:[!!a.bruteLoss&&(0,e.jsxs)(t.az,{inline:!0,position:"relative",children:[(0,e.jsx)(t.In,{name:"bone"}),(0,o.Mg)(a.bruteLoss),"\xA0",(0,e.jsx)(t.m_,{position:"top",content:"Brute damage"})]}),!!a.fireLoss&&(0,e.jsxs)(t.az,{inline:!0,position:"relative",children:[(0,e.jsx)(t.In,{name:"fire"}),(0,o.Mg)(a.fireLoss),(0,e.jsx)(t.m_,{position:"top",content:"Burn damage"})]})]}),(0,e.jsx)(t.az,{inline:!0,children:(0,o.Mg)(a.totalLoss)})]})}),(0,e.jsxs)(t.XI.Cell,{textAlign:"right",width:"33%",children:[(0,e.jsx)(t.az,{color:"average",inline:!0,children:(0,s.reduceOrganStatus)([a.internalBleeding&&"Internal bleeding",!!a.status.bleeding&&"External bleeding",a.lungRuptured&&"Ruptured lung",a.status.destroyed&&"Destroyed",!!a.status.broken&&a.status.broken,(0,s.germStatus)(a.germ_level),!!a.open&&"Open incision"])}),(0,e.jsxs)(t.az,{inline:!0,children:[(0,s.reduceOrganStatus)([!!a.status.splinted&&"Splinted",!!a.status.robotic&&"Robotic",!!a.status.dead&&(0,e.jsx)(t.az,{color:"bad",children:"DEAD"})]),(0,s.reduceOrganStatus)(a.implants.map(function(i){return i.known?i.name:"Unknown object"}))]})]})]},l)})]})})}},73457:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerMainOrgansInternal:function(){return g}});var e=n(20462),o=n(4089),t=n(88569),r=n(47710),s=n(65518),g=function(x){var d=x.organs;return d.length===0?(0,e.jsx)(t.wn,{title:"Internal Organs",children:(0,e.jsx)(t.az,{color:"label",children:"N/A"})}):(0,e.jsx)(t.wn,{title:"Internal Organs",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Damage"}),(0,e.jsx)(t.XI.Cell,{textAlign:"right",children:"Injuries"})]}),d.map(function(a,l){return(0,e.jsxs)(t.XI.Row,{style:{textTransform:"capitalize"},children:[(0,e.jsx)(t.XI.Cell,{width:"33%",children:a.name}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:a.maxHealth/100,value:a.damage/100,mt:l>0&&"0.5rem",ranges:r.damageRange,children:(0,o.Mg)(a.damage)})}),(0,e.jsxs)(t.XI.Cell,{textAlign:"right",width:"33%",children:[(0,e.jsx)(t.az,{color:"average",inline:!0,children:(0,s.reduceOrganStatus)([(0,s.germStatus)(a.germ_level),!!a.inflamed&&"Appendicitis detected."])}),(0,e.jsx)(t.az,{inline:!0,children:(0,s.reduceOrganStatus)([a.robotic===1&&"Robotic",a.robotic===2&&"Assisted",!!a.dead&&(0,e.jsx)(t.az,{color:"bad",children:"DEAD"})])})]})]},l)})]})})}},70765:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScannerMainReagents:function(){return t}});var e=n(20462),o=n(88569),t=function(r){var s=r.occupant;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.wn,{title:"Blood Reagents",children:s.reagents?(0,e.jsxs)(o.XI,{children:[(0,e.jsxs)(o.XI.Row,{header:!0,children:[(0,e.jsx)(o.XI.Cell,{children:"Reagent"}),(0,e.jsx)(o.XI.Cell,{textAlign:"right",children:"Amount"})]}),s.reagents.map(function(g){return(0,e.jsxs)(o.XI.Row,{children:[(0,e.jsx)(o.XI.Cell,{children:g.name}),(0,e.jsxs)(o.XI.Cell,{textAlign:"right",children:[g.amount," Units"," ",g.overdose?(0,e.jsx)(o.az,{color:"bad",children:"OVERDOSING"}):null]})]},g.name)})]}):(0,e.jsx)(o.az,{color:"good",children:"No Blood Reagents Detected"})}),(0,e.jsx)(o.wn,{title:"Stomach Reagents",children:s.ingested?(0,e.jsxs)(o.XI,{children:[(0,e.jsxs)(o.XI.Row,{header:!0,children:[(0,e.jsx)(o.XI.Cell,{children:"Reagent"}),(0,e.jsx)(o.XI.Cell,{textAlign:"right",children:"Amount"})]}),s.ingested.map(function(g){return(0,e.jsxs)(o.XI.Row,{children:[(0,e.jsx)(o.XI.Cell,{children:g.name}),(0,e.jsxs)(o.XI.Cell,{textAlign:"right",children:[g.amount," Units"," ",g.overdose?(0,e.jsx)(o.az,{color:"bad",children:"OVERDOSING"}):null]})]},g.name)})]}):(0,e.jsx)(o.az,{color:"good",children:"No Stomach Reagents Detected"})})]})}},47710:function(y,u,n){"use strict";n.r(u),n.d(u,{abnormalities:function(){return o},damageRange:function(){return r},damages:function(){return t},stats:function(){return e}});var e=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],o=[["hasBorer","bad",function(s){return"Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."}],["hasVirus","bad",function(s){return"Viral pathogen detected in blood stream."}],["blind","average",function(s){return"Cataracts detected."}],["colourblind","average",function(s){return"Photoreceptor abnormalities detected."}],["nearsighted","average",function(s){return"Retinal misalignment detected."}],["humanPrey","average",function(s){return"Foreign Humanoid(s) detected: "+s.humanPrey}],["livingPrey","average",function(s){return"Foreign Creature(s) detected: "+s.livingPrey}],["objectPrey","average",function(s){return"Foreign Object(s) detected: "+s.objectPrey}]],t=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],r={average:[.25,.5],bad:[.5,1/0]}},65518:function(y,u,n){"use strict";n.r(u),n.d(u,{germStatus:function(){return s},mapTwoByTwo:function(){return t},reduceOrganStatus:function(){return r}});var e=n(20462),o=n(88569);function t(g,x){for(var d=[],a=0;a0?g.reduce(function(x,d){return x===null?d:(0,e.jsxs)(e.Fragment,{children:[x,!!d&&(0,e.jsx)(o.az,{children:d})]})}):null}function s(g){if(g>100){if(g<300)return"mild infection";if(g<400)return"mild infection+";if(g<500)return"mild infection++";if(g<700)return"acute infection";if(g<800)return"acute infection+";if(g<900)return"acute infection++";if(g>=900)return"septic"}return""}},9665:function(y,u,n){"use strict";n.r(u),n.d(u,{BodyScanner:function(){return g}});var e=n(20462),o=n(7081),t=n(15581),r=n(85168),s=n(43780),g=function(x){var d=(0,o.Oc)().data,a=d.occupied,l=d.occupant,i=l===void 0?{}:l,c=a?(0,e.jsx)(s.BodyScannerMain,{occupant:i}):(0,e.jsx)(r.BodyScannerEmpty,{});return(0,e.jsx)(t.p8,{width:690,height:600,children:(0,e.jsx)(t.p8.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:c})})}},78006:function(y,u,n){"use strict";n.r(u)},11265:function(y,u,n){"use strict";n.r(u),n.d(u,{BombTester:function(){return a}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(){return g=Object.assign||function(i){for(var c=1;c.5,_=Math.random()>.5;return v.state={x:M?E:0,y:_?j:0,reverseX:!1,reverseY:!1},v.process=setInterval(function(){v.setState(function(I){var S=g({},I);return S.reverseX?S.x-O<-5?(S.reverseX=!1,S.x+=O):S.x-=O:S.x+O>E?(S.reverseX=!0,S.x-=O):S.x+=O,S.reverseY?S.y-O<-20?(S.reverseY=!1,S.y+=O):S.y-=O:S.y+O>j?(S.reverseY=!0,S.y-=O):S.y+=O,S})},1),v}var f=c.prototype;return f.componentWillUnmount=function(){clearInterval(this.process)},f.render=function(){var v=this.state,E=v.x,j=v.y,O={position:"relative",left:E+"px",top:j+"px"};return(0,e.jsx)(r.wn,{title:"Simulation in progress!",fill:!0,children:(0,e.jsx)(r.az,{position:"absolute",style:{overflow:"hidden",width:"100%",height:"100%"},children:(0,e.jsx)(r.In,{style:O,name:"bomb",size:10,color:"red"})})})},c}(o.Component)},5536:function(y,u,n){"use strict";n.r(u),n.d(u,{BotanyEditor:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.activity,i=a.degradation,c=a.disk,f=a.sourceName,m=a.locus,v=a.loaded;return l?(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.IC,{info:!0,children:"Scanning..."})})}):(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Buffered Genetic Data",children:c&&(0,e.jsxs)(t.az,{children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Source",children:f}),(0,e.jsxs)(t.Ki.Item,{label:"Gene Decay",children:[i,"%"]}),(0,e.jsx)(t.Ki.Item,{label:"Locus",children:m})]}),(0,e.jsx)(t.$n,{mt:1,icon:"eject",onClick:function(){return d("eject_disk")},children:"Eject Loaded Disk"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No disk loaded."})}),(0,e.jsx)(t.wn,{title:"Loaded Material",children:v&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Target",children:v})}),(0,e.jsx)(t.$n,{mt:1,icon:"cog",onClick:function(){return d("apply_gene")},children:"Apply Gene Mods"}),(0,e.jsx)(t.$n,{mt:1,icon:"eject",onClick:function(){return d("eject_packet")},children:"Eject Target"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No target seed packet loaded."})})]})})}},68734:function(y,u,n){"use strict";n.r(u),n.d(u,{BotanyIsolator:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.geneMasks,i=a.activity,c=a.degradation,f=a.disk,m=a.loaded,v=a.hasGenetics,E=a.sourceName;return i?(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.IC,{info:!0,children:"Scanning..."})})}):(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Buffered Genetic Data",children:v&&(0,e.jsxs)(t.az,{children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Source",children:E}),(0,e.jsxs)(t.Ki.Item,{label:"Gene decay",children:[c,"%"]}),f&&l.length&&l.map(function(j){return(0,e.jsx)(t.Ki.Item,{label:j.mask,children:(0,e.jsx)(t.$n,{mb:-1,icon:"download",onClick:function(){return d("get_gene",{get_gene:j.tag})},children:"Extract"})},j.mask)})||null]}),f&&(0,e.jsxs)(t.az,{mt:1,children:[(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return d("eject_disk")},children:"Eject Loaded Disk"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return d("clear_buffer")},children:"Clear Genetic Buffer"})]})||(0,e.jsx)(t.IC,{mt:1,warning:!0,children:"No disk inserted."})]})||(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.IC,{warning:!0,children:"No Data Buffered."}),f&&(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return d("eject_disk")},children:"Eject Loaded Disk"})||(0,e.jsx)(t.IC,{mt:1,warning:!0,children:"No disk inserted."})]})}),(0,e.jsx)(t.wn,{title:"Loaded Material",children:m&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Packet Loaded",children:m})}),(0,e.jsx)(t.$n,{mt:1,icon:"cog",onClick:function(){return d("scan_genome")},children:"Process Genome"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return d("eject_packet")},children:"Eject Packet"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No packet loaded."})})]})})}},46141:function(y,u,n){"use strict";n.r(u),n.d(u,{BrigTimer:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.time_left,f=i.max_time_left,m=i.timing,v=i.flash_found,E=i.flash_charging,j=i.preset_short,O=i.preset_medium,M=i.preset_long;return(0,e.jsx)(g.p8,{width:400,height:138,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsxs)(r.wn,{title:"Cell Timer",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"clock-o",selected:m,onClick:function(){return l(m?"stop":"start")},children:m?"Stop":"Start"}),v&&(0,e.jsx)(r.$n,{icon:"lightbulb-o",disabled:E,onClick:function(){return l("flash")},children:E?"Recharging":"Flash"})||null]}),children:[(0,e.jsx)(r.Q7,{animated:!0,fluid:!0,step:1,value:c/10,minValue:0,maxValue:f/10,format:function(_){return(0,s.fU)((0,o.LI)(_*10,0))},onDrag:function(_){return l("time",{time:_})}}),(0,e.jsxs)(r.so,{mt:1,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"short"})},children:"Add "+(0,s.fU)(j)})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"medium"})},children:"Add "+(0,s.fU)(O)})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"long"})},children:"Add "+(0,s.fU)(M)})})]})]})})})}},18490:function(y,u,n){"use strict";n.r(u),n.d(u,{CameraConsole:function(){return f},CameraConsoleContent:function(){return m},prevNextCamera:function(){return l},selectCameras:function(){return c}});var e=n(20462),o=n(7402),t=n(15813),r=n(65380),s=n(61282),g=n(61358),x=n(7081),d=n(88569),a=n(15581),l=function(v,E){var j,O;if(!E)return[];var M=v.findIndex(function(_){return _.name===E.name});return[(j=v[M-1])==null?void 0:j.name,(O=v[M+1])==null?void 0:O.name]};function i(v){return v!=null}var c=function(v,E,j){E===void 0&&(E=""),j===void 0&&(j="");var O=(0,s.XZ)(E,function(M){return M.name});return(0,t.L)([function(M){return(0,o.pb)(M,function(_){return i(_==null?void 0:_.name)})},function(M){return E?(0,o.pb)(M,O):M},function(M){return j?(0,o.pb)(M,function(_){return _.networks.includes(j)}):M},function(M){return(0,o.Ul)(M,function(_){return _.name})}])(v)},f=function(v){var E=(0,x.Oc)(),j=E.act,O=E.data,M=O.mapRef,_=O.activeCamera,I=O.cameras,S=c(I),T=l(S,_),A=T[0],K=T[1];return(0,e.jsxs)(a.p8,{width:870,height:708,children:[(0,e.jsx)("div",{className:"CameraConsole__left",children:(0,e.jsx)(a.p8.Content,{scrollable:!0,children:(0,e.jsx)(m,{})})}),(0,e.jsxs)("div",{className:"CameraConsole__right",children:[(0,e.jsxs)("div",{className:"CameraConsole__toolbar",children:[(0,e.jsx)("b",{children:"Camera: "}),_&&_.name||"\u2014"]}),(0,e.jsxs)("div",{className:"CameraConsole__toolbarRight",children:["SEL:",(0,e.jsx)(d.$n,{icon:"chevron-left",disabled:!A,onClick:function(){return j("switch_camera",{name:A})}}),(0,e.jsx)(d.$n,{icon:"chevron-right",disabled:!K,onClick:function(){return j("switch_camera",{name:K})}}),"| PAN:",(0,e.jsx)(d.$n,{icon:"chevron-left",onClick:function(){return j("pan",{dir:8})}}),(0,e.jsx)(d.$n,{icon:"chevron-up",onClick:function(){return j("pan",{dir:1})}}),(0,e.jsx)(d.$n,{icon:"chevron-right",onClick:function(){return j("pan",{dir:4})}}),(0,e.jsx)(d.$n,{icon:"chevron-down",onClick:function(){return j("pan",{dir:2})}})]}),(0,e.jsx)(d.D1,{className:"CameraConsole__map",params:{id:M,type:"map"}})]})]})},m=function(v){var E=(0,x.Oc)(),j=E.act,O=E.data,M=(0,g.useState)(""),_=M[0],I=M[1],S=(0,g.useState)(""),T=S[0],A=S[1],K=O.activeCamera,W=O.allNetworks,$=O.cameras;W.sort();var k=c($,_,T);return(0,e.jsxs)(d.so,{direction:"column",height:"100%",children:[(0,e.jsx)(d.so.Item,{children:(0,e.jsx)(d.pd,{autoFocus:!0,fluid:!0,mt:1,placeholder:"Search for a camera",onInput:function(z,H){return I(H)}})}),(0,e.jsx)(d.so.Item,{children:(0,e.jsxs)(d.so,{children:[(0,e.jsx)(d.so.Item,{children:(0,e.jsx)(d.ms,{autoScroll:!1,mb:1,width:T?"155px":"177px",selected:T,displayText:T||"No Filter",options:W,onSelected:function(z){return A(z)}})}),T?(0,e.jsx)(d.so.Item,{children:(0,e.jsx)(d.$n,{width:"22px",icon:"undo",color:"red",onClick:function(){A("")}})}):""]})}),(0,e.jsx)(d.so.Item,{height:"100%",children:(0,e.jsx)(d.wn,{fill:!0,scrollable:!0,children:k.map(function(z){return(0,e.jsx)("div",{title:z.name,className:(0,r.Ly)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",K&&z.name===K.name&&"Button--selected"]),onClick:function(){return j("switch_camera",{name:z.name})},children:z.name},z.name)})})})]})}},82195:function(y,u,n){"use strict";n.r(u),n.d(u,{Canister:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.connected,f=i.can_relabel,m=i.pressure,v=i.releasePressure,E=i.defaultReleasePressure,j=i.minReleasePressure,O=i.maxReleasePressure,M=i.valveOpen,_=i.holding;return(0,e.jsx)(g.p8,{width:360,height:242,children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Canister",buttons:(0,e.jsx)(r.$n,{icon:"pencil-alt",disabled:!f,onClick:function(){return l("relabel")},children:"Relabel"}),children:(0,e.jsxs)(r.Wx,{children:[(0,e.jsx)(r.Wx.Item,{minWidth:"66px",label:"Tank Pressure",children:(0,e.jsx)(r.zv,{value:m,format:function(I){return I<1e4?(0,o.Mg)(I)+" kPa":(0,s.QL)(I*1e3,1,"Pa")}})}),(0,e.jsx)(r.Wx.Item,{label:"Regulator",children:(0,e.jsxs)(r.az,{position:"relative",left:"-8px",children:[(0,e.jsx)(r.N6,{width:"60px",size:1.25,color:!!M&&"yellow",value:v,unit:"kPa",minValue:j,maxValue:O,stepPixelSize:1,onDrag:function(I,S){return l("pressure",{pressure:S})}}),(0,e.jsx)(r.$n,{fluid:!0,position:"absolute",top:"-2px",right:"-20px",color:"transparent",icon:"fast-forward",onClick:function(){return l("pressure",{pressure:O})}}),(0,e.jsx)(r.$n,{fluid:!0,position:"absolute",top:"16px",right:"-20px",color:"transparent",icon:"undo",onClick:function(){return l("pressure",{pressure:E})}})]})}),(0,e.jsx)(r.Wx.Item,{label:"Valve",children:(0,e.jsx)(r.$n,{my:.5,width:"50px",lineHeight:2,fontSize:"11px",color:M?_?"caution":"danger":null,onClick:function(){return l("valve")},children:M?"Open":"Closed"})}),(0,e.jsx)(r.Wx.Item,{mr:1,label:"Port",children:(0,e.jsxs)(r.az,{position:"relative",children:[(0,e.jsx)(r.In,{size:1.25,name:c?"plug":"times",color:c?"good":"bad"}),(0,e.jsx)(r.m_,{content:c?"Connected":"Disconnected",position:"top"})]})})]})}),(0,e.jsxs)(r.wn,{title:"Holding Tank",buttons:!!_&&(0,e.jsx)(r.$n,{icon:"eject",color:M&&"danger",onClick:function(){return l("eject")},children:"Eject"}),children:[!!_&&(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Label",children:_.name}),(0,e.jsxs)(r.Ki.Item,{label:"Pressure",children:[(0,e.jsx)(r.zv,{value:_.pressure})," kPa"]})]}),!_&&(0,e.jsx)(r.az,{color:"average",children:"No Holding Tank"})]})]})})}},64808:function(y,u,n){"use strict";n.r(u),n.d(u,{Canvas:function(){return f}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(){return g=Object.assign||function(m){for(var v=1;v=0)&&(E[O]=m[O]);return E}function a(m,v){return a=Object.setPrototypeOf||function(j,O){return j.__proto__=O,j},a(m,v)}var l=24,i=function(m){"use strict";x(v,m);function v(j){var O;return O=m.call(this,j)||this,O.canvasRef=(0,o.createRef)(),O.onCVClick=j.onCanvasClick,O}var E=v.prototype;return E.componentDidMount=function(){this.drawCanvas(this.props)},E.componentDidUpdate=function(){this.drawCanvas(this.props)},E.drawCanvas=function(O){var M=this.canvasRef.current,_=M.getContext("2d"),I=O.value;if(I){var S=I.length;if(S){var T=I[0].length,A=Math.round(M.width/S),K=Math.round(M.height/T);_.save(),_.scale(A,K);for(var W=0;W=0)&&(E[O]=m[O]);return E}var a={Alphabetical:function(m,v){return m.name>v.name},"By price":function(m,v){return m.price-v.price}},l=function(){var m=function($){M($)},v=function($){S($)},E=function($){K($)},j=(0,t.useState)(""),O=j[0],M=j[1],_=(0,t.useState)("Alphabetical"),I=_[0],S=_[1],T=(0,t.useState)(!1),A=T[0],K=T[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsx)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i,{sortOrder:I,descending:A,onSearchText:m,onSortOrder:v,onDescending:E}),(0,e.jsx)(c,{searchText:O,sortOrder:I,descending:A})]})})})},i=function(m){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",width:"100%",onInput:function(v,E){return m.onSearchText(E)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:m.sortOrder,options:Object.keys(a),width:"100%",lineHeight:"19px",onSelected:function(v){return m.onSortOrder(v)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:m.descending?"arrow-down":"arrow-up",height:"19px",tooltip:m.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return m.onDescending(!m.descending)}})})]})})},c=function(m){var v=(0,r.Oc)(),E=v.act,j=v.data,O=j.items,M=(0,o.XZ)(m.searchText,function(S){return S[0]}),_=!1,I=Object.entries(O).map(function(S){var T=Object.entries(S[1]).filter(M).map(function(A){return A[1]}).sort(a[m.sortOrder]);if(T.length!==0)return m.descending&&(T=T.reverse()),_=!0,(0,e.jsx)(f,{title:S[0],items:T},S[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:_?I:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},f=function(m){var v=(0,r.Oc)().act,E=m.title,j=m.items,O=d(m,["title","items"]);return(0,e.jsx)(s.Nt,x({open:!0,title:E},O,{children:j.map(function(M){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:M.name}),(0,e.jsx)(s.$n,{width:"15%",textAlign:"center",style:{float:"right"},onClick:function(){return v("purchase",{cat:E,name:M.name,price:M.price,restriction:M.restriction})},children:M.price.toLocaleString("en-US")}),(0,e.jsx)(s.az,{style:{clear:"both"}})]},M.name)})}))}},43966:function(y,u,n){"use strict";n.r(u),n.d(u,{CharacterDirectory:function(){return x}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(i){switch(i){case"Unset":return"label";case"Pred":return"red";case"Pred-Pref":return"orange";case"Prey":return"blue";case"Prey-Pref":return"green";case"Switch":return"yellow";case"Non-Vore":return"black"}},x=function(i){var c=function(W){I(W)},f=(0,t.Oc)(),m=f.act,v=f.data,E=v.personalVisibility,j=v.personalTag,O=v.personalErpTag,M=(0,o.useState)(null),_=M[0],I=M[1],S=(0,o.useState)(!1),T=S[0],A=S[1];return(0,e.jsx)(s.p8,{width:640,height:480,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:_&&(0,e.jsx)(d,{overlay:_,onOverlay:c})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Controls",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.az,{color:"label",inline:!0,children:"Save to current preferences slot:\xA0"}),(0,e.jsx)(r.$n,{icon:T?"toggle-on":"toggle-off",selected:T,onClick:function(){return A(!T)},children:T?"On":"Off"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Visibility",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setVisible",{overwrite_prefs:T})},children:E?"Shown":"Not Shown"})}),(0,e.jsx)(r.Ki.Item,{label:"Vore Tag",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setTag",{overwrite_prefs:T})},children:j})}),(0,e.jsx)(r.Ki.Item,{label:"ERP Tag",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setErpTag",{overwrite_prefs:T})},children:O})}),(0,e.jsx)(r.Ki.Item,{label:"Advertisement",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("editAd",{overwrite_prefs:T})},children:"Edit Ad"})})]})}),(0,e.jsx)(a,{onOverlay:c})]})})})},d=function(i){return(0,e.jsxs)(r.wn,{title:i.overlay.name,buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return i.onOverlay(null)},children:"Back"}),children:[(0,e.jsx)(r.wn,{title:"Species",children:(0,e.jsx)(r.az,{children:i.overlay.species})}),(0,e.jsx)(r.wn,{title:"Vore Tag",children:(0,e.jsx)(r.az,{p:1,backgroundColor:g(i.overlay.tag),children:i.overlay.tag})}),(0,e.jsx)(r.wn,{title:"ERP Tag",children:(0,e.jsx)(r.az,{children:i.overlay.erptag})}),(0,e.jsx)(r.wn,{title:"Character Ad",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:i.overlay.character_ad||"Unset."})}),(0,e.jsx)(r.wn,{title:"OOC Notes",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:i.overlay.ooc_notes||"Unset."})}),(0,e.jsx)(r.wn,{title:"Flavor Text",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:i.overlay.flavor_text||"Unset."})})]})},a=function(i){var c=function(K){_(K)},f=function(K){T(K)},m=(0,t.Oc)(),v=m.act,E=m.data,j=E.directory,O=(0,o.useState)("name"),M=O[0],_=O[1],I=(0,o.useState)("name"),S=I[0],T=I[1];return(0,e.jsx)(r.wn,{title:"Directory",buttons:(0,e.jsx)(r.$n,{icon:"sync",onClick:function(){return v("refresh")},children:"Refresh"}),children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{bold:!0,children:[(0,e.jsx)(l,{id:"name",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Name"}),(0,e.jsx)(l,{id:"species",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Species"}),(0,e.jsx)(l,{id:"tag",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Vore Tag"}),(0,e.jsx)(l,{id:"erptag",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"ERP Tag"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"right",children:"View"})]}),j.sort(function(A,K){var W=S?1:-1;return A[M].localeCompare(K[M])*W}).map(function(A,K){return(0,e.jsxs)(r.XI.Row,{backgroundColor:g(A.tag),children:[(0,e.jsx)(r.XI.Cell,{p:1,children:A.name}),(0,e.jsx)(r.XI.Cell,{children:A.species}),(0,e.jsx)(r.XI.Cell,{children:A.tag}),(0,e.jsx)(r.XI.Cell,{children:A.erptag}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"right",children:(0,e.jsx)(r.$n,{onClick:function(){return i.onOverlay(A)},color:"transparent",icon:"sticky-note",mr:1,children:"View"})})]},K)})]})})},l=function(i){var c=i.id,f=i.children;return(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsxs)(r.$n,{width:"100%",color:i.sortId!==c&&"transparent",onClick:function(){i.sortId===c?i.onSortOrder(!i.sortOrder):(i.onSortId(c),i.onSortOrder(!0))},children:[f,i.sortId===c&&(0,e.jsx)(r.In,{name:i.sortOrder?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},15559:function(y,u,n){"use strict";n.r(u),n.d(u,{CheckboxInput:function(){return l}});var e=n(20462),o=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(19996),x=n(15581),d=n(5335),a=n(44149),l=function(i){var c=(0,r.Oc)().data,f=c.items,m=f===void 0?[]:f,v=c.min_checked,E=c.max_checked,j=c.message,O=c.timeout,M=c.title,_=(0,t.useState)([]),I=_[0],S=_[1],T=(0,t.useState)(""),A=T[0],K=T[1],W=(0,o.XZ)(A,function(z){return z}),$=m.filter(W),k=function(z){var H=I.includes(z)?I.filter(function(G){return G!==z}):[].concat(I,[z]);S(H)};return(0,e.jsxs)(x.p8,{title:M,width:425,height:300,children:[!!O&&(0,e.jsx)(a.Loader,{value:O}),(0,e.jsx)(x.p8.Content,{children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsxs)(s.IC,{info:!0,textAlign:"center",children:[(0,o.jT)(j)," ",v>0&&" (Min: "+v+")",E<50&&" (Max: "+E+")"]})}),(0,e.jsx)(s.BJ.Item,{grow:!0,mt:0,children:(0,e.jsx)(s.wn,{fill:!0,scrollable:!0,children:(0,e.jsx)(s.XI,{children:$.map(function(z,H){return(0,e.jsx)(g.Hj,{className:"candystripe",children:(0,e.jsx)(g.nA,{children:(0,e.jsx)(s.$n.Checkbox,{checked:I.includes(z),disabled:I.length>=E&&!I.includes(z),fluid:!0,onClick:function(){return k(z)},children:z})})},H)})})})}),(0,e.jsxs)(s.BJ,{m:1,mb:0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.m_,{content:"Search",position:"bottom",children:(0,e.jsx)(s.In,{name:"search",mt:.5})})}),(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.pd,{fluid:!0,value:A,onInput:function(z,H){return K(H)}})})]}),(0,e.jsx)(s.BJ.Item,{mt:.7,children:(0,e.jsx)(s.wn,{children:(0,e.jsx)(d.InputButtons,{input:I})})})]})})]})}},29361:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemDispenserBeaker:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(78924),s=n(58820),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.isBeakerLoaded,c=l.beakerCurrentVolume,f=l.beakerMaxVolume,m=l.beakerContents,v=m===void 0?[]:m,E=l.recipes,j=l.recordingRecipe,O=!!j,M=O&&j.map(function(_){return{id:_.id,name:_.id.replace(/_/," "),volume:_.amount}});return(0,e.jsx)(t.wn,{title:O?"Virtual Beaker":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.jsxs)(t.az,{children:[!!i&&(0,e.jsxs)(t.az,{inline:!0,color:"label",mr:2,children:[c," / ",f," units"]}),(0,e.jsx)(t.$n,{icon:"eject",disabled:!i,onClick:function(){return a("ejectBeaker")},children:"Eject"})]}),children:(0,e.jsx)(r.BeakerContents,{beakerLoaded:M||i,beakerContents:M||v,buttons:function(_){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"compress-arrows-alt",disabled:O,onClick:function(){return a("remove",{reagent:_.id,amount:-1})},children:"Isolate"}),s.removeAmounts.map(function(I,S){return(0,e.jsx)(t.$n,{disabled:O,onClick:function(){return a("remove",{reagent:_.id,amount:I})},children:I},S)}),(0,e.jsx)(t.$n,{disabled:O,onClick:function(){return a("remove",{reagent:_.id,amount:_.volume})},children:"ALL"})]})}})})}},64776:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemDispenserChemicals:function(){return s}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=function(x){for(var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.chemicals,c=i===void 0?[]:i,f=[],m=0;m<(c.length+1)%3;m++)f.push(!0);return(0,e.jsx)(r.wn,{title:l.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:!0,buttons:(0,e.jsx)(g,{}),children:(0,e.jsxs)(r.so,{direction:"row",wrap:"wrap",height:"100%",align:"flex-start",children:[c.map(function(v,E){return(0,e.jsx)(r.so.Item,{grow:"1",m:.2,basis:"40%",height:"20px",children:(0,e.jsx)(r.$n,{icon:"arrow-circle-down",width:"100%",height:"100%",align:"flex-start",onClick:function(){return a("dispense",{reagent:v.id})},children:v.name+" ("+v.volume+")"})},E)}),f.map(function(v,E){return(0,e.jsx)(r.so.Item,{grow:"1",basis:"25%",height:"20px"},E)})]})})},g=function(x){var d=(0,t.Oc)().data,a=!!d.recordingRecipe,l=(0,o.useState)(!1),i=l[0],c=l[1];return(0,o.useEffect)(function(){if(a){var f=setInterval(function(){c(function(m){return!m})},1e3);return function(){return clearInterval(f)}}},[a]),a?(0,e.jsx)(r.m_,{content:"Recording in progress",children:(0,e.jsx)(r.In,{mt:.7,color:"bad",name:i?"circle-o":"circle"})}):null}},92090:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemDispenserRecipes:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.recipes,l=d.recordingRecipe,i=!!l,c=Object.keys(a).sort();return(0,e.jsxs)(t.wn,{title:"Recipes",fill:!0,scrollable:!0,buttons:(0,e.jsxs)(e.Fragment,{children:[!i&&(0,e.jsx)(t.$n,{icon:"circle",onClick:function(){return x("record_recipe")},children:"Record"}),i&&(0,e.jsx)(t.$n,{icon:"ban",color:"bad",onClick:function(){return x("cancel_recording")},children:"Discard"}),i&&(0,e.jsx)(t.$n,{icon:"save",color:"green",onClick:function(){return x("save_recording")},children:"Save"}),!i&&(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"trash",color:"bad",onClick:function(){return x("clear_recipes")},children:"Clear All"})]}),children:[i&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"green",fontSize:1.2,bold:!0,children:"Recording In Progress..."}),(0,e.jsxs)(t.az,{color:"label",children:["Press dispenser buttons in the order you wish for them to be repeated, then click"," ",(0,e.jsx)(t.az,{color:"good",inline:!0,children:"Save"}),"."]}),(0,e.jsxs)(t.az,{color:"average",mb:1,children:["Alternatively, if you mess up the recipe and want to discard this recording, click"," ",(0,e.jsx)(t.az,{color:"bad",inline:!0,children:"Discard"}),"."]})]}),c.length?c.map(function(f){return(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"flask",onClick:function(){return x("dispense_recipe",{recipe:f})},children:f})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"triangle-exclamation",confirmContent:"",color:"bad",onClick:function(){return x("remove_recipe",{recipe:f})}})})]},f)}):"No Recipes."]})}},38908:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemDispenserSettings:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(58820),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.amount;return(0,e.jsx)(t.wn,{title:"Settings",fill:!0,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Dispense",verticalAlign:"middle",children:r.dispenseAmounts.map(function(i,c){return(0,e.jsx)(t.$n,{textAlign:"center",selected:l===i,m:"0",onClick:function(){return d("amount",{amount:i})},children:i+"u"},c)})}),(0,e.jsx)(t.Ki.Item,{label:"Custom Amount",children:(0,e.jsx)(t.Ap,{step:1,stepPixelSize:5,value:l,minValue:1,maxValue:120,onDrag:function(i,c){return d("amount",{amount:c})}})})]})})}},58820:function(y,u,n){"use strict";n.r(u),n.d(u,{dispenseAmounts:function(){return e},removeAmounts:function(){return o}});var e=[5,10,20,30,40,60],o=[1,5,10]},66119:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemDispenser:function(){return a}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(29361),g=n(64776),x=n(92090),d=n(38908),a=function(l){var i=(0,o.Oc)().data;return(0,e.jsx)(r.p8,{width:680,height:540,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.BJ,{vertical:!0,fill:!0,children:[(0,e.jsx)(t.BJ.Item,{children:(0,e.jsxs)(t.BJ,{children:[(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsxs)(t.BJ,{vertical:!0,fill:!0,children:[(0,e.jsx)(t.BJ.Item,{children:(0,e.jsx)(d.ChemDispenserSettings,{})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(x.ChemDispenserRecipes,{})})]})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(g.ChemDispenserChemicals,{})})]})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(s.ChemDispenserBeaker,{})})]})})})}},9136:function(y,u,n){"use strict";n.r(u)},16028:function(y,u,n){"use strict";n.r(u),n.d(u,{analyzeModalBodyOverride:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=s.args.analysis;return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:d.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.jsx)(t.az,{mx:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:a.name}),(0,e.jsx)(t.Ki.Item,{label:"Description",children:(a.desc||"").length>0?a.desc:"N/A"}),a.blood_type&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood type",children:a.blood_type}),(0,e.jsx)(t.Ki.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:a.blood_dna})]}),!d.condi&&(0,e.jsx)(t.$n,{icon:d.printing?"spinner":"print",disabled:d.printing,iconSpin:!!d.printing,ml:"0.5rem",onClick:function(){return x("print",{idx:a.idx,beaker:s.args.beaker})},children:"Print"})]})})})}},88737:function(y,u,n){"use strict";n.r(u),n.d(u,{ChemMasterBeaker:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(78924),s=n(86471),g=n(16793),x=function(d){var a=(0,o.Oc)().act,l=d.beaker,i=d.beakerReagents,c=d.bufferNonEmpty,f=c?(0,e.jsx)(t.$n.Confirm,{icon:"eject",disabled:!l,onClick:function(){return a("eject")},children:"Eject and Clear Buffer"}):(0,e.jsx)(t.$n,{icon:"eject",disabled:!l,onClick:function(){return a("eject")},children:"Eject and Clear Buffer"});return(0,e.jsx)(t.wn,{title:"Beaker",buttons:f,children:l?(0,e.jsx)(r.BeakerContents,{beakerLoaded:!0,beakerContents:i,buttons:function(m,v){return(0,e.jsxs)(t.az,{mb:v0?(0,e.jsx)(r.BeakerContents,{beakerLoaded:!0,beakerContents:c,buttons:function(f,m){return(0,e.jsxs)(t.az,{mb:m0}),(0,e.jsx)(x.ChemMasterBuffer,{mode:O,bufferReagents:j}),(0,e.jsx)(d.ChemMasterProduction,{isCondiment:c,bufferNonEmpty:j.length>0,loaded_pill_bottle:M,loaded_pill_bottle_name:_||"",loaded_pill_bottle_contents_len:I||0,loaded_pill_bottle_storage_slots:S||0,pillsprite:T,bottlesprite:A})]})]})};(0,r.modalRegisterBodyOverride)("analyze",s.analyzeModalBodyOverride)},25453:function(y,u,n){"use strict";n.r(u)},42918:function(y,u,n){"use strict";n.r(u),n.d(u,{ClawMachine:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.wintick,i=a.instructions,c=a.gameStatus,f=a.winscreen,m;return c==="CLAWMACHINE_NEW"?m=(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),(0,e.jsx)("b",{children:"Pay to Play!"})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),i,(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return d("newgame")},children:"Start"})]}):c==="CLAWMACHINE_END"?m=(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),(0,e.jsx)("b",{children:"Thank you for playing!"})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),f,(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return d("return")},children:"Close"})]}):c==="CLAWMACHINE_ON"&&(m=(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Progress",children:(0,e.jsx)(t.z2,{ranges:{bad:[-1/0,0],average:[1,7],good:[8,1/0]},value:l,minValue:0,maxValue:10})})}),(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),i,(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return d("pointless")},children:"Up"}),(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return d("pointless")},children:"Left"}),(0,e.jsx)(t.$n,{onClick:function(){return d("pointless")},children:"Right"}),(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return d("pointless")},children:"Down"})]})]})),(0,e.jsx)(r.p8,{children:(0,e.jsx)("center",{children:m})})}},76914:function(y,u,n){"use strict";n.r(u),n.d(u,{Cleanbot:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.open,c=a.locked,f=a.version,m=a.blood,v=a.vocal,E=a.wet_floors,j=a.spray_blood,O=a.rgbpanel,M=a.red_switch,_=a.green_switch,I=a.blue_switch;return(0,e.jsx)(r.p8,{width:400,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Automatic Station Cleaner "+f,buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return d("start")},children:l?"On":"Off"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Maintenance Panel",color:i?"bad":"good",children:i?"Open":"Closed"}),(0,e.jsx)(t.Ki.Item,{label:"Behavior Controls",color:c?"good":"bad",children:c?"Locked":"Unlocked"})]})}),!c&&(0,e.jsx)(t.wn,{title:"Behavior Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood",children:(0,e.jsx)(t.$n,{fluid:!0,icon:m?"toggle-on":"toggle-off",selected:m,onClick:function(){return d("blood")},children:m?"Clean":"Ignore"})}),(0,e.jsx)(t.Ki.Item,{label:"Speaker",children:(0,e.jsx)(t.$n,{fluid:!0,icon:v?"toggle-on":"toggle-off",selected:v,onClick:function(){return d("vocal")},children:v?"On":"Off"})})]})})||null,!c&&i&&(0,e.jsx)(t.wn,{title:"Maintenance Panel",children:O&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{fontSize:5.39,icon:M?"toggle-on":"toggle-off",backgroundColor:M?"red":"maroon",onClick:function(){return d("red_switch")}}),(0,e.jsx)(t.$n,{fontSize:5.39,icon:_?"toggle-on":"toggle-off",backgroundColor:_?"green":"darkgreen",onClick:function(){return d("green_switch")}}),(0,e.jsx)(t.$n,{fontSize:5.39,icon:I?"toggle-on":"toggle-off",backgroundColor:I?"blue":"darkblue",onClick:function(){return d("blue_switch")}})]})||(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Odd Looking Screw Twiddled",children:(0,e.jsx)(t.$n,{fluid:!0,selected:E,onClick:function(){return d("wet_floors")},icon:"screwdriver",children:E?"Yes":"No"})}),(0,e.jsx)(t.Ki.Item,{label:"Weird Button Pressed",children:(0,e.jsx)(t.$n,{fluid:!0,color:"brown",selected:j,onClick:function(){return d("spray_blood")},icon:"screwdriver",children:j?"Yes":"No"})})]})})})||null]})})}},90307:function(y,u,n){"use strict";n.r(u),n.d(u,{viewRecordModalBodyOverride:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(79500),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.disk,i=a.podready,c=g.args,f=c.activerecord,m=c.realname,v=c.health,E=c.unidentity,j=c.strucenzymes,O=v.split(" - ");return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:"Records of "+m,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:m}),(0,e.jsx)(t.Ki.Item,{label:"Damage",children:O.length>1?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:r.lm.damageType.oxy,inline:!0,children:O[0]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.toxin,inline:!0,children:O[2]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.brute,inline:!0,children:O[3]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.burn,inline:!0,children:O[1]})]}):(0,e.jsx)(t.az,{color:"bad",children:"Unknown"})}),(0,e.jsx)(t.Ki.Item,{label:"UI",className:"LabeledList__breakContents",children:E}),(0,e.jsx)(t.Ki.Item,{label:"SE",className:"LabeledList__breakContents",children:j}),(0,e.jsxs)(t.Ki.Item,{label:"Disk",children:[(0,e.jsx)(t.$n.Confirm,{disabled:!l,icon:"arrow-circle-down",onClick:function(){return d("disk",{option:"load"})},children:"Import"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return d("disk",{option:"save",savetype:"ui"})},children:"Export UI"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return d("disk",{option:"save",savetype:"ue"})},children:"Export UI and UE"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return d("disk",{option:"save",savetype:"se"})},children:"Export SE"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Actions",children:[(0,e.jsx)(t.$n,{disabled:!i,icon:"user-plus",onClick:function(){return d("clone",{ref:f})},children:"Clone"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return d("del_rec")},children:"Delete"})]})]})})}},57981:function(y,u,n){"use strict";n.r(u),n.d(u,{CloningConsoleNavigation:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.menu;return(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:a===1,icon:"home",onClick:function(){return x("menu",{num:1})},children:"Main"}),(0,e.jsx)(t.tU.Tab,{selected:a===2,icon:"folder",onClick:function(){return x("menu",{num:2})},children:"Records"})]})}},16981:function(y,u,n){"use strict";n.r(u),n.d(u,{CloningConsoleStatus:function(){return g},CloningConsoleTemp:function(){return s}});var e=n(20462),o=n(7081),t=n(88569);function r(){return r=Object.assign||function(x){for(var d=1;d=150?"good":"bad",inline:!0,children:[(0,e.jsx)(s.In,{name:S.biomass>=150?"circle":"circle-o"}),"\xA0",S.biomass]}),A]},T)}):(0,e.jsx)(s.az,{color:"bad",children:"No pods detected. Unable to clone."})})]})},x=function(d){var a=(0,r.Oc)(),l=a.act,i=a.data,c=i.records;return c.length?(0,e.jsx)(s.az,{mt:"0.5rem",children:c.map(function(f,m){return(0,e.jsx)(s.$n,{icon:"user",mb:"0.5rem",onClick:function(){return l("view_rec",{ref:f.record})},children:f.realname},m)})}):(0,e.jsx)(s.so,{height:"100%",children:(0,e.jsxs)(s.so.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,e.jsx)(s.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No records found."]})})}},57508:function(y,u,n){"use strict";n.r(u),n.d(u,{CloningConsole:function(){return l}});var e=n(20462),o=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(90307),x=n(57981),d=n(16981),a=n(37651),l=function(i){var c=(0,o.Oc)().data,f=c.menu,m=[];return m[1]=(0,e.jsx)(a.CloningConsoleMain,{}),m[2]=(0,e.jsx)(a.CloningConsoleRecords,{}),(0,r.modalRegisterBodyOverride)("view_rec",g.viewRecordModalBodyOverride),(0,e.jsxs)(s.p8,{children:[(0,e.jsx)(r.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,e.jsxs)(s.p8.Content,{className:"Layout__content--flexColumn",children:[(0,e.jsx)(d.CloningConsoleTemp,{}),(0,e.jsx)(d.CloningConsoleStatus,{}),(0,e.jsx)(x.CloningConsoleNavigation,{}),(0,e.jsx)(t.wn,{noTopPadding:!0,flexGrow:!0,children:m[f]||(0,e.jsx)(t.az,{textColor:"red",children:"Error"})})]})]})}},25829:function(y,u,n){"use strict";n.r(u)},61942:function(y,u,n){"use strict";n.r(u),n.d(u,{ColorMateHSV:function(){return g},ColorMateTint:function(){return s}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=function(x){var d=(0,t.Oc)().act;return(0,e.jsx)(r.$n,{fluid:!0,icon:"paint-brush",onClick:function(){return d("choose_color")},children:"Select new color"})},g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.buildhue,c=l.buildsat,f=l.buildval;return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Hue:"}),(0,e.jsx)(r.XI.Cell,{width:"85%",children:(0,e.jsx)(r.Ap,{minValue:0,maxValue:360,step:1,value:i,format:function(m){return(0,o.Mg)(m)},onDrag:function(m,v){return a("set_hue",{buildhue:v})}})})]}),(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Saturation:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Ap,{minValue:-10,maxValue:10,step:.01,value:c,format:function(m){return(0,o.Mg)(m,2)},onDrag:function(m,v){return a("set_sat",{buildsat:v})}})})]}),(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Value:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Ap,{minValue:-10,maxValue:10,step:.01,value:f,format:function(m){return(0,o.Mg)(m,2)},onDrag:function(m,v){return a("set_val",{buildval:v})}})})]})]})}},17852:function(y,u,n){"use strict";n.r(u),n.d(u,{ColorMateMatrix:function(){return s}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),d=x.act,a=x.data,l=a.matrixcolors;return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rr,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:1,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gr,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:4,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.br,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:7,value:i})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rg,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:2,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gg,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:5,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.bg,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:8,value:i})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rb,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:3,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gb,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:6,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.bb,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:9,value:i})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["CR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cr,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:10,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["CG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cg,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:11,value:i})}})]}),(0,e.jsxs)(r.XI.Row,{children:["CB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cb,format:function(i){return(0,o.Mg)(i,2)},onChange:function(i){return d("set_matrix_color",{color:12,value:i})}})]})]}),(0,e.jsxs)(r.XI.Cell,{width:"40%",children:[(0,e.jsx)(r.In,{name:"question-circle",color:"blue"})," RG means red will become this much green.",(0,e.jsx)("br",{}),(0,e.jsx)(r.In,{name:"question-circle",color:"blue"})," CR means this much red will be added."]})]})}},11145:function(y,u,n){"use strict";n.r(u),n.d(u,{ColorMate:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(61942),g=n(17852),x=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.activemode,f=i.temp,m=i.item,v=[];return v[1]=(0,e.jsx)(s.ColorMateTint,{}),v[2]=(0,e.jsx)(s.ColorMateHSV,{}),v[3]=(0,e.jsx)(g.ColorMateMatrix,{}),(0,e.jsx)(r.p8,{width:980,height:720,children:(0,e.jsx)(r.p8.Content,{overflow:"auto",children:(0,e.jsxs)(t.wn,{children:[f?(0,e.jsx)(t.IC,{children:f}):null,m&&Object.keys(m).length?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.XI,{children:[(0,e.jsx)(t.XI.Cell,{width:"50%",children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)("center",{children:"Item:"}),(0,e.jsx)(t._V,{src:"data:image/jpeg;base64, "+m.sprite,style:{width:"100%",height:"100%"}})]})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)("center",{children:"Preview:"}),(0,e.jsx)(t._V,{src:"data:image/jpeg;base64, "+m.preview,style:{width:"100%",height:"100%"}})]})})]}),(0,e.jsxs)(t.tU,{fluid:!0,children:[(0,e.jsx)(t.tU.Tab,{selected:c===1,onClick:function(){return l("switch_modes",{mode:1})},children:"Tint coloring (Simple)"},"1"),(0,e.jsx)(t.tU.Tab,{selected:c===2,onClick:function(){return l("switch_modes",{mode:2})},children:"HSV coloring (Normal)"},"2"),(0,e.jsx)(t.tU.Tab,{selected:c===3,onClick:function(){return l("switch_modes",{mode:3})},children:"Matrix coloring (Advanced)"},"3")]}),(0,e.jsxs)("center",{children:["Coloring: ",m.name]}),(0,e.jsxs)(t.XI,{mt:1,children:[(0,e.jsxs)(t.XI.Cell,{width:"33%",children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"fill",onClick:function(){return l("paint")},children:"Paint"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eraser",onClick:function(){return l("clear")},children:"Clear"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",onClick:function(){return l("drop")},children:"Eject"})]}),(0,e.jsx)(t.XI.Cell,{width:"66%",children:v[c]||(0,e.jsx)(t.az,{textColor:"red",children:"Error"})})]})]}):(0,e.jsx)("center",{children:"No item inserted."})]})})})}},99390:function(y,u,n){"use strict";n.r(u)},57925:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsoleAuth:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.authenticated,l=d.is_ai,i=d.esc_status,c=d.esc_callable,f=d.esc_recallable,m;return a?l?m="AI":a===1?m="Command":a===2?m="Site Director":m="ERROR: Report This Bug!":m="Not Logged In",(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Authentication",children:(0,e.jsx)(t.Ki,{children:l&&(0,e.jsx)(t.Ki.Item,{label:"Access Level",children:"AI"})||(0,e.jsx)(t.Ki.Item,{label:"Actions",children:(0,e.jsx)(t.$n,{icon:a?"sign-out-alt":"id-card",selected:a,onClick:function(){return x("auth")},children:a?"Log Out ("+m+")":"Log In"})})})}),(0,e.jsx)(t.wn,{title:"Escape Shuttle",children:(0,e.jsxs)(t.Ki,{children:[!!i&&(0,e.jsx)(t.Ki.Item,{label:"Status",children:i}),!!c&&(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"rocket",disabled:!a,onClick:function(){return x("callshuttle")},children:"Call Shuttle"})}),!!f&&(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"times",disabled:!a||l,onClick:function(){return x("cancelshuttle")},children:"Recall Shuttle"})})]})})]})}},34116:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsoleContent:function(){return d}});var e=n(20462),o=n(7081),t=n(88569),r=n(57925),s=n(73612),g=n(72298),x=n(19467),d=function(l){var i=(0,o.Oc)().data,c=i.menu_state,f=[];return f[1]=(0,e.jsx)(s.CommunicationsConsoleMain,{}),f[2]=(0,e.jsx)(x.CommunicationsConsoleStatusDisplay,{}),f[3]=(0,e.jsx)(g.CommunicationsConsoleMessage,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.CommunicationsConsoleAuth,{}),f[c]||(0,e.jsx)(a,{menu_state:c})]})},a=function(l){var i=l.menu_state;return(0,e.jsxs)(t.az,{color:"bad",children:["ERRROR. Unknown menu_state: ",i,"Please report this to NT Technical Support."]})}},73612:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsoleMain:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.messages,l=d.msg_cooldown,i=d.emagged,c=d.cc_cooldown,f=d.str_security_level,m=d.levels,v=d.authmax,E=d.security_level,j=d.security_level_color,O=d.authenticated,M=d.atcsquelch,_=d.boss_short,I="View ("+a.length+")",S="Make Priority Announcement";l>0&&(S+=" ("+l+"s)");var T=i?"Message [UNKNOWN]":"Message "+_;c>0&&(T+=" ("+c+"s)");var A=f,K=m.map(function(W){return(0,e.jsx)(t.$n,{icon:W.icon,disabled:!O,selected:W.id===E,onClick:function(){return x("newalertlevel",{level:W.id})},children:W.name},W.name)});return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Site Manager-Only Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Announcement",children:(0,e.jsx)(t.$n,{icon:"bullhorn",disabled:!v||l>0,onClick:function(){return x("announce")},children:S})}),!!i&&(0,e.jsxs)(t.Ki.Item,{label:"Transmit",children:[(0,e.jsx)(t.$n,{icon:"broadcast-tower",color:"red",disabled:!v||c>0,onClick:function(){return x("MessageSyndicate")},children:T}),(0,e.jsx)(t.$n,{icon:"sync-alt",disabled:!v,onClick:function(){return x("RestoreBackup")},children:"Reset Relays"})]})||(0,e.jsx)(t.Ki.Item,{label:"Transmit",children:(0,e.jsx)(t.$n,{icon:"broadcast-tower",disabled:!v||c>0,onClick:function(){return x("MessageCentCom")},children:T})})]})}),(0,e.jsx)(t.wn,{title:"Command Staff Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current Alert",color:j,children:A}),(0,e.jsx)(t.Ki.Item,{label:"Change Alert",children:K}),(0,e.jsx)(t.Ki.Item,{label:"Displays",children:(0,e.jsx)(t.$n,{icon:"tv",disabled:!O,onClick:function(){return x("status")},children:"Change Status Displays"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Messages",children:(0,e.jsx)(t.$n,{icon:"folder-open",disabled:!O,onClick:function(){return x("messagelist")},children:I})}),(0,e.jsx)(t.Ki.Item,{label:"Misc",children:(0,e.jsx)(t.$n,{icon:"microphone",disabled:!O,selected:M,onClick:function(){return x("toggleatc")},children:M?"ATC Relay Disabled":"ATC Relay Enabled"})})]})})]})}},72298:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsoleMessage:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.message_current,l=d.message_deletion_allowed,i=d.authenticated,c=d.messages;if(a)return(0,e.jsx)(t.wn,{title:a.title,buttons:(0,e.jsx)(t.$n,{icon:"times",disabled:!i,onClick:function(){return x("messagelist")},children:"Return To Message List"}),children:(0,e.jsx)(t.az,{children:a.contents})});var f=c.map(function(m){return(0,e.jsxs)(t.Ki.Item,{label:m.title,children:[(0,e.jsx)(t.$n,{icon:"eye",disabled:!i,onClick:function(){return x("messagelist",{msgid:m.id})},children:"View"}),(0,e.jsx)(t.$n,{icon:"times",disabled:!i||!l,onClick:function(){return x("delmessage",{msgid:m.id})},children:"Delete"})]},m.id)});return(0,e.jsx)(t.wn,{title:"Messages Received",buttons:(0,e.jsx)(t.$n,{icon:"arrow-circle-left",onClick:function(){return x("main")},children:"Back To Main Menu"}),children:(0,e.jsx)(t.Ki,{children:c.length&&f||(0,e.jsx)(t.Ki.Item,{label:"404",color:"bad",children:"No messages."})})})}},19467:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsoleStatusDisplay:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.stat_display,l=d.authenticated,i=a.presets.map(function(c){return(0,e.jsx)(t.$n,{selected:c.name===a.type,disabled:!l,onClick:function(){return x("setstat",{statdisp:c.name})},children:c.label},c.name)});return(0,e.jsx)(t.wn,{title:"Modify Status Screens",buttons:(0,e.jsx)(t.$n,{icon:"arrow-circle-left",onClick:function(){return x("main")},children:"Back To Main Menu"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Presets",children:i}),(0,e.jsx)(t.Ki.Item,{label:"Message Line 1",children:(0,e.jsx)(t.$n,{icon:"pencil-alt",disabled:!l,onClick:function(){return x("setmsg1")},children:a.line_1})}),(0,e.jsx)(t.Ki.Item,{label:"Message Line 2",children:(0,e.jsx)(t.$n,{icon:"pencil-alt",disabled:!l,onClick:function(){return x("setmsg2")},children:a.line_2})})]})})}},59421:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicationsConsole:function(){return r}});var e=n(20462),o=n(15581),t=n(34116),r=function(s){return(0,e.jsx)(o.p8,{width:400,height:600,children:(0,e.jsx)(o.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.CommunicationsConsoleContent,{})})})}},52994:function(y,u,n){"use strict";n.r(u)},59546:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorContactTab:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.knownDevices;return(0,e.jsx)(r.wn,{title:"Known Devices",children:i.length&&(0,e.jsx)(r.XI,{children:i.map(function(c){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{color:"label",style:{"word-break":"break-all"},children:(0,o.jT)(c.name)}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.az,{children:c.address}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){a("copy",{copy:c.address}),a("switch_tab",{switch_tab:s.PHONTAB})},children:"Copy"}),(0,e.jsx)(r.$n,{icon:"phone",onClick:function(){a("dial",{dial:c.address}),a("copy",{copy:c.address}),a("switch_tab",{switch_tab:s.PHONTAB})},children:"Call"}),(0,e.jsx)(r.$n,{icon:"comment-alt",onClick:function(){a("copy",{copy:c.address}),a("copy_name",{copy_name:c.name}),a("switch_tab",{switch_tab:s.MESSSUBTAB})},children:"Msg"})]})]})]},c.address)})})||(0,e.jsx)(r.az,{children:"No devices detected on your local NTNet region."})})}},28215:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorFooter:function(){return d},CommunicatorHeader:function(){return x},TemplateError:function(){return g},VideoComm:function(){return a}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(l){return(0,e.jsxs)(r.wn,{title:"Error!",children:["You tried to access tab #",l.currentTab,", but there was no template defined!"]})},x=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.time,v=f.connectionStatus,E=f.owner,j=f.occupation;return(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{align:"center",justify:"space-between",children:[(0,e.jsx)(r.so.Item,{color:"average",children:m}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.In,{color:v===1?"good":"bad",name:v===1?"signal":"exclamation-triangle"})}),(0,e.jsx)(r.so.Item,{color:"average",children:(0,o.jT)(E)}),(0,e.jsx)(r.so.Item,{color:"average",children:(0,o.jT)(j)})]})})},d=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.flashlight,v=l.videoSetting,E=l.setVideoSetting;return(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{basis:v===2?"60%":"80%",children:(0,e.jsx)(r.$n,{p:1,fluid:!0,icon:"home",iconSize:2,textAlign:"center",onClick:function(){return c("switch_tab",{switch_tab:s.HOMETAB})}})}),(0,e.jsx)(r.so.Item,{basis:"20%",children:(0,e.jsx)(r.$n,{icon:"lightbulb",iconSize:2,p:1,fluid:!0,textAlign:"center",selected:m,tooltip:"Flashlight",tooltipPosition:"top",onClick:function(){return c("Light")}})}),v===2&&(0,e.jsx)(r.so.Item,{basis:"20%",children:(0,e.jsx)(r.$n,{icon:"video",iconSize:2,p:1,fluid:!0,textAlign:"center",tooltip:"Open Video",tooltipPosition:"top",onClick:function(){return E(1)}})})]})},a=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.mapRef,v=l.videoSetting,E=l.setVideoSetting;return v===0?(0,e.jsxs)(r.az,{width:"100%",height:"100%",children:[(0,e.jsx)(r.D1,{width:"100%",height:"95%",params:{id:m,type:"map"}}),(0,e.jsxs)(r.so,{justify:"space-between",spacing:1,mt:.5,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-minimize",onClick:function(){return E(1)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"video-slash",onClick:function(){return c("endvideo")}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"phone-slash",onClick:function(){return c("hang_up")}})})]})]}):v===1?(0,e.jsxs)(r.az,{style:{position:"absolute",right:"5px",bottom:"50px",zIndex:"1"},children:[(0,e.jsx)(r.wn,{p:0,m:0,children:(0,e.jsxs)(r.so,{justify:"space-between",spacing:1,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-minimize",onClick:function(){return E(2)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-maximize",onClick:function(){return E(0)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"video-slash",onClick:function(){return c("endvideo")}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"phone-slash",onClick:function(){return c("hang_up")}})})]})}),(0,e.jsx)(r.D1,{width:"200px",height:"200px",params:{id:m,type:"map"}})]}):null}},46873:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorHomeTab:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.homeScreen;return(0,e.jsx)(t.so,{mt:2,wrap:"wrap",align:"center",justify:"center",children:l.map(function(i){return(0,e.jsxs)(t.so.Item,{basis:"25%",textAlign:"center",mb:2,children:[(0,e.jsx)(t.$n,{style:{borderRadius:"10%",border:"1px solid #000"},width:"64px",height:"64px",position:"relative",onClick:function(){return d("switch_tab",{switch_tab:i.number})},children:(0,e.jsx)(t.In,{spin:s(i.module),color:s(i.module)?"bad":null,name:i.icon,position:"absolute",size:3,top:"25%",left:"25%"})}),(0,e.jsx)(t.az,{children:i.module})]},i.number)})})},s=function(g){var x=(0,o.Oc)().data,d=x.voice_mobs,a=x.communicating,l=x.requestsReceived,i=x.invitesSent,c=x.video_comm;return!!(g==="Phone"&&(d.length||a.length||l.length||i.length||c))}},51445:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorMessageSubTab:function(){return s}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=a.clipboardMode,m=a.onClipboardMode,v=c.targetAddress,E=c.targetAddressName,j=c.imList;return f?(0,e.jsxs)(r.wn,{title:(0,e.jsx)(r.az,{inline:!0,style:{whiteSpace:"nowrap",overflowX:"hidden"},width:"90%",children:x("Conversation with ",(0,o.jT)(E),30)}),buttons:(0,e.jsx)(r.$n,{icon:"eye",selected:f,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-end",onClick:function(){return m(!f)}}),height:"100%",stretchContents:!0,children:[(0,e.jsx)(r.wn,{style:{height:"95%",overflowY:"auto"},children:j.map(function(O,M){return(O.to_address===v||O.address===v)&&(0,e.jsxs)(r.az,{className:g(O,v)?"ClassicMessage_Sent":"ClassicMessage_Received",children:[g(O,v)?"You":"Them",": ",O.im]},M)})}),(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return i("message",{message:v})},children:"Message"})]}):(0,e.jsxs)(r.wn,{title:(0,e.jsx)(r.az,{inline:!0,style:{whiteSpace:"nowrap",overflowX:"hidden"},width:"100%",children:x("Conversation with ",(0,o.jT)(E),30)}),buttons:(0,e.jsx)(r.$n,{icon:"eye",selected:f,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-end",onClick:function(){return m(!f)}}),height:"100%",stretchContents:!0,children:[(0,e.jsx)(r.wn,{style:{height:"95%",overflowY:"auto"},children:j.map(function(O,M,_){return(O.to_address===v||O.address===v)&&(0,e.jsx)(r.az,{textAlign:g(O,v)?"right":"left",mb:1,children:(0,e.jsx)(r.az,{maxWidth:"75%",className:d(O,v,M-1,_),inline:!0,children:(0,o.jT)(O.im)})},M)})}),(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return i("message",{message:v})},children:"Message"})]})},g=function(a,l){return a.address!==l},x=function(a,l,i){return(a+l).length>i?l.length>i?l.slice(0,i)+"...":l:a+l},d=function(a,l,i,c){if(i<0||i>c.length)return g(a,l)?"TinderMessage_First_Sent":"TinderMessage_First_Received";var f=g(a,l),m=g(c[i],l);return f&&m?"TinderMessage_Subsequent_Sent":!f&&!m?"TinderMessage_Subsequent_Received":f?"TinderMessage_First_Sent":"TinderMessage_First_Received"}},26217:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorMessageTab:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.imContacts;return(0,e.jsx)(r.wn,{title:"Messaging",children:i.length&&(0,e.jsx)(r.XI,{children:i.map(function(c){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsxs)(r.XI.Cell,{color:"label",style:{"word-break":"break-all"},children:[(0,o.jT)(c.name),":"]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.az,{children:c.address}),(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){a("copy",{copy:c.address}),a("copy_name",{copy_name:c.name}),a("switch_tab",{switch_tab:s.MESSSUBTAB})},children:"View Conversation"})})]})]},c.address)})})||(0,e.jsxs)(r.az,{children:["You haven't sent any messages yet.",(0,e.jsx)(r.$n,{fluid:!0,icon:"user",onClick:function(){return a("switch_tab",{switch_tab:s.CONTTAB})},children:"Contacts"})]})})}},28953:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorNewsTab:function(){return s}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),d=x.act,a=x.data,l=a.feeds,i=a.target_feed,c=a.latest_news;return(0,e.jsx)(r.wn,{title:"News",stretchContents:!0,height:"100%",children:!l.length&&(0,e.jsx)(r.az,{color:"bad",children:"Error: No newsfeeds available. Please try again later."})||i&&(0,e.jsx)(r.wn,{title:(0,o.jT)(i.name)+" by "+(0,o.jT)(i.author),buttons:(0,e.jsx)(r.$n,{icon:"chevron-up",onClick:function(){return d("newsfeed",{newsfeed:null})},children:"Back"}),children:i.messages.map(function(f){return(0,e.jsxs)(r.wn,{children:["- ",(0,o.jT)(f.body),!!f.img&&(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r._V,{src:"data:image/png;base64,"+f.img}),(0,o.jT)(f.caption)||null]}),(0,e.jsxs)(r.az,{color:"grey",children:["[",f.message_type," by"," ",(0,o.jT)(f.author)," - ",f.time_stamp,"]"]})]},f.ref)})})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Recent News",children:(0,e.jsx)(r.wn,{children:c.map(function(f){return(0,e.jsxs)(r.az,{mb:2,children:[(0,e.jsxs)("h5",{children:[(0,o.jT)(f.channel),(0,e.jsx)(r.$n,{ml:1,icon:"chevron-up",onClick:function(){return d("newsfeed",{newsfeed:f.index})},children:"Go to"})]}),"- ",(0,o.jT)(f.body),!!f.img&&(0,e.jsxs)(r.az,{children:["[image omitted, view story for more details]",f.caption||null]}),(0,e.jsxs)(r.az,{fontSize:.9,children:["[",f.message_type," by"," ",(0,e.jsx)(r.az,{inline:!0,color:"average",children:f.author})," ","- ",f.time_stamp,"]"]})]},f.index)})})}),(0,e.jsx)(r.wn,{title:"News Feeds",children:l.map(function(f){return(0,e.jsx)(r.$n,{fluid:!0,icon:"chevron-up",onClick:function(){return d("newsfeed",{newsfeed:f.index})},children:f.name},f.index)})})]})})}},47106:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorNoteTab:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.note;return(0,e.jsx)(t.wn,{title:"Note Keeper",height:"100%",stretchContents:!0,buttons:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return x("edit")},children:"Edit Notes"}),children:(0,e.jsx)(t.wn,{color:"average",width:"100%",height:"100%",style:{wordBreak:"break-all",overflowY:"auto"},children:a})})}},10674:function(y,u,n){"use strict";n.r(u),n.d(u,{CommunicatorPhoneTab:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(i){for(var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selfie_mode,E=m.targetAddress,j=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],O=j.map(function(I){return(0,e.jsx)(r.$n,{fontSize:2,fluid:!0,onClick:function(){return f("add_hex",{add_hex:I})},children:I},I)}),M=[],_=0;_i?"average":d>c?"bad":"good"}},74293:function(y,u,n){"use strict";n.r(u),n.d(u,{CONTTAB:function(){return t},HOMETAB:function(){return e},MANITAB:function(){return a},MESSSUBTAB:function(){return s},MESSTAB:function(){return r},NEWSTAB:function(){return g},NOTETAB:function(){return x},PHONTAB:function(){return o},SETTTAB:function(){return l},WTHRTAB:function(){return d},notFound:function(){return c},tabs:function(){return i}});var e=1,o=2,t=3,r=4,s=40,g=5,x=6,d=7,a=8,l=9,i=[e,o,t,r,s,g,x,d,a,l];function c(f){return i.includes(f)}},42320:function(y,u,n){"use strict";n.r(u),n.d(u,{Communicator:function(){return O}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(58044),x=n(59546),d=n(28215),a=n(46873),l=n(51445),i=n(26217),c=n(28953),f=n(47106),m=n(10674),v=n(4435),E=n(81450),j=n(74293),O=function(){var M=function(ee){G(ee)},_=(0,t.Oc)(),I=_.act,S=_.data,T=S.currentTab,A=S.video_comm,K=[],W=(0,o.useState)(0),$=W[0],k=W[1],z=(0,o.useState)(!1),H=z[0],G=z[1];return K[j.tabs[0]]=(0,e.jsx)(a.CommunicatorHomeTab,{}),K[j.tabs[1]]=(0,e.jsx)(m.CommunicatorPhoneTab,{}),K[j.tabs[2]]=(0,e.jsx)(x.CommunicatorContactTab,{}),K[j.tabs[3]]=(0,e.jsx)(i.CommunicatorMessageTab,{}),K[j.tabs[4]]=(0,e.jsx)(l.CommunicatorMessageSubTab,{clipboardMode:H,onClipboardMode:M}),K[j.tabs[5]]=(0,e.jsx)(c.CommunicatorNewsTab,{}),K[j.tabs[6]]=(0,e.jsx)(f.CommunicatorNoteTab,{}),K[j.tabs[7]]=(0,e.jsx)(E.CommunicatorWeatherTab,{}),K[j.tabs[8]]=(0,e.jsx)(g.CrewManifestContent,{}),K[j.tabs[9]]=(0,e.jsx)(v.CommunicatorSettingsTab,{}),(0,e.jsx)(s.p8,{width:475,height:700,children:(0,e.jsxs)(s.p8.Content,{children:[A&&(0,e.jsx)(d.VideoComm,{videoSetting:$,setVideoSetting:k}),(!A||$!==0)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(d.CommunicatorHeader,{}),(0,e.jsx)(r.az,{height:"88%",mb:1,style:{overflowY:"auto"},children:K[T]||(0,j.notFound)(T)&&(0,e.jsx)(d.TemplateError,{currentTab:T})}),(0,e.jsx)(d.CommunicatorFooter,{videoSetting:$,setVideoSetting:k})]})]})})}},96273:function(y,u,n){"use strict";n.r(u)},62311:function(y,u,n){"use strict";n.r(u),n.d(u,{CfStep1:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act;return(0,e.jsxs)(t.wn,{title:"Step 1",minHeight:"306px",children:[(0,e.jsx)(t.az,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,e.jsx)(t.az,{mt:3,children:(0,e.jsx)(t.XI,{width:"100%",children:(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return g("pick_device",{pick:"1"})},children:"Laptop"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"tablet-alt",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return g("pick_device",{pick:"2"})},children:"Tablet"})})]})})})]})}},78820:function(y,u,n){"use strict";n.r(u),n.d(u,{CfStep2:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.totalprice,l=d.hw_battery,i=d.hw_disk,c=d.hw_netcard,f=d.hw_nanoprint,m=d.hw_card,v=d.devtype,E=d.hw_cpu,j=d.hw_tesla;return(0,e.jsxs)(t.wn,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,e.jsxs)(t.az,{bold:!0,color:"good",children:[a,"\u20AE"]}),children:[(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Battery:",(0,e.jsx)(t.m_,{content:"\n Allows your device to operate without external utility power\n source. Advanced batteries increase battery life.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===1,onClick:function(){return x("hw_battery",{battery:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===2,onClick:function(){return x("hw_battery",{battery:"2"})},children:"Upgraded"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===3,onClick:function(){return x("hw_battery",{battery:"3"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,e.jsx)(t.m_,{content:"\n Stores file on your device. Advanced drives can store more\n files, but use more power, shortening battery life.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:i===1,onClick:function(){return x("hw_disk",{disk:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:i===2,onClick:function(){return x("hw_disk",{disk:"2"})},children:"Upgraded"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:i===3,onClick:function(){return x("hw_disk",{disk:"3"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,e.jsx)(t.m_,{content:"\n Allows your device to wirelessly connect to stationwide NTNet\n network. Basic cards are limited to on-station use, while\n advanced cards can operate anywhere near the station, which\n includes asteroid outposts\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===0,onClick:function(){return x("hw_netcard",{netcard:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===1,onClick:function(){return x("hw_netcard",{netcard:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===2,onClick:function(){return x("hw_netcard",{netcard:"2"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,e.jsx)(t.m_,{content:"\n A device that allows for various paperwork manipulations,\n such as, scanning of documents or printing new ones.\n This device was certified EcoFriendlyPlus and is capable of\n recycling existing paper for printing purposes.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:f===0,onClick:function(){return x("hw_nanoprint",{print:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:f===1,onClick:function(){return x("hw_nanoprint",{print:"1"})},children:"Standard"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,e.jsx)(t.m_,{content:"\n Adds a secondary RFID card reader, for manipulating or\n reading from a second standard RFID card.\n Please note that a primary card reader is necessary to\n allow the device to read your identification, but one\n is included in the base price.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:m===0,onClick:function(){return x("hw_card",{card:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:m===1,onClick:function(){return x("hw_card",{card:"1"})},children:"Standard"})})]}),v!==2&&(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,e.jsx)(t.m_,{content:"\n A component critical for your device's functionality.\n It allows you to run programs from your hard drive.\n Advanced CPUs use more power, but allow you to run\n more programs on background at once.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:E===1,onClick:function(){return x("hw_cpu",{cpu:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:E===2,onClick:function(){return x("hw_cpu",{cpu:"2"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,e.jsx)(t.m_,{content:"\n An advanced wireless power relay that allows your device\n to connect to nearby area power controller to provide\n alternative power source. This component is currently\n unavailable on tablet computers due to size restrictions.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:j===0,onClick:function(){return x("hw_tesla",{tesla:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:j===1,onClick:function(){return x("hw_tesla",{tesla:"1"})},children:"Standard"})})]})]}),(0,e.jsx)(t.$n,{fluid:!0,mt:3,color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return x("confirm_order")},children:"Confirm Order"})]})}},3777:function(y,u,n){"use strict";n.r(u),n.d(u,{CfStep3:function(){return t}});var e=n(20462),o=n(88569),t=function(r){var s=r.totalprice;return(0,e.jsxs)(o.wn,{title:"Step 3: Payment",minHeight:"282px",children:[(0,e.jsx)(o.az,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,e.jsxs)(o.az,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,e.jsx)(o.az,{inline:!0,children:"Please swipe your ID now to authorize payment of:"}),"\xA0",(0,e.jsxs)(o.az,{inline:!0,color:"good",children:[s,"\u20AE"]})]})]})}},44430:function(y,u,n){"use strict";n.r(u),n.d(u,{CfStep4:function(){return t}});var e=n(20462),o=n(88569),t=function(r){return(0,e.jsxs)(o.wn,{minHeight:"282px",children:[(0,e.jsx)(o.az,{bold:!0,textAlign:"center",fontSize:"28px",mt:10,children:"Thank you for your purchase!"}),(0,e.jsx)(o.az,{italic:!0,mt:1,textAlign:"center",children:"If you experience any difficulties with your new device, please contact your local network administrator."})]})}},36229:function(y,u,n){"use strict";n.r(u),n.d(u,{ComputerFabricator:function(){return a}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(62311),g=n(78820),x=n(3777),d=n(44430),a=function(l){var i=(0,o.Oc)(),c=i.act,f=i.data,m=f.state,v=f.totalprice,E=[];return E[0]=(0,e.jsx)(s.CfStep1,{}),E[1]=(0,e.jsx)(g.CfStep2,{}),E[2]=(0,e.jsx)(x.CfStep3,{totalprice:v}),E[3]=(0,e.jsx)(d.CfStep4,{}),(0,e.jsx)(r.p8,{title:"Personal Computer Vendor",width:500,height:420,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),m!==0&&(0,e.jsx)(t.$n,{fluid:!0,mb:1,icon:"circle",onClick:function(){return c("clean_order")},children:"Clear Order"}),E[m]]})})}},75050:function(y,u,n){"use strict";n.r(u)},31681:function(y,u,n){"use strict";n.r(u),n.d(u,{CookingAppliance:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.temperature,i=a.optimalTemp,c=a.temperatureEnough,f=a.efficiency,m=a.containersRemovable,v=a.our_contents;return(0,e.jsx)(r.p8,{width:600,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(t.z2,{color:c?"good":"blue",value:l,maxValue:i,children:[(0,e.jsx)(t.zv,{value:l}),"\xB0C / ",i,"\xB0C"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Efficiency",children:[(0,e.jsx)(t.zv,{value:f}),"%"]})]})}),(0,e.jsx)(t.wn,{title:"Containers",children:(0,e.jsx)(t.Ki,{children:v.map(function(E,j){return E.empty?(0,e.jsx)(t.Ki.Item,{label:"Slot #"+(j+1),children:(0,e.jsx)(t.$n,{onClick:function(){return d("slot",{slot:j+1})},children:"Empty"})},j):(0,e.jsx)(t.Ki.Item,{label:"Slot #"+(j+1),verticalAlign:"middle",children:(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{disabled:!m,onClick:function(){return d("slot",{slot:j+1})},children:E.container||"No Container"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.z2,{color:E.progressText[0],value:E.progress,maxValue:1,children:E.progressText[1]})})]})},j)})})})]})})}},58044:function(y,u,n){"use strict";n.r(u),n.d(u,{CrewManifest:function(){return x},CrewManifestContent:function(){return d}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(79500),g=n(15581),x=function(){return(0,e.jsx)(g.p8,{width:400,height:600,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(d,{})})})},d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.manifest;return(0,e.jsx)(r.wn,{title:"Crew Manifest",noTopPadding:!0,children:f.map(function(m){return!!m.elems.length&&(0,e.jsx)(r.wn,{title:(0,e.jsx)(r.az,{backgroundColor:s.lm.manifest[m.cat.toLowerCase()],m:-1,pt:1,pb:1,children:(0,e.jsx)(r.az,{ml:1,textAlign:"center",fontSize:1.4,children:m.cat})}),children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,color:"white",children:[(0,e.jsx)(r.XI.Cell,{children:"Name"}),(0,e.jsx)(r.XI.Cell,{children:"Rank"}),(0,e.jsx)(r.XI.Cell,{children:"Active"})]}),m.elems.map(function(v){return(0,e.jsxs)(r.XI.Row,{color:"average",children:[(0,e.jsx)(r.XI.Cell,{children:(0,o.jT)(v.name)}),(0,e.jsx)(r.XI.Cell,{children:v.rank}),(0,e.jsx)(r.XI.Cell,{children:v.active})]},v.name+v.rank)})]})},m.cat)})})}},70117:function(y,u,n){"use strict";n.r(u),n.d(u,{CrewMonitor:function(){return l},CrewMonitorContent:function(){return i}});var e=n(20462),o=n(7402),t=n(15813),r=n(61358),s=n(7081),g=n(88569),x=n(15581),d=function(m){return m.dead?"Deceased":m.stat===1?"Unconscious":"Living"},a=function(m){return m.dead?"red":m.stat===1?"orange":"green"},l=function(){var m=function(T){O(T)},v=function(T){I(T)},E=(0,r.useState)(0),j=E[0],O=E[1],M=(0,r.useState)(1),_=M[0],I=M[1];return(0,e.jsx)(x.p8,{width:800,height:600,children:(0,e.jsx)(x.p8.Content,{children:(0,e.jsx)(i,{tabIndex:j,zoom:_,onTabIndex:m,onZoom:v})})})},i=function(m){var v=(0,s.Oc)().data,E=v.crewmembers,j=E===void 0?[]:E,O=(0,t.L)([function(_){return(0,o.Ul)(_,function(I){return I.name})},function(_){return(0,o.Ul)(_,function(I){return I==null?void 0:I.x})},function(_){return(0,o.Ul)(_,function(I){return I==null?void 0:I.y})},function(_){return(0,o.Ul)(_,function(I){return I==null?void 0:I.realZ})}])(j),M=[];return M[0]=(0,e.jsx)(c,{crew:O}),M[1]=(0,e.jsx)(f,{zoom:m.zoom,onZoom:m.onZoom}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(g.tU,{children:[(0,e.jsxs)(g.tU.Tab,{selected:m.tabIndex===0,onClick:function(){return m.onTabIndex(0)},children:[(0,e.jsx)(g.In,{name:"table"})," Data View"]},"DataView"),(0,e.jsxs)(g.tU.Tab,{selected:m.tabIndex===1,onClick:function(){return m.onTabIndex(1)},children:[(0,e.jsx)(g.In,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,e.jsx)(g.az,{m:2,children:M[m.tabIndex]||(0,e.jsx)(g.az,{textColor:"red",children:"ERROR"})})]})},c=function(m){var v=(0,s.Oc)(),E=v.act,j=v.data,O=m.crew,M=j.isAI;return(0,e.jsxs)(g.XI,{children:[(0,e.jsxs)(g.XI.Row,{header:!0,children:[(0,e.jsx)(g.XI.Cell,{children:"Name"}),(0,e.jsx)(g.XI.Cell,{children:"Status"}),(0,e.jsx)(g.XI.Cell,{children:"Location"})]}),O.map(function(_){return(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsxs)(g.XI.Cell,{children:[_.name," (",_.assignment,")"]}),(0,e.jsxs)(g.XI.Cell,{children:[(0,e.jsx)(g.az,{inline:!0,color:a(_),children:d(_)}),_.sensor_type>=2?(0,e.jsxs)(g.az,{inline:!0,children:["(",(0,e.jsx)(g.az,{inline:!0,color:"red",children:_.brute}),"|",(0,e.jsx)(g.az,{inline:!0,color:"orange",children:_.fire}),"|",(0,e.jsx)(g.az,{inline:!0,color:"green",children:_.tox}),"|",(0,e.jsx)(g.az,{inline:!0,color:"blue",children:_.oxy}),")"]}):null]}),(0,e.jsx)(g.XI.Cell,{children:_.sensor_type===3?M?(0,e.jsx)(g.$n,{fluid:!0,icon:"location-arrow",onClick:function(){return E("track",{track:_.ref})},children:_.area+" ("+_.x+", "+_.y+")"}):_.area+" ("+_.x+", "+_.y+", "+_.z+")":"Not Available"})]},_.ref)})]})},f=function(m){var v=(0,s.Oc)(),E=v.config,j=v.data,O=j.zoomScale,M=j.crewmembers;return(0,e.jsx)(g.az,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.jsx)(g.tx,{zoomScale:O,onZoom:function(_){return m.onZoom(_)},children:M.filter(function(_){return _.sensor_type===3&&~~_.realZ===~~E.mapZLevel}).map(function(_){return(0,e.jsx)(g.tx.Marker,{x:_.x,y:_.y,zoom:m.zoom,icon:"circle",tooltip:_.name+" ("+_.assignment+")",color:a(_)},_.ref)})})})}},67268:function(y,u,n){"use strict";n.r(u),n.d(u,{CryoStorage:function(){return g},CryoStorageCrew:function(){return x},CryoStorageDefaultError:function(){return a},CryoStorageItems:function(){return d}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(l){var i=(0,t.Oc)().data,c=i.real_name,f=i.allow_items,m=(0,o.useState)(0),v=m[0],E=m[1],j=[];return j[0]=(0,e.jsx)(x,{}),j[1]=f?(0,e.jsx)(d,{}):(0,e.jsx)(a,{}),(0,e.jsx)(s.p8,{width:400,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:v===0,onClick:function(){return E(0)},children:"Crew"}),!!f&&(0,e.jsx)(r.tU.Tab,{selected:v===1,onClick:function(){return E(1)},children:"Items"})]}),(0,e.jsxs)(r.IC,{info:!0,children:["Welcome, ",c,"."]}),j[v]]})})},x=function(l){var i=(0,t.Oc)().data,c=i.crew;return(0,e.jsx)(r.wn,{title:"Stored Crew",children:c.length&&c.map(function(f){return(0,e.jsx)(r.az,{color:"label",children:f},f)})||(0,e.jsx)(r.az,{color:"good",children:"No crew currently stored."})})},d=function(l){var i=(0,t.Oc)().data,c=i.items;return(0,e.jsx)(r.wn,{title:"Stored Items",children:c.length&&c.map(function(f){return(0,e.jsx)(r.az,{color:"label",children:f},f)})||(0,e.jsx)(r.az,{color:"average",children:"No items stored."})})},a=function(l){return(0,e.jsx)(r.az,{textColor:"red",children:"Disabled"})}},41628:function(y,u,n){"use strict";n.r(u),n.d(u,{CryoContent:function(){return g}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(17639),g=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.isOperating,f=i.hasOccupant,m=i.occupant,v=i.cellTemperature,E=i.cellTemperatureStatus,j=i.isBeakerLoaded;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Occupant",flexGrow:!0,buttons:(0,e.jsx)(r.$n,{icon:"user-slash",onClick:function(){return l("ejectOccupant")},disabled:!f,children:"Eject"}),children:f?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Occupant",children:m.name||"Unknown"}),(0,e.jsx)(r.Ki.Item,{label:"Health",children:(0,e.jsx)(r.z2,{minValue:0,maxValue:1,value:m.health/m.maxHealth,color:m.health>0?"good":"average",children:(0,e.jsx)(r.zv,{value:m.health,format:function(O){return(0,o.Mg)(O)}})})}),(0,e.jsx)(r.Ki.Item,{label:"Status",color:s.statNames[m.stat][0],children:s.statNames[m.stat][1]}),(0,e.jsx)(r.Ki.Item,{label:"Temperature",children:(0,e.jsx)(r.zv,{value:m.bodyTemperature,format:function(O){return(0,o.Mg)(O)+" K"}})}),(0,e.jsx)(r.Ki.Divider,{}),s.damageTypes.map(function(O,M){return(0,e.jsx)(r.Ki.Item,{label:O.label,children:(0,e.jsx)(r.z2,{value:m[O.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.jsx)(r.zv,{value:m[O.type],format:function(_){return(0,o.Mg)(_)}})})},M)})]}):(0,e.jsx)(r.so,{height:"100%",textAlign:"center",children:(0,e.jsxs)(r.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(r.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No occupant detected."]})})}),(0,e.jsx)(r.wn,{title:"Cell",buttons:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return l("ejectBeaker")},disabled:!j,children:"Eject Beaker"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Power",children:(0,e.jsx)(r.$n,{icon:"power-off",onClick:function(){return l(c?"switchOff":"switchOn")},selected:c,children:c?"On":"Off"})}),(0,e.jsxs)(r.Ki.Item,{label:"Temperature",color:E,children:[(0,e.jsx)(r.zv,{value:v})," K"]}),(0,e.jsx)(r.Ki.Item,{label:"Beaker",children:(0,e.jsx)(x,{})})]})})]})},x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.isBeakerLoaded,f=i.beakerLabel,m=i.beakerVolume;return c?(0,e.jsxs)(e.Fragment,{children:[f||(0,e.jsx)(r.az,{color:"average",children:"No label"}),(0,e.jsx)(r.az,{color:!m&&"bad",children:m?(0,e.jsx)(r.zv,{value:m,format:function(v){return(0,o.Mg)(v)+" units remaining"}}):"Beaker is empty"})]}):(0,e.jsx)(r.az,{color:"average",children:"No beaker loaded"})}},17639:function(y,u,n){"use strict";n.r(u),n.d(u,{damageTypes:function(){return e},statNames:function(){return o}});var e=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],o=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]]},85970:function(y,u,n){"use strict";n.r(u),n.d(u,{Cryo:function(){return r}});var e=n(20462),o=n(15581),t=n(41628),r=function(s){return(0,e.jsx)(o.p8,{width:520,height:470,children:(0,e.jsx)(o.p8.Content,{className:"Layout__content--flexColumn",children:(0,e.jsx)(t.CryoContent,{})})})}},40599:function(y,u,n){"use strict";n.r(u)},39699:function(y,u,n){"use strict";n.r(u),n.d(u,{DNAForensics:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.scan_progress,i=a.scanning,c=a.bloodsamp,f=a.bloodsamp_desc;return(0,e.jsx)(r.p8,{width:540,height:326,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{selected:i,disabled:!c,icon:"power-off",onClick:function(){return d("scanItem")},children:i?"Halt Scan":"Begin Scan"}),(0,e.jsx)(t.$n,{disabled:!c,icon:"eject",onClick:function(){return d("ejectItem")},children:"Eject Bloodsample"})]}),children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Scan Progress",children:(0,e.jsx)(t.z2,{ranges:{good:[99,1/0],violet:[-1/0,99]},value:l,maxValue:100})})})}),(0,e.jsx)(t.wn,{title:"Blood Sample",children:c&&(0,e.jsxs)(t.az,{children:[c,(0,e.jsx)(t.az,{color:"label",children:f})]})||(0,e.jsx)(t.az,{color:"bad",children:"No blood sample inserted."})})]})})}},63501:function(y,u,n){"use strict";n.r(u),n.d(u,{DNAModifierBlocks:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){for(var g=function(E){for(var j=function(I){var S=I+1;M.push((0,e.jsx)(t.$n,{selected:a===O&&l===S,mb:"0",onClick:function(){return x(c,{block:O,subblock:S})},children:f[E+I]}))},O=E/i+1,M=[],_=0;_j,icon:"syringe",onClick:function(){return m("injectRejuvenators",{amount:M})},children:M},_)}),(0,e.jsx)(t.$n,{disabled:j<=0,icon:"syringe",onClick:function(){return m("injectRejuvenators",{amount:j})},children:"All"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Beaker",children:[(0,e.jsx)(t.az,{mb:"0.5rem",children:O||"No label"}),j?(0,e.jsxs)(t.az,{color:"good",children:[j," unit",j===1?"":"s"," remaining"]}):(0,e.jsx)(t.az,{color:"bad",children:"Empty"})]})]}):(0,e.jsxs)(t.az,{color:"label",textAlign:"center",my:"25%",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",size:4}),(0,e.jsx)("br",{}),"No beaker loaded."]})})}},25475:function(y,u,n){"use strict";n.r(u),n.d(u,{DNAModifierMainBuffers:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(x){var d=(0,o.Oc)().data,a=d.buffers,l=a.map(function(i,c){return(0,e.jsx)(s,{id:c+1,name:"Buffer "+(c+1),buffer:i},c)});return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Buffers",children:l}),(0,e.jsx)(g,{})]})},s=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=x.id,c=x.name,f=x.buffer,m=l.isInjectorReady,v=c+(f.data?" - "+f.label:"");return(0,e.jsx)(t.az,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.jsxs)(t.wn,{title:v,mx:"0",lineHeight:"18px",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:!f.data,icon:"trash",onClick:function(){return a("bufferOption",{option:"clear",id:i})},children:"Clear"}),(0,e.jsx)(t.$n,{disabled:!f.data,icon:"pen",onClick:function(){return a("bufferOption",{option:"changeLabel",id:i})},children:"Rename"}),(0,e.jsx)(t.$n,{disabled:!f.data||!l.hasDisk,icon:"save",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-end",onClick:function(){return a("bufferOption",{option:"saveDisk",id:i})},children:"Export"})]}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Write",children:[(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUI",id:i})},children:"Subject U.I"}),(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUIAndUE",id:i})},children:"Subject U.I and U.E."}),(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return a("bufferOption",{option:"saveSE",id:i})},children:"Subject S.E."}),(0,e.jsx)(t.$n,{disabled:!l.hasDisk||!l.disk.data,icon:"arrow-circle-down",mb:"0",onClick:function(){return a("bufferOption",{option:"loadDisk",id:i})},children:"From Disk"})]}),!!f.data&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Subject",children:f.owner||(0,e.jsx)(t.az,{color:"average",children:"Unknown"})}),(0,e.jsxs)(t.Ki.Item,{label:"Data Type",children:[f.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!f.ue&&" and Unique Enzymes"]}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer to",children:[(0,e.jsx)(t.$n,{disabled:!m,icon:m?"syringe":"spinner",iconSpin:!m,mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:i})},children:"Injector"}),(0,e.jsx)(t.$n,{disabled:!m,icon:m?"syringe":"spinner",iconSpin:!m,mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:i,block:1})},children:"Block Injector"}),(0,e.jsx)(t.$n,{icon:"user",mb:"0",onClick:function(){return a("bufferOption",{option:"transfer",id:i})},children:"Subject"})]})]})]}),!f.data&&(0,e.jsx)(t.az,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.hasDisk,c=l.disk;return(0,e.jsx)(t.wn,{title:"Data Disk",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:!i||!c.data,icon:"trash",onClick:function(){return a("wipeDisk")},children:"Wipe"}),(0,e.jsx)(t.$n,{disabled:!i,icon:"eject",onClick:function(){return a("ejectDisk")},children:"Eject"})]}),children:i?c.data?(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Label",children:c.label?c.label:"No label"}),(0,e.jsx)(t.Ki.Item,{label:"Subject",children:c.owner?c.owner:(0,e.jsx)(t.az,{color:"average",children:"Unknown"})}),(0,e.jsxs)(t.Ki.Item,{label:"Data Type",children:[c.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!c.ue&&" and Unique Enzymes"]})]}):(0,e.jsx)(t.az,{color:"label",children:"Disk is blank."}):(0,e.jsxs)(t.az,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.jsx)(t.In,{name:"save-o",size:4}),(0,e.jsx)("br",{}),"No disk inserted."]})})}},76282:function(y,u,n){"use strict";n.r(u),n.d(u,{DNAModifierOccupant:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(22724),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.locked,i=a.hasOccupant,c=a.occupant;return(0,e.jsx)(t.wn,{title:"Occupant",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.jsx)(t.$n,{disabled:!i,selected:l,icon:l?"toggle-on":"toggle-off",onClick:function(){return d("toggleLock")},children:l?"Engaged":"Disengaged"}),(0,e.jsx)(t.$n,{disabled:!i||l,icon:"user-slash",onClick:function(){return d("ejectOccupant")},children:"Eject"})]}),children:i?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:c.name}),(0,e.jsx)(t.Ki.Item,{label:"Health",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:c.health/c.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:r.stats[c.stat][0],children:r.stats[c.stat][1]}),(0,e.jsx)(t.Ki.Divider,{})]})}),g.isDNAInvalid?(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Radiation",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:c.radiationLevel/100,color:"average"})}),(0,e.jsx)(t.Ki.Item,{label:"Unique Enzymes",children:a.occupant.uniqueEnzymes?a.occupant.uniqueEnzymes:(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})]}):(0,e.jsx)(t.az,{color:"label",children:"Cell unoccupied."})})}},22724:function(y,u,n){"use strict";n.r(u),n.d(u,{operations:function(){return o},rejuvenatorsDoses:function(){return t},stats:function(){return e}});var e=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],o=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],t=[5,10,20,30,50]},62343:function(y,u,n){"use strict";n.r(u),n.d(u,{DNAModifier:function(){return d}});var e=n(20462),o=n(7081),t=n(15581),r=n(86471),s=n(11619),g=n(89100),x=n(76282),d=function(a){var l=(0,o.Oc)().data,i=l.irradiating,c=l.occupant,f=!c.isViableSubject||!c.uniqueIdentity||!c.structuralEnzymes;return(0,e.jsxs)(t.p8,{width:660,height:870,children:[(0,e.jsx)(r.ComplexModal,{}),i&&(0,e.jsx)(s.DNAModifierIrradiating,{duration:i}),(0,e.jsxs)(t.p8.Content,{className:"Layout__content--flexColumn",children:[(0,e.jsx)(x.DNAModifierOccupant,{isDNAInvalid:f}),(0,e.jsx)(g.DNAModifierMain,{isDNAInvalid:f})]})]})}},14512:function(y,u,n){"use strict";n.r(u)},80603:function(y,u,n){"use strict";n.r(u),n.d(u,{DestinationTagger:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.currTag,i=a.taggerLevels,c=i===void 0?[]:i,f=a.taggerLocs,m=c.filter(function(v,E){return E===c.findIndex(function(j){return v.location===j.location})});return(0,e.jsx)(r.p8,{width:450,height:310,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Tagger Locations",children:m.map(function(v){return(0,e.jsx)(t.wn,{title:v.location,children:(0,e.jsx)(t.so,{wrap:"wrap",spacing:1,justify:"center",children:f.map(function(E){return v.z===E.level&&(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{icon:l===E.tag?"check-square-o":"square-o",selected:l===E.tag,onClick:function(){return d("set_tag",{tag:E.tag})},children:E.tag})},E.tag)})})},v.location)})})})})}},17956:function(y,u,n){"use strict";n.r(u),n.d(u,{DiseaseSplicer:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.busy;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:c?(0,e.jsx)(t.wn,{title:"The Splicer is currently busy.",color:"bad",children:(0,e.jsx)("center",{children:(0,e.jsx)(t.az,{color:"bad",children:c})})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g,{}),(0,e.jsx)(x,{})]})})})},g=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.dish_inserted,f=i.effects,m=f===void 0?[]:f,v=i.info,E=i.growth,j=i.affected_species;return(0,e.jsxs)(t.wn,{title:"Virus Dish",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!c,onClick:function(){return l("eject")},children:"Eject Dish"}),children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Growth Density",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[50,1/0],average:[25,50],bad:[-1/0,25]},value:E})})}),v?(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.az,{color:"bad",children:v})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Symptoms",children:m.length>0?m.map(function(O){return(0,e.jsxs)(t.az,{color:"label",children:["(",O.stage,") ",O.name," ",O.badness>1?"Dangerous!":null]},O.stage)}):(0,e.jsx)(t.az,{children:"No virus sample loaded."})}),(0,e.jsx)(t.wn,{title:"Affected Species",color:"label",children:!j||!j.length?"None":j.sort().join(", ")}),(0,e.jsxs)(t.wn,{title:"Reverse Engineering",children:[(0,e.jsx)(t.az,{color:"bad",mb:1,children:(0,e.jsx)("i",{children:"CAUTION: Reverse engineering will destroy the viral sample."})}),!!m.length&&m.map(function(O){return(0,e.jsx)(t.$n,{icon:"exchange-alt",onClick:function(){return l("grab",{grab:O.reference})},children:O.stage},O.stage)}),(0,e.jsx)(t.$n,{icon:"exchange-alt",onClick:function(){return l("affected_species")},children:"Species"})]})]})]})},x=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.buffer,f=i.species_buffer,m=i.info;return(0,e.jsxs)(t.wn,{title:"Storage",children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Memory Buffer",children:c?(0,e.jsxs)(t.az,{children:[c.name," (",c.stage,")"]}):f?(0,e.jsx)(t.az,{children:f}):"Empty"})}),(0,e.jsx)(t.$n,{mt:1,icon:"save",disabled:!c&&!f,onClick:function(){return l("disk")},children:"Save To Disk"}),c?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>1,onClick:function(){return l("splice",{splice:1})},children:"Splice #1"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>2,onClick:function(){return l("splice",{splice:2})},children:"Splice #2"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>3,onClick:function(){return l("splice",{splice:3})},children:"Splice #3"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>4,onClick:function(){return l("splice",{splice:4})},children:"Splice #4"})]}):f?(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"pen",disabled:!f||!!m,onClick:function(){return l("splice",{splice:5})},children:"Splice Species"})}):null]})}},4843:function(y,u,n){"use strict";n.r(u),n.d(u,{DishIncubator:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(41242),s=n(15581),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.on,c=l.system_in_use,f=l.food_supply,m=l.radiation,v=l.growth,E=l.toxins,j=l.chemicals_inserted,O=l.can_breed_virus,M=l.chemical_volume,_=l.max_chemical_volume,I=l.dish_inserted,S=l.blood_already_infected,T=l.virus,A=l.analysed,K=l.infection_rate;return(0,e.jsx)(s.p8,{width:400,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.wn,{title:"Environmental Conditions",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:i,onClick:function(){return a("power")},children:i?"On":"Off"}),children:[(0,e.jsxs)(t.so,{spacing:1,mb:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"radiation",onClick:function(){return a("rad")},children:"Add Radiation"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n.Confirm,{fluid:!0,color:"red",icon:"trash",confirmIcon:"trash",disabled:!c,onClick:function(){return a("flush")},children:"Flush System"})})]}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Virus Food",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[40,1/0],average:[20,40],bad:[-1/0,20]},value:f})}),(0,e.jsx)(t.Ki.Item,{label:"Radiation Level",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:100,color:m>=50?"bad":v>=25?"average":"good",value:m,children:[(0,r.qQ)(m*1e4)," \xB5Sv"]})}),(0,e.jsx)(t.Ki.Item,{label:"Toxicity",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{bad:[50,1/0],average:[25,50],good:[-1/0,25]},value:E})})]})]}),(0,e.jsx)(t.wn,{title:O?"Vial":"Chemicals",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"eject",disabled:!j,onClick:function(){return a("ejectchem")},children:"Eject "+(O?"Vial":"Chemicals")}),(0,e.jsx)(t.$n,{icon:"virus",disabled:!O,onClick:function(){return a("virus")},children:"Breed Virus"})]}),children:j&&(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Volume",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:_,value:M,children:[M,"/",_]})}),(0,e.jsxs)(t.Ki.Item,{label:"Breeding Environment",color:O?"good":"average",children:[I?O?"Suitable":"No hemolytic samples detected":"N/A",S?(0,e.jsx)(t.az,{color:"bad",children:"CAUTION: Viral infection detected in blood sample."}):null]})]})})||(0,e.jsx)(t.az,{color:"average",children:"No chemicals inserted."})}),(0,e.jsx)(t.wn,{title:"Virus Dish",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!I,onClick:function(){return a("ejectdish")},children:"Eject Dish"}),children:I?T?(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Growth Density",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[50,1/0],average:[25,50],bad:[-1/0,25]},value:v})}),(0,e.jsx)(t.Ki.Item,{label:"Infection Rate",children:A?K:"Unknown."})]}):(0,e.jsx)(t.az,{color:"bad",children:"No virus detected."}):(0,e.jsx)(t.az,{color:"average",children:"No dish loaded."})})]})})}},43978:function(y,u,n){"use strict";n.r(u),n.d(u,{DisposalBin:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.mode,i=a.pressure,c=a.isAI,f=a.panel_open,m=a.flushing,v,E;return l===2?(v="good",E="Ready"):l<=0?(v="bad",E="N/A"):l===1?(v="average",E="Pressurizing"):(v="average",E="Idle"),(0,e.jsx)(r.p8,{width:300,height:250,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.az,{bold:!0,m:1,children:"Status"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"State",color:v,children:E}),(0,e.jsx)(t.Ki.Item,{label:"Pressure",children:(0,e.jsx)(t.z2,{ranges:{bad:[-1/0,0],average:[0,99],good:[99,1/0]},value:i,minValue:0,maxValue:100})})]}),(0,e.jsx)(t.az,{bold:!0,m:1,children:"Controls"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Handle",children:[(0,e.jsx)(t.$n,{icon:"toggle-off",disabled:c||f,selected:m?null:!0,onClick:function(){return d("disengageHandle")},children:"Disengaged"}),(0,e.jsx)(t.$n,{icon:"toggle-on",disabled:c||f,selected:m?!0:null,onClick:function(){return d("engageHandle")},children:"Engaged"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Power",children:[(0,e.jsx)(t.$n,{icon:"toggle-off",disabled:l===-1,selected:l?null:!0,onClick:function(){return d("pumpOff")},children:"Off"}),(0,e.jsx)(t.$n,{icon:"toggle-on",disabled:l===-1,selected:l?!0:null,onClick:function(){return d("pumpOn")},children:"On"})]}),(0,e.jsx)(t.Ki.Item,{label:"Eject",children:(0,e.jsx)(t.$n,{icon:"sign-out-alt",disabled:c,onClick:function(){return d("eject")},children:"Eject Contents"})})]})]})})})}},16381:function(y,u,n){"use strict";n.r(u),n.d(u,{DroneConsole:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.drones,i=a.areas,c=a.selected_area,f=a.fabricator,m=a.fabPower;return(0,e.jsx)(r.p8,{width:600,height:350,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Drone Fabricator",buttons:(0,e.jsx)(t.$n,{disabled:!f,selected:m,icon:"power-off",onClick:function(){return d("toggle_fab")},children:m?"Enabled":"Disabled"}),children:f?(0,e.jsx)(t.az,{color:"good",children:"Linked."}):(0,e.jsxs)(t.az,{color:"bad",children:["Fabricator not detected.",(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return d("search_fab")},children:"Search for Fabricator"})]})}),(0,e.jsxs)(t.wn,{title:"Request Drone",children:[(0,e.jsx)(t.ms,{autoScroll:!1,options:i?i.sort():[],selected:c,width:"100%",onSelected:function(v){return d("set_dcall_area",{area:v})}}),(0,e.jsx)(t.$n,{icon:"share-square",onClick:function(){return d("ping")},children:"Send Ping"})]}),(0,e.jsx)(t.wn,{title:"Maintenance Units",children:l&&l.length?(0,e.jsx)(t.Ki,{children:l.map(function(v){return(0,e.jsx)(t.Ki.Item,{label:v.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return d("resync",{ref:v.ref})},children:"Resync"}),(0,e.jsx)(t.$n.Confirm,{icon:"exclamation-triangle",color:"red",onClick:function(){return d("shutdown",{ref:v.ref})},children:"Shutdown"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Location",children:v.loc}),(0,e.jsxs)(t.Ki.Item,{label:"Charge",children:[v.charge," / ",v.maxCharge]}),(0,e.jsx)(t.Ki.Item,{label:"Active",children:v.active?"Yes":"No"})]})},v.name)})}):(0,e.jsx)(t.az,{color:"bad",children:"No drones detected."})})]})})}},27133:function(y,u,n){"use strict";n.r(u),n.d(u,{AirlockConsoleAdvanced:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=function(O){return O<80||O>120?"bad":O<95||O>110?"average":"good"},d=(0,o.Oc)(),a=d.act,l=d.data,i=l.external_pressure,c=l.chamber_pressure,f=l.internal_pressure,m=l.processing,v={external_pressure:i,internal_pressure:f,chamber_pressure:c},E=[{minValue:0,maxValue:202,value:i,label:"External Pressure",textValue:i+" kPa",color:x},{minValue:0,maxValue:202,value:c,label:"Chamber Pressure",textValue:c+" kPa",color:x},{minValue:0,maxValue:202,value:f,label:"Internal Pressure",textValue:f+" kPa",color:x}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:E}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{pressure_range:v}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return a("purge")},children:"Purge"}),(0,e.jsx)(t.$n,{icon:"lock-open",onClick:function(){return a("secure")},children:"Secure"})]}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!m,icon:"ban",color:"bad",onClick:function(){return a("abort")},children:"Abort"})})]})]})}},34012:function(y,u,n){"use strict";n.r(u),n.d(u,{AirlockConsoleDocking:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.interior_status,i=a.exterior_status,c=a.chamber_pressure,f=a.airlock_disabled,m=a.override_enabled,v=a.docking_status,E=a.processing,j={interior_status:l,exterior_status:i},O=[{minValue:0,maxValue:202,value:c,label:"Chamber Pressure",textValue:c+" kPa",color:function(M){return M<80||M>120?"bad":M<95||M>110?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Dock",buttons:f||m?(0,e.jsx)(t.$n,{icon:"exclamation-triangle",color:m?"red":"",onClick:function(){return d("toggle_override")},children:"Override"}):null,children:(0,e.jsx)(r.DockStatus,{docking_status:v,override_enabled:m})}),(0,e.jsx)(r.StatusDisplay,{bars:O}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:j}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!E,icon:"ban",color:"bad",onClick:function(){return d("abort")},children:"Abort"})})]})]})}},29935:function(y,u,n){"use strict";n.r(u),n.d(u,{AirlockConsolePhoron:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.chamber_pressure,i=a.chamber_phoron,c=a.interior_status,f=a.exterior_status,m=a.processing,v={interior_status:c,exterior_status:f},E=[{minValue:0,maxValue:202,value:l,label:"Chamber Pressure",textValue:l+" kPa",color:function(j){return j<80||j>120?"bad":j<95||j>110?"average":"good"}},{minValue:0,maxValue:100,value:i,label:"Chamber Phoron",textValue:i+" mol",color:function(j){return j>5?"bad":j>.5?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:E}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:v}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!m,icon:"ban",color:"bad",onClick:function(){return d("abort")},children:"Abort"})})]})]})}},32965:function(y,u,n){"use strict";n.r(u),n.d(u,{AirlockConsoleSimple:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.exterior_status,i=a.chamber_pressure,c=a.processing,f=a.interior_status,m={interior_status:f,exterior_status:l},v=[{minValue:0,maxValue:202,value:i,label:"Chamber Pressure",textValue:i+" kPa",color:function(E){return E<80||E>120?"bad":E<95||E>110?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:v}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:m}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!c,icon:"ban",color:"bad",onClick:function(){return d("abort")},children:"Abort"})})]})]})}},74390:function(y,u,n){"use strict";n.r(u),n.d(u,{DockingConsoleMulti:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)().data,d=x.docking_status;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Docking Status",children:(0,e.jsx)(r.DockStatus,{docking_status:d,override_enabled:!1})}),(0,e.jsx)(t.wn,{title:"Airlocks",children:x.airlocks.length?(0,e.jsx)(t.Ki,{children:x.airlocks.map(function(a){return(0,e.jsx)(t.Ki.Item,{color:a.override_enabled?"bad":"good",label:a.name,children:a.override_enabled?"OVERRIDE ENABLED":"STATUS OK"},a.name)})}):(0,e.jsx)(t.so,{height:"100%",mt:"0.5em",children:(0,e.jsxs)(t.so.Item,{grow:"1",align:"center",textAlign:"center",color:"bad",children:[(0,e.jsx)(t.In,{name:"door-closed",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No airlocks found."]})})})]})}},75355:function(y,u,n){"use strict";n.r(u),n.d(u,{DockingConsoleSimple:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.exterior_status,i=a.override_enabled,c=a.docking_status;return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:!i,onClick:function(){return d("force_door")},children:"Force exterior door"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",color:i?"red":"",onClick:function(){return d("toggle_override")},children:"Override"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Dock Status",children:(0,e.jsx)(r.DockStatus,{docking_status:c,override_enabled:i})}),(0,e.jsx)(r.DockingStatus,{state:l.state})]})})}},77506:function(y,u,n){"use strict";n.r(u),n.d(u,{DoorAccessConsole:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.interior_status,l=d.exterior_status,i=a.state==="open"||l.state==="closed",c=l.state==="open"||a.state==="closed";return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:i?"arrow-left":"exclamation-triangle",onClick:function(){x(i?"cycle_ext_door":"force_ext")},children:i?"Cycle To Exterior":"Lock Exterior Door"}),(0,e.jsx)(t.$n,{icon:c?"arrow-right":"exclamation-triangle",onClick:function(){x(c?"cycle_int_door":"force_int")},children:c?"Cycle To Interior":"Lock Interior Door"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Exterior Door Status",children:l.state==="closed"?"Locked":"Open"}),(0,e.jsx)(t.Ki.Item,{label:"Interior Door Status",children:a.state==="closed"?"Locked":"Open"})]})})}},64894:function(y,u,n){"use strict";n.r(u),n.d(u,{DockStatus:function(){return l},DockingStatus:function(){return x},EscapePodControls:function(){return a},EscapePodStatus:function(){return g},StandardControls:function(){return s},StatusDisplay:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(i){var c=i.bars;return(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsx)(t.Ki,{children:c.map(function(f){return(0,e.jsx)(t.Ki.Item,{label:f.label,children:(0,e.jsx)(t.z2,{color:f.color(f.value),minValue:f.minValue,maxValue:f.maxValue,value:f.value,children:f.textValue})},f.label)})})})},s=function(i){var c=(0,o.Oc)().act,f=i.status_range,m=i.pressure_range,v=i.airlock_disabled,E=f||{},j=E.interior_status,O=E.exterior_status,M=m||{},_=M.external_pressure,I=M.internal_pressure,S=M.chamber_pressure,T=!0;j&&j.state==="open"?T=!1:_&&S&&(T=!(Math.abs(_-S)>5));var A=!0;return O&&O.state==="open"?A=!1:I&&S&&(A=!(Math.abs(I-S)>5)),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{disabled:v,icon:"arrow-left",onClick:function(){return c("cycle_ext")},children:"Cycle to Exterior"}),(0,e.jsx)(t.$n,{disabled:v,icon:"arrow-right",onClick:function(){return c("cycle_int")},children:"Cycle to Interior"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:v,color:T?"":"bad",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return c("force_ext")},children:"Force Exterior Door"}),(0,e.jsx)(t.$n.Confirm,{disabled:v,color:A?"":"bad",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return c("force_int")},children:"Force Interior Door"})]})]})},g=function(i){var c=i.exterior_status,f=i.docking_status,m=i.armed,v={docked:(0,e.jsx)(d,{armed:m}),undocking:(0,e.jsx)(t.az,{color:"average",children:"EJECTING-STAND CLEAR!"}),undocked:(0,e.jsx)(t.az,{color:"grey",children:"POD EJECTED"}),docking:(0,e.jsx)(t.az,{color:"good",children:"INITIALIZING..."})};return(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Escape Pod Status",children:v[f]}),(0,e.jsx)(x,{state:c.state})]})})},x=function(i){var c=i.state,f=[];return f.open=(0,e.jsx)(t.az,{color:"average",children:"OPEN"}),f.unlocked=(0,e.jsx)(t.az,{color:"average",children:"UNSECURED"}),f.locked=(0,e.jsx)(t.az,{color:"good",children:"SECURED"}),(0,e.jsx)(t.Ki.Item,{label:"Docking Hatch",children:f[c]||(0,e.jsx)(t.az,{color:"bad",children:"ERROR"})})},d=function(i){var c=i.armed;return c?(0,e.jsx)(t.az,{color:"average",children:"ARMED"}):(0,e.jsx)(t.az,{color:"good",children:"SYSTEMS OK"})},a=function(i){var c=(0,o.Oc)().act,f=i.docking_status,m=i.override_enabled;return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{disabled:!m,icon:"exclamation-triangle",color:f!=="docked"?"bad":"",onClick:function(){return c("force_door")},children:"Force Exterior Door"}),(0,e.jsx)(t.$n,{selected:m,color:f!=="docked"?"bad":"average",icon:"exclamation-triangle",onClick:function(){return c("toggle_override")},children:"Override"})]})},l=function(i){var c=i.docking_status,f=i.override_enabled,m={docked:(0,e.jsx)(t.az,{color:"good",children:"DOCKED"}),docking:(0,e.jsx)(t.az,{color:"average",children:"DOCKING"}),undocking:(0,e.jsx)(t.az,{color:"average",children:"UNDOCKING"}),undocked:(0,e.jsx)(t.az,{color:"grey",children:"NOT IN USE"})},v=m[c];return f&&(v=(0,e.jsxs)(t.az,{color:"bad",children:[c.toUpperCase(),"-OVERRIDE ENABLED"]})),v}},83783:function(y,u,n){"use strict";n.r(u),n.d(u,{EscapePodBerthConsole:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)().data,d=x.exterior_status,a=x.docking_status,l=x.armed,i=x.override_enabled;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.EscapePodStatus,{exterior_status:d,docking_status:a,armed:l}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsx)(r.EscapePodControls,{docking_status:a,override_enabled:i})})]})}},13802:function(y,u,n){"use strict";n.r(u),n.d(u,{EscapePodConsole:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.exterior_status,i=a.docking_status,c=a.override_enabled,f=a.armed,m=a.can_force;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.EscapePodStatus,{exterior_status:l,docking_status:i,armed:f}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.EscapePodControls,{docking_status:i,override_enabled:c}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:f,color:f?"bad":"average",onClick:function(){return d("manual_arm")},children:"ARM"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:!m,color:"bad",onClick:function(){return d("force_launch")},children:"MANUAL EJECT"})]})]})]})}},84323:function(y,u,n){"use strict";n.r(u),n.d(u,{EmbeddedController:function(){return f}});var e=n(20462),o=n(7081),t=n(15581),r=n(27133),s=n(34012),g=n(29935),x=n(32965),d=n(74390),a=n(75355),l=n(77506),i=n(83783),c=n(13802),f=function(m){var v=(0,o.Oc)().data,E=v.internalTemplateName,j={};j.AirlockConsoleAdvanced=(0,e.jsx)(r.AirlockConsoleAdvanced,{}),j.AirlockConsoleSimple=(0,e.jsx)(x.AirlockConsoleSimple,{}),j.AirlockConsolePhoron=(0,e.jsx)(g.AirlockConsolePhoron,{}),j.AirlockConsoleDocking=(0,e.jsx)(s.AirlockConsoleDocking,{}),j.DockingConsoleSimple=(0,e.jsx)(a.DockingConsoleSimple,{}),j.DockingConsoleMulti=(0,e.jsx)(d.DockingConsoleMulti,{}),j.DoorAccessConsole=(0,e.jsx)(l.DoorAccessConsole,{}),j.EscapePodConsole=(0,e.jsx)(c.EscapePodConsole,{}),j.EscapePodBerthConsole=(0,e.jsx)(i.EscapePodBerthConsole,{});var O=j[E];if(!O)throw Error("Unable to find Component for template name: "+E);return(0,e.jsx)(t.p8,{width:450,height:340,children:(0,e.jsx)(t.p8.Content,{children:O})})}},2076:function(y,u,n){"use strict";n.r(u)},26356:function(y,u,n){"use strict";n.r(u),n.d(u,{DisplayDetails:function(){return d},EntityNarrate:function(){return g},EntitySelection:function(){return x},ModeSelector:function(){return a},NarrationInput:function(){return l}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data;return(0,e.jsx)(s.p8,{width:800,height:470,theme:"abstract",children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{scrollable:!0,grow:2,fill:!0,children:(0,e.jsx)(r.wn,{scrollable:!0,children:(0,e.jsx)(x,{})})}),(0,e.jsx)(r.so.Item,{grow:.25,fill:!0,children:(0,e.jsx)(r.cG,{vertical:!0})}),(0,e.jsx)(r.so.Item,{grow:6.75,fill:!0,children:(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{direction:"column",justify:"space-between",children:[(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(r.wn,{title:"Details",children:(0,e.jsx)(d,{})})}),(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(r.wn,{title:"Select Behaviour",children:(0,e.jsx)(a,{})})}),(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(l,{})})]})})})]})})})})},x=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selection_mode,E=m.multi_id_selection,j=m.entity_names;return(0,e.jsx)(r.so,{direction:"column",grow:!0,children:(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.wn,{title:"Choose!",buttons:(0,e.jsx)(r.$n,{selected:v,onClick:function(){return f("change_mode_multi")},children:"Multi-Selection"}),children:(0,e.jsx)(r.tU,{vertical:!0,children:j.map(function(O){return(0,e.jsx)(r.tU.Tab,{selected:E.includes(O),onClick:function(){return f("select_entity",{id_selected:O})},children:(0,e.jsx)(r.az,{inline:!0,children:O})},O)})})})})})},d=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selection_mode,E=m.number_mob_selected,j=m.selected_id,O=m.selected_name,M=m.selected_type;return v?(0,e.jsxs)(r.az,{children:[(0,e.jsx)("b",{children:"Number of entities selected:"})," ",E]}):(0,e.jsxs)(r.az,{children:[(0,e.jsx)("b",{children:"Selected ID:"})," ",j," ",(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Selected Name:"})," ",O," ",(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Selected Type:"})," ",M," ",(0,e.jsx)("br",{})]})},a=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.privacy_select,E=m.mode_select;return(0,e.jsxs)(r.so,{direction:"row",children:[(0,e.jsx)(r.so.Item,{grow:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return f("change_mode_privacy")},selected:v,fluid:!0,tooltip:"This button changes whether your narration is loud (any who see/hear) or subtle (range of 1 tile) "+(v?"Click here to disable subtle mode":"Click here to enable subtle mode"),children:v?"Currently: Subtle":"Currently: Loud"})}),(0,e.jsx)(r.so.Item,{grow:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return f("change_mode_narration")},selected:E,fluid:!0,tooltip:"This button sets your narration to talk audiably or emote visibly "+(E?"Click here to emote visibly.":"Click here to talk audiably."),children:E?"Currently: Emoting":"Currently: Talking"})})]})},l=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=(0,o.useState)(""),E=v[0],j=v[1];return(0,e.jsx)(r.wn,{title:"Narration Text",buttons:(0,e.jsx)(r.$n,{onClick:function(){return f("narrate",{message:E})},children:"Send Narration"}),children:(0,e.jsx)(r.so,{children:(0,e.jsx)(r.so.Item,{width:"85%",children:(0,e.jsx)(r.fs,{height:"18rem",onChange:function(O,M){return j(M)},value:E||""})})})})}},63183:function(y,u,n){"use strict";n.r(u),n.d(u,{ExonetNode:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.allowPDAs,c=a.allowCommunicators,f=a.allowNewscasters,m=a.logs;return(0,e.jsx)(r.p8,{width:400,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return d("toggle_power")},children:"Power "+(l?"On":"Off")}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Incoming PDA Messages",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:i,onClick:function(){return d("toggle_PDA_port")},children:i?"Open":"Closed"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Communicators",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c,onClick:function(){return d("toggle_communicator_port")},children:c?"Open":"Closed"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Newscaster Content",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:f,onClick:function(){return d("toggle_newscaster_port")},children:f?"Open":"Closed"})})]})}),(0,e.jsx)(t.wn,{title:"Logging",children:(0,e.jsxs)(t.so,{wrap:"wrap",children:[m.map(function(v,E){return(0,e.jsx)(t.so.Item,{m:"2px",basis:"49%",grow:E%2,children:v},E)}),!m||m.length===0?(0,e.jsx)(t.az,{color:"average",children:"No logs found."}):null]})})]})})}},2858:function(y,u,n){"use strict";n.r(u),n.d(u,{MaterialAmount:function(){return i},Materials:function(){return l}});var e=n(20462),o=n(4089),t=n(65380),r=n(61282),s=n(7081),g=n(88569),x=n(41242),d=n(51890),a=function(c){var f=(0,s.Oc)().act,m=c.material,v=m.name,E=m.removable,j=m.sheets,O=(0,s.QY)("remove_mats_"+v,1),M=O[0],_=O[1];return M>1&&j0});return M.length===0?(0,e.jsxs)(g.az,{textAlign:"center",children:[(0,e.jsx)(g.In,{textAlign:"center",size:5,name:"inbox"}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"No Materials Loaded."})]}):(0,e.jsx)(g.so,{wrap:"wrap",children:M.map(function(_){return(0,e.jsxs)(g.so.Item,{width:"80px",children:[(0,e.jsx)(i,{name:_.name,amount:_.amount,formatsi:!0}),!E&&(0,e.jsx)(g.az,{mt:1,style:{textAlign:"center"},children:(0,e.jsx)(a,{material:_})})]},_.name)||""})})},i=function(c){var f=c.name,m=c.amount,v=c.formatsi,E=c.formatmoney,j=c.color,O=c.style,M="0";return m<1&&m>0?M=(0,o.Mg)(m,2):v?M=(0,x.QL)(m,0):E?M=(0,x.up)(m):M=m.toString(),(0,e.jsxs)(g.so,{direction:"column",align:"center",children:[(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.m_,{position:"bottom",content:(0,r.Sn)(f),children:(0,e.jsx)(g.az,{className:(0,t.Ly)(["sheetmaterials32x32",d.MATERIAL_KEYS[f]]),position:"relative",style:O})})}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.az,{textColor:j,style:{textAlign:"center"},children:M})})]})}},61763:function(y,u,n){"use strict";n.r(u),n.d(u,{PartLists:function(){return a},PartSets:function(){return d}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(51890),g=n(42878),x=n(2858),d=function(i){var c=(0,t.Oc)().data,f=c.partSets,m=f===void 0?[]:f,v=c.buildableParts,E=v===void 0?[]:v,j=(0,t.QY)("part_tab",m.length?E[0]:""),O=j[0],M=j[1];return(0,e.jsx)(r.tU,{vertical:!0,children:m.map(function(_){return!!E[_]&&(0,e.jsx)(r.tU.Tab,{selected:_===O,onClick:function(){return M(_)},children:_},_)})})},a=function(i){var c=(0,t.Oc)().data,f=c.partSets,m=f===void 0?[]:f,v=c.buildableParts,E=v===void 0?[]:v,j=i.queueMaterials,O=i.materials,M=(0,t.QY)("part_tab",(0,g.getFirstValidPartSet)(m,E)),_=M[0],I=M[1],S=(0,t.QY)("search_text",""),T=S[0],A=S[1];if(!_||!E[_]){var K=(0,g.getFirstValidPartSet)(m,E);if(K)I(K);else return}var W={Parts:[]},$=[];return T?(0,g.searchFilter)(T,E).forEach(function(k){k.format=(0,g.partCondFormat)(O,j,k),$.push(k)}):(W={Parts:[]},E[_].forEach(function(k){if(k.format=(0,g.partCondFormat)(O,j,k),!k.subCategory){W.Parts.push(k);return}k.subCategory in W||(W[k.subCategory]=[]),W[k.subCategory].push(k)})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{mr:1,children:(0,e.jsx)(r.In,{name:"search"})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.pd,{fluid:!0,placeholder:"Search for...",value:T,onInput:function(k,z){return A(z)}})})]})}),!!T&&(0,e.jsx)(l,{name:"Search Results",parts:$,forceShow:!0,placeholder:"No matching results..."})||Object.keys(W).map(function(k){return(0,e.jsx)(l,{name:k,parts:W[k]},k)})]})},l=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.buildingPart,E=i.parts,j=i.name,O=i.forceShow,M=i.placeholder,_=(0,t.QY)("display_mats",!1),I=_[0];return(!!E.length||O)&&(0,e.jsxs)(r.wn,{title:j,buttons:(0,e.jsx)(r.$n,{disabled:!E.length,color:"good",icon:"plus-circle",onClick:function(){return f("add_queue_set",{part_list:E.map(function(S){return S.id})})},children:"Queue All"}),children:[!E.length&&M,E.map(function(S){return(0,e.jsxs)(o.Fragment,{children:[(0,e.jsxs)(r.so,{align:"center",children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{disabled:!!v||S.format.textColor===s.COLOR_BAD,color:"good",height:"20px",mr:1,icon:"play",onClick:function(){return f("build_part",{id:S.id})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{color:"average",height:"20px",mr:1,icon:"plus-circle",onClick:function(){return f("add_queue_part",{id:S.id})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.az,{inline:!0,textColor:s.COLOR_KEYS[S.format.textColor],children:S.name})}),(0,e.jsx)(r.so.Item,{grow:1}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"question-circle",color:"transparent",height:"20px",tooltip:"Build Time: "+S.printTime+"s. "+(S.desc||""),tooltipPosition:"left"})})]}),I&&(0,e.jsx)(r.so,{mb:2,children:Object.keys(S.cost).map(function(T){return(0,e.jsx)(r.so.Item,{width:"50px",color:s.COLOR_KEYS[S.format[T].color],children:(0,e.jsx)(x.MaterialAmount,{formatmoney:!0,style:{transform:"scale(0.75) translate(0%, 10%)"},name:T,amount:S.cost[T]})},T)})})]},S.name)})]})}},46372:function(y,u,n){"use strict";n.r(u),n.d(u,{Queue:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(41242),s=n(51890),g=n(2858),x=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.isProcessingQueue,E=m.queue,j=E===void 0?[]:E,O=i.queueMaterials,M=i.missingMaterials,_=i.textColors,I=!j||!j.length;return(0,e.jsxs)(t.so,{height:"100%",width:"100%",direction:"column",children:[(0,e.jsx)(t.so.Item,{height:0,grow:1,children:(0,e.jsx)(t.wn,{height:"100%",title:"Queue",overflowY:"auto",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:I,color:"bad",icon:"minus-circle",onClick:function(){return f("clear_queue")},children:"Clear Queue"}),!!v&&(0,e.jsx)(t.$n,{disabled:I,icon:"stop",onClick:function(){return f("stop_queue")},children:"Stop"})||(0,e.jsx)(t.$n,{disabled:I,icon:"play",onClick:function(){return f("build_queue")},children:"Build Queue"})]}),children:(0,e.jsxs)(t.so,{direction:"column",height:"100%",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(l,{})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(a,{textColors:_})})]})})}),!I&&(0,e.jsx)(t.so.Item,{mt:1,children:(0,e.jsx)(t.wn,{title:"Material Cost",children:(0,e.jsx)(d,{queueMaterials:O,missingMaterials:M})})})]})},d=function(i){var c=i.queueMaterials,f=i.missingMaterials;return(0,e.jsx)(t.so,{wrap:"wrap",children:Object.keys(c).map(function(m){return(0,e.jsxs)(t.so.Item,{width:"12%",children:[(0,e.jsx)(g.MaterialAmount,{formatmoney:!0,name:m,amount:c[m]}),!!f[m]&&(0,e.jsx)(t.az,{textColor:"bad",style:{textAlign:"center"},children:(0,r.up)(f[m])})]},m)})})},a=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=i.textColors,E=m.queue,j=E===void 0?[]:E;return!j||!j.length?(0,e.jsx)(e.Fragment,{children:"No parts in queue."}):j.map(function(O,M){return(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.so,{mb:.5,direction:"column",justify:"center",wrap:"wrap",height:"20px",inline:!0,children:[(0,e.jsx)(t.so.Item,{basis:"content",children:(0,e.jsx)(t.$n,{height:"20px",mr:1,icon:"minus-circle",color:"bad",onClick:function(){return f("del_queue_part",{index:M+1})}})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{inline:!0,textColor:s.COLOR_KEYS[v[M]],children:O.name})})]})},O.name)})},l=function(i){var c=(0,o.Oc)().data,f=c.buildingPart,m=c.storedPart;if(m)return(0,e.jsx)(t.az,{children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:1,color:"average",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{children:m}),(0,e.jsx)(t.so.Item,{grow:1}),(0,e.jsx)(t.so.Item,{children:"Fabricator outlet obstructed..."})]})})});if(f){var v=f.name,E=f.duration,j=f.printTime,O=Math.ceil(E/10);return(0,e.jsx)(t.az,{children:(0,e.jsx)(t.z2,{minValue:0,maxValue:j,value:E,children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{children:v}),(0,e.jsx)(t.so.Item,{grow:1}),(0,e.jsx)(t.so.Item,{children:O>=0&&O+"s"||"Dispensing..."})]})})})}}},51890:function(y,u,n){"use strict";n.r(u),n.d(u,{COLOR_AVERAGE:function(){return t},COLOR_BAD:function(){return r},COLOR_KEYS:function(){return g},COLOR_NONE:function(){return o},MATERIAL_KEYS:function(){return e}});var e={steel:"sheet-metal_3",glass:"sheet-glass_3",silver:"sheet-silver_3",graphite:"sheet-puck_3",plasteel:"sheet-plasteel_3",durasteel:"sheet-durasteel_3",verdantium:"sheet-wavy_3",morphium:"sheet-wavy_3",mhydrogen:"sheet-mythril_3",gold:"sheet-gold_3",diamond:"sheet-diamond",supermatter:"sheet-super_3",osmium:"sheet-silver_3",phoron:"sheet-phoron_3",uranium:"sheet-uranium_3",titanium:"sheet-titanium_3",lead:"sheet-adamantine_3",platinum:"sheet-adamantine_3",plastic:"sheet-plastic_3"},o=0,t=1,r=2,s,g=(s={},s[o]=void 0,s[t]="average",s[r]="bad",s)},42878:function(y,u,n){"use strict";n.r(u),n.d(u,{getFirstValidPartSet:function(){return c},materialArrayToObj:function(){return x},partBuildColor:function(){return d},partCondFormat:function(){return a},queueCondFormat:function(){return l},searchFilter:function(){return i}});var e=n(7402),o=n(61282),t=n(51890);function r(f,m){(m==null||m>f.length)&&(m=f.length);for(var v=0,E=new Array(m);v=f.length?{done:!0}:{done:!1,value:f[E++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(f){var m={};return f.forEach(function(v){m[v.name]=v.amount}),m}function d(f,m,v){return f>v?{color:t.COLOR_BAD,deficit:f-v}:m>v?{color:t.COLOR_AVERAGE,deficit:f}:f+m>v?{color:t.COLOR_AVERAGE,deficit:f+m-v}:{color:t.COLOR_NONE,deficit:0}}function a(f,m,v){var E={textColor:t.COLOR_NONE};return Object.keys(v.cost).forEach(function(j){E[j]=d(v.cost[j],m[j],f[j]),E[j].color>E.textColor&&(E.textColor=E[j].color)}),E}function l(f,m){var v={},E={},j={},O={};return m&&m.forEach(function(M,_){O[_]=t.COLOR_NONE,Object.keys(M.cost).forEach(function(I){v[I]=v[I]||0,j[I]=j[I]||0,E[I]=d(M.cost[I],v[I],f[I]),E[I].color!==t.COLOR_NONE?O[_]=100?c="Running":!l&&i>0&&(c="DISCHARGING"),(0,e.jsx)(r.p8,{width:500,height:400,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n.Confirm,{icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",color:"red",confirmContent:l?"This will disable gravity!":"This will enable gravity!",onClick:function(){return d("gentoggle")},children:"Toggle Breaker"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Breaker Setting",children:l?"Generator Enabled":"Generator Disabled"}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Mode",children:["Generator ",c]}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Status",children:[i,"%"]})]})})})})}},88941:function(y,u,n){"use strict";n.r(u),n.d(u,{GuestPass:function(){return g}});var e=n(20462),o=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.area,c=l.giver,f=l.giveName,m=l.reason,v=l.duration,E=l.mode,j=l.log,O=l.uid;return(0,e.jsx)(s.p8,{width:500,height:520,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:E===1&&(0,e.jsxs)(r.wn,{title:"Activity Log",buttons:(0,e.jsx)(r.$n,{icon:"scroll",selected:!0,onClick:function(){return a("mode",{mode:0})},children:"Activity Log"}),children:[(0,e.jsx)(r.$n,{icon:"print",onClick:function(){return a("print")},fluid:!0,mb:1,children:"Print"}),(0,e.jsx)(r.wn,{title:"Logs",children:j.length&&j.map(function(M){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:M}},M)})||(0,e.jsx)(r.az,{children:"No logs."})})]})||(0,e.jsxs)(r.wn,{title:"Guest pass terminal #"+O,buttons:(0,e.jsx)(r.$n,{icon:"scroll",onClick:function(){return a("mode",{mode:1})},children:"Activity Log"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Issuing ID",children:(0,e.jsx)(r.$n,{onClick:function(){return a("id")},children:c||"Insert ID"})}),(0,e.jsx)(r.Ki.Item,{label:"Issued To",children:(0,e.jsx)(r.$n,{onClick:function(){return a("giv_name")},children:f})}),(0,e.jsx)(r.Ki.Item,{label:"Reason",children:(0,e.jsx)(r.$n,{onClick:function(){return a("reason")},children:m})}),(0,e.jsx)(r.Ki.Item,{label:"Duration (minutes)",children:(0,e.jsx)(r.$n,{onClick:function(){return a("duration")},children:v})})]}),(0,e.jsx)(r.$n.Confirm,{icon:"check",fluid:!0,onClick:function(){return a("issue")},children:"Issue Pass"}),(0,e.jsx)(r.wn,{title:"Access",children:(0,o.Ul)(i,function(M){return M.area_name}).map(function(M){return(0,e.jsx)(r.$n.Checkbox,{checked:M.on,onClick:function(){return a("access",{access:M.area})},children:M.area_name},M.area)})})]})})})}},52149:function(y,u,n){"use strict";n.r(u),n.d(u,{GyrotronControl:function(){return s},GyrotronControlContent:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:627,height:700,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.gyros;return(0,e.jsx)(t.wn,{title:"Gyrotrons",buttons:(0,e.jsx)(t.$n,{icon:"pencil-alt",onClick:function(){return a("set_tag")},children:"Set Tag"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Position"}),(0,e.jsx)(t.XI.Cell,{children:"Status"}),(0,e.jsx)(t.XI.Cell,{children:"Fire Delay"}),(0,e.jsx)(t.XI.Cell,{children:"Strength"})]}),i.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsxs)(t.XI.Cell,{children:[c.x,", ",c.y,", ",c.z]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c.active,disabled:!c.deployed,onClick:function(){return a("toggle_active",{gyro:c.ref})},children:c.active?"Online":"Offline"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.N6,{width:"60px",size:1.25,color:!!c.active&&"yellow",value:c.fire_delay,unit:"decisecond(s)",minValue:1,maxValue:60,stepPixelSize:1,onDrag:function(f,m){return a("set_rate",{gyro:c.ref,rate:m})}})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.N6,{width:"60px",size:1.25,color:!!c.active&&"yellow",value:c.strength,unit:"penta-dakw",minValue:1,maxValue:50,stepPixelSize:1,onDrag:function(f,m){return a("set_str",{gyro:c.ref,str:m})}})})]},c.name)})]})})}},44791:function(y,u,n){"use strict";n.r(u),n.d(u,{Holodeck:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.supportedPrograms,i=a.restrictedPrograms,c=a.currentProgram,f=a.isSilicon,m=a.safetyDisabled,v=a.emagged,E=a.gravity,j=l;return m&&(j=j.concat(i)),(0,e.jsx)(r.p8,{width:400,height:610,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Programs",children:j.map(function(O){return(0,e.jsx)(t.$n,{color:i.indexOf(O)!==-1?"bad":null,icon:"eye",selected:c===O,fluid:!0,onClick:function(){return d("program",{program:O})},children:O},O)})}),!!f&&(0,e.jsx)(t.wn,{title:"Override",children:(0,e.jsxs)(t.$n,{icon:"exclamation-triangle",fluid:!0,disabled:v,color:m?"good":"bad",onClick:function(){return d("AIoverride")},children:[!!v&&"Error, unable to control. ",m?"Enable Safeties":"Disable Safeties"]})}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Safeties",children:m?(0,e.jsx)(t.az,{color:"bad",children:"DISABLED"}):(0,e.jsx)(t.az,{color:"good",children:"ENABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Gravity",children:(0,e.jsx)(t.$n,{icon:"user-astronaut",selected:E,onClick:function(){return d("gravity")},children:E?"Enabled":"Disabled"})})]})})]})})}},83860:function(y,u,n){"use strict";n.r(u),n.d(u,{ICAssembly:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(a){var l=(0,t.Oc)().data,i=l.total_parts,c=l.max_components,f=l.total_complexity,m=l.max_complexity,v=l.battery_charge,E=l.battery_max,j=l.net_power,O=l.unremovable_circuits,M=l.removable_circuits;return(0,e.jsx)(g.p8,{width:600,height:380,children:(0,e.jsxs)(g.p8.Content,{scrollable:!0,children:[(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Space in Assembly",children:(0,e.jsx)(r.z2,{ranges:{good:[0,.25],average:[.5,.75],bad:[.75,1]},value:i/c,maxValue:1,children:i+" / "+c+" ("+(0,o.Mg)(i/c*100,1)+"%)"})}),(0,e.jsx)(r.Ki.Item,{label:"Complexity",children:(0,e.jsx)(r.z2,{ranges:{good:[0,.25],average:[.5,.75],bad:[.75,1]},value:f/m,maxValue:1,children:f+" / "+m+" ("+(0,o.Mg)(f/m*100,1)+"%)"})}),(0,e.jsx)(r.Ki.Item,{label:"Cell Charge",children:v&&(0,e.jsx)(r.z2,{ranges:{bad:[0,.25],average:[.5,.75],good:[.75,1]},value:v/E,maxValue:1,children:v+" / "+E+" ("+(0,o.Mg)(v/E*100,1)+"%)"})||(0,e.jsx)(r.az,{color:"bad",children:"No cell detected."})}),(0,e.jsx)(r.Ki.Item,{label:"Net Energy",children:j===0&&"0 W/s"||(0,e.jsx)(r.zv,{value:j,format:function(_){return"-"+(0,s.d5)(Math.abs(_))+"/s"}})})]})}),O.length&&(0,e.jsx)(d,{title:"Built-in Components",circuits:O})||null,M.length&&(0,e.jsx)(d,{title:"Removable Components",circuits:M})||null]})})},d=function(a){var l=(0,t.Oc)().act,i=a.title,c=a.circuits;return(0,e.jsx)(r.wn,{title:i,children:(0,e.jsx)(r.Ki,{children:c.map(function(f){return(0,e.jsxs)(r.Ki.Item,{label:f.name,children:[(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("open_circuit",{ref:f.ref})},children:"View"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("rename_circuit",{ref:f.ref})},children:"Rename"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("scan_circuit",{ref:f.ref})},children:"Debugger Scan"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("remove_circuit",{ref:f.ref})},children:"Remove"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("bottom_circuit",{ref:f.ref})},children:"Move to Bottom"})]},f.ref)})})})}},23343:function(y,u,n){"use strict";n.r(u),n.d(u,{ICCircuit:function(){return x}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.desc,v=f.displayed_name,E=f.complexity,j=f.power_draw_idle,O=f.power_draw_per_use,M=f.extended_desc,_=f.inputs,I=f.outputs,S=f.activators;return(0,e.jsx)(g.p8,{width:600,height:400,title:v,children:(0,e.jsxs)(g.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.wn,{title:"Stats",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{onClick:function(){return c("rename")},children:"Rename"}),(0,e.jsx)(r.$n,{onClick:function(){return c("scan")},children:"Scan with Device"}),(0,e.jsx)(r.$n,{onClick:function(){return c("remove")},children:"Remove"})]}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Complexity",children:E}),j&&(0,e.jsx)(r.Ki.Item,{label:"Power Draw (Idle)",children:(0,s.d5)(j)})||null,O&&(0,e.jsx)(r.Ki.Item,{label:"Power Draw (Active)",children:(0,s.d5)(O)})||null]}),M]}),(0,e.jsxs)(r.wn,{title:"Circuit",children:[(0,e.jsxs)(r.so,{textAlign:"center",spacing:1,children:[_.length&&(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{title:"Inputs",children:(0,e.jsx)(d,{list:_})})})||null,(0,e.jsx)(r.so.Item,{basis:_.length&&I.length?"33%":_.length||I.length?"45%":"100%",children:(0,e.jsx)(r.wn,{title:v,mb:1,children:(0,e.jsx)(r.az,{children:m})})}),I.length&&(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{title:"Outputs",children:(0,e.jsx)(d,{list:I})})})||null]}),(0,e.jsx)(r.wn,{title:"Triggers",children:S.map(function(T){return(0,e.jsxs)(r.Ki.Item,{label:T.name,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("pin_name",{pin:T.ref})},children:T.pulse_out?"":""}),(0,e.jsx)(a,{pin:T})]},T.name)})})]})]})})},d=function(l){var i=(0,t.Oc)().act,c=l.list;return c.map(function(f){return(0,e.jsxs)(r.az,{children:[(0,e.jsxs)(r.$n,{onClick:function(){return i("pin_name",{pin:f.ref})},children:[(0,o.jT)(f.type),": ",f.name]}),(0,e.jsx)(r.$n,{onClick:function(){return i("pin_data",{pin:f.ref})},children:f.data}),(0,e.jsx)(a,{pin:f})]},f.ref)})},a=function(l){var i=(0,t.Oc)().act,c=l.pin;return c.linked.map(function(f){return(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return i("pin_unwire",{pin:c.ref,link:f.ref})},children:f.name}),"@\xA0",(0,e.jsx)(r.$n,{onClick:function(){return i("examine",{ref:f.holder_ref})},children:f.holder_name})]},f.ref)})}},87134:function(y,u,n){"use strict";n.r(u),n.d(u,{ICDetailer:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.detail_color,c=l.color_list;return(0,e.jsx)(s.p8,{width:420,height:254,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{children:Object.keys(c).map(function(f,m){return(0,e.jsx)(r.$n,{ml:0,mr:0,mb:-.4,mt:0,tooltip:(0,o.Sn)(f),tooltipPosition:m%6===5?"left":"right",height:"64px",width:"64px",onClick:function(){return a("change_color",{color:f})},style:c[f]===i?{border:"4px solid black",borderRadius:"0"}:{borderRadius:"0"},backgroundColor:c[f]},f)})})})})}},92306:function(y,u,n){"use strict";n.r(u),n.d(u,{ICPrinter:function(){return g}});var e=n(20462),o=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(a){var l=(0,t.Oc)().data,i=l.metal,c=l.max_metal,f=l.metal_per_sheet,m=l.upgraded,v=l.can_clone;return(0,e.jsx)(s.p8,{width:600,height:630,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.wn,{title:"Status",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Metal",children:(0,e.jsxs)(r.z2,{value:i,maxValue:c,children:[i/f," / ",c/f," sheets"]})}),(0,e.jsx)(r.Ki.Item,{label:"Circuits Available",children:m?"Advanced":"Regular"}),(0,e.jsx)(r.Ki.Item,{label:"Assembly Cloning",children:v?"Available":"Unavailable"})]}),(0,e.jsx)(r.az,{mt:1,children:"Note: A red component name means that the printer must be upgraded to create that component."})]}),(0,e.jsx)(d,{})]})})};function x(a,l){return!(!a.can_build||a.cost>l.metal)}var d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.categories,m=(0,t.QY)("categoryTarget",""),v=m[0],E=m[1],j=(0,o.pb)(f,function(O){return O.name===v})[0];return(0,e.jsx)(r.wn,{title:"Circuits",children:(0,e.jsxs)(r.BJ,{fill:!0,children:[(0,e.jsx)(r.BJ.Item,{mr:2,children:(0,e.jsx)(r.tU,{vertical:!0,children:(0,o.Ul)(f,function(O){return O.name}).map(function(O){return(0,e.jsx)(r.tU.Tab,{selected:v===O.name,onClick:function(){return E(O.name)},children:O.name},O.name)})})}),(0,e.jsx)(r.BJ.Item,{children:j?(0,e.jsx)(r.wn,{children:(0,e.jsx)(r.Ki,{children:(0,o.Ul)(j.items,function(O){return O.name}).map(function(O){return(0,e.jsx)(r.Ki.Item,{label:O.name,labelColor:O.can_build?"good":"bad",buttons:(0,e.jsx)(r.$n,{disabled:!x(O,c),icon:"print",onClick:function(){return i("build",{build:O.path})},children:"Print"}),children:O.desc},O.name)})})}):(0,e.jsx)(r.az,{children:"No category selected."})})]})})}},98309:function(y,u,n){"use strict";n.r(u),n.d(u,{IDCard:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(10921),g=function(x){var d=(0,o.Oc)().data,a=d.registered_name,l=d.sex,i=d.species,c=d.age,f=d.assignment,m=d.fingerprint_hash,v=d.blood_type,E=d.dna_hash,j=d.photo_front,O=[{name:"Sex",val:l},{name:"Species",val:i},{name:"Age",val:c},{name:"Blood Type",val:v},{name:"Fingerprint",val:m},{name:"DNA Hash",val:E}];return(0,e.jsx)(r.p8,{width:470,height:250,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{basis:"25%",textAlign:"left",children:(0,e.jsx)(t.az,{inline:!0,style:{width:"101px",height:"120px",overflow:"hidden",outline:"2px solid #4972a1"},children:j&&(0,e.jsx)(t._V,{src:j.substring(1,j.length-1),style:{width:"300px",marginLeft:"-94px"}})||(0,e.jsx)(t.In,{name:"user",size:8,ml:1.5,mt:2.5})})}),(0,e.jsx)(t.so.Item,{basis:0,grow:1,children:(0,e.jsx)(t.Ki,{children:O.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:M.val},M.name)})})})]}),(0,e.jsxs)(t.so,{className:"IDCard__NamePlate",align:"center",justify:"space-around",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:a})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:(0,e.jsx)(s.RankIcon,{color:"",rank:f})})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:f})})]})]})})})}},39841:function(y,u,n){"use strict";n.r(u),n.d(u,{IdentificationComputer:function(){return a},IdentificationComputerAccessModification:function(){return c},IdentificationComputerContent:function(){return l},IdentificationComputerPrinting:function(){return i},IdentificationComputerRegions:function(){return f}});var e=n(20462),o=n(7402),t=n(61282),r=n(61358),s=n(7081),g=n(88569),x=n(15581),d=n(58044),a=function(){return(0,e.jsx)(x.p8,{width:600,height:700,children:(0,e.jsx)(x.p8.Content,{children:(0,e.jsx)(l,{})})})},l=function(m){var v=(0,s.Oc)(),E=v.act,j=v.data,O=m.ntos,M=j.mode,_=j.has_modify,I=j.printing,S=j.have_id_slot,T=j.have_printer,A=(0,e.jsx)(c,{ntos:O});return O&&!S?A=(0,e.jsx)(d.CrewManifestContent,{}):I?A=(0,e.jsx)(i,{}):M===1&&(A=(0,e.jsx)(d.CrewManifestContent,{})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(g.tU,{children:[(!O||!!S)&&(0,e.jsx)(g.tU.Tab,{icon:"home",selected:M===0,onClick:function(){return E("mode",{mode_target:0})},children:"Access Modification"}),(0,e.jsx)(g.tU.Tab,{icon:"home",selected:M===1,onClick:function(){return E("mode",{mode_target:1})},children:"Crew Manifest"}),!O||!!T&&(0,e.jsx)(g.tU.Tab,{style:{float:"right"},icon:"print",onClick:function(){return(M||_)&&E("print")},color:!M&&!_?"transparent":"",children:"Print"})]}),A]})},i=function(m){return(0,e.jsx)(g.wn,{title:"Printing",children:"Please wait..."})},c=function(m){var v=(0,s.Oc)(),E=v.act,j=v.data,O=m.ntos,M=j.station_name,_=j.target_name,I=j.target_owner,S=I===void 0?"":I,T=j.scan_name,A=j.authenticated,K=j.has_modify,W=j.account_number,$=W===void 0?"":W,k=j.centcom_access,z=j.all_centcom_access,H=j.id_rank,G=j.departments;return(0,e.jsxs)(g.wn,{title:"Access Modification",children:[!A&&(0,e.jsx)(g.az,{italic:!0,mb:1,children:"Please insert the IDs into the terminal to proceed."}),(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Target Identitity",children:(0,e.jsx)(g.$n,{icon:"eject",fluid:!0,onClick:function(){return E("modify")},children:_})}),!O&&(0,e.jsx)(g.Ki.Item,{label:"Authorized Identitity",children:(0,e.jsx)(g.$n,{icon:"eject",fluid:!0,onClick:function(){return E("scan")},children:T})})]}),!!A&&!!K&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.wn,{title:"Details",children:(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Registered Name",children:(0,e.jsx)(g.pd,{value:S,fluid:!0,onInput:function(Y,ee){return E("reg",{reg:ee})}})}),(0,e.jsx)(g.Ki.Item,{label:"Account Number",children:(0,e.jsx)(g.pd,{value:$,fluid:!0,onInput:function(Y,ee){return E("account",{account:ee})}})}),(0,e.jsx)(g.Ki.Item,{label:"Dismissals",children:(0,e.jsx)(g.$n.Confirm,{color:"bad",icon:"exclamation-triangle",confirmIcon:"fire",fluid:!0,confirmContent:"You are dismissing "+S+", confirm?",onClick:function(){return E("terminate")},children:"Dismiss "+S})})]})}),(0,e.jsx)(g.wn,{title:"Assignment",children:(0,e.jsxs)(g.XI,{children:[G.map(function(Y){return(0,e.jsxs)(r.Fragment,{children:[(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsx)(g.XI.Cell,{header:!0,verticalAlign:"middle",children:Y.department_name}),(0,e.jsx)(g.XI.Cell,{children:Y.jobs.map(function(ee){return(0,e.jsx)(g.$n,{selected:ee.job===H,onClick:function(){return E("assign",{assign_target:ee.job})},children:(0,t.jT)(ee.display_name)},ee.job)})})]}),(0,e.jsx)(g.az,{mt:-1,children:"\xA0"})," "]},Y.department_name)}),(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsx)(g.XI.Cell,{header:!0,verticalAlign:"middle",children:"Special"}),(0,e.jsx)(g.XI.Cell,{children:(0,e.jsx)(g.$n,{onClick:function(){return E("assign",{assign_target:"Custom"})},children:"Custom"})})]})]})}),!!k&&(0,e.jsx)(g.wn,{title:"Central Command",children:z.map(function(Y){return(0,e.jsx)(g.az,{children:(0,e.jsx)(g.$n,{fluid:!0,selected:Y.allowed,onClick:function(){return E("access",{access_target:Y.ref,allowed:Y.allowed})},children:(0,t.jT)(Y.desc)})},Y.ref)})})||(0,e.jsx)(g.wn,{title:M,children:(0,e.jsx)(f,{actName:"access"})})]})]})},f=function(m){var v=(0,s.Oc)(),E=v.act,j=v.data,O=m.actName,M=j.regions;return(0,e.jsx)(g.so,{wrap:"wrap",spacing:1,children:M&&(0,o.Ul)(M,function(_){return _.name}).map(function(_){return(0,e.jsx)(g.so.Item,{mb:1,basis:"content",grow:1,children:(0,e.jsx)(g.wn,{title:_.name,height:"100%",children:(0,o.Ul)(_.accesses,function(I){return I.desc}).map(function(I){return(0,e.jsx)(g.az,{children:(0,e.jsx)(g.$n,{fluid:!0,selected:I.allowed,onClick:function(){return E(O,{access_target:I.ref,allowed:I.allowed})},children:(0,t.jT)(I.desc)})},I.ref)})})},_.name)})})}},15450:function(y,u,n){"use strict";n.r(u),n.d(u,{InventoryPanel:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.slots,i=a.internalsValid;return(0,e.jsx)(r.p8,{width:400,height:200,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.Ki,{children:l&&l.length&&l.map(function(c){return(0,e.jsx)(t.Ki.Item,{label:c.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:c.item?"hand-paper":"gift",onClick:function(){return d(c.act)},children:c.item||"Nothing"})},c.name)})})}),i&&(0,e.jsx)(t.wn,{title:"Actions",children:i&&(0,e.jsx)(t.$n,{fluid:!0,icon:"lungs",onClick:function(){return d("internals")},children:"Set Internals"})||null})||null]})})}},66855:function(y,u,n){"use strict";n.r(u),n.d(u,{InventoryPanelHuman:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.slots,i=a.specialSlots,c=a.internalsValid,f=a.sensors,m=a.handcuffed,v=a.handcuffedParams,E=a.legcuffed,j=a.legcuffedParams,O=a.accessory;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[l&&l.length&&l.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:M.item?"hand-paper":"gift",onClick:function(){return d(M.act,M.params)},children:M.item||"Nothing"})},M.name)}),(0,e.jsx)(t.Ki.Divider,{}),i&&i.length&&i.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:M.item?"hand-paper":"gift",onClick:function(){return d(M.act,M.params)},children:M.item||"Nothing"})},M.name)})]})}),(0,e.jsxs)(t.wn,{title:"Actions",children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"running",onClick:function(){return d("targetSlot",{slot:"splints"})},children:"Remove Splints"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"hand-paper",onClick:function(){return d("targetSlot",{slot:"pockets"})},children:"Empty Pockets"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"socks",onClick:function(){return d("targetSlot",{slot:"underwear"})},children:"Remove or Replace Underwear"}),c&&(0,e.jsx)(t.$n,{fluid:!0,icon:"lungs",onClick:function(){return d("targetSlot",{slot:"internals"})},children:"Set Internals"})||null,f&&(0,e.jsx)(t.$n,{fluid:!0,icon:"book-medical",onClick:function(){return d("targetSlot",{slot:"sensors"})},children:"Set Sensors"})||null,m&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return d("targetSlot",v)},children:"Handcuffed"})||null,E&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return d("targetSlot",j)},children:"Legcuffed"})||null,O&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return d("targetSlot",{slot:"tie"})},children:"Remove Accessory"})||null]})]})})}},42592:function(y,u,n){"use strict";n.r(u),n.d(u,{IsolationCentrifuge:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.busy,i=a.antibodies,c=a.pathogens,f=a.is_antibody_sample,m=a.sample_inserted,v=(0,e.jsx)(t.az,{color:"average",children:"No vial detected."});return m&&(!i&&!c?v=(0,e.jsx)(t.az,{color:"average",children:"No antibodies or viral strains detected."}):v=(0,e.jsxs)(e.Fragment,{children:[i?(0,e.jsx)(t.wn,{title:"Antibodies",children:i}):"",c.length?(0,e.jsx)(t.wn,{title:"Pathogens",children:(0,e.jsx)(t.Ki,{children:c.map(function(E){return(0,e.jsx)(t.Ki.Item,{label:E.name,children:E.spread_type},E.name)})})}):""]})),(0,e.jsx)(r.p8,{width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:l?(0,e.jsx)(t.wn,{title:"The Centrifuge is currently busy.",color:"bad",children:(0,e.jsx)("center",{children:(0,e.jsx)(t.az,{color:"bad",children:l})})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:f?"Antibody Sample":"Blood Sample",children:[(0,e.jsxs)(t.so,{spacing:1,mb:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"print",disabled:!i&&!c.length,onClick:function(){return d("print")},children:"Print"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",disabled:!m,onClick:function(){return d("sample")},children:"Eject Vial"})})]}),v]}),i&&!f||c.length?(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[i&&!f?(0,e.jsx)(t.Ki.Item,{label:"Isolate Antibodies",children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return d("antibody")},children:i})}):"",c.length?(0,e.jsx)(t.Ki.Item,{label:"Isolate Strain",children:c.map(function(E){return(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return d("isolate",{isolate:E.reference})},children:E.name},E.name)})}):""]})}):""]})})})}},40939:function(y,u,n){"use strict";n.r(u),n.d(u,{JanitorCart:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.mybag,f=i.mybucket,m=i.mymop,v=i.myspray,E=i.myreplacer,j=i.signs;return(0,e.jsx)(r.p8,{width:210,height:180,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:c||"Garbage Bag Slot",tooltipPosition:"bottom-end",color:c?"grey":"transparent",style:{border:c?void 0:"2px solid grey"},onClick:function(){return l("bag")},children:(0,e.jsx)(x,{iconkey:"mybag"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:f||"Bucket Slot",tooltipPosition:"bottom",color:f?"grey":"transparent",style:{border:f?void 0:"2px solid grey"},onClick:function(){return l("bucket")},children:(0,e.jsx)(x,{iconkey:"mybucket"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:m||"Mop Slot",tooltipPosition:"bottom-end",color:m?"grey":"transparent",style:{border:m?void 0:"2px solid grey"},onClick:function(){return l("mop")},children:(0,e.jsx)(x,{iconkey:"mymop"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:v||"Spray Slot",tooltipPosition:"top-end",color:v?"grey":"transparent",style:{border:v?void 0:"2px solid grey"},onClick:function(){return l("spray")},children:(0,e.jsx)(x,{iconkey:"myspray"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:E||"Light Replacer Slot",tooltipPosition:"top",color:E?"grey":"transparent",style:{border:E?void 0:"2px solid grey"},onClick:function(){return l("replacer")},children:(0,e.jsx)(x,{iconkey:"myreplacer"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:j||"Signs Slot",tooltipPosition:"top-start",color:j?"grey":"transparent",style:{border:j?void 0:"2px solid grey"},onClick:function(){return l("sign")},children:(0,e.jsx)(x,{iconkey:"signs"})})]})})},g={mybag:"trash",mybucket:"fill",mymop:"broom",myspray:"spray-can",myreplacer:"lightbulb",signs:"sign"},x=function(d){var a=(0,o.Oc)().data,l=d.iconkey,i=a.icons;return l in i?(0,e.jsx)(t._V,{src:i[l].substr(1,i[l].length-1),style:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0",width:"64px",height:"64px"}}):(0,e.jsx)(t.In,{style:{position:"absolute",left:"4px",right:"0",top:"20px",bottom:"0",width:"64px",height:"64px"},fontSize:2,name:g[l]})}},25244:function(y,u,n){"use strict";n.r(u),n.d(u,{Jukebox:function(){return a}});var e=n(20462),o=n(4089),t=n(61282),r=n(61358),s=n(7081),g=n(88569),x=n(41242),d=n(15581),a=function(l){var i=function(){on&&ce("Admin"),He(!on)},c=(0,s.Oc)(),f=c.act,m=c.data,v=m.playing,E=m.loop_mode,j=m.volume,O=m.current_track_ref,M=m.current_track,_=m.current_genre,I=m.percent,S=m.tracks,T=m.admin,A=S.length&&S.reduce(function(Pe,qe){var En=qe.genre||"Uncategorized";return Pe[En]||(Pe[En]=[]),Pe[En].push(qe),Pe},{}),K=v&&(_||"Uncategorized"),W=(0,r.useState)("Unknown"),$=W[0],k=W[1],z=(0,r.useState)(""),H=z[0],G=z[1],Y=(0,r.useState)(0),ee=Y[0],le=Y[1],ne=(0,r.useState)("Unknown"),Q=ne[0],Z=ne[1],V=(0,r.useState)("Admin"),q=V[0],ce=V[1],se=(0,r.useState)(!1),fe=se[0],ge=se[1],Ie=(0,r.useState)(!1),je=Ie[0],Ee=Ie[1],Ne=(0,r.useState)(!1),on=Ne[0],He=Ne[1];return(0,e.jsx)(d.p8,{width:450,height:600,children:(0,e.jsxs)(d.p8.Content,{scrollable:!0,children:[(0,e.jsx)(g.wn,{title:"Currently Playing",children:(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Title",children:v&&M&&(0,e.jsxs)(g.az,{children:[M.title," by ",M.artist||"Unkown"]})||(0,e.jsx)(g.az,{children:"Stopped"})}),(0,e.jsxs)(g.Ki.Item,{label:"Controls",children:[(0,e.jsx)(g.$n,{icon:"play",disabled:v,onClick:function(){return f("play")},children:"Play"}),(0,e.jsx)(g.$n,{icon:"stop",disabled:!v,onClick:function(){return f("stop")},children:"Stop"})]}),(0,e.jsxs)(g.Ki.Item,{label:"Loop Mode",children:[(0,e.jsx)(g.$n,{icon:"play",onClick:function(){return f("loopmode",{loopmode:1})},selected:E===1,children:"Next"}),(0,e.jsx)(g.$n,{icon:"random",onClick:function(){return f("loopmode",{loopmode:2})},selected:E===2,children:"Shuffle"}),(0,e.jsx)(g.$n,{icon:"redo",onClick:function(){return f("loopmode",{loopmode:3})},selected:E===3,children:"Repeat"}),(0,e.jsx)(g.$n,{icon:"step-forward",onClick:function(){return f("loopmode",{loopmode:4})},selected:E===4,children:"Once"})]}),(0,e.jsx)(g.Ki.Item,{label:"Progress",children:(0,e.jsx)(g.z2,{value:I,maxValue:1,color:"good"})}),(0,e.jsx)(g.Ki.Item,{label:"Volume",children:(0,e.jsx)(g.Ap,{minValue:0,step:1,value:j*100,maxValue:100,ranges:{good:[75,1/0],average:[25,75],bad:[0,25]},format:function(Pe){return(0,o.Mg)(Pe,1)+"%"},onChange:function(Pe,qe){return f("volume",{val:(0,o.LI)(qe/100,2)})}})})]})}),(0,e.jsx)(g.wn,{title:"Available Tracks",children:S.length&&Object.keys(A).sort().map(function(Pe){return(0,t.ZH)(Pe)!=="Admin"&&(0,e.jsx)(g.Nt,{title:Pe,color:K===Pe?"green":"default",child_mt:0,children:(0,e.jsx)("div",{style:{marginLeft:"1em"},children:A[Pe].map(function(qe){return(0,e.jsx)(g.$n,{fluid:!0,icon:"play",selected:O===qe.ref,onClick:function(){return f("change_track",{change_track:qe.ref})},children:qe.title},qe.ref)})})},Pe)})||(0,e.jsx)(g.az,{color:"bad",children:"Error: No songs loaded."})}),T&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.wn,{title:"Admin Tracks",children:S.length&&Object.keys(A).sort().map(function(Pe){return(0,t.ZH)(Pe)==="Admin"&&(0,e.jsx)(g.Nt,{title:Pe,color:K===Pe?"green":"default",child_mt:0,children:(0,e.jsx)("div",{style:{marginLeft:"1em"},children:A[Pe].map(function(qe){return(0,e.jsxs)(g.so,{children:[(0,e.jsx)(g.so.Item,{grow:1,children:(0,e.jsx)(g.$n,{fluid:!0,icon:"play",selected:O===qe.ref,onClick:function(){return f("change_track",{change_track:qe.ref})},children:qe.title},qe.ref)}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.$n.Confirm,{icon:"trash",onClick:function(){return f("remove_new_track",{ref:qe.ref})}})})]},qe.ref)})})},Pe)})||(0,e.jsx)(g.az,{color:"bad",children:"Error: No songs added."})}),(0,e.jsx)(g.wn,{title:"Admin Options",children:(0,e.jsxs)(g.Nt,{title:"Add Track",children:[(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Title",children:(0,e.jsx)(g.pd,{width:"100%",value:$,onChange:function(Pe,qe){return k(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"URL",children:(0,e.jsx)(g.pd,{width:"100%",value:H,onChange:function(Pe,qe){return G(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Playtime",children:(0,e.jsx)(g.Q7,{step:1,value:ee,minValue:0,maxValue:3600,onChange:function(Pe){return le(Pe)},format:function(Pe){return(0,x.fU)((0,o.LI)(Pe*10,0))}})}),(0,e.jsx)(g.Ki.Item,{label:"Artist",children:(0,e.jsx)(g.pd,{width:"100%",value:Q,onChange:function(Pe,qe){return Z(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Genre",children:(0,e.jsxs)(g.so,{children:[(0,e.jsx)(g.so.Item,{grow:1,children:on?(0,e.jsx)(g.pd,{width:"100%",value:q,onChange:function(Pe,qe){return ce(qe)}}):(0,e.jsx)(g.az,{children:q})}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.$n.Checkbox,{icon:on?"lock-open":"lock",color:on?"good":"bad",onClick:function(){return i()}})})]})}),(0,e.jsx)(g.Ki.Item,{label:"Secret",children:(0,e.jsx)(g.$n.Checkbox,{checked:fe,onClick:function(){return ge(!fe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Lobby",children:(0,e.jsx)(g.$n.Checkbox,{checked:je,onClick:function(){return Ee(!je)}})})]}),(0,e.jsx)(g.cG,{}),(0,e.jsx)(g.$n,{disabled:!($&&H&&ee&&Q&&q),onClick:function(){return f("add_new_track",{title:$,url:H,duration:ee,artist:Q,genre:q,secret:fe,lobby:je})},children:"Add new Track"})]})})]})]})})}},7881:function(y,u,n){"use strict";n.r(u),n.d(u,{LawManager:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581);function s(){return s=Object.assign||function(c){for(var f=1;f=0)&&(m[E]=c[E]);return m}var x=function(c){var f=(0,o.Oc)().data,m=f.isSlaved;return(0,e.jsx)(r.p8,{width:800,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[m?(0,e.jsxs)(t.IC,{info:!0,children:["Law-synced to ",m]}):"",(0,e.jsx)(d,{})]})})},d=function(c){var f=(0,o.QY)("lawsTabIndex",0),m=f[0],v=f[1],E=[];return E[0]=(0,e.jsx)(a,{}),E[1]=(0,e.jsx)(i,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:m===0,onClick:function(){return v(0)},children:"Law Management"}),(0,e.jsx)(t.tU.Tab,{selected:m===1,onClick:function(){return v(1)},children:"Law Sets"})]}),E[m]]})},a=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.ion_law_nr,j=v.ion_law,O=v.zeroth_law,M=v.inherent_law,_=v.supplied_law,I=v.supplied_law_position,S=v.zeroth_laws,T=v.has_zeroth_laws,A=v.ion_laws,K=v.has_ion_laws,W=v.inherent_laws,$=v.has_inherent_laws,k=v.supplied_laws,z=v.has_supplied_laws,H=v.isAI,G=v.isMalf,Y=v.isAdmin,ee=v.channel,le=v.channels,ne=S.map(function(Q){return Q.zero=!0,Q}).concat(W);return(0,e.jsxs)(t.wn,{children:[K?(0,e.jsx)(l,{laws:A,title:E+" Laws:",mt:-2}):"",T||$?(0,e.jsx)(l,{laws:ne,title:"Inherent Laws",mt:-2}):"",z?(0,e.jsx)(l,{laws:k,title:"Supplied Laws",mt:-2}):"",(0,e.jsx)(t.wn,{title:"Controls",mt:-2,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Statement Channel",children:le.map(function(Q){return(0,e.jsx)(t.$n,{selected:ee===Q.channel,onClick:function(){return m("law_channel",{law_channel:Q.channel})},children:Q.channel},Q.channel)})}),(0,e.jsx)(t.Ki.Item,{label:"State Laws",children:(0,e.jsx)(t.$n,{icon:"volume-up",onClick:function(){return m("state_laws")},children:"State Laws"})}),H?(0,e.jsx)(t.Ki.Item,{label:"Law Notification",children:(0,e.jsx)(t.$n,{icon:"exclamation",onClick:function(){return m("notify_laws")},children:"Notify"})}):""]})}),G?(0,e.jsx)(t.wn,{title:"Add Laws",mt:-2,children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Type"}),(0,e.jsx)(t.XI.Cell,{children:"Law"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Index"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Add"})]}),Y&&!T?(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Zero"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:O,fluid:!0,onChange:function(Q,Z){return m("change_zeroth_law",{val:Z})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_zeroth_law")},children:"Add"})})]}):"",(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Ion"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:j,fluid:!0,onChange:function(Q,Z){return m("change_ion_law",{val:Z})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_ion_law")},children:"Add"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:"Inherent"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:M,fluid:!0,onChange:function(Q,Z){return m("change_inherent_law",{val:Z})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_inherent_law")},children:"Add"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:"Supplied"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:_,fluid:!0,onChange:function(Q,Z){return m("change_supplied_law",{val:Z})}})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return m("change_supplied_law_position")},children:I})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_supplied_law")},children:"Add"})})]})]})}):""]})},l=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.isMalf,j=v.isAdmin,O=c.laws,M=c.title,_=c.noButtons,I=g(c,["laws","title","noButtons"]);return(0,e.jsx)(t.wn,s({title:M},I,{children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Index"}),(0,e.jsx)(t.XI.Cell,{children:"Law"}),_?"":(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"State"}),E&&!_?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Edit"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Delete"})]}):""]}),O.map(function(S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{collapsing:!0,children:[S.index,"."]}),(0,e.jsx)(t.XI.Cell,{color:S.zero?"bad":void 0,children:S.law}),_?"":(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"volume-up",selected:S.state,onClick:function(){return m("state_law",{ref:S.ref,state_law:!S.state})},children:S.state?"Yes":"No"})}),E&&!_?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{disabled:S.zero&&!j,icon:"pen",onClick:function(){return m("edit_law",{edit_law:S.ref})},children:"Edit"})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{disabled:S.zero&&!j,color:"bad",icon:"trash",onClick:function(){return m("delete_law",{delete_law:S.ref})},children:"Delete"})})]}):""]},S.index)})]})}))},i=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.isMalf,j=v.law_sets,O=v.ion_law_nr;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:"Remember: Stating laws other than those currently loaded may be grounds for decommissioning! - NanoTrasen"}),j.length?j.map(function(M){return(0,e.jsxs)(t.wn,{title:M.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{disabled:!E,icon:"sync",onClick:function(){return m("transfer_laws",{transfer_laws:M.ref})},children:"Load Laws"}),(0,e.jsx)(t.$n,{icon:"volume-up",onClick:function(){return m("state_law_set",{state_law_set:M.ref})},children:"State Laws"})]}),children:[M.laws.has_ion_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.ion_laws,title:O+" Laws:"}):"",M.laws.has_zeroth_laws||M.laws.has_inherent_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.zeroth_laws.concat(M.laws.inherent_laws),title:M.header}):"",M.laws.has_supplied_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.supplied_laws,title:"Supplied Laws"}):""]},M.name)}):""]})}},94979:function(y,u,n){"use strict";n.r(u),n.d(u,{ListInputModal:function(){return a}});var e=n(20462),o=n(61358),t=n(6544),r=n(7081),s=n(88569),g=n(15581),x=n(5335),d=n(44149),a=function(c){var f=(0,r.Oc)(),m=f.act,v=f.data,E=v.items,j=E===void 0?[]:E,O=v.message,M=O===void 0?"":O,_=v.init_value,I=v.large_buttons,S=v.timeout,T=v.title,A=(0,o.useState)(j.indexOf(_)),K=A[0],W=A[1],$=(0,o.useState)(j.length>9),k=$[0],z=$[1],H=(0,o.useState)(""),G=H[0],Y=H[1],ee=function(se){var fe=q.length-1;if(se===t.R)if(K===null||K===fe){var ge;W(0),(ge=document.getElementById("0"))==null||ge.scrollIntoView()}else{var Ie;W(K+1),(Ie=document.getElementById((K+1).toString()))==null||Ie.scrollIntoView()}else if(se===t.gf)if(K===null||K===0){var je;W(fe),(je=document.getElementById(fe.toString()))==null||je.scrollIntoView()}else{var Ee;W(K-1),(Ee=document.getElementById((K-1).toString()))==null||Ee.scrollIntoView()}},le=function(se){se!==K&&W(se)},ne=function(){z(!1),z(!0)},Q=function(se){var fe=String.fromCharCode(se),ge=j.find(function(Ee){return Ee==null?void 0:Ee.toLowerCase().startsWith(fe==null?void 0:fe.toLowerCase())});if(ge){var Ie,je=j.indexOf(ge);W(je),(Ie=document.getElementById(je.toString()))==null||Ie.scrollIntoView()}},Z=function(se){var fe;se!==G&&(Y(se),W(0),(fe=document.getElementById("0"))==null||fe.scrollIntoView())},V=function(){z(!k),Y("")},q=j.filter(function(se){return se==null?void 0:se.toLowerCase().includes(G.toLowerCase())}),ce=325+Math.ceil(M.length/3)+(I?5:0);return k||setTimeout(function(){var se;return(se=document.getElementById(K.toString()))==null?void 0:se.focus()},1),(0,e.jsxs)(g.p8,{title:T,width:325,height:ce,children:[S&&(0,e.jsx)(d.Loader,{value:S}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(se){var fe=window.event?se.which:se.keyCode;(fe===t.R||fe===t.gf)&&(se.preventDefault(),ee(fe)),fe===t.Ri&&(se.preventDefault(),m("submit",{entry:q[K]})),!k&&fe>=t.W8&&fe<=t.bh&&(se.preventDefault(),Q(fe)),fe===t.s6&&(se.preventDefault(),m("cancel"))},children:(0,e.jsx)(s.wn,{buttons:(0,e.jsx)(s.$n,{compact:!0,icon:k?"search":"font",selected:!0,tooltip:k?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){return V()}}),className:"ListInput__Section",fill:!0,title:M,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(l,{filteredItems:q,onClick:le,onFocusSearch:ne,searchBarVisible:k,selected:K})}),k&&(0,e.jsx)(i,{filteredItems:q,onSearch:Z,searchQuery:G,selected:K}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(x.InputButtons,{input:q[K]})})]})})})]})},l=function(c){var f=(0,r.Oc)().act,m=c.filteredItems,v=c.onClick,E=c.onFocusSearch,j=c.searchBarVisible,O=c.selected;return(0,e.jsxs)(s.wn,{fill:!0,scrollable:!0,children:[(0,e.jsx)(s.y5,{}),m.map(function(M,_){return(0,e.jsx)(s.$n,{color:"transparent",fluid:!0,onClick:function(){return v(_)},onDoubleClick:function(I){I.preventDefault(),f("submit",{entry:m[O]})},onKeyDown:function(I){var S=window.event?I.which:I.keyCode;j&&S>=t.W8&&S<=t.bh&&(I.preventDefault(),E())},selected:_===O,style:{animation:"none",transition:"none"},children:M.replace(/^\w/,function(I){return I.toUpperCase()})},_)})]})},i=function(c){var f=(0,r.Oc)().act,m=c.filteredItems,v=c.onSearch,E=c.searchQuery,j=c.selected;return(0,e.jsx)(s.pd,{autoFocus:!0,autoSelect:!0,fluid:!0,onEnter:function(O){O.preventDefault(),f("submit",{entry:m[j]})},onInput:function(O,M){return v(M)},placeholder:"Search...",value:E})}},30373:function(y,u,n){"use strict";n.r(u),n.d(u,{LookingGlass:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.supportedPrograms,i=a.currentProgram,c=a.immersion,f=a.gravity,m=Math.min(180+l.length*23,600);return(0,e.jsx)(r.p8,{width:300,height:m,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Programs",children:l.map(function(v){return(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",selected:v===i,onClick:function(){return d("program",{program:v})},children:v},v)})}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Gravity",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"user-astronaut",selected:f,onClick:function(){return d("gravity")},children:f?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"Full Immersion",children:(0,e.jsx)(t.$n,{mt:-1,fluid:!0,icon:"eye",selected:c,onClick:function(){return d("immersion")},children:c?"Enabled":"Disabled"})})]})})]})})}},88504:function(y,u,n){"use strict";n.r(u),n.d(u,{MechaControlConsole:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.beacons,c=i===void 0?[]:i,f=l.stored_data,m=f===void 0?[]:f;return(0,e.jsx)(s.p8,{width:600,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[m.length?(0,e.jsx)(r.aF,{children:(0,e.jsx)(r.wn,{height:"400px",style:{overflowY:"auto"},title:"Log",buttons:(0,e.jsx)(r.$n,{icon:"window-close",onClick:function(){return a("clear_log")}}),children:m.map(function(v){return(0,e.jsxs)(r.az,{children:[(0,e.jsxs)(r.az,{color:"label",children:["(",v.time,") (",v.year,")"]}),(0,e.jsx)(r.az,{children:(0,o.jT)(v.message)})]},v.time)})})}):"",c.length&&c.map(function(v){return(0,e.jsx)(r.wn,{title:v.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return a("send_message",{mt:v.ref})},children:"Message"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return a("get_log",{mt:v.ref})},children:"View Log"}),(0,e.jsx)(r.$n.Confirm,{color:"red",icon:"bomb",onClick:function(){return a("shock",{mt:v.ref})},children:"EMP"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Health",children:(0,e.jsx)(r.z2,{ranges:{good:[v.maxHealth*.75,1/0],average:[v.maxHealth*.5,v.maxHealth*.75],bad:[-1/0,v.maxHealth*.5]},value:v.health,maxValue:v.maxHealth})}),(0,e.jsx)(r.Ki.Item,{label:"Cell Charge",children:v.cell&&(0,e.jsx)(r.z2,{ranges:{good:[v.cellMaxCharge*.75,1/0],average:[v.cellMaxCharge*.5,v.cellMaxCharge*.75],bad:[-1/0,v.cellMaxCharge*.5]},value:v.cellCharge,maxValue:v.cellMaxCharge})||(0,e.jsx)(r.IC,{children:"No Cell Installed"})}),(0,e.jsxs)(r.Ki.Item,{label:"Air Tank",children:[v.airtank,"kPa"]}),(0,e.jsx)(r.Ki.Item,{label:"Pilot",children:v.pilot||"Unoccupied"}),(0,e.jsx)(r.Ki.Item,{label:"Location",children:(0,o.Sn)(v.location)||"Unknown"}),(0,e.jsx)(r.Ki.Item,{label:"Active Equipment",children:v.active||"None"}),v.cargoMax?(0,e.jsx)(r.Ki.Item,{label:"Cargo Space",children:(0,e.jsx)(r.z2,{ranges:{bad:[v.cargoMax*.75,1/0],average:[v.cargoMax*.5,v.cargoMax*.75],good:[-1/0,v.cargoMax*.5]},value:v.cargoUsed,maxValue:v.cargoMax})}):""]})},v.name)})||(0,e.jsx)(r.IC,{children:"No mecha beacons found."})]})})}},94921:function(y,u,n){"use strict";n.r(u),n.d(u,{Medbot:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.on,i=a.open,c=a.beaker,f=a.beaker_total,m=a.beaker_max,v=a.locked,E=a.heal_threshold,j=a.heal_threshold_max,O=a.injection_amount_min,M=a.injection_amount,_=a.injection_amount_max,I=a.use_beaker,S=a.declare_treatment,T=a.vocal;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Automatic Medical Unit v2.0",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return d("power")},children:l?"On":"Off"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Maintenance Panel",color:i?"bad":"good",children:i?"Open":"Closed"}),(0,e.jsx)(t.Ki.Item,{label:"Beaker",buttons:(0,e.jsx)(t.$n,{disabled:!c,icon:"eject",onClick:function(){return d("eject")},children:"Eject"}),children:c&&(0,e.jsxs)(t.z2,{value:f,maxValue:m,children:[f," / ",m]})||(0,e.jsx)(t.az,{color:"average",children:"No beaker loaded."})}),(0,e.jsx)(t.Ki.Item,{label:"Behavior Controls",color:v?"good":"bad",children:v?"Locked":"Unlocked"})]})}),!v&&(0,e.jsx)(t.wn,{title:"Behavioral Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Healing Threshold",children:(0,e.jsx)(t.Q7,{fluid:!0,step:1,minValue:0,maxValue:j,value:E,onDrag:function(A){return d("adj_threshold",{val:A})}})}),(0,e.jsx)(t.Ki.Item,{label:"Injection Amount",children:(0,e.jsx)(t.Q7,{fluid:!0,step:1,minValue:O,maxValue:_,value:M,onDrag:function(A){return d("adj_inject",{val:A})}})}),(0,e.jsx)(t.Ki.Item,{label:"Reagent Source",children:(0,e.jsx)(t.$n,{fluid:!0,icon:I?"toggle-on":"toggle-off",selected:I,onClick:function(){return d("use_beaker")},children:I?"Loaded Beaker (When available)":"Internal Synthesizer"})}),(0,e.jsx)(t.Ki.Item,{label:"Treatment Report",children:(0,e.jsx)(t.$n,{fluid:!0,icon:S?"toggle-on":"toggle-off",selected:S,onClick:function(){return d("declaretreatment")},children:S?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Speaker",children:(0,e.jsx)(t.$n,{fluid:!0,icon:T?"toggle-on":"toggle-off",selected:T,onClick:function(){return d("togglevoice")},children:T?"On":"Off"})})]})})||null]})})}},47407:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsList:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.records;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.pd,{fluid:!0,placeholder:"Search by Name, DNA, or ID",onChange:function(l,i){return x("search",{t1:i})}}),(0,e.jsx)(t.az,{mt:"0.5rem",children:a.map(function(l,i){return(0,e.jsx)(t.$n,{icon:"user",mb:"0.5rem",onClick:function(){return x("d_rec",{d_rec:l.ref})},children:l.id+": "+l.name},i)})})]})}},43131:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsMedbots:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().data,x=g.medbots;return!x||x.length===0?(0,e.jsx)(t.az,{color:"label",children:"There are no Medbots."}):x.map(function(d,a){return(0,e.jsx)(t.Nt,{open:!0,title:d.name,children:(0,e.jsx)(t.az,{px:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Location",children:[d.area||"Unknown"," (",d.x,", ",d.y,")"]}),(0,e.jsx)(t.Ki.Item,{label:"Status",children:d.on?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"good",children:"Online"}),(0,e.jsx)(t.az,{mt:"0.5rem",children:d.use_beaker?"Reservoir: "+d.total_volume+"/"+d.maximum_volume:"Using internal synthesizer."})]}):(0,e.jsx)(t.az,{color:"average",children:"Offline"})})]})})},a)})}},70734:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsMaintenance:function(){return g},MedicalRecordsNavigation:function(){return d},MedicalRecordsView:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(72886),s=n(8615),g=function(a){var l=(0,o.Oc)().act;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"download",disabled:!0,children:"Backup to Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"upload",my:"0.5rem",disabled:!0,children:"Upload from Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n.Confirm,{icon:"trash",onClick:function(){return l("del_all")},children:"Delete All Medical Records"})]})},x=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.medical,m=c.printing;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"General Data",mt:"-6px",children:(0,e.jsx)(r.MedicalRecordsViewGeneral,{})}),(0,e.jsx)(t.wn,{title:"Medical Data",children:(0,e.jsx)(s.MedicalRecordsViewMedical,{})}),(0,e.jsxs)(t.wn,{title:"Actions",children:[(0,e.jsx)(t.$n.Confirm,{icon:"trash",disabled:!!f.empty,color:"bad",onClick:function(){return i("del_r")},children:"Delete Medical Record"}),(0,e.jsx)(t.$n,{icon:m?"spinner":"print",disabled:m,iconSpin:!!m,ml:"0.5rem",onClick:function(){return i("print_p")},children:"Print Entry"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"arrow-left",mt:"0.5rem",onClick:function(){return i("screen",{screen:2})},children:"Back"})]})]})},d=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.screen;return(0,e.jsxs)(t.tU,{children:[(0,e.jsxs)(t.tU.Tab,{selected:f===2,onClick:function(){return i("screen",{screen:2})},children:[(0,e.jsx)(t.In,{name:"list"}),"List Records"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===5,onClick:function(){return i("screen",{screen:5})},children:[(0,e.jsx)(t.In,{name:"database"}),"Virus Database"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===6,onClick:function(){return i("screen",{screen:6})},children:[(0,e.jsx)(t.In,{name:"plus-square"}),"Medbot Tracking"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===3,onClick:function(){return i("screen",{screen:3})},children:[(0,e.jsx)(t.In,{name:"wrench"}),"Record Maintenance"]})]})}},72886:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsViewGeneral:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(80724),s=function(g){var x=(0,o.Oc)().data,d=x.general;return!d||!d.fields?(0,e.jsx)(t.az,{color:"bad",children:"General records lost!"}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{width:"50%",style:{float:"left"},children:(0,e.jsx)(t.Ki,{children:d.fields.map(function(a,l){return(0,e.jsx)(t.Ki.Item,{label:a.field,children:(0,e.jsxs)(t.az,{height:"20px",inline:!0,preserveWhitespace:!0,children:[a.value,!!a.edit&&(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return(0,r.doEdit)(a)}})]})},l)})})}),(0,e.jsx)(t.az,{width:"50%",style:{float:"right"},textAlign:"right",children:!!d.has_photos&&d.photos.map(function(a,l){return(0,e.jsxs)(t.az,{inline:!0,textAlign:"center",color:"label",children:[(0,e.jsx)(t._V,{src:a.substring(1,a.length-1),style:{width:"96px",marginBottom:"0.5rem"}}),(0,e.jsx)("br",{}),"Photo #",l+1]},l)})})]})}},8615:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsViewMedical:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(86471),s=n(80724),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.medical;return!i||!i.fields?(0,e.jsxs)(t.az,{color:"bad",children:["Medical records lost!",(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return a("new")},children:"New Record"})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki,{children:i.fields.map(function(c,f){return(0,e.jsx)(t.Ki.Item,{label:c.field,children:(0,e.jsxs)(t.az,{preserveWhitespace:!0,children:[c.value,(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return(0,s.doEdit)(c)}})]})},f)})}),(0,e.jsxs)(t.wn,{title:"Comments/Log",children:[i.comments&&i.comments.length===0?(0,e.jsx)(t.az,{color:"label",children:"No comments found."}):i.comments&&i.comments.map(function(c,f){return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.az,{color:"label",inline:!0,children:c.header}),(0,e.jsx)("br",{}),c.text,(0,e.jsx)(t.$n,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return a("del_c",{del_c:f+1})}})]},f)}),(0,e.jsx)(t.$n,{icon:"comment-medical",color:"good",mt:"0.5rem",mb:"0",onClick:function(){return(0,r.modalOpen)("add_c")},children:"Add Entry"})]})]})}},3748:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecordsViruses:function(){return s}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),d=x.act,a=x.data,l=a.virus;return l&&l.sort(function(i,c){return i.name>c.name?1:-1}),l&&l.map(function(i,c){return(0,e.jsxs)(o.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"flask",mb:"0.5rem",onClick:function(){return d("vir",{vir:i.D})},children:i.name}),(0,e.jsx)("br",{})]},c)})}},46069:function(y,u,n){"use strict";n.r(u),n.d(u,{severities:function(){return e}});var e={Minor:"good",Medium:"average","Dangerous!":"bad",Harmful:"bad","BIOHAZARD THREAT!":"bad"}},65456:function(y,u,n){"use strict";n.r(u),n.d(u,{MedicalRecords:function(){return m}});var e=n(20462),o=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(35069),x=n(97049),d=n(3751),a=n(47407),l=n(43131),i=n(70734),c=n(3748),f=n(4492),m=function(v){var E=(0,o.Oc)().data,j=E.authenticated,O=E.screen;if(!j)return(0,e.jsx)(s.p8,{width:800,height:380,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(x.LoginScreen,{})})});var M=[];return M[2]=(0,e.jsx)(a.MedicalRecordsList,{}),M[3]=(0,e.jsx)(i.MedicalRecordsMaintenance,{}),M[4]=(0,e.jsx)(i.MedicalRecordsView,{}),M[5]=(0,e.jsx)(c.MedicalRecordsViruses,{}),M[6]=(0,e.jsx)(l.MedicalRecordsMedbots,{}),(0,e.jsxs)(s.p8,{width:800,height:380,children:[(0,e.jsx)(r.ComplexModal,{maxHeight:"100%",maxWidth:"80%"}),(0,e.jsxs)(s.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:[(0,e.jsx)(g.LoginInfo,{}),(0,e.jsx)(d.TemporaryNotice,{}),(0,e.jsx)(i.MedicalRecordsNavigation,{}),(0,e.jsx)(t.wn,{height:"calc(100% - 5rem)",flexGrow:!0,children:O&&M[O]||""})]})]})};(0,r.modalRegisterBodyOverride)("virus",f.virusModalBodyOverride)},86097:function(y,u,n){"use strict";n.r(u)},4492:function(y,u,n){"use strict";n.r(u),n.d(u,{virusModalBodyOverride:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)().act,x=s.args;return(0,e.jsx)(t.wn,{m:"-1rem",title:x.name||"Virus",buttons:(0,e.jsx)(t.$n,{icon:"times",color:"red",onClick:function(){return g("modal_close")}}),children:(0,e.jsx)(t.az,{mx:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Spread",children:[x.spreadtype," Transmission"]}),(0,e.jsx)(t.Ki.Item,{label:"Possible cure",children:x.antigen}),(0,e.jsx)(t.Ki.Item,{label:"Rate of Progression",children:x.rate}),(0,e.jsxs)(t.Ki.Item,{label:"Antibiotic Resistance",children:[x.resistance,"%"]}),(0,e.jsx)(t.Ki.Item,{label:"Species Affected",children:x.species}),(0,e.jsx)(t.Ki.Item,{label:"Symptoms",children:(0,e.jsx)(t.Ki,{children:x.symptoms.map(function(d){return(0,e.jsxs)(t.Ki.Item,{label:d.stage+". "+d.name,children:[(0,e.jsx)(t.az,{inline:!0,color:"label",children:"Strength:"})," ",d.strength,"\xA0",(0,e.jsx)(t.az,{inline:!0,color:"label",children:"Aggressiveness:"})," ",d.aggressiveness]},d.stage)})})})]})})})}},4477:function(y,u,n){"use strict";n.r(u),n.d(u,{MentorTicketPanel:function(){return x}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(15581),g={open:"Open",resolved:"Resolved",unknown:"Unknown"},x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.id,f=i.name,m=i.state,v=i.opened_at,E=i.closed_at,j=i.opened_at_date,O=i.closed_at_date,M=i.actions,_=i.log;return(0,e.jsx)(s.p8,{width:900,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{title:"Ticket #"+c,buttons:(0,e.jsxs)(r.az,{nowrap:!0,children:[(0,e.jsx)(r.$n,{icon:"arrow-up",onClick:function(){return l("escalate")},children:"Escalate"}),(0,e.jsx)(r.$n,{onClick:function(){return l("legacy")},children:"Legacy UI"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Mentor Help Ticket",children:["#",c,": ",(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:f}})]}),(0,e.jsx)(r.Ki.Item,{label:"State",children:g[m]}),g[m]===g.open?(0,e.jsx)(r.Ki.Item,{label:"Opened At",children:j+" ("+(0,o.Mg)((0,o.LI)(v/600*10,0)/10,1)+" minutes ago.)"}):(0,e.jsxs)(r.Ki.Item,{label:"Closed At",children:[O+" ("+(0,o.Mg)((0,o.LI)(E/600*10,0)/10,1)+" minutes ago.)",(0,e.jsx)(r.$n,{onClick:function(){return l("reopen")},children:"Reopen"})]}),(0,e.jsx)(r.Ki.Item,{label:"Actions",children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:M}})}),(0,e.jsx)(r.Ki.Item,{label:"Log",children:Object.keys(_).map(function(I,S){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:_[I]}},S)})})]})})})})}},26948:function(y,u,n){"use strict";n.r(u),n.d(u,{MessageMonitorContent:function(){return g}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(5871),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.linkedServer,c=(0,o.useState)(0),f=c[0],m=c[1],v=[];return v[0]=(0,e.jsx)(s.MessageMonitorMain,{}),v[1]=(0,e.jsx)(s.MessageMonitorLogs,{logs:i.pda_msgs,pda:!0}),v[2]=(0,e.jsx)(s.MessageMonitorLogs,{logs:i.rc_msgs,rc:!0}),v[3]=(0,e.jsx)(s.MessageMonitorAdmin,{}),v[4]=(0,e.jsx)(s.MessageMonitorSpamFilter,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsxs)(r.tU.Tab,{selected:f===0,onClick:function(){return m(0)},children:[(0,e.jsx)(r.In,{name:"bars"})," Main Menu"]},"Main"),(0,e.jsxs)(r.tU.Tab,{selected:f===1,onClick:function(){return m(1)},children:[(0,e.jsx)(r.In,{name:"font"})," Message Logs"]},"MessageLogs"),(0,e.jsxs)(r.tU.Tab,{selected:f===2,onClick:function(){return m(2)},children:[(0,e.jsx)(r.In,{name:"bold"})," Request Logs"]},"RequestLogs"),(0,e.jsxs)(r.tU.Tab,{selected:f===3,onClick:function(){return m(3)},children:[(0,e.jsx)(r.In,{name:"comment-alt"})," Admin Messaging"]},"AdminMessage"),(0,e.jsxs)(r.tU.Tab,{selected:f===4,onClick:function(){return m(4)},children:[(0,e.jsx)(r.In,{name:"comment-slash"})," Spam Filter"]},"SpamFilter"),(0,e.jsxs)(r.tU.Tab,{color:"red",onClick:function(){return a("deauth")},children:[(0,e.jsx)(r.In,{name:"sign-out-alt"})," Log Out"]},"Logout")]}),(0,e.jsx)(r.az,{m:2,children:v[f]})]})}},9760:function(y,u,n){"use strict";n.r(u),n.d(u,{MessageMonitorHack:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(72859),s=function(g){var x=(0,o.Oc)().data,d=x.isMalfAI;return(0,e.jsx)(r.FullscreenNotice,{title:"ERROR",children:d?(0,e.jsx)(t.az,{children:"Brute-forcing for server key. It will take 20 seconds for every character that the password has."}):(0,e.jsxs)(t.az,{children:["01000010011100100111010101110100011001010010110",(0,e.jsx)("br",{}),"10110011001101111011100100110001101101001011011100110011",(0,e.jsx)("br",{}),"10010000001100110011011110111001000100000011100110110010",(0,e.jsx)("br",{}),"10111001001110110011001010111001000100000011010110110010",(0,e.jsx)("br",{}),"10111100100101110001000000100100101110100001000000111011",(0,e.jsx)("br",{}),"10110100101101100011011000010000001110100011000010110101",(0,e.jsx)("br",{}),"10110010100100000001100100011000000100000011100110110010",(0,e.jsx)("br",{}),"10110001101101111011011100110010001110011001000000110011",(0,e.jsx)("br",{}),"00110111101110010001000000110010101110110011001010111001",(0,e.jsx)("br",{}),"00111100100100000011000110110100001100001011100100110000",(0,e.jsx)("br",{}),"10110001101110100011001010111001000100000011101000110100",(0,e.jsx)("br",{}),"00110000101110100001000000111010001101000011001010010000",(0,e.jsx)("br",{}),"00111000001100001011100110111001101110111011011110111001",(0,e.jsx)("br",{}),"00110010000100000011010000110000101110011001011100010000",(0,e.jsx)("br",{}),"00100100101101110001000000111010001101000011001010010000",(0,e.jsx)("br",{}),"00110110101100101011000010110111001110100011010010110110",(0,e.jsx)("br",{}),"10110010100101100001000000111010001101000011010010111001",(0,e.jsx)("br",{}),"10010000001100011011011110110111001110011011011110110110",(0,e.jsx)("br",{}),"00110010100100000011000110110000101101110001000000111001",(0,e.jsx)("br",{}),"00110010101110110011001010110000101101100001000000111100",(0,e.jsx)("br",{}),"10110111101110101011100100010000001110100011100100111010",(0,e.jsx)("br",{}),"10110010100100000011010010110111001110100011001010110111",(0,e.jsx)("br",{}),"00111010001101001011011110110111001110011001000000110100",(0,e.jsx)("br",{}),"10110011000100000011110010110111101110101001000000110110",(0,e.jsx)("br",{}),"00110010101110100001000000111001101101111011011010110010",(0,e.jsx)("br",{}),"10110111101101110011001010010000001100001011000110110001",(0,e.jsx)("br",{}),"10110010101110011011100110010000001101001011101000010111",(0,e.jsx)("br",{}),"00010000001001101011000010110101101100101001000000111001",(0,e.jsx)("br",{}),"10111010101110010011001010010000001101110011011110010000",(0,e.jsx)("br",{}),"00110100001110101011011010110000101101110011100110010000",(0,e.jsx)("br",{}),"00110010101101110011101000110010101110010001000000111010",(0,e.jsx)("br",{}),"00110100001100101001000000111001001101111011011110110110",(0,e.jsx)("br",{}),"10010000001100100011101010111001001101001011011100110011",(0,e.jsx)("br",{}),"10010000001110100011010000110000101110100001000000111010",(0,e.jsx)("br",{}),"001101001011011010110010100101110"]})})}},38860:function(y,u,n){"use strict";n.r(u),n.d(u,{MessageMonitorLogin:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(72859),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.isMalfAI;return(0,e.jsxs)(r.FullscreenNotice,{title:"Welcome",children:[(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),"Unauthorized"]}),(0,e.jsxs)(t.az,{color:"label",my:"1rem",children:["Decryption Key:",(0,e.jsx)(t.pd,{placeholder:"Decryption Key",ml:"0.5rem",onChange:function(i,c){return d("auth",{key:c})}})]}),!!l&&(0,e.jsx)(t.$n,{icon:"terminal",onClick:function(){return d("hack")},children:"Hack"}),(0,e.jsx)(t.az,{color:"label",children:"Please authenticate with the server in order to show additional options."})]})}},5871:function(y,u,n){"use strict";n.r(u),n.d(u,{MessageMonitorAdmin:function(){return x},MessageMonitorLogs:function(){return g},MessageMonitorMain:function(){return s},MessageMonitorSpamFilter:function(){return d}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.linkedServer;return(0,e.jsxs)(r.wn,{title:"Main Menu",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"link",onClick:function(){return i("find")},children:"Server Link"}),(0,e.jsx)(r.$n,{icon:"power-off",selected:f.active,onClick:function(){return i("active")},children:"Server "+(f.active?"Enabled":"Disabled")})]}),children:[(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Server Status",children:(0,e.jsx)(r.az,{color:"good",children:"Good"})})}),(0,e.jsx)(r.$n,{mt:1,icon:"key",onClick:function(){return i("pass")},children:"Set Custom Key"}),(0,e.jsx)(r.$n.Confirm,{color:"red",confirmIcon:"exclamation-triangle",icon:"exclamation-triangle",children:"Clear Message Logs"}),(0,e.jsx)(r.$n.Confirm,{color:"red",confirmIcon:"exclamation-triangle",icon:"exclamation-triangle",children:"Clear Request Logs"})]})},g=function(a){var l=(0,t.Oc)().act,i=a.logs,c=a.pda,f=a.rc;return(0,e.jsx)(r.wn,{title:c?"PDA Logs":f?"Request Logs":"Logs",buttons:(0,e.jsx)(r.$n.Confirm,{color:"red",icon:"trash",confirmIcon:"trash",onClick:function(){return l(c?"del_pda":"del_rc")},children:"Delete All"}),children:(0,e.jsx)(r.so,{wrap:"wrap",children:i.map(function(m,v){return(0,e.jsx)(r.so.Item,{m:"2px",basis:"49%",grow:v%2,children:(0,e.jsx)(r.wn,{title:m.sender+" -> "+m.recipient,buttons:(0,e.jsx)(r.$n.Confirm,{confirmContent:"Delete Log?",color:"bad",icon:"trash",confirmIcon:"trash",onClick:function(){return l("delete",{id:m.ref,type:f?"rc":"pda"})}}),children:f?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Message",children:m.message}),(0,e.jsx)(r.Ki.Item,{label:"Verification",color:m.id_auth==="Unauthenticated"?"bad":"good",children:!!m.id_auth&&(0,o.jT)(m.id_auth)}),(0,e.jsx)(r.Ki.Item,{label:"Stamp",children:m.stamp})]}):m.message})},m.ref)})})})},x=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.possibleRecipients,m=c.customsender,v=c.customrecepient,E=c.customjob,j=c.custommessage,O=Object.keys(f);return(0,e.jsxs)(r.wn,{title:"Admin Messaging",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Sender",children:(0,e.jsx)(r.pd,{fluid:!0,value:m,onChange:function(M,_){return i("set_sender",{val:_})}})}),(0,e.jsx)(r.Ki.Item,{label:"Sender's Job",children:(0,e.jsx)(r.pd,{fluid:!0,value:E,onChange:function(M,_){return i("set_sender_job",{val:_})}})}),(0,e.jsx)(r.Ki.Item,{label:"Recipient",children:(0,e.jsx)(r.ms,{autoScroll:!1,selected:v,options:O,width:"100%",mb:-.7,onSelected:function(M){return i("set_recipient",{val:f[M]})}})}),(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsx)(r.pd,{fluid:!0,mb:.5,value:j,onChange:function(M,_){return i("set_message",{val:_})}})})]}),(0,e.jsx)(r.$n,{fluid:!0,icon:"comment",onClick:function(){return i("send_message")},children:"Send Message"})]})},d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f=c.linkedServer;return(0,e.jsxs)(r.wn,{title:"Spam Filtering",children:[(0,e.jsx)(r.Ki,{children:f.spamFilter.map(function(m){return(0,e.jsx)(r.Ki.Item,{label:m.index,buttons:(0,e.jsx)(r.$n,{icon:"trash",color:"bad",onClick:function(){return i("deltoken",{deltoken:m.index})},children:"Delete"}),children:m.token},m.index)})}),(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return i("addtoken")},children:"Add New Entry"})]})}},34692:function(y,u,n){"use strict";n.r(u),n.d(u,{MessageMonitor:function(){return a}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(3751),g=n(26948),x=n(9760),d=n(38860),a=function(l){var i=(0,o.Oc)().data,c=i.auth,f=i.linkedServer,m=i.hacking,v=i.emag,E;return m||v?E=(0,e.jsx)(x.MessageMonitorHack,{}):c?f?E=(0,e.jsx)(g.MessageMonitorContent,{}):E=(0,e.jsx)(t.az,{color:"bad",children:"ERROR"}):E=(0,e.jsx)(d.MessageMonitorLogin,{}),(0,e.jsx)(r.p8,{width:670,height:450,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.TemporaryNotice,{}),E]})})}},25029:function(y,u,n){"use strict";n.r(u)},41785:function(y,u,n){"use strict";n.r(u),n.d(u,{Microwave:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.config,l=x.data,i=l.broken,c=l.operating,f=l.dirty,m=l.items;return(0,e.jsx)(r.p8,{width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:i&&(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.az,{color:"bad",children:"Bzzzzttttt!!"})})||c&&(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"good",children:["Microwaving in progress!",(0,e.jsx)("br",{}),"Please wait...!"]})})||f&&(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"bad",children:["This microwave is dirty!",(0,e.jsx)("br",{}),"Please clean it before use!"]})})||m.length&&(0,e.jsx)(t.wn,{title:"Ingredients",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"radiation",onClick:function(){return d("cook")},children:"Microwave"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return d("dispose")},children:"Eject"})]}),children:(0,e.jsx)(t.Ki,{children:m.map(function(v){return(0,e.jsxs)(t.Ki.Item,{label:v.name,children:[v.amt," ",v.extra]},v.name)})})})||(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"bad",children:[a.title," is empty."]})})})})}},10844:function(y,u,n){"use strict";n.r(u),n.d(u,{MiningOreProcessingConsole:function(){return x}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(15581),g=n(22588),x=function(c){var f=(0,t.Oc)(),m=f.act,v=f.data,E=v.unclaimedPoints,j=v.power,O=v.speed;return(0,e.jsx)(s.p8,{width:400,height:500,children:(0,e.jsxs)(s.p8.Content,{children:[(0,e.jsx)(g.MiningUser,{insertIdText:(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"arrow-right",mr:1,onClick:function(){return m("insert")},children:"Insert ID"}),"in order to claim points."]})}),(0,e.jsx)(r.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"bolt",selected:O,onClick:function(){return m("speed_toggle")},children:O?"High-Speed Active":"High-Speed Inactive"}),(0,e.jsx)(r.$n,{icon:"power-off",selected:j,onClick:function(){return m("power")},children:j?"Smelting":"Not Smelting"})]}),children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Current unclaimed points",buttons:(0,e.jsx)(r.$n,{disabled:E<1,icon:"download",onClick:function(){return m("claim")},children:"Claim"}),children:(0,e.jsx)(r.zv,{value:E})})})}),(0,e.jsx)(i,{})]})})},d=["Not Processing","Smelting","Compressing","Alloying"],a=["verdantium","mhydrogen","diamond","platinum","uranium","gold","silver","rutile","phoron","marble","lead","sand","carbon","hematite"],l=function(c,f){return a.indexOf(c.ore)===-1||a.indexOf(f.ore)===-1?c.ore-f.ore:a.indexOf(f.ore)-a.indexOf(c.ore)},i=function(c){var f=(0,t.Oc)(),m=f.act,v=f.data,E=v.ores,j=v.showAllOres;return(0,e.jsx)(r.wn,{title:"Ore Processing Controls",buttons:(0,e.jsx)(r.$n,{icon:j?"toggle-on":"toggle-off",selected:j,onClick:function(){return m("showAllOres")},children:j?"All Ores":"Ores in Machine"}),children:(0,e.jsx)(r.Ki,{children:E.length&&E.sort(l).map(function(O){return(0,e.jsx)(r.Ki.Item,{label:(0,o.Sn)(O.name),buttons:(0,e.jsx)(r.ms,{autoScroll:!1,width:"120px",color:O.processing===0&&"red"||O.processing===1&&"green"||O.processing===2&&"blue"||O.processing===3&&"yellow"||void 0,options:d,selected:d[O.processing],onSelected:function(M){return m("toggleSmelting",{ore:O.ore,set:d.indexOf(M)})}}),children:(0,e.jsx)(r.az,{inline:!0,children:(0,e.jsx)(r.zv,{value:O.amount})})},O.ore)})||(0,e.jsx)(r.az,{color:"bad",textAlign:"center",children:"No ores in machine."})})})}},71297:function(y,u,n){"use strict";n.r(u),n.d(u,{MiningStackingConsole:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.stacktypes,c=l.stackingAmt;return(0,e.jsx)(s.p8,{width:400,height:500,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{title:"Stacker Controls",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Stacking",children:(0,e.jsx)(r.Q7,{fluid:!0,step:1,value:c,minValue:1,maxValue:50,stepPixelSize:5,onChange:function(f){return a("change_stack",{amt:f})}})}),(0,e.jsx)(r.Ki.Divider,{}),i.length&&i.sort().map(function(f){return(0,e.jsx)(r.Ki.Item,{label:(0,o.Sn)(f.type),buttons:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return a("release_stack",{stack:f.type})},children:"Eject"}),children:(0,e.jsx)(r.zv,{value:f.amt})},f.type)})||(0,e.jsx)(r.Ki.Item,{label:"Empty",color:"average",children:"No stacks in machine."})]})})})})}},602:function(y,u,n){"use strict";n.r(u),n.d(u,{MiningVendor:function(){return i}});var e=n(20462),o=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(22588);function d(){return d=Object.assign||function(v){for(var E=1;E=0)&&(j[M]=v[M]);return j}var l={Alphabetical:function(v,E){return v.name>E.name},"By availability":function(v,E){return-(v.affordable-E.affordable)},"By price":function(v,E){return v.price-E.price}},i=function(v){var E=function(z){I(z)},j=function(z){A(z)},O=function(z){$(z)},M=(0,t.useState)(""),_=M[0],I=M[1],S=(0,t.useState)("Alphabetical"),T=S[0],A=S[1],K=(0,t.useState)(!1),W=K[0],$=K[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsxs)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:[(0,e.jsx)(x.MiningUser,{insertIdText:"Please insert an ID in order to make purchases."}),(0,e.jsx)(f,{searchText:_,sortOrder:T,descending:W,onSearchText:E,onSortOrder:j,onDescending:O}),(0,e.jsx)(c,{searchText:_,sortOrder:T,descending:W})]})})},c=function(v){var E=(0,r.Oc)(),j=E.act,O=E.data,M=O.has_id,_=O.id,I=O.items,S=(0,o.XZ)(v.searchText,function(K){return K[0]}),T=!1,A=Object.entries(I).map(function(K,W){var $=Object.entries(K[1]).filter(S).map(function(k){return k[1].affordable=+(M&&_.points>=k[1].price),k[1]}).sort(l[v.sortOrder]);if($.length!==0)return v.descending&&($=$.reverse()),T=!0,(0,e.jsx)(m,{title:K[0],items:$},K[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:T?A:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},f=function(v){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",value:v.searchText,width:"100%",onInput:function(E,j){return v.onSearchText(j)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:v.sortOrder,options:Object.keys(l),width:"100%",lineHeight:"19px",onSelected:function(E){return v.onSortOrder(E)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:v.descending?"arrow-down":"arrow-up",height:"19px",tooltip:v.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return v.onDescending(!v.descending)}})})]})})},m=function(v){var E=(0,r.Oc)(),j=E.act,O=E.data,M=O.has_id,_=O.id,I=v.title,S=v.items,T=a(v,["title","items"]);return(0,e.jsx)(s.Nt,d({open:!0,title:I},T,{children:S.map(function(A){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:A.name}),(0,e.jsx)(s.$n,{disabled:!M||_.points=450?"Overcharged":r>=250?"Good Charge":"Low Charge":r>=250?"NIF Power Requirement met.":r>=150?"Fluctuations in available power.":"Power failure imminent."}},63300:function(y,u,n){"use strict";n.r(u),n.d(u,{NIF:function(){return d}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(7428),x=n(84772),d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.config,f=l.data,m=f.theme,v=f.last_notification,E=(0,o.useState)(!1),j=E[0],O=E[1],M=(0,o.useState)(null),_=M[0],I=M[1];return(0,e.jsx)(s.p8,{theme:m,width:500,height:400,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!!v&&(0,e.jsx)(r.IC,{info:!0,children:(0,e.jsx)(r.XI,{verticalAlign:"middle",children:(0,e.jsxs)(r.XI.Row,{verticalAlign:"middle",children:[(0,e.jsx)(r.XI.Cell,{verticalAlign:"middle",children:v}),(0,e.jsx)(r.XI.Cell,{verticalAlign:"middle",collapsing:!0,children:(0,e.jsx)(r.$n,{color:"red",icon:"times",tooltip:"Dismiss",tooltipPosition:"left",onClick:function(){return i("dismissNotification")}})})]})})}),!!_&&(0,e.jsx)(r.aF,{m:1,p:0,color:"label",children:(0,e.jsxs)(r.wn,{m:0,title:_.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Confirm,{icon:"ban",color:"bad",confirmIcon:"ban",confirmContent:"Uninstall "+_.name+"?",onClick:function(){i("uninstall",{module:_.ref}),I(null)},children:"Uninstall"}),(0,e.jsx)(r.$n,{icon:"window-close",onClick:function(){return I(null)}})]}),children:[(0,e.jsx)(r.az,{children:_.desc}),(0,e.jsxs)(r.az,{children:["It consumes",(0,e.jsx)(r.az,{color:"good",inline:!0,children:_.p_drain}),"energy units while installed, and",(0,e.jsx)(r.az,{color:"average",inline:!0,children:_.a_drain}),"additionally while active."]}),(0,e.jsxs)(r.az,{color:_.illegal?"bad":"good",children:["It is ",_.illegal?"NOT ":"","a legal software package."]}),(0,e.jsxs)(r.az,{children:["The MSRP of the package is",(0,e.jsxs)(r.az,{color:"good",inline:!0,children:[_.cost,"\u20AE."]})]}),(0,e.jsxs)(r.az,{children:["The difficulty to construct the associated implant is\xA0",(0,e.jsxs)(r.az,{color:"good",inline:!0,children:["Rating ",_.wear]}),"."]})]})}),(0,e.jsx)(r.wn,{title:"Welcome to your NIF, "+c.user.name,buttons:(0,e.jsx)(r.$n,{icon:"cogs",tooltip:"Settings",tooltipPosition:"bottom-end",selected:j,onClick:function(){return O(!j)}}),children:j&&(0,e.jsx)(x.NIFSettings,{})||(0,e.jsx)(g.NIFMain,{setViewing:I})})]})})}},11045:function(y,u,n){"use strict";n.r(u)},14910:function(y,u,n){"use strict";n.r(u),n.d(u,{NTNetRelay:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(72859),g=function(a){var l=(0,o.Oc)().data,i=l.dos_crashed,c=(0,e.jsx)(x,{});return i&&(c=(0,e.jsx)(d,{})),(0,e.jsx)(r.p8,{width:i?700:500,height:i?600:300,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:c})})},x=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.enabled,m=c.dos_overload,v=c.dos_capacity;return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:f,onClick:function(){return i("toggle")},children:"Relay "+(f?"On":"Off")}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Network Buffer Status",children:[m," / ",v," GQ"]}),(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return i("purge")},children:"Purge network blacklist"})})]})})},d=function(a){var l=(0,o.Oc)().act;return(0,e.jsxs)(s.FullscreenNotice,{title:"ERROR",children:[(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),(0,e.jsx)("h2",{children:"NETWORK BUFFERS OVERLOADED"}),(0,e.jsx)("h3",{children:"Overload Recovery Mode"}),(0,e.jsx)("i",{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,e.jsx)("h3",{children:"ADMINISTRATIVE OVERRIDE"}),(0,e.jsx)("b",{children:" CAUTION - Data loss may occur "})]}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return l("restart")},children:"Purge buffered traffic"})})]})}},3949:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterMainMenu:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,o.Oc)().data,d=x.securityCaster,a=x.wanted_issue,l=g.setScreen;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:"Main Menu",children:[a&&(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return l(r.NEWSCASTER_SCREEN_VIEWWANTED)},color:"bad",children:"Read WANTED Issue"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return l(r.NEWSCASTER_SCREEN_VIEWLIST)},children:"View Feed Channels"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWCHANNEL)},children:"Create Feed Channel"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWSTORY)},children:"Create Feed Message"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"print",onClick:function(){return l(r.NEWSCASTER_SCREEN_PRINT)},children:"Print Newspaper"})]}),!!d&&(0,e.jsx)(t.wn,{title:"Feed Security Functions",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWWANTED)},children:'Manage "Wanted" Issue'})})]})}},71588:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterNewChannel:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.channel_name,c=l.c_locked,f=l.user,m=x.setScreen;return(0,e.jsxs)(r.wn,{title:"Creating new Feed Channel",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Channel Name",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,o.jT)(i),onInput:function(v,E){return a("set_channel_name",{val:E})}})}),(0,e.jsx)(r.Ki.Item,{label:"Channel Author",color:"good",children:f}),(0,e.jsx)(r.Ki.Item,{label:"Accept Public Feeds",children:(0,e.jsx)(r.$n,{icon:c?"lock":"lock-open",selected:!c,onClick:function(){return a("set_channel_lock")},children:c?"No":"Yes"})})]}),(0,e.jsx)(r.$n,{fluid:!0,color:"good",icon:"plus",onClick:function(){return a("submit_new_channel")},children:"Submit Channel"}),(0,e.jsx)(r.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},85578:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterNewStory:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.channel_name,i=a.user,c=a.title,f=a.msg,m=a.photo_data,v=g.setScreen;return(0,e.jsxs)(t.wn,{title:"Creating new Feed Message...",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return v(r.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Receiving Channel",children:(0,e.jsx)(t.$n,{fluid:!0,onClick:function(){return d("set_channel_receiving")},children:l||"Unset"})}),(0,e.jsx)(t.Ki.Item,{label:"Message Author",color:"good",children:i}),(0,e.jsx)(t.Ki.Item,{label:"Message Title",verticalAlign:"top",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.wn,{width:"99%",inline:!0,children:c||"(no title yet)"})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{verticalAlign:"top",onClick:function(){return d("set_new_title")},icon:"pen",tooltip:"Edit Title",tooltipPosition:"left"})})]})}),(0,e.jsx)(t.Ki.Item,{label:"Message Body",verticalAlign:"top",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.wn,{width:"99%",inline:!0,children:f||"(no message yet)"})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{verticalAlign:"top",onClick:function(){return d("set_new_message")},icon:"pen",tooltip:"Edit Message",tooltipPosition:"left"})})]})}),(0,e.jsx)(t.Ki.Item,{label:"Attach Photo",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"image",onClick:function(){return d("set_attachment")},children:m?"Photo Attached":"No Photo"})})]}),(0,e.jsx)(t.$n,{fluid:!0,color:"good",icon:"plus",onClick:function(){return d("submit_new_message")},children:"Submit Message"}),(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return v(r.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},92432:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterNewWanted:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.channel_name,c=l.msg,f=l.photo_data,m=l.user,v=l.wanted_issue,E=x.setScreen;return(0,e.jsxs)(r.wn,{title:"Wanted Issue Handler",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return E(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(r.Ki,{children:[!!v&&(0,e.jsx)(r.Ki.Item,{label:"Already In Circulation",children:"A wanted issue is already in circulation. You can edit or cancel it below."}),(0,e.jsx)(r.Ki.Item,{label:"Criminal Name",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,o.jT)(i),onInput:function(j,O){return a("set_channel_name",{val:O})}})}),(0,e.jsx)(r.Ki.Item,{label:"Description",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,o.jT)(c),onInput:function(j,O){return a("set_wanted_desc",{val:O})}})}),(0,e.jsx)(r.Ki.Item,{label:"Attach Photo",children:(0,e.jsx)(r.$n,{fluid:!0,icon:"image",onClick:function(){return a("set_attachment")},children:f?"Photo Attached":"No Photo"})}),(0,e.jsx)(r.Ki.Item,{label:"Prosecutor",color:"good",children:m})]}),(0,e.jsx)(r.$n,{mt:1,fluid:!0,color:"good",icon:"plus",onClick:function(){return a("submit_wanted")},children:"Submit Wanted Issue"}),!!v&&(0,e.jsx)(r.$n,{fluid:!0,color:"average",icon:"minus",onClick:function(){return a("cancel_wanted")},children:"Take Down Issue"}),(0,e.jsx)(r.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return E(s.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},7662:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterPrint:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.total_num,i=a.active_num,c=a.message_num,f=a.paper_remaining,m=g.setScreen;return(0,e.jsxs)(t.wn,{title:"Printing",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return m(r.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(t.az,{color:"label",mb:1,children:["Newscaster currently serves a total of ",l," Feed channels,"," ",i," of which are active, and a total of ",c," Feed stories."]}),(0,e.jsx)(t.Ki,{children:(0,e.jsxs)(t.Ki.Item,{label:"Liquid Paper remaining",children:[f*100," cm\xB3"]})}),(0,e.jsx)(t.$n,{mt:1,fluid:!0,color:"good",icon:"plus",onClick:function(){return d("print_paper")},children:"Print Paper"}),(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return m(r.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},12512:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterViewList:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.channels,c=x.setScreen;return(0,e.jsx)(r.wn,{title:"Station Feed Channels",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return c(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:i.map(function(f){return(0,e.jsx)(r.$n,{fluid:!0,icon:"eye",color:f.admin?"good":f.censored?"bad":"",onClick:function(){a("show_channel",{show_channel:f.ref}),c(s.NEWSCASTER_SCREEN_SELECTEDCHANNEL)},children:(0,o.jT)(f.name)},f.name)})})}},96935:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterViewSelected:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.viewing_channel,c=l.securityCaster,f=l.company,m=x.setScreen;return i?(0,e.jsxs)(r.wn,{title:(0,o.jT)(i.name),buttons:(0,e.jsxs)(e.Fragment,{children:[!!c&&(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"ban",confirmIcon:"ban",onClick:function(){return a("toggle_d_notice",{ref:i.ref})},children:"Issue D-Notice"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_VIEWLIST)},children:"Back"})]}),children:[(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Channel Created By",children:c&&(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",tooltip:"Censor?",confirmContent:"Censor Author",onClick:function(){return a("censor_channel_author",{ref:i.ref})},children:(0,o.jT)(i.author)})||(0,e.jsx)(r.az,{children:(0,o.jT)(i.author)})})}),!!i.censored&&(0,e.jsxs)(r.az,{color:"bad",children:["ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a ",f," D-Notice. No further feed story additions are allowed while the D-Notice is in effect."]}),!!i.messages.length&&i.messages.map(function(v){return(0,e.jsxs)(r.wn,{children:["- ",(0,o.jT)(v.body),!!v.img&&(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r._V,{src:"data:image/png;base64,"+v.img}),!!v.caption&&(0,o.jT)(v.caption)||null]}),(0,e.jsxs)(r.az,{color:"grey",children:["[Story by ",(0,o.jT)(v.author)," -"," ",v.timestamp,"]"]}),!!c&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Confirm,{mt:1,color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",onClick:function(){return a("censor_channel_story_body",{ref:v.ref})},children:"Censor Story"}),(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",onClick:function(){return a("censor_channel_story_author",{ref:v.ref})},children:"Censor Author"})]})]},v.ref)})||!i.censored&&(0,e.jsx)(r.az,{color:"average",children:"No feed messages found in channel."})]}):(0,e.jsx)(r.wn,{title:"Channel Not Found",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_VIEWLIST)},children:"Back"}),children:"The channel you were looking for no longer exists."})}},28189:function(y,u,n){"use strict";n.r(u),n.d(u,{NewscasterViewWanted:function(){return g}});var e=n(20462),o=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var d=(0,t.Oc)().data,a=d.wanted_issue,l=x.setScreen;return a?(0,e.jsx)(r.wn,{title:"--STATIONWIDE WANTED ISSUE--",color:"bad",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return l(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:(0,e.jsx)(r.az,{color:"white",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Submitted by",color:"good",children:(0,o.jT)(a.author)}),(0,e.jsx)(r.Ki.Divider,{}),(0,e.jsx)(r.Ki.Item,{label:"Criminal",children:(0,o.jT)(a.criminal)}),(0,e.jsx)(r.Ki.Item,{label:"Description",children:(0,o.jT)(a.desc)}),(0,e.jsx)(r.Ki.Item,{label:"Photo",children:a.img&&(0,e.jsx)(r._V,{src:a.img})||"None"})]})})}):(0,e.jsx)(r.wn,{title:"No Outstanding Wanted Issues",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return l(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:"There are no wanted issues currently outstanding."})}},42501:function(y,u,n){"use strict";n.r(u),n.d(u,{NEWSCASTER_SCREEN_MAIN:function(){return e},NEWSCASTER_SCREEN_NEWCHANNEL:function(){return o},NEWSCASTER_SCREEN_NEWSTORY:function(){return r},NEWSCASTER_SCREEN_NEWWANTED:function(){return g},NEWSCASTER_SCREEN_PRINT:function(){return s},NEWSCASTER_SCREEN_SELECTEDCHANNEL:function(){return d},NEWSCASTER_SCREEN_VIEWLIST:function(){return t},NEWSCASTER_SCREEN_VIEWWANTED:function(){return x}});var e="Main Menu",o="New Channel",t="View List",r="New Story",s="Print",g="New Wanted",x="View Wanted",d="View Selected Channel"},93856:function(y,u,n){"use strict";n.r(u),n.d(u,{Newscaster:function(){return v}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(3751),g=n(42501),x=n(3949),d=n(71588),a=n(85578),l=n(92432),i=n(7662),c=n(12512),f=n(96935),m=n(28189),v=function(j){return(0,e.jsx)(r.p8,{width:600,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.TemporaryNotice,{decode:!0}),(0,e.jsx)(E,{})]})})},E=function(j){var O=(0,o.QY)("screen",g.NEWSCASTER_SCREEN_MAIN),M=O[0],_=O[1],I=[];return I[g.NEWSCASTER_SCREEN_MAIN]=(0,e.jsx)(x.NewscasterMainMenu,{setScreen:_}),I[g.NEWSCASTER_SCREEN_NEWCHANNEL]=(0,e.jsx)(d.NewscasterNewChannel,{setScreen:_}),I[g.NEWSCASTER_SCREEN_VIEWLIST]=(0,e.jsx)(c.NewscasterViewList,{setScreen:_}),I[g.NEWSCASTER_SCREEN_NEWSTORY]=(0,e.jsx)(a.NewscasterNewStory,{setScreen:_}),I[g.NEWSCASTER_SCREEN_PRINT]=(0,e.jsx)(i.NewscasterPrint,{setScreen:_}),I[g.NEWSCASTER_SCREEN_NEWWANTED]=(0,e.jsx)(l.NewscasterNewWanted,{setScreen:_}),I[g.NEWSCASTER_SCREEN_VIEWWANTED]=(0,e.jsx)(m.NewscasterViewWanted,{setScreen:_}),I[g.NEWSCASTER_SCREEN_SELECTEDCHANNEL]=(0,e.jsx)(f.NewscasterViewSelected,{setScreen:_}),(0,e.jsx)(t.az,{children:I[M]})}},5537:function(y,u,n){"use strict";n.r(u)},4418:function(y,u,n){"use strict";n.r(u),n.d(u,{NoticeBoard:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.notices;return(0,e.jsx)(r.p8,{width:330,height:300,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:l.length?(0,e.jsx)(t.Ki,{children:l.map(function(i,c){return(0,e.jsxs)(t.Ki.Item,{label:i.name,children:[i.isphoto&&(0,e.jsx)(t.$n,{icon:"image",onClick:function(){return d("look",{ref:i.ref})},children:"Look"})||i.ispaper&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"sticky-note",onClick:function(){return d("read",{ref:i.ref})},children:"Read"}),(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return d("write",{ref:i.ref})},children:"Write"})]})||"Unknown Entity",(0,e.jsx)(t.$n,{icon:"minus-circle",onClick:function(){return d("remove",{ref:i.ref})},children:"Remove"})]},c)})}):(0,e.jsx)(t.az,{color:"average",children:"No notices posted here."})})})})}},78610:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosAccessDecrypter:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(39841),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.message,c=l.running,f=l.rate,m=l.factor,v=l.regions,E=function(O){for(var M="";M.lengthm?M+="0":M+="1";return M},j=45;return(0,e.jsx)(r.Zm,{width:600,height:600,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:i&&(0,e.jsx)(t.IC,{children:i})||c&&(0,e.jsxs)(t.wn,{children:["Attempting to decrypt network access codes. Please wait. Rate:"," ",f," PHash/s",(0,e.jsx)(t.az,{children:E(j)}),(0,e.jsx)(t.az,{children:E(j)}),(0,e.jsx)(t.az,{children:E(j)}),(0,e.jsx)(t.az,{children:E(j)}),(0,e.jsx)(t.az,{children:E(j)}),(0,e.jsx)(t.$n,{fluid:!0,icon:"ban",onClick:function(){return a("PRG_reset")},children:"Abort"})]})||(0,e.jsx)(t.wn,{title:"Pick access code to decrypt",children:v.length&&(0,e.jsx)(s.IdentificationComputerRegions,{actName:"PRG_execute"})||(0,e.jsx)(t.az,{children:"Please insert ID card."})})})})}},25316:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosArcade:function(){return g}});var e=n(20462),o=n(31200),t=n(7081),r=n(88569),s=n(15581),g=function(x){var d=(0,t.Oc)(),a=d.act,l=d.data,i=l.PlayerHitpoints,c=l.PlayerMP,f=l.PauseState,m=l.Status,v=l.Hitpoints,E=l.BossID,j=l.GameActive,O=l.TicketCount;return(0,e.jsx)(s.Zm,{width:450,height:350,children:(0,e.jsx)(s.Zm.Content,{children:(0,e.jsxs)(r.wn,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.XI,{children:(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsxs)(r.XI.Cell,{size:2,children:[(0,e.jsx)(r.az,{m:1}),(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Player Health",children:(0,e.jsxs)(r.z2,{value:i,minValue:0,maxValue:30,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[i,"HP"]})}),(0,e.jsx)(r.Ki.Item,{label:"Player Magic",children:(0,e.jsxs)(r.z2,{value:c,minValue:0,maxValue:10,ranges:{purple:[11,1/0],violet:[3,11],bad:[-1/0,3]},children:[c,"MP"]})})]}),(0,e.jsx)(r.az,{my:1,mx:4}),(0,e.jsx)(r.wn,{backgroundColor:f===1?"#1b3622":"#471915",children:m})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.z2,{value:v,minValue:0,maxValue:45,ranges:{good:[30,1/0],average:[5,30],bad:[-1/0,5]},children:[(0,e.jsx)(r.zv,{value:v}),"HP"]}),(0,e.jsx)(r.az,{m:1}),(0,e.jsx)(r.wn,{inline:!0,width:"156px",textAlign:"center",children:(0,e.jsx)(r._V,{src:(0,o.l)(E)})})]})]})}),(0,e.jsx)(r.az,{my:1,mx:4}),(0,e.jsx)(r.$n,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:j===0||f===1,onClick:function(){return a("Attack")},children:"Attack!"}),(0,e.jsx)(r.$n,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:j===0||f===1,onClick:function(){return a("Heal")},children:"Heal!"}),(0,e.jsx)(r.$n,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:j===0||f===1,onClick:function(){return a("Recharge_Power")},children:"Recharge!"})]}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:j===1,onClick:function(){return a("Start_Game")},children:"Begin Game"}),(0,e.jsx)(r.$n,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:j===1,onClick:function(){return a("Dispense_Tickets")},children:"Claim Tickets"})]}),(0,e.jsxs)(r.az,{color:O>=1?"good":"normal",children:["Earned Tickets: ",O]})]})})})}},98669:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosAtmosControl:function(){return r}});var e=n(20462),o=n(15581),t=n(74737),r=function(){return(0,e.jsx)(o.Zm,{width:870,height:708,children:(0,e.jsx)(o.Zm.Content,{children:(0,e.jsx)(t.AtmosControlContent,{})})})}},34470:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosCameraConsole:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(18490),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.mapRef,c=l.activeCamera,f=l.cameras,m=(0,s.selectCameras)(f),v=(0,s.prevNextCamera)(m,c),E=v[0],j=v[1];return(0,e.jsx)(r.Zm,{width:870,height:708,children:(0,e.jsxs)(r.Zm.Content,{children:[(0,e.jsx)("div",{className:"CameraConsole__left",children:(0,e.jsx)(s.CameraConsoleContent,{})}),(0,e.jsxs)("div",{className:"CameraConsole__right",children:[(0,e.jsxs)("div",{className:"CameraConsole__toolbar",children:[(0,e.jsx)("b",{children:"Camera: "}),c&&c.name||"\u2014"]}),(0,e.jsxs)("div",{className:"CameraConsole__toolbarRight",children:["SEL:",(0,e.jsx)(t.$n,{icon:"chevron-left",disabled:!E,onClick:function(){return a("switch_camera",{name:E})}}),(0,e.jsx)(t.$n,{icon:"chevron-right",disabled:!j,onClick:function(){return a("switch_camera",{name:j})}}),"| PAN:",(0,e.jsx)(t.$n,{icon:"chevron-left",onClick:function(){return a("pan",{dir:8})}}),(0,e.jsx)(t.$n,{icon:"chevron-up",onClick:function(){return a("pan",{dir:1})}}),(0,e.jsx)(t.$n,{icon:"chevron-right",onClick:function(){return a("pan",{dir:4})}}),(0,e.jsx)(t.$n,{icon:"chevron-down",onClick:function(){return a("pan",{dir:2})}})]}),(0,e.jsx)(t.D1,{className:"CameraConsole__map",params:{id:i,type:"map"}})]})]})})}},77580:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosCommunicationsConsole:function(){return r}});var e=n(20462),o=n(15581),t=n(34116),r=function(){return(0,e.jsx)(o.Zm,{width:400,height:600,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.CommunicationsConsoleContent,{})})})}},35300:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosConfiguration:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.PC_device_theme,i=a.power_usage,c=a.battery_exists,f=a.battery,m=f===void 0?{}:f,v=a.disk_size,E=a.disk_used,j=a.hardware,O=j===void 0?[]:j;return(0,e.jsx)(r.Zm,{theme:l,width:520,height:630,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Power Supply",buttons:(0,e.jsxs)(t.az,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",i,"W"]}),children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Battery Status",color:!c&&"average"||void 0,children:c?(0,e.jsxs)(t.z2,{value:m.charge,minValue:0,maxValue:m.max,ranges:{good:[m.max/2,1/0],average:[m.max/4,m.max/2],bad:[-1/0,m.max/4]},children:[m.charge," / ",m.max]}):"Not Available"})})}),(0,e.jsx)(t.wn,{title:"File System",children:(0,e.jsxs)(t.z2,{value:E,minValue:0,maxValue:v,color:"good",children:[E," GQ / ",v," GQ"]})}),(0,e.jsx)(t.wn,{title:"Hardware Components",children:O.map(function(M){return(0,e.jsx)(t.wn,{title:M.name,buttons:(0,e.jsxs)(e.Fragment,{children:[!M.critical&&(0,e.jsx)(t.$n.Checkbox,{checked:M.enabled,mr:1,onClick:function(){return d("PC_toggle_component",{name:M.name})},children:"Enabled"}),(0,e.jsxs)(t.az,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",M.powerusage,"W"]})]}),children:M.desc},M.name)})})]})})}},23984:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosCrewManifest:function(){return r}});var e=n(20462),o=n(15581),t=n(58044),r=function(){return(0,e.jsx)(o.Zm,{width:800,height:600,children:(0,e.jsx)(o.Zm.Content,{children:(0,e.jsx)(t.CrewManifestContent,{})})})}},69233:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosCrewMonitor:function(){return s}});var e=n(20462),o=n(61358),t=n(15581),r=n(70117),s=function(){var g=function(v){l(v)},x=function(v){f(v)},d=(0,o.useState)(0),a=d[0],l=d[1],i=(0,o.useState)(1),c=i[0],f=i[1];return(0,e.jsx)(t.Zm,{width:800,height:600,children:(0,e.jsx)(t.Zm.Content,{children:(0,e.jsx)(r.CrewMonitorContent,{tabIndex:a,zoom:c,onTabIndex:g,onZoom:x})})})}},6303:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosDigitalWarrant:function(){return g}});var e=n(20462),o=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(l){var i=(0,t.Oc)().data,c=i.warrantauth,f=(0,e.jsx)(x,{});return c&&(f=(0,e.jsx)(a,{})),(0,e.jsx)(s.Zm,{width:500,height:350,children:(0,e.jsx)(s.Zm.Content,{scrollable:!0,children:f})})},x=function(l){var i=(0,t.Oc)().act;return(0,e.jsxs)(r.wn,{title:"Warrants",children:[(0,e.jsx)(r.$n,{icon:"plus",fluid:!0,onClick:function(){return i("addwarrant")},children:"Create New Warrant"}),(0,e.jsx)(r.wn,{title:"Arrest Warrants",children:(0,e.jsx)(d,{type:"arrest"})}),(0,e.jsx)(r.wn,{title:"Search Warrants",children:(0,e.jsx)(d,{type:"search"})})]})},d=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=l.type,v=f.allwarrants,E=v===void 0?[]:v,j=(0,o.pb)(E,function(O){return O.arrestsearch===m});return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,children:[(0,e.jsx)(r.XI.Cell,{children:m==="arrest"?"Name":"Location"}),(0,e.jsx)(r.XI.Cell,{children:m==="arrest"?"Charges":"Reason"}),(0,e.jsx)(r.XI.Cell,{children:"Authorized By"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:"Edit"})]}),j.length&&j.map(function(O){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:O.warrantname}),(0,e.jsx)(r.XI.Cell,{children:O.charges}),(0,e.jsx)(r.XI.Cell,{children:O.auth}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrant",{id:O.id})}})})]},O.id)})||(0,e.jsx)(r.XI.Row,{children:(0,e.jsxs)(r.XI.Cell,{colspan:"3",color:"bad",children:["No ",m," warrants found."]})})]})},a=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.warrantname,v=f.warrantcharges,E=f.warrantauth,j=f.type,O=j==="arrest",M=j==="arrest"?"Name":"Location",_=j==="arrest"?"Charges":"Reason";return(0,e.jsx)(r.wn,{title:O?"Editing Arrest Warrant":"Editing Search Warrant",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"save",onClick:function(){return c("savewarrant")},children:"Save"}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",onClick:function(){return c("deletewarrant")},children:"Delete"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return c("back")},children:"Back"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:M,buttons:O&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"search",onClick:function(){return c("editwarrantname")}}),(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantnamecustom")}})]})||(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantnamecustom")}}),children:m}),(0,e.jsx)(r.Ki.Item,{label:_,buttons:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantcharges")}}),children:v}),(0,e.jsx)(r.Ki.Item,{label:"Authorized By",buttons:(0,e.jsx)(r.$n,{icon:"balance-scale",onClick:function(){return c("editwarrantauth")}}),children:E})]})})}},27896:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosEmailAdministration:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(94151),g=function(i){var c=(0,o.Oc)().data,f=c.error,m=c.cur_title,v=c.current_account,E=c.accounts,j=(0,e.jsx)(x,{accounts:E});return f?j=(0,e.jsx)(d,{error:f}):m?j=(0,e.jsx)(a,{}):v&&(j=(0,e.jsx)(l,{})),(0,e.jsx)(r.Zm,{width:600,height:450,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:j})})},x=function(i){var c=(0,o.Oc)().act,f=i.accounts;return(0,e.jsxs)(t.wn,{title:"Welcome to the NTNet Email Administration System",children:[(0,e.jsx)(t.az,{italic:!0,mb:1,children:"SECURE SYSTEM - Have your identification ready"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return c("newaccount")},children:"Create New Account"}),(0,e.jsx)(t.az,{bold:!0,mt:1,mb:1,children:"Select account to administrate"}),f.map(function(m){return(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return c("viewaccount",{viewaccount:m.uid})},children:m.login},m.uid)})]})},d=function(i){var c=(0,o.Oc)().act,f=i.error;return(0,e.jsx)(t.wn,{title:"Message",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return c("back")},children:"Back"}),children:f})},a=function(i){return(0,e.jsx)(t.wn,{children:(0,e.jsx)(s.NtosEmailClientViewMessage,{administrator:!0})})},l=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.current_account,E=m.cur_suspended,j=m.messages,O=j===void 0?[]:j;return(0,e.jsxs)(t.wn,{title:"Viewing "+v+" in admin mode",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("back")},children:"Back"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Account Status",children:(0,e.jsx)(t.$n,{color:E?"bad":"",icon:"ban",tooltip:(E?"Uns":"S")+"uspend Account?",onClick:function(){return f("ban")},children:E?"Suspended":"Normal"})}),(0,e.jsx)(t.Ki.Item,{label:"Actions",children:(0,e.jsx)(t.$n,{icon:"key",onClick:function(){return f("changepass")},children:"Change Password"})})]}),(0,e.jsx)(t.wn,{title:"Messages",children:O.length&&(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Source"}),(0,e.jsx)(t.XI.Cell,{children:"Title"}),(0,e.jsx)(t.XI.Cell,{children:"Received at"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),O.map(function(M){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:M.source}),(0,e.jsx)(t.XI.Cell,{children:M.title}),(0,e.jsx)(t.XI.Cell,{children:M.timestamp}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return f("viewmail",{viewmail:M.uid})},children:"View"})})]},M.uid)})]})||(0,e.jsx)(t.az,{color:"average",children:"No messages found in selected account."})})]})}},94151:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosEmailClient:function(){return g},NtosEmailClientViewMessage:function(){return l}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(v){var E=(0,t.Oc)().data,j=E.PC_device_theme,O=E.error,M=E.downloading,_=E.current_account,I=(0,e.jsx)(m,{});return O?I=(0,e.jsx)(f,{error:O}):M?I=(0,e.jsx)(x,{}):_&&(I=(0,e.jsx)(d,{})),(0,e.jsx)(s.Zm,{resizable:!0,theme:j,children:(0,e.jsx)(s.Zm.Content,{scrollable:!0,children:I})})},x=function(v){var E=(0,t.Oc)().data,j=E.down_filename,O=E.down_progress,M=E.down_size,_=E.down_speed;return(0,e.jsx)(r.wn,{title:"Downloading...",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"File",children:[j," (",M," GQ)"]}),(0,e.jsxs)(r.Ki.Item,{label:"Speed",children:[(0,e.jsx)(r.zv,{value:_})," GQ/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Progress",children:(0,e.jsx)(r.z2,{color:"good",value:O,maxValue:M,children:O+"/"+M+" ("+(0,o.Mg)(O/M*100,1)+"%)"})})]})})},d=function(v){var E=(0,t.Oc)(),j=E.act,O=E.data,M=O.current_account,_=O.addressbook,I=O.new_message,S=O.cur_title,T=O.accounts,A=(0,e.jsx)(a,{});return _?A=(0,e.jsx)(i,{accounts:T}):I?A=(0,e.jsx)(c,{}):S&&(A=(0,e.jsx)(l,{})),(0,e.jsx)(r.wn,{title:"Logged in as: "+M,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"plus",tooltip:"New Message",tooltipPosition:"left",onClick:function(){return j("new_message")}}),(0,e.jsx)(r.$n,{icon:"cogs",tooltip:"Change Password",tooltipPosition:"left",onClick:function(){return j("changepassword")}}),(0,e.jsx)(r.$n,{icon:"sign-out-alt",tooltip:"Log Out",tooltipPosition:"left",onClick:function(){return j("logout")}})]}),children:A})},a=function(v){var E=(0,t.Oc)(),j=E.act,O=E.data,M=O.folder,_=O.messagecount,I=O.messages;return(0,e.jsxs)(r.wn,{noTopPadding:!0,children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:M==="Inbox",onClick:function(){return j("set_folder",{set_folder:"Inbox"})},children:"Inbox"}),(0,e.jsx)(r.tU.Tab,{selected:M==="Spam",onClick:function(){return j("set_folder",{set_folder:"Spam"})},children:"Spam"}),(0,e.jsx)(r.tU.Tab,{selected:M==="Deleted",onClick:function(){return j("set_folder",{set_folder:"Deleted"})},children:"Deleted"})]}),_&&(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,children:[(0,e.jsx)(r.XI.Cell,{children:"Source"}),(0,e.jsx)(r.XI.Cell,{children:"Title"}),(0,e.jsx)(r.XI.Cell,{children:"Received At"}),(0,e.jsx)(r.XI.Cell,{children:"Actions"})]}),I.map(function(S){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:S.source}),(0,e.jsx)(r.XI.Cell,{children:S.title}),(0,e.jsx)(r.XI.Cell,{children:S.timestamp}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return j("view",{view:S.uid})},tooltip:"View"}),(0,e.jsx)(r.$n,{icon:"share",onClick:function(){return j("reply",{reply:S.uid})},tooltip:"Reply"}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",onClick:function(){return j("delete",{delete:S.uid})},tooltip:"Delete"})]})]},S.timestamp+S.title)})]})})||(0,e.jsxs)(r.az,{color:"bad",children:["No emails found in ",M,"."]})]})},l=function(v){var E=(0,t.Oc)(),j=E.act,O=E.data,M=v.administrator,_=O.cur_title,I=O.cur_source,S=O.cur_timestamp,T=O.cur_body,A=O.cur_hasattachment,K=O.cur_attachment_filename,W=O.cur_attachment_size,$=O.cur_uid;return(0,e.jsx)(r.wn,{title:_,buttons:M?(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return j("back")}}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"share",tooltip:"Reply",tooltipPosition:"left",onClick:function(){return j("reply",{reply:$})}}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",tooltip:"Delete",tooltipPosition:"left",onClick:function(){return j("delete",{delete:$})}}),(0,e.jsx)(r.$n,{icon:"save",tooltip:"Save To Disk",tooltipPosition:"left",onClick:function(){return j("save",{save:$})}}),A&&(0,e.jsx)(r.$n,{icon:"paperclip",tooltip:"Save Attachment",tooltipPosition:"left",onClick:function(){return j("downloadattachment")}})||null,(0,e.jsx)(r.$n,{icon:"times",tooltip:"Close",tooltipPosition:"left",onClick:function(){return j("cancel",{cancel:$})}})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"From",children:I}),(0,e.jsx)(r.Ki.Item,{label:"At",children:S}),A&&!M&&(0,e.jsxs)(r.Ki.Item,{label:"Attachment",color:"average",children:[K," (",W,"GQ)"]})||"",(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsx)(r.wn,{children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:T}})})})]})})},i=function(v){var E=(0,t.Oc)().act,j=v.accounts;return(0,e.jsx)(r.wn,{title:"Address Book",buttons:(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return E("set_recipient",{set_recipient:null})}}),children:j.map(function(O){return(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return E("set_recipient",{set_recipient:O.login})},children:O.login},O.login)})})},c=function(v){var E=(0,t.Oc)(),j=E.act,O=E.data,M=O.msg_title,_=M===void 0?"":M,I=O.msg_recipient,S=I===void 0?"":I,T=O.msg_body,A=O.msg_hasattachment,K=O.msg_attachment_filename,W=O.msg_attachment_size;return(0,e.jsx)(r.wn,{title:"New Message",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"share",onClick:function(){return j("send")},children:"Send Message"}),(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return j("cancel")}})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Title",children:(0,e.jsx)(r.pd,{fluid:!0,value:_,onInput:function($,k){return j("edit_title",{val:k})}})}),(0,e.jsx)(r.Ki.Item,{label:"Recipient",verticalAlign:"top",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.pd,{fluid:!0,value:S,onInput:function($,k){return j("edit_recipient",{val:k})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"address-book",onClick:function(){return j("addressbook")},tooltip:"Find Receipients",tooltipPosition:"left"})})]})}),(0,e.jsx)(r.Ki.Item,{label:"Attachments",buttons:A&&(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return j("remove_attachment")},children:"Remove Attachment"})||(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return j("addattachment")},children:"Add Attachment"}),children:A&&(0,e.jsxs)(r.az,{inline:!0,children:[K," (",W,"GQ)"]})||null}),(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{width:"99%",inline:!0,children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:T}})})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{verticalAlign:"top",onClick:function(){return j("edit_body")},icon:"pen",tooltip:"Edit Message",tooltipPosition:"left"})})]})})]})})},f=function(v){var E=(0,t.Oc)().act,j=v.error;return(0,e.jsx)(r.wn,{title:"Notification",buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return E("reset")},children:"Return"}),children:(0,e.jsx)(r.az,{color:"bad",children:j})})},m=function(v){var E=(0,t.Oc)(),j=E.act,O=E.data,M=O.stored_login,_=M===void 0?"":M,I=O.stored_password,S=I===void 0?"":I;return(0,e.jsxs)(r.wn,{title:"Please Log In",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Email address",children:(0,e.jsx)(r.pd,{fluid:!0,value:_,onInput:function(T,A){return j("edit_login",{val:A})}})}),(0,e.jsx)(r.Ki.Item,{label:"Password",children:(0,e.jsx)(r.pd,{fluid:!0,value:S,onInput:function(T,A){return j("edit_password",{val:A})}})})]}),(0,e.jsx)(r.$n,{icon:"sign-in-alt",onClick:function(){return j("login")},children:"Log In"})]})}},12813:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosFileManager:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.PC_device_theme,c=l.usbconnected,f=l.filename,m=l.filedata,v=l.error,E=l.files,j=E===void 0?[]:E,O=l.usbfiles,M=O===void 0?[]:O;return(0,e.jsx)(r.Zm,{resizable:!0,theme:i,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[f&&(0,e.jsx)(t.wn,{title:"Viewing File "+f,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return a("PRG_edit")},children:"Edit"}),(0,e.jsx)(t.$n,{icon:"print",onClick:function(){return a("PRG_printfile")},children:"Print"}),(0,e.jsx)(t.$n,{icon:"times",onClick:function(){return a("PRG_closefile")},children:"Close"})]}),children:m&&(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:m}})})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{children:(0,e.jsx)(g,{files:j,usbconnected:c,onUpload:function(_){return a("PRG_copytousb",{uid:_})},onDelete:function(_){return a("PRG_deletefile",{uid:_})},onOpen:function(_){return a("PRG_openfile",{uid:_})},onRename:function(_,I){return a("PRG_rename",{uid:_,new_name:I})},onDuplicate:function(_){return a("PRG_clone",{uid:_})}})}),c&&(0,e.jsx)(t.wn,{title:"Data Disk",children:(0,e.jsx)(g,{usbmode:!0,files:M,usbconnected:c,onUpload:function(_){return a("PRG_copyfromusb",{uid:_})},onDelete:function(_){return a("PRG_deletefile",{uid:_})},onOpen:function(_){return a("PRG_openfile",{uid:_})},onRename:function(_,I){return a("PRG_rename",{uid:_,new_name:I})},onDuplicate:function(_){return a("PRG_clone",{uid:_})}})})||null,(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return a("PRG_newtextfile")},children:"New Text File"})})]}),v&&(0,e.jsxs)(t.so,{wrap:"wrap",position:"fixed",bottom:"5px",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.$n,{bottom:"0",left:"0",icon:"ban",onClick:function(){return a("PRG_clearerror")}})})}),(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.so.Item,{grow:!0,children:v})})]})]})})},g=function(x){var d=x.files,a=d===void 0?[]:d,l=x.usbconnected,i=x.usbmode,c=x.onUpload,f=x.onDelete,m=x.onRename,v=x.onOpen,E=x.onDuplicate;return(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"File"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Type"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Size"})]}),a.map(function(j){return(0,e.jsxs)(t.XI.Row,{className:"candystripe",children:[(0,e.jsx)(t.XI.Cell,{children:j.undeletable?j.name:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Input,{width:"80%",currentValue:j.name,tooltip:"Rename",onCommit:function(O,M){return m(j.uid,M)},children:j.name}),(0,e.jsx)(t.$n,{onClick:function(){return v(j.uid)},children:"Open"})]})}),(0,e.jsx)(t.XI.Cell,{children:j.type}),(0,e.jsx)(t.XI.Cell,{children:j.size}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:!j.undeletable&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return f(j.uid)}}),!!l&&(i?(0,e.jsx)(t.$n,{icon:"download",tooltip:"Download",onClick:function(){return c(j.uid)}}):(0,e.jsx)(t.$n,{icon:"upload",tooltip:"Upload",onClick:function(){return c(j.uid)}}))]})})]},j.name)})]})}},39925:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosIdentificationComputer:function(){return r}});var e=n(20462),o=n(15581),t=n(39841),r=function(){return(0,e.jsx)(o.Zm,{width:600,height:700,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.IdentificationComputerContent,{ntos:!0})})})}},45319:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosMain:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.device_theme,c=l.programs,f=c===void 0?[]:c,m=l.has_light,v=l.light_on,E=l.comp_light_color,j=l.removable_media,O=j===void 0?[]:j,M=l.login,_=M===void 0?{}:M;return(0,e.jsx)(r.Zm,{title:i==="syndicate"&&"Syndix Main Menu"||"NtOS Main Menu",theme:i,width:400,height:500,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[!!m&&(0,e.jsxs)(t.wn,{children:[(0,e.jsxs)(t.$n,{width:"144px",icon:"lightbulb",selected:v,onClick:function(){return a("PC_toggle_light")},children:["Flashlight: ",v?"ON":"OFF"]}),(0,e.jsxs)(t.$n,{ml:1,onClick:function(){return a("PC_light_color")},children:["Color:",(0,e.jsx)(t.BK,{ml:1,color:E})]})]}),(0,e.jsx)(t.wn,{title:"User Login",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!_.IDName,onClick:function(){return a("PC_Eject_Disk",{name:"ID"})},children:"Eject ID"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{children:["ID Name: ",_.IDName]}),(0,e.jsxs)(t.XI.Row,{children:["Assignment: ",_.IDJob]})]})}),!!O.length&&(0,e.jsx)(t.wn,{title:"Media Eject",children:(0,e.jsx)(t.XI,{children:O.map(function(I){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:"eject",onClick:function(){return a("PC_Eject_Disk",{name:I})},children:I})})},I)})})}),(0,e.jsx)(t.wn,{title:"Programs",children:(0,e.jsx)(t.XI,{children:f.map(function(I){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:s[I.name]||"window-maximize-o",onClick:function(){return a("PC_runprogram",{name:I.name})},children:I.desc})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,width:"18px",children:!!I.running&&(0,e.jsx)(t.$n,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return a("PC_killprogram",{name:I.name})}})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,width:"18px",children:(0,e.jsx)(t.$n,{color:"transparent",tooltip:"Set Autorun",tooltipPosition:"left",selected:I.autorun,onClick:function(){return a("PC_setautorun",{name:I.name})},children:"AR"})})]},I.name)})})})]})})}},9785:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNetChat:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.can_admin,i=a.adminmode,c=a.authed,f=a.username,m=a.active_channel,v=a.is_operator,E=a.all_channels,j=E===void 0?[]:E,O=a.clients,M=O===void 0?[]:O,_=a.messages,I=_===void 0?[]:_,S=m!==null,T=c||i;return(0,e.jsx)(r.Zm,{width:900,height:675,children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsx)(t.wn,{height:"600px",children:(0,e.jsx)(t.XI,{height:"580px",children:(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,e.jsxs)(t.az,{height:"560px",overflowY:"scroll",children:[(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(A,K){return d("PRG_newchannel",{new_channel_name:K})},children:"New Channel..."}),j.map(function(A){return(0,e.jsx)(t.$n,{fluid:!0,selected:A.id===m,color:"transparent",onClick:function(){return d("PRG_joinchannel",{id:A.id})},children:A.chan},A.chan)})]}),(0,e.jsx)(t.$n.Input,{fluid:!0,mt:1,currentValue:f,onCommit:function(A,K){return d("PRG_changename",{new_name:K})},children:f+"..."}),!!l&&(0,e.jsx)(t.$n,{fluid:!0,bold:!0,color:i?"bad":"good",onClick:function(){return d("PRG_toggleadmin")},children:"ADMIN MODE: "+(i?"ON":"OFF")})]}),(0,e.jsxs)(t.XI.Cell,{children:[(0,e.jsx)(t.az,{height:"560px",overflowY:"scroll",children:S&&(T?I.map(function(A){return(0,e.jsx)(t.az,{children:A.msg},A.msg)}):(0,e.jsxs)(t.az,{textAlign:"center",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,e.jsx)(t.az,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,e.jsx)(t.az,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,e.jsx)(t.pd,{fluid:!0,selfClear:!0,mt:1,onEnter:function(A,K){return d("PRG_speak",{message:K})}})]}),(0,e.jsxs)(t.XI.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,e.jsx)(t.az,{height:"465px",overflowY:"scroll",children:M.map(function(A){return(0,e.jsx)(t.az,{children:A.name},A.name)})}),S&&T&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Input,{fluid:!0,defaultValue:"new_log",onCommit:function(A,K){return d("PRG_savelog",{log_name:K})},children:"Save log..."}),(0,e.jsx)(t.$n.Confirm,{fluid:!0,onClick:function(){return d("PRG_leavechannel")},children:"Leave Channel"})]}),!!v&&c&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{fluid:!0,onClick:function(){return d("PRG_deletechannel")},children:"Delete Channel"}),(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(A,K){return d("PRG_renamechannel",{new_name:K})},children:"Rename Channel..."}),(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(A,K){return d("PRG_setpassword",{new_password:K})},children:"Set Password..."})]})]})]})})})})})}},82193:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNetDos:function(){return s},NtosNetDosContent:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.Zm,{width:400,height:250,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.relays,c=i===void 0?[]:i,f=l.focus,m=l.target,v=l.speed,E=l.overload,j=l.capacity,O=l.error;if(O)return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:O}),(0,e.jsx)(t.$n,{fluid:!0,textAlign:"center",onClick:function(){return a("PRG_reset")},children:"Reset"})]});var M=function(I){for(var S="",T=E/j;S.lengthT?S+="0":S+="1";return S},_=45;return m?(0,e.jsxs)(t.wn,{fontFamily:"monospace",textAlign:"center",children:[(0,e.jsxs)(t.az,{children:["CURRENT SPEED: ",v," GQ/s"]}),(0,e.jsx)(t.az,{children:M(_)}),(0,e.jsx)(t.az,{children:M(_)}),(0,e.jsx)(t.az,{children:M(_)}),(0,e.jsx)(t.az,{children:M(_)}),(0,e.jsx)(t.az,{children:M(_)})]}):(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Target",children:c.map(function(I){return(0,e.jsx)(t.$n,{selected:f===I.id,onClick:function(){return a("PRG_target_relay",{targid:I.id})},children:I.id},I.id)})})}),(0,e.jsx)(t.$n,{fluid:!0,bold:!0,color:"bad",textAlign:"center",disabled:!f,mt:1,onClick:function(){return a("PRG_execute")},children:"EXECUTE"})]})}},43726:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNetDownloader:function(){return g}});var e=n(20462),o=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.PC_device_theme,f=i.disk_size,m=i.disk_used,v=i.downloadable_programs,E=v===void 0?[]:v,j=i.error,O=i.hacked_programs,M=O===void 0?[]:O,_=i.hackedavailable;return(0,e.jsx)(s.Zm,{theme:c,width:480,height:735,children:(0,e.jsxs)(s.Zm.Content,{scrollable:!0,children:[!!j&&(0,e.jsxs)(r.IC,{children:[(0,e.jsx)(r.az,{mb:1,children:j}),(0,e.jsx)(r.$n,{onClick:function(){return l("PRG_reseterror")},children:"Reset"})]}),(0,e.jsx)(r.wn,{children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Disk usage",children:(0,e.jsx)(r.z2,{value:m,minValue:0,maxValue:f,children:m+" GQ / "+f+" GQ"})})})}),(0,e.jsx)(r.wn,{children:E.map(function(I){return(0,e.jsx)(x,{program:I},I.filename)})}),!!_&&(0,e.jsxs)(r.wn,{title:"UNKNOWN Software Repository",children:[(0,e.jsx)(r.IC,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),M.map(function(I){return(0,e.jsx)(x,{program:I},I.filename)})]})]})})},x=function(d){var a=d.program,l=(0,t.Oc)(),i=l.act,c=l.data,f=c.disk_size,m=c.disk_used,v=c.downloadcompletion,E=c.downloadname,j=c.downloadsize,O=c.downloadspeed,M=c.downloads_queue,_=f-m;return(0,e.jsxs)(r.az,{mb:3,children:[(0,e.jsxs)(r.so,{align:"baseline",children:[(0,e.jsx)(r.so.Item,{bold:!0,grow:1,children:a.filedesc}),(0,e.jsxs)(r.so.Item,{color:"label",nowrap:!0,children:[a.size," GQ"]}),(0,e.jsx)(r.so.Item,{ml:2,width:"110px",textAlign:"center",children:a.filename===E&&(0,e.jsxs)(r.z2,{color:"green",minValue:0,maxValue:j,value:v,children:[(0,o.Mg)(v/j*100,1),"%\xA0","("+O+"GQ/s)"]})||M.indexOf(a.filename)!==-1&&(0,e.jsx)(r.$n,{icon:"ban",color:"bad",onClick:function(){return i("PRG_removequeued",{filename:a.filename})},children:"Queued..."})||(0,e.jsx)(r.$n,{fluid:!0,icon:"download",disabled:a.size>_,onClick:function(){return i("PRG_downloadfile",{filename:a.filename})},children:"Download"})})]}),a.compatibility!=="Compatible"&&(0,e.jsxs)(r.az,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,e.jsx)(r.In,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),a.size>_&&(0,e.jsxs)(r.az,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,e.jsx)(r.In,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,e.jsx)(r.az,{mt:1,italic:!0,color:"label",fontSize:"12px",children:a.fileinfo})]})}},30817:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNetMonitor:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.ntnetrelays,i=a.ntnetstatus,c=a.config_softwaredownload,f=a.config_peertopeer,m=a.config_communication,v=a.config_systemcontrol,E=a.idsalarm,j=a.idsstatus,O=a.ntnetmaxlogs,M=a.maxlogs,_=a.minlogs,I=a.banned_nids,S=a.ntnetlogs,T=S===void 0?[]:S;return(0,e.jsx)(r.Zm,{children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[(0,e.jsx)(t.IC,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,e.jsx)(t.wn,{title:"Wireless Connectivity",buttons:(0,e.jsx)(t.$n.Confirm,{icon:i?"power-off":"times",selected:i,onClick:function(){return d("toggleWireless")},children:i?"ENABLED":"DISABLED"}),children:l?(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Active NTNet Relays",children:l})}):"No Relays Connected"}),(0,e.jsx)(t.wn,{title:"Firewall Configuration",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Software Downloads",buttons:(0,e.jsx)(t.$n,{icon:c?"power-off":"times",selected:c,onClick:function(){return d("toggle_function",{id:"1"})},children:c?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Peer to Peer Traffic",buttons:(0,e.jsx)(t.$n,{icon:f?"power-off":"times",selected:f,onClick:function(){return d("toggle_function",{id:"2"})},children:f?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Communication Systems",buttons:(0,e.jsx)(t.$n,{icon:m?"power-off":"times",selected:m,onClick:function(){return d("toggle_function",{id:"3"})},children:m?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Remote System Control",buttons:(0,e.jsx)(t.$n,{icon:v?"power-off":"times",selected:v,onClick:function(){return d("toggle_function",{id:"4"})},children:v?"ENABLED":"DISABLED"})})]})}),(0,e.jsxs)(t.wn,{title:"Security Systems",children:[!!E&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:"NETWORK INCURSION DETECTED"}),(0,e.jsx)(t.az,{italic:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})]}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Banned NIDs",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return d("ban_nid")},children:"Ban NID"}),(0,e.jsx)(t.$n,{icon:"balance-scale",onClick:function(){return d("unban_nid")},children:"Unban NID"})]}),children:I.join(", ")||"None"}),(0,e.jsx)(t.Ki.Item,{label:"IDS Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:j?"power-off":"times",selected:j,onClick:function(){return d("toggleIDS")},children:j?"ENABLED":"DISABLED"}),(0,e.jsx)(t.$n,{icon:"sync",color:"bad",onClick:function(){return d("resetIDS")},children:"Reset"})]})}),(0,e.jsx)(t.Ki.Item,{label:"Max Log Count",buttons:(0,e.jsx)(t.Q7,{step:1,value:O,minValue:_,maxValue:M,width:"39px",onChange:function(A){return d("updatemaxlogs",{new_number:A})}})})]}),(0,e.jsx)(t.wn,{title:"System Log",buttons:(0,e.jsx)(t.$n.Confirm,{icon:"trash",onClick:function(){return d("purgelogs")},children:"Clear Logs"}),children:T.map(function(A){return(0,e.jsx)(t.az,{className:"candystripe",children:A.entry},A.entry)})})]})]})})}},49106:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNetTransfer:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(i){var c=(0,o.Oc)().data,f=c.error,m=c.downloading,v=c.uploading,E=c.upload_filelist,j=(0,e.jsx)(l,{});return f?j=(0,e.jsx)(g,{}):m?j=(0,e.jsx)(x,{}):v?j=(0,e.jsx)(d,{}):E.length&&(j=(0,e.jsx)(a,{})),(0,e.jsx)(r.Zm,{width:575,height:700,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:j})})},g=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.error;return(0,e.jsxs)(t.wn,{title:"An error has occured during operation.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("PRG_reset")},children:"Reset"}),children:["Additional Information: ",v]})},x=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.download_name,E=m.download_progress,j=m.download_size,O=m.download_netspeed;return(0,e.jsx)(t.wn,{title:"Download in progress",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Downloaded File",children:v}),(0,e.jsx)(t.Ki.Item,{label:"Progress",children:(0,e.jsxs)(t.z2,{value:E,maxValue:j,children:[E," / ",j," GQ"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer Speed",children:[O," GQ/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Controls",children:(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return f("PRG_reset")},children:"Cancel Download"})})]})})},d=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.upload_clients,E=m.upload_filename,j=m.upload_haspassword;return(0,e.jsx)(t.wn,{title:"Server enabled",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Clients Connected",children:v}),(0,e.jsx)(t.Ki.Item,{label:"Provided file",children:E}),(0,e.jsx)(t.Ki.Item,{label:"Server Password",children:j?"Enabled":"Disabled"}),(0,e.jsxs)(t.Ki.Item,{label:"Commands",children:[(0,e.jsx)(t.$n,{icon:"lock",onClick:function(){return f("PRG_setpassword")},children:"Set Password"}),(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return f("PRG_reset")},children:"Cancel Upload"})]})]})})},a=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.upload_filelist;return(0,e.jsxs)(t.wn,{title:"File transfer server ready.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("PRG_reset")},children:"Cancel"}),children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"lock",onClick:function(){return f("PRG_setpassword")},children:"Set Password"}),(0,e.jsx)(t.wn,{title:"Pick file to serve.",children:v.map(function(E){return(0,e.jsxs)(t.$n,{fluid:!0,icon:"upload",onClick:function(){return f("PRG_uploadfile",{uid:E.uid})},children:[E.filename," (",E.size,"GQ)"]},E.uid)})})]})},l=function(i){var c=(0,o.Oc)(),f=c.act,m=c.data,v=m.servers;return(0,e.jsx)(t.wn,{title:"Available Files",buttons:(0,e.jsx)(t.$n,{icon:"upload",onClick:function(){return f("PRG_uploadmenu")},children:"Send File"}),children:v.length&&(0,e.jsx)(t.Ki,{children:v.map(function(E){return(0,e.jsxs)(t.Ki.Item,{label:E.uid,children:[!!E.haspassword&&(0,e.jsx)(t.In,{name:"lock",mr:1}),E.filename,"\xA0 (",E.size,"GQ)\xA0",(0,e.jsx)(t.$n,{icon:"download",onClick:function(){return f("PRG_downloadfile",{uid:E.uid})},children:"Download"})]},E.uid)})})||(0,e.jsx)(t.az,{children:"No upload servers found."})})}},50653:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosNewsBrowser:function(){return g}});var e=n(20462),o=n(31200),t=n(7081),r=n(88569),s=n(15581),g=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.article,v=f.download,E=f.message,j=(0,e.jsx)(d,{});return m?j=(0,e.jsx)(x,{}):v&&(j=(0,e.jsx)(a,{})),(0,e.jsx)(s.Zm,{width:575,height:750,children:(0,e.jsxs)(s.Zm.Content,{scrollable:!0,children:[!!E&&(0,e.jsxs)(r.IC,{children:[E," ",(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return c("PRG_clearmessage")}})]}),j]})})},x=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.article;if(!m)return(0,e.jsx)(r.wn,{children:"Error: Article not found."});var v=m.title,E=m.cover,j=m.content;return(0,e.jsxs)(r.wn,{title:"Viewing: "+v,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"save",onClick:function(){return c("PRG_savearticle")},children:"Save"}),(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return c("PRG_reset")},children:"Close"})]}),children:[!!E&&(0,e.jsx)(r._V,{src:(0,o.l)(E)}),(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:j}})]})},d=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.showing_archived,v=f.all_articles;return(0,e.jsx)(r.wn,{title:"Articles List",buttons:(0,e.jsx)(r.$n.Checkbox,{onClick:function(){return c("PRG_toggle_archived")},checked:m,children:"Show Archived"}),children:(0,e.jsx)(r.Ki,{children:v.length&&v.map(function(E){return(0,e.jsxs)(r.Ki.Item,{label:E.name,buttons:(0,e.jsx)(r.$n,{icon:"download",onClick:function(){return c("PRG_openarticle",{uid:E.uid})}}),children:[E.size," GQ"]},E.uid)})||(0,e.jsx)(r.Ki.Item,{label:"Error",children:"There appear to be no outstanding news articles on NTNet today."})})})},a=function(l){var i=(0,t.Oc)(),c=i.act,f=i.data,m=f.download,v=m.download_progress,E=m.download_maxprogress,j=m.download_rate;return(0,e.jsx)(r.wn,{title:"Downloading...",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Progress",children:(0,e.jsxs)(r.z2,{color:"good",minValue:0,value:v,maxValue:E,children:[v," / ",E," GQ"]})}),(0,e.jsxs)(r.Ki.Item,{label:"Download Speed",children:[j," GQ/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Controls",children:(0,e.jsx)(r.$n,{icon:"ban",fluid:!0,onClick:function(){return c("PRG_reset")},children:"Abort Download"})})]})})}},95436:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosOvermapNavigation:function(){return r}});var e=n(20462),o=n(15581),t=n(65912),r=function(){return(0,e.jsx)(o.Zm,{width:380,height:530,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.OvermapNavigationContent,{})})})}},75655:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosPowerMonitor:function(){return r}});var e=n(20462),o=n(15581),t=n(91276),r=function(){return(0,e.jsx)(o.Zm,{width:550,height:700,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.PowerMonitorContent,{})})})}},81986:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosRCON:function(){return r}});var e=n(20462),o=n(15581),t=n(72778),r=function(){return(0,e.jsx)(o.Zm,{width:630,height:440,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.RCONContent,{})})})}},35399:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosRevelation:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.armed;return(0,e.jsx)(r.Zm,{width:400,height:250,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(i,c){return d("PRG_obfuscate",{new_name:c})},mb:1,children:"Obfuscate Name..."}),(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Payload Status",buttons:(0,e.jsx)(t.$n,{color:l?"bad":"average",onClick:function(){return d("PRG_arm")},children:l?"ARMED":"DISARMED"})})}),(0,e.jsx)(t.$n,{fluid:!0,bold:!0,textAlign:"center",color:"bad",disabled:!l,children:"ACTIVATE"})]})})})}},79389:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosShutoffMonitor:function(){return r}});var e=n(20462),o=n(15581),t=n(67889),r=function(){return(0,e.jsx)(o.Zm,{width:627,height:700,children:(0,e.jsx)(o.Zm.Content,{children:(0,e.jsx)(t.ShutoffMonitorContent,{})})})}},98011:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosStationAlertConsole:function(){return r}});var e=n(20462),o=n(15581),t=n(68679),r=function(){return(0,e.jsx)(o.Zm,{width:315,height:500,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.StationAlertConsoleContent,{})})})}},57488:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosSupermatterMonitor:function(){return r}});var e=n(20462),o=n(15581),t=n(50028),r=function(){return(0,e.jsx)(o.Zm,{width:600,height:400,children:(0,e.jsx)(o.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.SupermatterMonitorContent,{})})})}},10774:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosUAV:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.current_uav,i=a.signal_strength,c=a.in_use,f=a.paired_uavs;return(0,e.jsx)(r.Zm,{width:600,height:500,children:(0,e.jsxs)(r.Zm.Content,{children:[(0,e.jsx)(t.wn,{title:"Selected UAV",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"UAV",children:l&&l.status||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Signal",children:l&&i||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Power",children:l&&(0,e.jsx)(t.$n,{icon:"power-off",selected:l.power,onClick:function(){return d("power_uav")},children:l.power?"Online":"Offline"})||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Camera",children:l&&(0,e.jsx)(t.$n,{icon:"power-off",selected:c,disabled:!l.power,onClick:function(){return d("view_uav")},children:l.power?"Available":"Unavailable"})||"[Not Connected]"})]})}),(0,e.jsx)(t.wn,{title:"Paired UAVs",children:f.length&&f.map(function(m){return(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"quidditch",onClick:function(){return d("switch_uav",{switch_uav:m.uavref})},children:m.name})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{color:"bad",icon:"times",onClick:function(){return d("del_uav",{del_uav:m.uavref})}})})]},m.uavref)})||(0,e.jsx)(t.az,{color:"average",children:"No UAVs Paired."})})]})})}},69062:function(y,u,n){"use strict";n.r(u),n.d(u,{NtosWordProcessor:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.PC_device_theme,i=a.error,c=a.browsing,f=a.files,m=a.filename,v=a.filedata;return(0,e.jsx)(r.Zm,{resizable:!0,theme:l,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:i&&(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)("h2",{children:"An Error has occured:"}),"Additional Information: ",i,"Please try again. If the problem persists, contact your system administrator for assistance.",(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return d("PRG_backtomenu")},children:"Back to menu"})]})||c&&(0,e.jsx)(t.wn,{title:"File Browser",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return d("PRG_closebrowser")},children:"Back to editor"}),children:(0,e.jsx)(t.wn,{title:"Available documents (local)",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Size (GQ)"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0})]}),f.map(function(E,j){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:E.name}),(0,e.jsx)(t.XI.Cell,{children:E.size}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"file-word",onClick:function(){return d("PRG_openfile",{PRG_openfile:E.name})},children:"Open"})})]},j)})]})})})||(0,e.jsxs)(t.wn,{title:"Document: "+m,children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_newfile")},children:"New"}),(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_loadmenu")},children:"Load"}),(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_savefile")},children:"Save"}),(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_saveasfile")},children:"Save As"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_editfile")},children:"Edit"}),(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_txtrpeview")},children:"Preview"}),(0,e.jsx)(t.$n,{onClick:function(){return d("PRG_taghelp")},children:"Formatting Help"}),(0,e.jsx)(t.$n,{disabled:!v,onClick:function(){return d("PRG_printfile")},children:"Print"})]}),(0,e.jsx)(t.wn,{mt:1,children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:v}})})]})})})}},46836:function(y,u,n){"use strict";n.r(u),n.d(u,{NumberInputModal:function(){return a}});var e=n(20462),o=n(87239),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(5335),d=n(44149),a=function(i){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.init_value,E=m.large_buttons,j=m.message,O=j===void 0?"":j,M=m.timeout,_=m.title,I=(0,t.useState)(v),S=I[0],T=I[1],A=function(W){W!==S&&T(W)},K=140+(O.length>30?Math.ceil(O.length/3):0)+(O.length&&E?5:0);return(0,e.jsxs)(g.p8,{title:_,width:270,height:K,children:[M&&(0,e.jsx)(d.Loader,{value:M}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(W){W.key===o._.Enter&&f("submit",{entry:S}),(0,o.K)(W.key)&&f("cancel")},children:(0,e.jsx)(s.wn,{fill:!0,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.az,{color:"label",children:O})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(l,{input:S,onClick:A,onChange:A,onBlur:A})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(x.InputButtons,{input:S})})]})})})]})},l=function(i){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.min_value,E=m.max_value,j=m.init_value,O=m.round_value,M=i.input,_=i.onClick,I=i.onChange,S=i.onBlur;return(0,e.jsxs)(s.BJ,{fill:!0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===v,icon:"angle-double-left",onClick:function(){return _(v)},tooltip:v?"Min ("+v+")":"Min"})}),(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.SM,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!O,minValue:v,maxValue:E,onChange:function(T,A){return I(A)},onBlur:function(T,A){return S(A)},onEnter:function(T,A){return f("submit",{entry:A})},value:M})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===E,icon:"angle-double-right",onClick:function(){return _(E)},tooltip:E?"Max ("+E+")":"Max"})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===j,icon:"redo",onClick:function(){return _(j)},tooltip:j?"Reset ("+j+")":"Reset"})})]})}},12333:function(y,u,n){"use strict";n.r(u),n.d(u,{OmniFilter:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(x){return x.input?"Input":x.output?"Output":x.f_type?x.f_type:"Disabled"},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.power,c=l.config,f=l.ports,m=l.set_flow_rate,v=l.last_flow_rate;return(0,e.jsx)(r.p8,{width:360,height:330,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:c?"Configuration":"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:i,disabled:c,onClick:function(){return a("power")},children:i?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"wrench",selected:c,onClick:function(){return a("configure")}})]}),children:(0,e.jsx)(t.Ki,{children:f?f.map(function(E){return(0,e.jsx)(t.Ki.Item,{label:E.dir+" Port",children:c?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{selected:E.input,icon:"compress-arrows-alt",onClick:function(){return a("switch_mode",{mode:"in",dir:E.dir})},children:"IN"}),(0,e.jsx)(t.$n,{selected:E.output,icon:"expand-arrows-alt",onClick:function(){return a("switch_mode",{mode:"out",dir:E.dir})},children:"OUT"}),(0,e.jsx)(t.$n,{icon:"wrench",disabled:E.input||E.output,onClick:function(){return a("switch_filter",{mode:E.f_type,dir:E.dir})},children:E.f_type||"None"})]}):s(E)},E.dir)}):(0,e.jsx)(t.az,{color:"bad",children:"No Ports Detected"})})}),(0,e.jsx)(t.wn,{title:"Flow Rate",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Current Flow Rate",children:[v," L/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Flow Rate Limit",children:c?(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return a("set_flow_rate")},children:m+" L/s"}):m+" L/s"})]})})]})})}},60780:function(y,u,n){"use strict";n.r(u),n.d(u,{OmniMixer:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(d){return d.input?"Input":d.output?"Output":d.f_type?d.f_type:"Disabled"},g=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.power,f=i.config,m=i.ports,v=i.set_flow_rate,E=i.last_flow_rate;return(0,e.jsx)(r.p8,{width:390,height:330,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:f?"Configuration":"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:c,disabled:f,onClick:function(){return l("power")},children:c?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"wrench",selected:f,onClick:function(){return l("configure")}})]}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Port"}),f?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Input"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Output"})]}):(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Mode"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Concentration"}),f?(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Lock"}):null]}),m?m.map(function(j){return(0,e.jsx)(x,{port:j,config:f},j.dir)}):(0,e.jsx)(t.az,{color:"bad",children:"No Ports Detected"})]})}),(0,e.jsx)(t.wn,{title:"Flow Rate",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Current Flow Rate",children:[E," L/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Flow Rate Limit",children:f?(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return l("set_flow_rate")},children:v+" L/s"}):v+" L/s"})]})})]})})},x=function(d){var a=(0,o.Oc)().act,l=d.port,i=d.config;return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:l.dir+" Port"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:i?(0,e.jsx)(t.$n,{selected:l.input,disabled:l.output,icon:"compress-arrows-alt",onClick:function(){return a("switch_mode",{mode:l.input?"none":"in",dir:l.dir})},children:"IN"}):s(l)}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:i?(0,e.jsx)(t.$n,{selected:l.output,icon:"expand-arrows-alt",onClick:function(){return a("switch_mode",{mode:"out",dir:l.dir})},children:"OUT"}):l.concentration*100+"%"}),i?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",width:"20%",children:(0,e.jsx)(t.$n,{width:"100%",icon:"wrench",disabled:!l.input,onClick:function(){return a("switch_con",{dir:l.dir})},children:l.input?l.concentration*100+" %":"-"})}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:(0,e.jsx)(t.$n,{icon:l.con_lock?"lock":"lock-open",disabled:!l.input,selected:l.con_lock,onClick:function(){return a("switch_conlock",{dir:l.dir})},children:l.f_type||"None"})})]}):null]})}},43213:function(y,u,n){"use strict";n.r(u),n.d(u,{OperatingComputerOptions:function(){return r}});var e=n(20462),o=n(7081),t=n(88569),r=function(s){var g=(0,o.Oc)(),x=g.act,d=g.data,a=d.verbose,l=d.health,i=d.healthAlarm,c=d.oxy,f=d.oxyAlarm,m=d.crit;return(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Loudspeaker",children:(0,e.jsx)(t.$n,{selected:a,icon:a?"toggle-on":"toggle-off",onClick:function(){return x(a?"verboseOff":"verboseOn")},children:a?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Health Announcer",children:(0,e.jsx)(t.$n,{selected:l,icon:l?"toggle-on":"toggle-off",onClick:function(){return x(l?"healthOff":"healthOn")},children:l?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Health Announcer Threshold",children:(0,e.jsx)(t.N6,{bipolar:!0,minValue:-100,maxValue:100,value:i,stepPixelSize:5,ml:"0",format:function(v){return v+"%"},onChange:function(v,E){return x("health_adj",{new:E})}})}),(0,e.jsx)(t.Ki.Item,{label:"Oxygen Alarm",children:(0,e.jsx)(t.$n,{selected:c,icon:c?"toggle-on":"toggle-off",onClick:function(){return x(c?"oxyOff":"oxyOn")},children:c?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Oxygen Alarm Threshold",children:(0,e.jsx)(t.N6,{bipolar:!0,minValue:-100,maxValue:100,value:f,stepPixelSize:5,ml:"0",onChange:function(v,E){return x("oxy_adj",{new:E})}})}),(0,e.jsx)(t.Ki.Item,{label:"Critical Alert",children:(0,e.jsx)(t.$n,{selected:m,icon:m?"toggle-on":"toggle-off",onClick:function(){return x(m?"critOff":"critOn")},children:m?"On":"Off"})})]})}},88424:function(y,u,n){"use strict";n.r(u),n.d(u,{OperatingComputerPatient:function(){return s}});var e=n(20462),o=n(4089),t=n(88569),r=n(6050),s=function(g){var x=g.occupant;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Patient",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:x.name}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:r.stats[x.stat][0],children:r.stats[x.stat][1]}),(0,e.jsx)(t.Ki.Item,{label:"Health",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),r.damages.map(function(d,a){return(0,e.jsx)(t.Ki.Item,{label:d[0]+" Damage",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:x[d[1]]/100,ranges:r.damageRange,children:(0,o.Mg)(x[d[1]])},a)},a)}),(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:x.bodyTemperature/x.maxTemp,color:r.tempColors[x.temperatureSuitability+3],children:[(0,o.Mg)(x.btCelsius),"\xB0C, ",(0,o.Mg)(x.btFaren),"\xB0F"]})}),!!x.hasBlood&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood Level",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:x.bloodLevel/x.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[x.bloodPercent,"%, ",x.bloodLevel,"cl"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Pulse",children:[x.pulse," BPM"]})]})]})}),(0,e.jsx)(t.wn,{title:"Current Procedure",children:x.surgery&&x.surgery.length?(0,e.jsx)(t.Ki,{children:x.surgery.map(function(d){return(0,e.jsx)(t.Ki.Item,{label:d.name,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current State",children:d.currentStage}),(0,e.jsx)(t.Ki.Item,{label:"Possible Next Steps",children:d.nextSteps.map(function(a){return(0,e.jsx)("div",{children:a},a)})})]})},d.name)})}):(0,e.jsx)(t.az,{color:"label",children:"No procedure ongoing."})})]})}},13846:function(y,u,n){"use strict";n.r(u),n.d(u,{OperatingComputerUnoccupied:function(){return t}});var e=n(20462),o=n(88569),t=function(r){return(0,e.jsx)(o.so,{textAlign:"center",height:"100%",children:(0,e.jsxs)(o.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(o.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No patient detected."]})})}},6050:function(y,u,n){"use strict";n.r(u),n.d(u,{damageRange:function(){return t},damages:function(){return o},stats:function(){return e},tempColors:function(){return r}});var e=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],o=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],t={average:[.25,.5],bad:[.5,1/0]},r=["bad","average","average","good","average","average","bad"]},70509:function(y,u,n){"use strict";n.r(u),n.d(u,{OperatingComputer:function(){return d}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(43213),g=n(88424),x=n(13846),d=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.hasOccupant,m=c.choice,v=c.occupant,E;return m?E=(0,e.jsx)(s.OperatingComputerOptions,{}):E=f?(0,e.jsx)(g.OperatingComputerPatient,{occupant:v}):(0,e.jsx)(x.OperatingComputerUnoccupied,{}),(0,e.jsx)(r.p8,{width:650,height:455,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:!m,icon:"user",onClick:function(){return i("choiceOff")},children:"Patient"}),(0,e.jsx)(t.tU.Tab,{selected:!!m,icon:"cog",onClick:function(){return i("choiceOn")},children:"Options"})]}),(0,e.jsx)(t.wn,{flexGrow:!0,children:E})]})})}},36882:function(y,u,n){"use strict";n.r(u)},81105:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapDisperser:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(d){return(0,e.jsx)(r.p8,{width:400,height:550,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.faillink,f=i.calibration,m=i.overmapdir,v=i.cal_accuracy,E=i.strength,j=i.range,O=i.next_shot,M=i.nopower,_=i.chargeload;return c?(0,e.jsx)(t.wn,{title:"Error",children:"Machine is incomplete, out of range, or misaligned!"}):(0,e.jsxs)(t.so,{wrap:"wrap",spacing:1,children:[(0,e.jsx)(t.so.Item,{basis:"22%",children:(0,e.jsx)(t.wn,{title:"Targeting",textAlign:"center",children:(0,e.jsx)(s.OvermapPanControls,{actToDo:"choose",selected:function(I){return I===m}})})}),(0,e.jsx)(t.so.Item,{basis:"74%",grow:1,children:(0,e.jsx)(t.wn,{title:"Charge",children:(0,e.jsxs)(t.Ki,{children:[M&&(0,e.jsx)(t.Ki.Item,{label:"Error",children:"At least one part of the machine is unpowered."})||"",(0,e.jsx)(t.Ki.Item,{label:"Charge Load Type",children:_}),(0,e.jsx)(t.Ki.Item,{label:"Cooldown",children:O===0&&(0,e.jsx)(t.az,{color:"good",children:"Ready"})||O>1&&(0,e.jsxs)(t.az,{color:"average",children:[(0,e.jsx)(t.zv,{value:O})," Seconds",(0,e.jsx)(t.az,{color:"bad",children:"Warning: Do not fire during cooldown."})]})||""})]})})}),(0,e.jsx)(t.so.Item,{basis:"50%",mt:1,children:(0,e.jsxs)(t.wn,{title:"Calibration",children:[(0,e.jsx)(t.zv,{value:v}),"%",(0,e.jsx)(t.$n,{ml:1,icon:"exchange-alt",onClick:function(){return l("skill_calibration")},children:"Pre-Calibration"}),(0,e.jsx)(t.az,{mt:1,children:f.map(function(I,S){return(0,e.jsxs)(t.az,{children:["Cal #",S,":",(0,e.jsx)(t.$n,{ml:1,icon:"random",onClick:function(){return l("calibration",{calibration:S})},children:I.toString()})]},S)})})]})}),(0,e.jsx)(t.so.Item,{basis:"45%",grow:1,mt:1,children:(0,e.jsx)(t.wn,{title:"Setup",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Strength",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"fist-raised",onClick:function(){return l("strength")},children:E})}),(0,e.jsx)(t.Ki.Item,{label:"Radius",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"expand-arrows-alt",onClick:function(){return l("range")},children:j})})]})})}),(0,e.jsx)(t.so.Item,{grow:1,mt:1,children:(0,e.jsx)(t.$n,{fluid:!0,color:"red",icon:"bomb",onClick:function(){return l("fire")},children:"Fire ORB"})})]})}},22813:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapEngines:function(){return s},OvermapEnginesContent:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:390,height:530,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.global_state,c=l.global_limit,f=l.engines_info,m=l.total_thrust;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Engines",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:i,onClick:function(){return a("global_toggle")},children:i?"Shut All Engines Down":"Start All Engines"})}),(0,e.jsxs)(t.Ki.Item,{label:"Volume Limit",children:[(0,e.jsx)(t.$n,{onClick:function(){return a("global_limit",{global_limit:-.1})},icon:"minus"}),(0,e.jsxs)(t.$n,{onClick:function(){return a("set_global_limit")},children:[c,"%"]}),(0,e.jsx)(t.$n,{onClick:function(){return a("global_limit",{global_limit:.1})},icon:"plus"})]}),(0,e.jsx)(t.Ki.Item,{label:"Total Thrust",children:(0,e.jsx)(t.zv,{value:m})})]})}),(0,e.jsx)(t.wn,{title:"Engines",height:"340px",style:{overflowY:"auto"},children:f.map(function(v,E){return(0,e.jsxs)(t.so,{spacing:1,mt:E!==0&&-1,children:[(0,e.jsx)(t.so.Item,{basis:"80%",children:(0,e.jsx)(t.Nt,{title:(0,e.jsxs)(t.az,{inline:!0,children:["Engine #",E+1," | Thrust:"," ",(0,e.jsx)(t.zv,{value:v.eng_thrust})," | Limit:"," ",(0,e.jsx)(t.zv,{value:v.eng_thrust_limiter,format:function(j){return j+"%"}})]}),children:(0,e.jsx)(t.wn,{width:"127%",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Type",children:v.eng_type}),(0,e.jsxs)(t.Ki.Item,{label:"Status",children:[(0,e.jsx)(t.az,{color:v.eng_on?v.eng_on===1?"good":"average":"bad",children:v.eng_on?v.eng_on===1?"Online":"Booting":"Offline"}),v.eng_status.map(function(j,O){return Array.isArray(j)?(0,e.jsx)(t.az,{color:j[1],children:j[0]},O):(0,e.jsx)(t.az,{children:j},O)})]}),(0,e.jsx)(t.Ki.Item,{label:"Current Thrust",children:v.eng_thrust}),(0,e.jsxs)(t.Ki.Item,{label:"Volume Limit",children:[(0,e.jsx)(t.$n,{onClick:function(){return a("limit",{limit:-.1,engine:v.eng_reference})},icon:"minus"}),(0,e.jsxs)(t.$n,{onClick:function(){return a("set_limit",{engine:v.eng_reference})},children:[v.eng_thrust_limiter,"%"]}),(0,e.jsx)(t.$n,{onClick:function(){return a("limit",{limit:.1,engine:v.eng_reference})},icon:"plus"})]})]})})})}),(0,e.jsx)(t.so.Item,{basis:"20%",children:(0,e.jsx)(t.$n,{fluid:!0,iconSpin:v.eng_on===-1,color:v.eng_on===-1?"purple":void 0,selected:v.eng_on===1,icon:"power-off",onClick:function(){return a("toggle_engine",{engine:v.eng_reference})},children:v.eng_on?v.eng_on===1?"Shutoff":"Booting":"Startup"})})]},E)})})]})}},61321:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapFull:function(){return d}});var e=n(20462),o=n(61358),t=n(88569),r=n(15581),s=n(22813),g=n(7558),x=n(97275),d=function(a){var l=(0,o.useState)(0),i=l[0],c=l[1];return(0,e.jsx)(r.p8,{width:800,height:800,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:i===0,onClick:function(){return c(0)},children:"Engines"}),(0,e.jsx)(t.tU.Tab,{selected:i===1,onClick:function(){return c(1)},children:"Helm"}),(0,e.jsx)(t.tU.Tab,{selected:i===2,onClick:function(){return c(2)},children:"Sensors"})]}),i===0&&(0,e.jsx)(s.OvermapEnginesContent,{}),i===1&&(0,e.jsx)(g.OvermapHelmContent,{}),i===2&&(0,e.jsx)(x.OvermapShipSensorsContent,{})]})})}},7558:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapFlightDataWrap:function(){return d},OvermapHelm:function(){return g},OvermapHelmContent:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(c){return(0,e.jsx)(r.p8,{width:565,height:545,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(c){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{basis:"40%",height:"180px",children:(0,e.jsx)(d,{})}),(0,e.jsx)(t.so.Item,{basis:"25%",height:"180px",children:(0,e.jsx)(a,{})}),(0,e.jsx)(t.so.Item,{basis:"35%",height:"180px",children:(0,e.jsx)(l,{})})]}),(0,e.jsx)(i,{})]})},d=function(c){return(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1",margin:"none"},className:"Section",children:[(0,e.jsx)("legend",{children:"Flight Data"}),(0,e.jsx)(s.OvermapFlightData,{})]})},a=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.canburn,j=v.manual_control;return(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Manual Control"}),(0,e.jsx)(t.so,{align:"center",justify:"center",children:(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(s.OvermapPanControls,{disabled:!E,actToDo:"move"})})}),(0,e.jsxs)(t.az,{textAlign:"center",mt:1,children:[(0,e.jsx)(t.az,{bold:!0,underline:!0,children:"Direct Control"}),(0,e.jsx)(t.$n,{selected:j,onClick:function(){return m("manual")},icon:"compass",children:j?"Enabled":"Disabled"})]})]})},l=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.dest,j=v.d_x,O=v.d_y,M=v.speedlimit,_=v.autopilot,I=v.autopilot_disabled;return I?(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Autopilot"}),(0,e.jsx)(t.az,{textAlign:"center",color:"bad",fontSize:1.2,children:"AUTOPILOT DISABLED"}),(0,e.jsx)(t.az,{textAlign:"center",color:"average",children:"Warning: This vessel is equipped with a class I autopilot. Class I autopilots are unable to do anything but fly in a straight line directly towards the target, and may result in collisions."}),(0,e.jsx)(t.az,{textAlign:"center",children:(0,e.jsx)(t.$n.Confirm,{mt:1,color:"bad",confirmContent:"ACCEPT RISKS?",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return m("apilot_lock")},children:"Unlock Autopilot"})})]}):(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Autopilot"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Target",children:E&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{onClick:function(){return m("setcoord",{setx:!0})},children:j}),(0,e.jsx)(t.$n,{onClick:function(){return m("setcoord",{sety:!0})},children:O})]})||(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return m("setcoord",{setx:!0,sety:!0})},children:"None"})}),(0,e.jsx)(t.Ki.Item,{label:"Speed Limit",children:(0,e.jsxs)(t.$n,{icon:"tachometer-alt",onClick:function(){return m("speedlimit")},children:[M," Gm/h"]})})]}),(0,e.jsx)(t.$n,{mt:1,fluid:!0,selected:_,disabled:!E,icon:"robot",onClick:function(){return m("apilot")},children:_?"Engaged":"Disengaged"}),(0,e.jsx)(t.$n,{fluid:!0,color:"good",icon:"exclamation-triangle",onClick:function(){return m("apilot_lock")},children:"Lock Autopilot"})]})},i=function(c){var f=(0,o.Oc)(),m=f.act,v=f.data,E=v.sector,j=v.s_x,O=v.s_y,M=v.sector_info,_=v.landed,I=v.locations;return(0,e.jsxs)(t.wn,{title:"Navigation Data",m:.3,mt:1,children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Location",children:E}),(0,e.jsxs)(t.Ki.Item,{label:"Coordinates",children:[j," : ",O]}),(0,e.jsx)(t.Ki.Item,{label:"Scan Data",children:M}),(0,e.jsx)(t.Ki.Item,{label:"Status",children:_})]}),(0,e.jsxs)(t.so,{mt:1,align:"center",justify:"center",spacing:1,children:[(0,e.jsx)(t.so.Item,{basis:"50%",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"save",onClick:function(){return m("add",{add:"current"})},children:"Save Current Position"})}),(0,e.jsx)(t.so.Item,{basis:"50%",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"sticky-note",onClick:function(){return m("add",{add:"new"})},children:"Add New Entry"})})]}),(0,e.jsx)(t.wn,{mt:1,scrollable:!0,fill:!0,height:"130px",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Coordinates"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),I.map(function(S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:S.name}),(0,e.jsxs)(t.XI.Cell,{children:[S.x," : ",S.y]}),(0,e.jsxs)(t.XI.Cell,{collapsing:!0,children:[(0,e.jsx)(t.$n,{icon:"rocket",onClick:function(){return m("setds",{x:S.x,y:S.y})},children:"Plot Course"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return m("remove",{remove:S.reference})},children:"Remove"})]})]},S.name)})]})})]})}},65912:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapNavigation:function(){return g},OvermapNavigationContent:function(){return x}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(){return(0,e.jsx)(r.p8,{width:380,height:530,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(d){var a=(0,o.Oc)(),l=a.act,i=a.data,c=i.sector,f=i.s_x,m=i.s_y,v=i.sector_info,E=i.viewing;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Current Location",buttons:(0,e.jsx)(t.$n,{icon:"eye",selected:E,onClick:function(){return l("viewing")},children:"Map View"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current Location",children:c}),(0,e.jsxs)(t.Ki.Item,{label:"Coordinates",children:[f," : ",m]}),(0,e.jsx)(t.Ki.Item,{label:"Additional Information",children:v})]})}),(0,e.jsx)(t.wn,{title:"Flight Data",children:(0,e.jsx)(s.OvermapFlightData,{disableLimiterControls:!0})})]})}},30766:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapShieldGenerator:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(a){return(0,e.jsx)(r.p8,{width:500,height:760,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.modes,m=c.offline_for;return m?(0,e.jsxs)(t.wn,{title:"EMERGENCY SHUTDOWN",color:"bad",children:["An emergency shutdown has been initiated - generator cooling down. Please wait until the generator cools down before resuming operation. Estimated time left: ",m," seconds."]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(x,{}),(0,e.jsx)(d,{}),(0,e.jsx)(t.wn,{title:"Field Calibration",children:f.map(function(v){return(0,e.jsxs)(t.wn,{title:v.name,buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:v.status,onClick:function(){return i("toggle_mode",{toggle_mode:v.flag})},children:v.status?"Enabled":"Disabled"}),children:[(0,e.jsx)(t.az,{color:"label",children:v.desc}),(0,e.jsxs)(t.az,{mt:.5,children:["Multiplier: ",v.multiplier]})]},v.name)})})]})},x=function(a){var l=(0,o.Oc)().data,i=l.running,c=l.overloaded,f=l.mitigation_max,m=l.mitigation_physical,v=l.mitigation_em,E=l.mitigation_heat,j=l.field_integrity,O=l.max_energy,M=l.current_energy,_=l.percentage_energy,I=l.total_segments,S=l.functional_segments,T=l.field_radius,A=l.target_radius,K=l.input_cap_kw,W=l.upkeep_power_usage,$=l.power_usage,k=l.spinup_counter,z=[];return z[1]=(0,e.jsx)(t.az,{color:"average",children:"Shutting Down"}),z[2]=(0,e.jsx)(t.az,{color:"bad",children:"Overloaded"}),z[3]=(0,e.jsx)(t.az,{color:"average",children:"Inactive"}),z[4]=(0,e.jsxs)(t.az,{color:"blue",children:["Spinning Up\xA0",A!==T&&(0,e.jsx)(t.az,{inline:!0,children:"(Adjusting Radius)"})||(0,e.jsxs)(t.az,{inline:!0,children:[k*2,"s"]})]}),(0,e.jsx)(t.wn,{title:"System Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Generator is",children:z[i]||(0,e.jsx)(t.az,{color:"bad",children:"Offline"})}),(0,e.jsx)(t.Ki.Item,{label:"Energy Storage",children:(0,e.jsxs)(t.z2,{value:M,maxValue:O,children:[M," / ",O," MJ (",_,"%)"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Shield Integrity",children:[(0,e.jsx)(t.zv,{value:j}),"%"]}),(0,e.jsxs)(t.Ki.Item,{label:"Mitigation",children:[v,"% EM / ",m,"% PH / ",E,"% HE / ",f,"% MAX"]}),(0,e.jsxs)(t.Ki.Item,{label:"Upkeep Energy Use",children:[(0,e.jsx)(t.zv,{value:W})," kW"]}),(0,e.jsx)(t.Ki.Item,{label:"Total Energy Use",children:K&&(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.z2,{value:$,maxValue:K,children:[$," / ",K," kW"]})})||(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.zv,{value:$})," kW (No Limit)"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Field Size",children:[(0,e.jsx)(t.zv,{value:S}),"\xA0/\xA0",(0,e.jsx)(t.zv,{value:I})," m\xB2 (radius"," ",(0,e.jsx)(t.zv,{value:T}),", target"," ",(0,e.jsx)(t.zv,{value:A}),")"]})]})})},d=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.running,m=c.hacked,v=c.idle_multiplier,E=c.idle_valid_values;return(0,e.jsxs)(t.wn,{title:"Controls",buttons:(0,e.jsxs)(e.Fragment,{children:[f>=2&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return i("begin_shutdown")},selected:!0,children:"Turn off"}),f===3&&(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return i("toggle_idle",{toggle_idle:0})},children:"Activate"})||(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return i("toggle_idle",{toggle_idle:1})},selected:!0,children:"Deactivate"})]})||(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return i("start_generator")},children:"Turn on"}),f&&m&&(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return i("emergency_shutdown")},color:"bad",children:"EMERGENCY SHUTDOWN"})||""]}),children:[(0,e.jsx)(t.$n,{icon:"expand-arrows-alt",onClick:function(){return i("set_range")},children:"Set Field Range"}),(0,e.jsx)(t.$n,{icon:"bolt",onClick:function(){return i("set_input_cap")},children:"Set Input Cap"}),(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Set inactive power use intensity",children:E.map(function(j){return(0,e.jsx)(t.$n,{selected:j===v,disabled:f===4,onClick:function(){return i("switch_idle",{switch_idle:j})},children:j},j)})})})]})}},97275:function(y,u,n){"use strict";n.r(u),n.d(u,{OvermapShipSensors:function(){return s},OvermapShipSensorsContent:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:375,height:545,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.viewing,c=l.on,f=l.range,m=l.health,v=l.max_health,E=l.heat,j=l.critical_heat,O=l.status,M=l.contacts;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"eye",selected:i,onClick:function(){return a("viewing")},children:"Map View"}),(0,e.jsx)(t.$n,{icon:"power-off",selected:c,onClick:function(){return a("toggle_sensor")},children:c?"Sensors Enabled":"Sensors Disabled"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:O}),(0,e.jsx)(t.Ki.Item,{label:"Range",children:(0,e.jsx)(t.$n,{icon:"signal",onClick:function(){return a("range")},children:f})}),(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsxs)(t.z2,{ranges:{good:[v*.75,1/0],average:[v*.25,v*.75],bad:[-1/0,v*.25]},value:m,maxValue:v,children:[m," / ",v]})}),(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsx)(t.z2,{ranges:{bad:[j*.75,1/0],average:[j*.5,j*.75],good:[-1/0,j*.5]},value:E,maxValue:j,children:E0||!v)&&(0,e.jsx)(r.$n,{ml:1,icon:"times",onClick:function(){return l("cancel",{cancel:_+1})},children:"Cancel"})||""]},M)})||(0,e.jsx)(r.IC,{info:!0,children:"Queue Empty"})}),(0,e.jsx)(r.wn,{title:"Recipes",children:O.length&&O.map(function(M){return(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"wrench",onClick:function(){return l("queue",{queue:M.type})},children:(0,o.Sn)(M.name)})},M.name)})})]})})}},71675:function(y,u,n){"use strict";n.r(u),n.d(u,{PathogenicIsolator:function(){return d}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(86471),x=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.can_print,E=i.args;return(0,e.jsx)(r.wn,{m:"-1rem",title:E.name||"Virus",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{disabled:!v,icon:"print",onClick:function(){return f("print",{type:"virus_record",vir:E.record})},children:"Print"}),(0,e.jsx)(r.$n,{icon:"times",color:"red",onClick:function(){return f("modal_close")}})]}),children:(0,e.jsx)(r.az,{mx:"0.5rem",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Spread",children:[E.spreadtype," Transmission"]}),(0,e.jsx)(r.Ki.Item,{label:"Possible cure",children:E.antigen}),(0,e.jsx)(r.Ki.Item,{label:"Rate of Progression",children:E.rate}),(0,e.jsxs)(r.Ki.Item,{label:"Antibiotic Resistance",children:[E.resistance,"%"]}),(0,e.jsx)(r.Ki.Item,{label:"Species Affected",children:E.species}),(0,e.jsx)(r.Ki.Item,{label:"Symptoms",children:(0,e.jsx)(r.Ki,{children:E.symptoms.map(function(j){return(0,e.jsxs)(r.Ki.Item,{label:j.stage+". "+j.name,children:[(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.az,{inline:!0,color:"label",children:"Strength:"})," ",j.strength,"\xA0"]}),(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.az,{inline:!0,color:"label",children:"Aggressiveness:"})," ",j.aggressiveness]})]},j.stage)})})})]})})})},d=function(i){var c=(0,t.Oc)().data,f=c.isolating,m=(0,o.useState)(0),v=m[0],E=m[1],j=[];return j[0]=(0,e.jsx)(a,{}),j[1]=(0,e.jsx)(l,{}),(0,g.modalRegisterBodyOverride)("virus",x),(0,e.jsxs)(s.p8,{height:500,width:520,children:[(0,e.jsx)(g.ComplexModal,{maxHeight:"100%",maxWidth:"95%"}),(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[f&&(0,e.jsx)(r.IC,{warning:!0,children:"The Isolator is currently isolating..."})||"",(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:v===0,onClick:function(){return E(0)},children:"Home"}),(0,e.jsx)(r.tU.Tab,{selected:v===1,onClick:function(){return E(1)},children:"Database"})]}),j[v]||""]})]})},a=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.syringe_inserted,E=m.pathogen_pool,j=m.can_print;return(0,e.jsx)(r.wn,{title:"Pathogens",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"print",disabled:!j,onClick:function(){return f("print",{type:"patient_diagnosis"})},children:"Print"}),(0,e.jsx)(r.$n,{icon:"eject",disabled:!v,onClick:function(){return f("eject")},children:"Eject Syringe"})]}),children:E.length&&E.map(function(O){return(0,e.jsxs)(r.wn,{children:[(0,e.jsx)(r.az,{color:"label",children:(0,e.jsxs)(r.so,{align:"center",children:[(0,e.jsxs)(r.so.Item,{grow:1,children:[(0,e.jsxs)("u",{children:["Stamm #",O.unique_id]}),O.is_in_database?" (Analyzed)":" (Not Analyzed)"]}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"virus",onClick:function(){return f("isolate",{isolate:O.reference})},children:"Isolate"}),(0,e.jsx)(r.$n,{icon:"search",disabled:!O.is_in_database,onClick:function(){return f("view_entry",{vir:O.record})},children:"Database"})]})]})}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.az,{color:"average",mb:1,children:O.name}),O.dna]})]},O.unique_id)})||(v?(0,e.jsx)(r.az,{color:"average",children:"No samples detected."}):(0,e.jsx)(r.az,{color:"average",children:"No syringe inserted."}))})},l=function(i){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.database,E=m.can_print;return(0,e.jsx)(r.wn,{title:"Database",buttons:(0,e.jsx)(r.$n,{icon:"print",disabled:!E,onClick:function(){return f("print",{type:"virus_list"})},children:"Print"}),children:v.length&&v.map(function(j){return(0,e.jsx)(r.$n,{fluid:!0,icon:"search",onClick:function(){return f("view_entry",{vir:j.record})},children:j.name},j.name)})||(0,e.jsx)(r.az,{color:"average",children:"The viral database is empty."})})}},6787:function(y,u,n){"use strict";n.r(u),n.d(u,{Pda:function(){return a}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(15857),x=n(37865);function d(f){var m;try{m=x("./"+f+".tsx")}catch(E){if(E.code==="MODULE_NOT_FOUND")return(0,g.z)("notFound",f);throw E}var v=m[f];return v||(0,g.z)("missingExport",f)}var a=function(f){var m=function(A){S(A)},v=(0,t.Oc)().data,E=v.app,j=v.owner,O=v.useRetro;if(!j)return(0,e.jsx)(s.p8,{children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{stretchContents:!0,children:"Warning: No ID information found! Please swipe ID!"})})});var M=d(E.template),_=(0,o.useState)(!1),I=_[0],S=_[1];return(0,e.jsx)(s.p8,{width:580,height:670,theme:O?"pda-retro":void 0,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsx)(l,{settingsMode:I,onSettingsMode:m}),I&&(0,e.jsx)(i,{})||(0,e.jsx)(r.wn,{title:(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.In,{name:E.icon,mr:1}),E.name]}),p:1,children:(0,e.jsx)(M,{})}),(0,e.jsx)(r.az,{mb:8}),(0,e.jsx)(c,{onSettingsMode:m})]})})},l=function(f){var m=(0,t.Oc)(),v=m.act,E=m.data,j=E.idInserted,O=E.idLink,M=E.stationTime;return(0,e.jsx)(r.az,{mb:1,children:(0,e.jsxs)(r.so,{align:"center",justify:"space-between",children:[!!j&&(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"eject",color:"transparent",onClick:function(){return v("Authenticate")},children:O})}),(0,e.jsx)(r.so.Item,{grow:1,textAlign:"center",bold:!0,children:M}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{selected:f.settingsMode,onClick:function(){return f.onSettingsMode(!f.settingsMode)},icon:"cog"}),(0,e.jsx)(r.$n,{onClick:function(){return v("Retro")},icon:"adjust"})]})]})})},i=function(f){var m=(0,t.Oc)(),v=m.act,E=m.data,j=E.idInserted,O=E.idLink,M=E.cartridge_name,_=E.touch_silent;return(0,e.jsx)(r.wn,{title:"Settings",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"R.E.T.R.O Mode",children:(0,e.jsx)(r.$n,{icon:"cog",onClick:function(){return v("Retro")},children:"Retro Theme"})}),(0,e.jsx)(r.Ki.Item,{label:"Touch Sounds",children:(0,e.jsx)(r.$n,{icon:"cog",selected:!_,onClick:function(){return v("TouchSounds")},children:_?"Disabled":"Enabled"})}),!!M&&(0,e.jsx)(r.Ki.Item,{label:"Cartridge",children:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return v("Eject")},children:M})}),!!j&&(0,e.jsx)(r.Ki.Item,{label:"ID Card",children:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return v("Authenticate")},children:O})})]})})},c=function(f){var m=(0,t.Oc)(),v=m.act,E=m.data,j=E.app,O=E.useRetro;return(0,e.jsx)(r.az,{position:"fixed",bottom:"0%",left:"0%",right:"0%",backgroundColor:O?"#6f7961":"#1b1b1b",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{basis:"33%",children:(0,e.jsx)(r.$n,{fluid:!0,color:"transparent",iconColor:j.has_back?"white":"disabled",textAlign:"center",icon:"undo",mb:0,fontSize:1.7,onClick:function(){return v("Back")}})}),(0,e.jsx)(r.so.Item,{basis:"33%",children:(0,e.jsx)(r.$n,{fluid:!0,color:"transparent",iconColor:j.is_home?"disabled":"white",textAlign:"center",icon:"home",mb:0,fontSize:1.7,onClick:function(){f.onSettingsMode(!1),v("Home")}})})]})})}},75418:function(y,u,n){"use strict";n.r(u),n.d(u,{PersonalCrafting:function(){return l}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(c,f){(f==null||f>c.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(c){for(var f,m=(0,t.Oc)(),v=m.act,E=m.data,j=E.busy,O=E.display_craftable_only,M=E.display_compact,_=E.crafting_recipes||{},I=[],S=[],T=a(Object.keys(_)),A;!(A=T()).done;){var K=A.value,W=_[K];if("has_subcats"in W){for(var $=a(Object.keys(W)),k;!(k=$()).done;){var z=k.value;if(z!=="has_subcats"){I.push({name:z,category:K,subcategory:z});for(var H=W[z],G=a(H),Y;!(Y=G()).done;){var ee=Y.value;S.push(x({},ee,{category:z}))}}}continue}I.push({name:K,category:K});for(var le=_[K],ne=a(le),Q;!(Q=ne()).done;){var Z=Q.value;S.push(x({},Z,{category:K}))}}var V=(0,o.useState)((f=I[0])==null?void 0:f.name),q=V[0],ce=V[1],se=S.filter(function(fe){return fe.category===q});return(0,e.jsx)(s.p8,{title:"Crafting Menu",width:700,height:800,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!!j&&(0,e.jsxs)(r.Rr,{fontSize:"32px",children:[(0,e.jsx)(r.In,{name:"cog",spin:1})," Crafting..."]}),(0,e.jsx)(r.wn,{title:"Personal Crafting",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Checkbox,{checked:M,onClick:function(){return v("toggle_compact")},children:"Compact"}),(0,e.jsx)(r.$n.Checkbox,{checked:O,onClick:function(){return v("toggle_recipes")},children:"Craftable Only"})]}),children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.tU,{vertical:!0,children:I.map(function(fe){return(0,e.jsx)(r.tU.Tab,{selected:fe.name===q,onClick:function(){ce(fe.name),v("set_category",{category:fe.category,subcategory:fe.subcategory})},children:fe.name},fe.name)})})}),(0,e.jsx)(r.so.Item,{grow:1,basis:0,children:(0,e.jsx)(i,{craftables:se})})]})})]})})},i=function(c){var f=c.craftables,m=f===void 0?[]:f,v=(0,t.Oc)(),E=v.act,j=v.data,O=j.craftability,M=O===void 0?{}:O,_=j.display_compact,I=j.display_craftable_only;return m.map(function(S){return I&&!M[S.ref]?null:_?(0,e.jsx)(r.Ki.Item,{label:S.name,className:"candystripe",buttons:(0,e.jsx)(r.$n,{icon:"cog",disabled:!M[S.ref],tooltip:S.tool_text&&"Tools needed: "+S.tool_text,tooltipPosition:"left",onClick:function(){return E("make",{recipe:S.ref})},children:"Craft"}),children:S.req_text},S.name):(0,e.jsx)(r.wn,{title:S.name,buttons:(0,e.jsx)(r.$n,{icon:"cog",disabled:!M[S.ref],onClick:function(){return E("make",{recipe:S.ref})},children:"Craft"}),children:(0,e.jsxs)(r.Ki,{children:[!!S.req_text&&(0,e.jsx)(r.Ki.Item,{label:"Required",children:S.req_text}),!!S.catalyst_text&&(0,e.jsx)(r.Ki.Item,{label:"Catalyst",children:S.catalyst_text}),!!S.tool_text&&(0,e.jsx)(r.Ki.Item,{label:"Tools",children:S.tool_text})]})},S.name)})}},6924:function(y,u,n){"use strict";n.r(u),n.d(u,{Photocopier:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(a){var l=(0,o.Oc)().data,i=l.isAI,c=l.has_toner,f=l.has_item;return(0,e.jsx)(r.p8,{title:"Photocopier",width:240,height:i?309:234,children:(0,e.jsxs)(r.p8.Content,{children:[c?(0,e.jsx)(g,{}):(0,e.jsx)(t.wn,{title:"Toner",children:(0,e.jsx)(t.az,{color:"average",children:"No inserted toner cartridge."})}),f?(0,e.jsx)(x,{}):(0,e.jsx)(t.wn,{title:"Options",children:(0,e.jsx)(t.az,{color:"average",children:"No inserted item."})}),!!i&&(0,e.jsx)(d,{})]})})},g=function(a){var l=(0,o.Oc)().data,i=l.max_toner,c=l.current_toner,f=i*.66,m=i*.33;return(0,e.jsx)(t.wn,{title:"Toner",children:(0,e.jsx)(t.z2,{ranges:{good:[f,i],average:[m,f],bad:[0,m]},value:c,minValue:0,maxValue:i})})},x=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.num_copies;return(0,e.jsxs)(t.wn,{title:"Options",children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{mt:.4,width:11,color:"label",children:"Make copies:"}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.Q7,{animated:!0,width:"2.6",height:"1.65",step:1,stepPixelSize:8,minValue:1,maxValue:10,value:f,onDrag:function(m){return i("set_copies",{num_copies:m})}})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{ml:.2,icon:"copy",textAlign:"center",onClick:function(){return i("make_copy")},children:"Copy"})})]}),(0,e.jsx)(t.$n,{mt:.5,textAlign:"center",icon:"reply",fluid:!0,onClick:function(){return i("remove")},children:"Remove item"})]})},d=function(a){var l=(0,o.Oc)(),i=l.act,c=l.data,f=c.can_AI_print;return(0,e.jsx)(t.wn,{title:"AI Options",children:(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"images",textAlign:"center",disabled:!f,onClick:function(){return i("ai_photo")},children:"Print photo from database"})})})}},11727:function(y,u,n){"use strict";n.r(u),n.d(u,{PipeDispenser:function(){return x}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(66947),x=function(d){var a=(0,t.Oc)(),l=a.act,i=a.data,c=i.disposals,f=i.p_layer,m=i.pipe_layers,v=i.categories,E=v===void 0?[]:v,j=(0,o.useState)("categoryName"),O=j[0],M=j[1],_=E.find(function(I){return I.cat_name===O})||E[0];return(0,e.jsx)(s.p8,{width:425,height:515,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!c&&(0,e.jsx)(r.wn,{title:"Layer",children:(0,e.jsx)(r.az,{children:Object.keys(m).map(function(I){return(0,e.jsx)(r.$n.Checkbox,{fluid:!0,checked:m[I]===f,onClick:function(){return l("p_layer",{p_layer:m[I]})},children:I},I)})})}),(0,e.jsxs)(r.wn,{title:"Pipes",children:[(0,e.jsx)(r.tU,{children:E.map(function(I){return(0,e.jsx)(r.tU.Tab,{icon:g.ICON_BY_CATEGORY_NAME[I.cat_name],selected:I.cat_name===_.cat_name,onClick:function(){return M(I.cat_name)},children:I.cat_name},I.cat_name)})}),_==null?void 0:_.recipes.map(function(I){return(0,e.jsx)(r.$n,{fluid:!0,ellipsis:!0,onClick:function(){return l("dispense_pipe",{ref:I.ref,bent:I.bent,category:_.cat_name})},children:I.pipe_name},I.pipe_name)})]})]})})}},28291:function(y,u,n){"use strict";n.r(u),n.d(u,{PlantAnalyzer:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(x){var d=(0,o.Oc)().data,a=d.seed,l=d.reagents,i=250;return a&&(i+=18*a.trait_info.length),l&&l.length&&(i+=55,i+=20*l.length),(0,e.jsx)(r.p8,{width:400,height:i,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.no_seed,c=l.seed,f=l.reagents;return i?(0,e.jsx)(t.wn,{title:"Analyzer Unused",children:"You should go scan a plant! There is no data currently loaded."}):(0,e.jsxs)(t.wn,{title:"Plant Information",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"print",onClick:function(){return a("print")},children:"Print Report"}),(0,e.jsx)(t.$n,{icon:"window-close",color:"red",onClick:function(){return a("close")}})]}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Plant Name",children:[c.name,"#",c.uid]}),(0,e.jsx)(t.Ki.Item,{label:"Endurance",children:c.endurance}),(0,e.jsx)(t.Ki.Item,{label:"Yield",children:c.yield}),(0,e.jsx)(t.Ki.Item,{label:"Maturation Time",children:c.maturation_time}),(0,e.jsx)(t.Ki.Item,{label:"Production Time",children:c.production_time}),(0,e.jsx)(t.Ki.Item,{label:"Potency",children:c.potency})]}),f.length&&(0,e.jsx)(t.wn,{title:"Plant Reagents",children:(0,e.jsx)(t.Ki,{children:f.map(function(m){return(0,e.jsxs)(t.Ki.Item,{label:m.name,children:[m.volume," unit(s)."]},m.name)})})})||null,(0,e.jsx)(t.wn,{title:"Other Data",children:c.trait_info.map(function(m){return(0,e.jsx)(t.az,{color:"label",mb:.4,children:m},m)})})]})}},12588:function(y,u,n){"use strict";n.r(u),n.d(u,{PlayerNotes:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.device_theme,i=a.filter,c=a.pages,f=a.ckeys,m=function(v){return v()};return(0,e.jsx)(r.p8,{title:"Player Notes",theme:l,width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsxs)(t.wn,{title:"Player notes",children:[(0,e.jsx)(t.$n,{icon:"filter",onClick:function(){return d("filter_player_notes")},children:"Apply Filter"}),(0,e.jsx)(t.$n,{icon:"sidebar",onClick:function(){return d("open_legacy_ui")},children:"Open Legacy UI"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)(t.$n.Input,{onCommit:function(v,E){return d("show_player_info",{name:E})},children:"CKEY to Open"}),(0,e.jsx)(t.cG,{vertical:!0}),(0,e.jsx)(t.$n,{color:"green",onClick:function(){return d("clear_player_info_filter")},children:i}),(0,e.jsx)(t.cG,{}),(0,e.jsx)(t.XI,{children:f.map(function(v){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:"user",onClick:function(){return d("show_player_info",{name:v.name})},children:v.name})})},v.name)})}),(0,e.jsx)(t.cG,{}),m(function(){for(var v=function(O){E.push((0,e.jsx)(t.$n,{onClick:function(){return d("set_page",{index:O})},children:O},O))},E=[],j=1;j=.5&&"good"||W>.15&&"average"||"bad";return(0,e.jsx)(s.p8,{width:450,height:340,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!f&&(0,e.jsx)(r.IC,{children:"Generator not anchored."}),(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Power switch",children:(0,e.jsx)(r.$n,{icon:m?"power-off":"times",onClick:function(){return a("toggle_power")},selected:m,disabled:!v,children:m?"On":"Off"})}),(0,e.jsx)(r.Ki.Item,{label:"Fuel Type",buttons:i>=1&&(0,e.jsx)(r.$n,{ml:1,icon:"eject",disabled:m,onClick:function(){return a("eject")},children:"Eject"}),children:(0,e.jsxs)(r.az,{color:$,children:[i,"cm\xB3 ",E]})}),(0,e.jsx)(r.Ki.Item,{label:"Current fuel level",children:(0,e.jsxs)(r.z2,{value:i/c,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]},children:[i,"cm\xB3 / ",c,"cm\xB3"]})}),(0,e.jsxs)(r.Ki.Item,{label:"Fuel Usage",children:[j," cm\xB3/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(r.z2,{value:O,maxValue:M+30,color:_?"bad":"good",children:[(0,o.Mg)(O),"\xB0C"]})})]})}),(0,e.jsx)(r.wn,{title:"Output",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Current output",color:I?"bad":void 0,children:S}),(0,e.jsxs)(r.Ki.Item,{label:"Adjust output",children:[(0,e.jsx)(r.$n,{icon:"minus",onClick:function(){return a("lower_power")},children:T}),(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return a("higher_power")},children:T})]}),(0,e.jsx)(r.Ki.Item,{label:"Power available",children:(0,e.jsx)(r.az,{inline:!0,color:!A&&"bad",children:A?K:"Unconnected"})})]})})]})})}},31991:function(y,u,n){"use strict";n.r(u),n.d(u,{PortablePump:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(95823),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.direction,c=l.target_pressure,f=l.default_pressure,m=l.min_pressure,v=l.max_pressure;return(0,e.jsx)(r.p8,{width:330,height:375,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.PortableBasicInfo,{}),(0,e.jsx)(t.wn,{title:"Pump",buttons:(0,e.jsx)(t.$n,{icon:i?"sign-in-alt":"sign-out-alt",selected:i,onClick:function(){return a("direction")},children:i?"In":"Out"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Output",children:(0,e.jsx)(t.Ap,{mt:"0.4em",animated:!0,minValue:m,maxValue:v,value:c,unit:"kPa",stepPixelSize:.3,onChange:function(E,j){return a("pressure",{pressure:j})}})}),(0,e.jsxs)(t.Ki.Item,{label:"Presets",children:[(0,e.jsx)(t.$n,{icon:"minus",disabled:c===m,onClick:function(){return a("pressure",{pressure:"min"})}}),(0,e.jsx)(t.$n,{icon:"sync",disabled:c===f,onClick:function(){return a("pressure",{pressure:"reset"})}}),(0,e.jsx)(t.$n,{icon:"plus",disabled:c===v,onClick:function(){return a("pressure",{pressure:"max"})}})]})]})})]})})}},33353:function(y,u,n){"use strict";n.r(u),n.d(u,{PortableScrubber:function(){return g}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=n(95823),g=function(x){var d=(0,o.Oc)(),a=d.act,l=d.data,i=l.rate,c=l.minrate,f=l.maxrate;return(0,e.jsx)(r.p8,{width:320,height:350,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(s.PortableBasicInfo,{}),(0,e.jsx)(t.wn,{title:"Power Regulator",children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Volume Rate",children:(0,e.jsx)(t.Ap,{mt:"0.4em",animated:!0,minValue:c,maxValue:f,value:i,unit:"L/s",onChange:function(m,v){return a("volume_adj",{vol:v})}})})})})]})})}},96527:function(y,u,n){"use strict";n.r(u),n.d(u,{PortableTurret:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.locked,i=a.on,c=a.lethal,f=a.lethal_is_configurable,m=a.targetting_is_configurable,v=a.check_weapons,E=a.neutralize_noaccess,j=a.neutralize_norecord,O=a.neutralize_criminals,M=a.neutralize_all,_=a.neutralize_nonsynth,I=a.neutralize_unidentified,S=a.neutralize_down;return(0,e.jsx)(r.p8,{width:500,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.IC,{children:["Swipe an ID card to ",l?"unlock":"lock"," this interface."]}),(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:(0,e.jsx)(t.$n,{icon:i?"power-off":"times",selected:i,disabled:l,onClick:function(){return d("power")},children:i?"On":"Off"})}),!!f&&(0,e.jsx)(t.Ki.Item,{label:"Lethals",children:(0,e.jsx)(t.$n,{icon:c?"exclamation-triangle":"times",color:c?"bad":"",disabled:l,onClick:function(){return d("lethal")},children:c?"On":"Off"})})]})}),!!m&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:"Humanoid Targets",children:[(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:O,disabled:l,onClick:function(){return d("autharrest")},children:"Wanted Criminals"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:j,disabled:l,onClick:function(){return d("authnorecord")},children:"No Sec Record"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:v,disabled:l,onClick:function(){return d("authweapon")},children:"Unauthorized Weapons"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:E,disabled:l,onClick:function(){return d("authaccess")},children:"Unauthorized Access"})]}),(0,e.jsxs)(t.wn,{title:"Other Targets",children:[(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:I,disabled:l,onClick:function(){return d("authxeno")},children:"Unidentified Lifesigns (Xenos, Animals, Etc)"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:_,disabled:l,onClick:function(){return d("authsynth")},children:"All Non-Synthetics"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:S,disabled:l,onClick:function(){return d("authdown")},children:"Downed Targets"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:M,disabled:l,onClick:function(){return d("authall")},children:"All Entities"})]})]})]})})}},91276:function(y,u,n){"use strict";n.r(u),n.d(u,{PowerMonitorContent:function(){return s}});var e=n(20462),o=n(7081),t=n(88569),r=n(27971),s=function(g){var x=(0,o.Oc)(),d=x.act,a=x.data,l=a.all_sensors,i=a.focus;if(i)return(0,e.jsx)(r.PowerMonitorFocus,{focus:i});var c=(0,e.jsx)(t.az,{color:"bad",children:"No sensors detected"});return l&&(c=(0,e.jsx)(t.XI,{children:l.map(function(f){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:f.alarm?"bell":"sign-in-alt",onClick:function(){return d("setsensor",{id:f.name})},children:f.name})})},f.name)})})),(0,e.jsx)(t.wn,{title:"No active sensor. Listing all.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return d("refresh")},children:"Scan For Sensors"}),children:c})}},27971:function(y,u,n){"use strict";n.r(u),n.d(u,{PowerMonitorFocus:function(){return c}});var e=n(20462),o=n(7402),t=n(15813),r=n(4089),s=n(61358),g=n(7081),x=n(88569),d=n(92595),a=n(69788),l=n(88040);function i(){return i=Object.assign||function(f){for(var m=1;m50?"battery-half":"battery-quarter")||x===1&&"bolt"||x===2&&"battery-full"||"",color:x===0&&(d>50?"yellow":"red")||x===1&&"yellow"||x===2&&"green"}),(0,e.jsx)(t.az,{inline:!0,width:"36px",textAlign:"right",children:(0,o.Mg)(d)+"%"})]})},s=function(g){var x=g.status,d=!!(x&2),a=!!(x&1),l=(d?"On":"Off")+(" ["+(a?"auto":"manual")+"]");return(0,e.jsx)(t.m_,{content:l,children:(0,e.jsx)(t.BK,{color:d?"good":"bad",content:a?void 0:"M"})})}},92595:function(y,u,n){"use strict";n.r(u),n.d(u,{PEAK_DRAW:function(){return e}});var e=5e5},69788:function(y,u,n){"use strict";n.r(u),n.d(u,{powerRank:function(){return e}});function e(o){var t=String(o.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)}},53414:function(y,u,n){"use strict";n.r(u),n.d(u,{PowerMonitor:function(){return r}});var e=n(20462),o=n(15581),t=n(91276),r=function(){return(0,e.jsx)(o.p8,{width:550,height:700,children:(0,e.jsx)(o.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.PowerMonitorContent,{})})})}},77243:function(y,u,n){"use strict";n.r(u)},14827:function(y,u,n){"use strict";n.r(u),n.d(u,{GamePreferenceWindow:function(){return d}});var e=n(20462),o=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(19870),x=n(69901),d=function(a){var l=(0,t.Oc)(),i=l.act,c=l.data,f,m=(0,o.useState)((f=a.startingPage)!=null?f:g.GamePreferencesSelectedPage.Settings),v=m[0],E=m[1],j;switch(v){case g.GamePreferencesSelectedPage.Settings:j=(0,e.jsx)(x.GamePreferencesPage,{});break}return(0,e.jsx)(s.p8,{title:"Game Preferences",width:920,height:770,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.BJ,{vertical:!0,fill:!0,children:(0,e.jsx)(r.BJ.Item,{grow:!0,shrink:!0,basis:"1px",children:j})})})})}},69901:function(y,u,n){"use strict";n.r(u),n.d(u,{GamePreferencesPage:function(){return m}});var e=n(20462),o=n(7402),t=n(61358),r=n(7081),s=n(88569),g=n(16945),x=n(72736),d=n(49049);function a(v,E){(E==null||E>v.length)&&(E=v.length);for(var j=0,O=new Array(E);j=v.length?{done:!0}:{done:!1,value:v[O++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=function(v,E){return(0,o.V0)(v,E,function(j){return j.name})},f=function(v){return(0,o.Ul)(v,function(E){var j=E[0];return j})},m=function(v){for(var E=(0,r.Oc)(),j=E.act,O=E.data,M={},_=i(Object.entries(O.character_preferences.game_preferences)),I;!(I=_()).done;){var S=I.value,T=S[0],A=S[1],K=g.default[T],W=(K==null?void 0:K.name)||T;K!=null&&K.description&&(W=(0,e.jsx)(s.az,{as:"span",style:{borderBottom:"2px dotted rgba(255, 255, 255, 0.8)"},children:W}));var $=(0,e.jsx)(s.so.Item,{grow:1,pr:2,basis:0,ml:2,children:W});K!=null&&K.description&&($=(0,e.jsx)(s.m_,{content:K.description,position:"bottom-start",children:$}));var k=(0,e.jsxs)(s.so,{align:"center",pb:2,children:[$,(0,e.jsx)(s.so.Item,{grow:1,basis:0,children:K&&(0,e.jsx)(x.FeatureValueInput,{feature:K,featureId:T,value:A,act:j})||(0,e.jsx)(s.az,{as:"b",color:"red",children:"...is not filled out properly!!!"})})]},T),z={name:(K==null?void 0:K.name)||T,children:k},H=(K==null?void 0:K.category)||"ERROR";M[H]=c(M[H]||[],z)}var G=(0,t.useState)(""),Y=G[0],ee=G[1],le=(0,t.useState)(!1),ne=le[0],Q=le[1],Z=f(Object.entries(M)).map(function(V){var q=V[0],ce=V[1];return[q,ce.filter(function(se){return!Y||se.name.toLowerCase().includes(Y.toLowerCase())}).map(function(se){return se.children})]}).filter(function(V){var q=V[0],ce=V[1];return ce.length!==0});return(0,e.jsxs)(e.Fragment,{children:[!Z.length&&(0,e.jsx)(s.wn,{title:"No Results",children:"No results found."}),(0,e.jsxs)(s.az,{position:"absolute",right:4,top:4,style:{zIndex:"100"},children:[ne&&(0,e.jsx)(s.pd,{width:16,value:Y,onInput:function(V,q){return ee(q)},onChange:function(V,q){return ee(q)}}),(0,e.jsx)(s.$n,{selected:ne,icon:"magnifying-glass",tooltip:"Search",tooltipPosition:"bottom",onClick:function(){Q(!ne),ee("")}})]}),(0,e.jsx)(d.TabbedMenu,{categoryEntries:Z,contentProps:{fontSize:1.5}})]})}},95387:function(y,u,n){"use strict";n.r(u),n.d(u,{PageButton:function(){return t}});var e=n(20462),o=n(88569),t=function(r){var s=r.currentPage===r.page||r.otherActivePages&&r.otherActivePages.indexOf(r.currentPage)!==-1;return(0,e.jsx)(o.$n,{align:"center",fontSize:"1.2em",fluid:!0,selected:s,onClick:function(){return r.setPage(r.page)},children:r.children})}},97364:function(y,u,n){"use strict";n.r(u),n.d(u,{ServerPreferencesFetcher:function(){return l}});var e=n(61358),o=n(31200),t=n(30705);function r(i,c,f,m,v,E,j){try{var O=i[E](j),M=O.value}catch(_){f(_);return}O.done?c(M):Promise.resolve(M).then(m,v)}function s(i){return function(){var c=this,f=arguments;return new Promise(function(m,v){var E=i.apply(c,f);function j(M){r(E,m,v,j,O,"next",M)}function O(M){r(E,m,v,j,O,"throw",M)}j(void 0)})}}function g(i,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function");i.prototype=Object.create(c&&c.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),c&&x(i,c)}function x(i,c){return x=Object.setPrototypeOf||function(m,v){return m.__proto__=v,m},x(i,c)}function d(i,c){var f,m,v,E,j={label:0,sent:function(){if(v[0]&1)throw v[1];return v[1]},trys:[],ops:[]};return E={next:O(0),throw:O(1),return:O(2)},typeof Symbol=="function"&&(E[Symbol.iterator]=function(){return this}),E;function O(_){return function(I){return M([_,I])}}function M(_){if(f)throw new TypeError("Generator is already executing.");for(;j;)try{if(f=1,m&&(v=_[0]&2?m.return:_[0]?m.throw||((v=m.return)&&v.call(m),0):m.next)&&!(v=v.call(m,_[1])).done)return v;switch(m=0,v&&(_=[_[0]&2,v.value]),_[0]){case 0:case 1:v=_;break;case 4:return j.label++,{value:_[1],done:!1};case 5:j.label++,m=_[1],_=[0];continue;case 7:_=j.ops.pop(),j.trys.pop();continue;default:if(v=j.trys,!(v=v.length>0&&v[v.length-1])&&(_[0]===6||_[0]===2)){j=0;continue}if(_[0]===3&&(!v||_[1]>v[0]&&_[1]