From 5be56ac74af395b31436c6e588361386044d084a Mon Sep 17 00:00:00 2001 From: pc-ls Date: Thu, 25 May 2023 14:54:10 +0800 Subject: [PATCH] =?UTF-8?q?2023-05-21--=E5=8D=8F=E8=AE=AE=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=BD=91=E9=A1=B5=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .../.vscode/settings.json" | 3 + .../package-lock.json" | 144 + .../src-steam/applications/store/login.js" | 14 + .../src-steam/applications/store/main.js" | 14 + .../src-steam/dynamicstore.js" | 2804 +++++++++ .../src-steam/main.js" | 2925 ++++++++++ .../src-steam/shared/login.js" | 1202 ++++ .../src-steam/shared/shared_global.js" | 5156 +++++++++++++++++ .../shared/shared_responsive_adapter.js" | 783 +++ .../src-steam/shared/tooltip.js" | 499 ++ .../src/main.js" | 157 +- 12 files changed, 13657 insertions(+), 46 deletions(-) create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/.vscode/settings.json" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/package-lock.json" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/login.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/main.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/dynamicstore.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/main.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/login.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/shared_global.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/shared_responsive_adapter.js" create mode 100644 "steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/tooltip.js" diff --git a/.gitignore b/.gitignore index 5118f1f..5832bda 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ Release/ obj/ AutoLogin_VS2012/bin/bin.rar Heart/Tangram/SHARE + +node_modules diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/.vscode/settings.json" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/.vscode/settings.json" new file mode 100644 index 0000000..5eb2c20 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/.vscode/settings.json" @@ -0,0 +1,3 @@ +{ + "npm-scripts.showStartNotification": false +} \ No newline at end of file diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/package-lock.json" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/package-lock.json" new file mode 100644 index 0000000..e257391 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/package-lock.json" @@ -0,0 +1,144 @@ +{ + "name": "steam-login", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "steam-login", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "node-fetch": "^3.3.1" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + } + }, + "dependencies": { + "data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==" + }, + "fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, + "node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + } + } +} diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/login.js" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/login.js" new file mode 100644 index 0000000..c4a4fa5 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/login.js" @@ -0,0 +1,14 @@ + + + + + + + + + + + +/**** (c) Valve Corporation. Use is governed by the terms of the Steam Subscriber Agreement http://store.steampowered.com/subscriber_agreement/. +****/ +(self.webpackChunkstore=self.webpackChunkstore||[]).push([[4535],{76456:e=>{e.exports={LoginContainer:"login_LoginContainer_2kLRm"}},86401:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(89526),o=n(44839),a=n(19094),i=n(32765),s=n(79925),l=n(76456);function c(e){const{redirectUrl:t=i.De.STORE_BASE_URL}=e,[n]=(0,r.useState)(new a.J(i.De.WEBAPI_BASE_URL).GetAnonymousServiceTransport()),[c,u]=(0,r.useState)(!1);return r.createElement("div",{className:l.LoginContainer},c?r.createElement(o.pT,null):r.createElement(o.wK,{autoFocus:!0,transport:n,platform:2,onComplete:e=>{e==s.TG.k_PrimaryDomainFail?u(!0):window.location.assign(t)},redirectUrl:t}))}}}]); \ No newline at end of file diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/main.js" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/main.js" new file mode 100644 index 0000000..cd217dd --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/applications/store/main.js" @@ -0,0 +1,14 @@ + + + + + + + + + + + +/**** (c) Valve Corporation. Use is governed by the terms of the Steam Subscriber Agreement http://store.steampowered.com/subscriber_agreement/. +****/ +(self.webpackChunkstore=self.webpackChunkstore||[]).push([[179],{12069:e=>{e.exports={FocusRingRoot:"focusring_FocusRingRoot_3PH_X",FocusRing:"focusring_FocusRing_1IZrQ",flash:"focusring_flash_1YTKZ",growOutline:"focusring_growOutline_Z3LxS",fadeOutline:"focusring_fadeOutline_2hZu3",blinker:"focusring_blinker_3wFMM",DebugFocusRing:"focusring_DebugFocusRing_YxeOZ",FocusRingOnHiddenItem:"focusring_FocusRingOnHiddenItem_2OusV"}},35352:e=>{e.exports={ScrollPanel:"scrollpanel_ScrollPanel_1CXdi",ScrollY:"scrollpanel_ScrollY_313lB",ScrollX:"scrollpanel_ScrollX_1oRGo",ScrollBoth:"scrollpanel_ScrollBoth_3S2Ko"}},48410:e=>{e.exports={HoverPosition:"hoverposition_HoverPosition_3XUAN",Ready:"hoverposition_Ready_qEo88",NoSpace:"hoverposition_NoSpace_2NTbb",EnablePointerEvents:"hoverposition_EnablePointerEvents_2MP9n",HoverAboveModal:"hoverposition_HoverAboveModal_1SHX2"}},93765:e=>{e.exports={"duration-app-launch":"800ms",ContextMenuMouseOverlay:"contextmenu_ContextMenuMouseOverlay_pu9cO",ContextMenuFocusContainer:"contextmenu_ContextMenuFocusContainer_2qyBZ",contextMenu:"contextmenu_contextMenu_LQkrb",ContextMenuPopup:"contextmenu_ContextMenuPopup_2GpKT",contextMenuContents:"contextmenu_contextMenuContents_2y2tU",contextMenuItem:"contextmenu_contextMenuItem_pFo3k",active:"contextmenu_active_1KPWU",MenuSectionHeader:"contextmenu_MenuSectionHeader_2Q7u1",ContextMenuSeparator:"contextmenu_ContextMenuSeparator_1F2Ec",NoSeparation:"contextmenu_NoSeparation_3twt2",UpperCase:"contextmenu_UpperCase_2ZwZj",SubMenu:"contextmenu_SubMenu_jVo8T",Label:"contextmenu_Label_38fI0",Arrow:"contextmenu_Arrow_2NKnR",IconContainer:"contextmenu_IconContainer_J6UFb",ContextMenuHRSeparator:"contextmenu_ContextMenuHRSeparator_3Ac-M",ForceDesktop:"contextmenu_ForceDesktop_7K1n9",PopoutSubMenu:"contextmenu_PopoutSubMenu_IpTgn",PopoutSubMenuItems:"contextmenu_PopoutSubMenuItems_y5L1f"}},64359:e=>{e.exports={DialogDropDownMenu_Item:"dropdown_DialogDropDownMenu_Item_1R-DV",DialogDropDownMenu:"dropdown_DialogDropDownMenu_1tiuY"}},19979:e=>{e.exports={DropDownLabelContainer:"dropdownlabel_DropDownLabelContainer_2wVxO",DropDownLabelIconContainer:"dropdownlabel_DropDownLabelIconContainer_3nHUn",DropDownLabelTextColumn:"dropdownlabel_DropDownLabelTextColumn_P4jYQ",DropDownLabelTitle:"dropdownlabel_DropDownLabelTitle_uDBZW",DropDownLabelUpperDescription:"dropdownlabel_DropDownLabelUpperDescription_2_JN3",DropDownLabelDescription:"dropdownlabel_DropDownLabelDescription_1JPcb"}},40468:e=>{e.exports={"duration-app-launch":"800ms",GamepadDialogContent:"gamepaddialog_GamepadDialogContent_3joNk",GamepadDialogContent_InnerWidth:"gamepaddialog_GamepadDialogContent_InnerWidth_3Xeyd",Field:"gamepaddialog_Field_S-_La",Button:"gamepaddialog_Button_1kn70",NoMinWidth:"gamepaddialog_NoMinWidth_21cih",ActiveAndUnfocused:"gamepaddialog_ActiveAndUnfocused_11tOP",StandaloneFieldSeparator:"gamepaddialog_StandaloneFieldSeparator_23kNb",StandardPadding:"gamepaddialog_StandardPadding_XRBFu",CompactPadding:"gamepaddialog_CompactPadding_1DIZQ",WithDescription:"gamepaddialog_WithDescription_3bMIS",WithBottomSeparatorStandard:"gamepaddialog_WithBottomSeparatorStandard_3s1Rk",WithBottomSeparatorThick:"gamepaddialog_WithBottomSeparatorThick_28hmy",HighlightOnFocus:"gamepaddialog_HighlightOnFocus_wE4V6","ItemFocusAnim-darkerGrey":"gamepaddialog_ItemFocusAnim-darkerGrey_3ZRaK","ItemFocusAnim-darkGrey":"gamepaddialog_ItemFocusAnim-darkGrey_2zfa-",WithBottomSeparator:"gamepaddialog_WithBottomSeparator_1lUZx",Disabled:"gamepaddialog_Disabled_1pmyx",Clickable:"gamepaddialog_Clickable_27UVY",FieldClickTarget:"gamepaddialog_FieldClickTarget_TN6vN",FieldChildren:"gamepaddialog_FieldChildren_14_HB",FieldLeadIcon:"gamepaddialog_FieldLeadIcon_OKYIj",FieldLabelRow:"gamepaddialog_FieldLabelRow_H9WOq",VerticalAlignCenter:"gamepaddialog_VerticalAlignCenter_3XNvA",InlineWrapShiftsChildrenBelow:"gamepaddialog_InlineWrapShiftsChildrenBelow_pHUb6",ExtraPaddingOnChildrenBelow:"gamepaddialog_ExtraPaddingOnChildrenBelow_5UO-_",ChildrenWidthFixed:"gamepaddialog_ChildrenWidthFixed_1ugIU",ChildrenWidthGrow:"gamepaddialog_ChildrenWidthGrow__Oeqv",WithFirstRow:"gamepaddialog_WithFirstRow_qFXi6",WithChildrenBelow:"gamepaddialog_WithChildrenBelow_1u5FT",FieldLabel:"gamepaddialog_FieldLabel_3b0U-",FieldLabelValue:"gamepaddialog_FieldLabelValue_lcD7J",FieldDescription:"gamepaddialog_FieldDescription_2OJfk",ModalPosition:"gamepaddialog_ModalPosition_30VHl",WithStandardPadding:"gamepaddialog_WithStandardPadding_1s9-e",NoHeaderPadding:"gamepaddialog_NoHeaderPadding_2kAHX",slideInAnimation:"gamepaddialog_slideInAnimation_17KuO",BasicTextInput:"gamepaddialog_BasicTextInput_3GCBi",Toggle:"gamepaddialog_Toggle_24G4g",ToggleRail:"gamepaddialog_ToggleRail_2JtC3",On:"gamepaddialog_On_3ld7T",ToggleSwitch:"gamepaddialog_ToggleSwitch_3__OD",LabelFieldValue:"gamepaddialog_LabelFieldValue_5Mylh",DropDownControlButtonContents:"gamepaddialog_DropDownControlButtonContents_Lzved",Spacer:"gamepaddialog_Spacer_3nOZQ",ControlsListOuterPanel:"gamepaddialog_ControlsListOuterPanel_2Mvpu",StandardSpacing:"gamepaddialog_StandardSpacing_E-It0",ExtraSpacing:"gamepaddialog_ExtraSpacing_3YMmG",ItemMaxSizeDesktop:"gamepaddialog_ItemMaxSizeDesktop_LFWdf",AlignRight:"gamepaddialog_AlignRight_4eBGA",AlignLeft:"gamepaddialog_AlignLeft_2N3q6",AlignCenter:"gamepaddialog_AlignCenter_3groU",FullWidth:"gamepaddialog_FullWidth_1a_HO",ControlsListChild:"gamepaddialog_ControlsListChild_XvRso","QuickAccess-Menu":"gamepaddialog_QuickAccess-Menu_1YEXn",BottomButtons:"gamepaddialog_BottomButtons_3_Evp","ItemFocusAnim-darkerGrey-nocolor":"gamepaddialog_ItemFocusAnim-darkerGrey-nocolor_20uOg","ItemFocusAnim-grey":"gamepaddialog_ItemFocusAnim-grey_37Ohc","ItemFocusAnimBorder-darkGrey":"gamepaddialog_ItemFocusAnimBorder-darkGrey_8BINs","ItemFocusAnim-green":"gamepaddialog_ItemFocusAnim-green_wPuMl",focusAnimation:"gamepaddialog_focusAnimation_Plqwm",hoverAnimation:"gamepaddialog_hoverAnimation_22zeK"}},73364:e=>{e.exports={"duration-app-launch":"800ms",DropDownControlButton:"gamepaddropdown_DropDownControlButton_28bny"}},30113:e=>{e.exports={TogglePasswordVisibilityBtn:"gamepadinput_TogglePasswordVisibilityBtn_1Z-Cc",Digits:"gamepadinput_Digits_znEp6",PinDigit:"gamepadinput_PinDigit_1oiQ5"}},91429:e=>{e.exports={"duration-app-launch":"800ms",PagedSettingsDialog:"gamepadpagedsettings_PagedSettingsDialog_2P_CG",PagedSettingsDialog_PageContent:"gamepadpagedsettings_PagedSettingsDialog_PageContent_wIOLO",NoPadding:"gamepadpagedsettings_NoPadding_2BpB-",PagedSettingsDialog_PageListColumn:"gamepadpagedsettings_PagedSettingsDialog_PageListColumn_2EZ3o",PagedSettingsDialog_Title:"gamepadpagedsettings_PagedSettingsDialog_Title_1Px9u",PagedSettingsDialog_PageList:"gamepadpagedsettings_PagedSettingsDialog_PageList_3c_Jp",PagedSettingsDialog_PageList_DisableScrolling:"gamepadpagedsettings_PagedSettingsDialog_PageList_DisableScrolling_2brQE",PagedSettingsDialog_PageListItem:"gamepadpagedsettings_PagedSettingsDialog_PageListItem_1ix7r",DisabledItem:"gamepadpagedsettings_DisabledItem_3Lp2f",Active:"gamepadpagedsettings_Active_22LLB","ItemFocusAnim-darkerGrey":"gamepadpagedsettings_ItemFocusAnim-darkerGrey_ur7gu","ItemFocusAnim-darkGrey":"gamepadpagedsettings_ItemFocusAnim-darkGrey_3qFxl",PageListItem_Icon:"gamepadpagedsettings_PageListItem_Icon_1F_5Q",PageListItem_Title:"gamepadpagedsettings_PageListItem_Title_2PPLv",Separator:"gamepadpagedsettings_Separator_3vV7l",PagedSettingDialog_ContentColumn:"gamepadpagedsettings_PagedSettingDialog_ContentColumn_3JPle",Up:"gamepadpagedsettings_Up_3Qp0k",ContentTransition:"gamepadpagedsettings_ContentTransition_NCmol",Enter:"gamepadpagedsettings_Enter_2x_gO",EnterActive:"gamepadpagedsettings_EnterActive_1JBp4",Exit:"gamepadpagedsettings_Exit_1lJGy",ExitActive:"gamepadpagedsettings_ExitActive_1fljM",Down:"gamepadpagedsettings_Down_37IKR","ItemFocusAnim-darkerGrey-nocolor":"gamepadpagedsettings_ItemFocusAnim-darkerGrey-nocolor_3M5nC","ItemFocusAnim-grey":"gamepadpagedsettings_ItemFocusAnim-grey_1fG-j","ItemFocusAnimBorder-darkGrey":"gamepadpagedsettings_ItemFocusAnimBorder-darkGrey_2l2lk","ItemFocusAnim-green":"gamepadpagedsettings_ItemFocusAnim-green_HSYwK",focusAnimation:"gamepadpagedsettings_focusAnimation_nKO5M",hoverAnimation:"gamepadpagedsettings_hoverAnimation_vXWdQ"}},74259:e=>{e.exports={"error-shake-duration":"500ms",SliderControlPanelGroup:"gamepadslider_SliderControlPanelGroup_MY8iY",SliderControlAndNotches:"gamepadslider_SliderControlAndNotches_1Cccx",WithDefaultValue:"gamepadslider_WithDefaultValue_1t8of",SliderControl:"gamepadslider_SliderControl_3o137",Disabled:"gamepadslider_Disabled_1lI1N",SliderTrack:"gamepadslider_SliderTrack_Mq25N",SliderHasNotches:"gamepadslider_SliderHasNotches_2XiAy",SliderTrackDark:"gamepadslider_SliderTrackDark_3UIUD",SliderHandleContainer:"gamepadslider_SliderHandleContainer_1pQZi",VerticalLineSliderHandleContainer:"gamepadslider_VerticalLineSliderHandleContainer_1lQz2",ParenSliderHandleContainer:"gamepadslider_ParenSliderHandleContainer_3ubaM",SliderHandle:"gamepadslider_SliderHandle_2yVKj",SliderHandleFocusPop:"gamepadslider_SliderHandleFocusPop_2lNxL",VerticalLineSliderHandle:"gamepadslider_VerticalLineSliderHandle_i3l9t",ParenSliderHandle:"gamepadslider_ParenSliderHandle_3ZGME",Left:"gamepadslider_Left_1PL0a",SliderControlWithIcon:"gamepadslider_SliderControlWithIcon_2M8Pt",Icon:"gamepadslider_Icon_21uKi",SliderNotchContainer:"gamepadslider_SliderNotchContainer_2N-a5",SliderNotch:"gamepadslider_SliderNotch_3x6ve",AlignToEnds:"gamepadslider_AlignToEnds_2SgU_",SliderNotchLabel:"gamepadslider_SliderNotchLabel_u_sH1",AlignToLeft:"gamepadslider_AlignToLeft_3CtMn",AlignToRight:"gamepadslider_AlignToRight__eiEP",SliderNotchTick:"gamepadslider_SliderNotchTick_Fv1Ht",TickActive:"gamepadslider_TickActive_1gnUV",LabelText:"gamepadslider_LabelText_1-PvK",DescriptionValue:"gamepadslider_DescriptionValue_2oRwF",EditableValue:"gamepadslider_EditableValue_2DXnl",FakeEditableValue:"gamepadslider_FakeEditableValue_1-lyB",RedBorder:"gamepadslider_RedBorder_1h5To",ErrorShake:"gamepadslider_ErrorShake_2SGoM","error-shake":"gamepadslider_error-shake_3HxdO",CompoundSlider:"gamepadslider_CompoundSlider_3Q4jT",CompoundSliderSubSlider:"gamepadslider_CompoundSliderSubSlider_20HO3",Right:"gamepadslider_Right_syN8n",CompoundSliderSubSliderLabelContainer:"gamepadslider_CompoundSliderSubSliderLabelContainer_1h_oe",CompoundSliderSubSliderLabelPositioner:"gamepadslider_CompoundSliderSubSliderLabelPositioner_mKcUn",CompoundSliderSubSliderLabel:"gamepadslider_CompoundSliderSubSliderLabel_iYrz9",CompoundSliderSubSliderLabelInternal:"gamepadslider_CompoundSliderSubSliderLabelInternal_1dkDU",DefaultValueTickContainer:"gamepadslider_DefaultValueTickContainer_23F6A",DefaultValueTick:"gamepadslider_DefaultValueTick_1WFYb"}},96777:e=>{e.exports={"duration-app-launch":"800ms",PagedSettingsDialog:"pagedsettings_PagedSettingsDialog_3I6h_",PagedSettingsDialog_PageContent:"pagedsettings_PagedSettingsDialog_PageContent_1I3Ni",NoPadding:"pagedsettings_NoPadding_1iWhH",PagedSettingsDialog_PageListColumn:"pagedsettings_PagedSettingsDialog_PageListColumn_RTicB",Hidden:"pagedsettings_Hidden_1uk_4",NewNoteButton:"pagedsettings_NewNoteButton_sc_I7",PagedSettingsDialog_Title:"pagedsettings_PagedSettingsDialog_Title_3qEgQ",PagedSettingsDialog_PageList:"pagedsettings_PagedSettingsDialog_PageList__EebF",PagedSettingsDialog_PageList_DisableScrolling:"pagedsettings_PagedSettingsDialog_PageList_DisableScrolling_36Srg",PagedSettingsDialog_PageListItem:"pagedsettings_PagedSettingsDialog_PageListItem_bkfjn",PageListItem_Icon:"pagedsettings_PageListItem_Icon_U6HcK",PageListItem_Title:"pagedsettings_PageListItem_Title_2X9_I",DisabledItem:"pagedsettings_DisabledItem_1RDp9",Active:"pagedsettings_Active_Myra7",PageListSpacer:"pagedsettings_PageListSpacer_33lCZ",PageListSeparator:"pagedsettings_PageListSeparator_1UEEm",Transparent:"pagedsettings_Transparent_SeoUZ",HidePageListButton:"pagedsettings_HidePageListButton_3i4Ep"}},31632:e=>{e.exports={Group:"radio_Group_2qYC3",Button:"radio_Button_3lwcR",Active:"radio_Active_3ZBFo"}},3367:e=>{e.exports={Toggle:"toggle_Toggle_3jXWQ",Disabled:"toggle_Disabled_2V_kU",ToggleRail:"toggle_ToggleRail_GKYwH",Highlight:"toggle_Highlight_2l9tH",On:"toggle_On_1YqUA",Off:"toggle_Off_3_gMX",ToggleSwitch:"toggle_ToggleSwitch_2mW8B",ToggleRow:"toggle_ToggleRow_RFRVY",Label:"toggle_Label_2sb8q"}},19634:e=>{e.exports={Spinner:"gamepadui_svg_library_Spinner_2Hc4f",SpinnerSpokeFade:"gamepadui_svg_library_SpinnerSpokeFade_2QBT4",WirelessConnectingActive:"gamepadui_svg_library_WirelessConnectingActive_UCVKt",WifiBar1:"gamepadui_svg_library_WifiBar1_25g4S",WifiBar1Anim:"gamepadui_svg_library_WifiBar1Anim_3WnTD",WifiBar2:"gamepadui_svg_library_WifiBar2_1Utwl",WifiBar2Anim:"gamepadui_svg_library_WifiBar2Anim_3BoKo",WifiBar3:"gamepadui_svg_library_WifiBar3_zZxOy",WifiBar3Anim:"gamepadui_svg_library_WifiBar3Anim_1C2Pj",WifiBar4:"gamepadui_svg_library_WifiBar4_23OJc",WifiBar4Anim:"gamepadui_svg_library_WifiBar4Anim_bMD58",GenericGamepadHighlight:"gamepadui_svg_library_GenericGamepadHighlight_1zfyD"}},67122:e=>{e.exports={BodyNoScroll:"modals_BodyNoScroll_3ItVl",BodyNoScrollDialog:"modals_BodyNoScrollDialog_3lrlA",OverlayModal:"modals_OverlayModal_1RM4p",GamepadOnlyModalWrapper:"modals_GamepadOnlyModalWrapper_3tgce",GamepadOnlyPanelWrapper:"modals_GamepadOnlyPanelWrapper_1vgBE"}},1721:e=>{e.exports={v6:"shared_common_v6_3r3Le",SubText:"shared_common_SubText_3Ctn8",AvatarImageContainer:"shared_common_AvatarImageContainer_10L8e",GameImageContainer:"shared_common_GameImageContainer_2opUa",AvatarImage:"shared_common_AvatarImage_3GB71",STV_HomeGridPreviewDetails:"shared_common_STV_HomeGridPreviewDetails_h3usS",ChatAvatarImage:"shared_common_ChatAvatarImage_1GZJG",EditButton:"shared_common_EditButton_utVo_",Small:"shared_common_Small_2MbrV",FlexCenter:"shared_common_FlexCenter_24qeH",ThrobberCtn:"shared_common_ThrobberCtn_r-SBj",MarkdownLink:"shared_common_MarkdownLink_2KgeH",SummaryTextArea:"shared_common_SummaryTextArea_2xqdR",RemoveIcon:"shared_common_RemoveIcon_1iOrE"}},59743:e=>{e.exports={EmoticonBow:"shared_svg_library_EmoticonBow_S9_rt",EmoticonBow_st0:"shared_svg_library_EmoticonBow_st0_1MS_8",EmoticonBow_st1:"shared_svg_library_EmoticonBow_st1_3nqUN",SteamDeckCompatInfo:"shared_svg_library_SteamDeckCompatInfo_2LcFI",SteamDeckCompatLogo:"shared_svg_library_SteamDeckCompatLogo_Tplfb",SteamDeckCompatIcon:"shared_svg_library_SteamDeckCompatIcon_2hEWY",SteamDeckCompatVerified:"shared_svg_library_SteamDeckCompatVerified_3mvZq",SteamDeckCompatPlayable:"shared_svg_library_SteamDeckCompatPlayable_S7BDm",SteamDeckCompatUnsupported:"shared_svg_library_SteamDeckCompatUnsupported_1SeOP",SteamDeckCompatUnknown:"shared_svg_library_SteamDeckCompatUnknown_15dEs"}},50500:e=>{e.exports={TextToolTip:"tooltip_TextToolTip_29b2a",ToolTipCustom:"tooltip_ToolTipCustom_3Dt__",ToolTipTitle:"tooltip_ToolTipTitle_3YNfm",Center:"tooltip_Center_2-PU0",ToolTipInsetContent:"tooltip_ToolTipInsetContent_1nxOn"}},86137:e=>{e.exports={nTimelineHoverEdgePadding:"4",TrailerPlayer:"trailerplayer_TrailerPlayer_1i1EC",PlayerControls:"trailerplayer_PlayerControls_17DgC",LowerControls:"trailerplayer_LowerControls_3uzFv",Timeline:"trailerplayer_Timeline_2Gb_i",Bar:"trailerplayer_Bar_1BXDR",Buffered:"trailerplayer_Buffered_2kyax",Played:"trailerplayer_Played_3S8so",HoverTick:"trailerplayer_HoverTick_1W9oI",HoverTime:"trailerplayer_HoverTime_3M1RD",UserInputNeeded:"trailerplayer_UserInputNeeded_tH6oU"}},25887:e=>{e.exports={TransitionGroup:"overlappingtransition_TransitionGroup_11Twu",ContentWrapper:"overlappingtransition_ContentWrapper_1knAs"}},54978:e=>{e.exports={App:"app_App_2uHYt"}},80525:(e,t,n)=>{"use strict";function r(...e){}function i(e){let t=Math.floor(e/3600),n=Math.floor(e/60)%60,r=Math.floor(e)%60,i=r.toString();r<10&&(i="0"+i);let o=n.toString();return n<10&&t>0&&(o="0"+o),(t>0?t+":":"")+o+":"+i}function o(){let e=!1;try{e=MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d4032,mp4a.40.2"')}catch(e){}return e}function a(){let e=document.createElement("video").canPlayType('application/vnd.apple.mpegurl;codecs="avc1.64001f,mp4a.40.02"');return"probably"===e||"maybe"===e}n.d(t,{Pw:()=>a,c8:()=>o,yv:()=>r,zB:()=>i})},24141:(e,t,n)=>{"use strict";n.d(t,{C2:()=>F,N1:()=>O,YW:()=>L});var r=n(33940),i=n(52868),o=n.n(i),a=n(50265),s=n(46132),l=(n(11837),n(23801)),c=n(85246),d=n(14826),u=n(36041),m=n(26464),h=n(25508),p=n(32765),_=n(80525),g=n(56189);function f(e,t){let n=e.getElementsByTagName("MPD");return n&&1==n.length?n[0]:null}function v(e,t){for(let n=0;n"main"==e))>=0}function I(e){return e?1e3==e.segmentTemplate.nTimeScale?e.segmentTemplate.nDuration:e.segmentTemplate.nDuration/e.segmentTemplate.nTimeScale*1e3:0}function R(e,t){let n=I(e);return Math.floor(t/n)+1}class M{constructor(){this.m_nMinBufferTime=0,this.m_dtAvailabilityStartTime=null,this.m_dtPublishTime=null,this.m_nMinimumUpdatePeriod=0,this.m_nTimeShiftBufferDepth=0,this.m_dtMediaPresentationDuration=null,this.m_strBaseURL="",this.m_strStatsLink="",this.m_strStalledLink="",this.m_strEventLogLink="",this.m_rgPeriods=null,this.m_tsLiveContentStart=0}GetType(){return this.m_strType}GetMinimumUpdatePeriod(){return this.m_nMinimumUpdatePeriod}GetAvailabilityStartTime(){return this.m_dtAvailabilityStartTime}GetPeriods(){return this.m_rgPeriods}GetBaseURL(){return this.m_strBaseURL}GetTimeShiftBufferDepth(){return this.m_nTimeShiftBufferDepth}GetMinBufferTime(){return this.m_nMinBufferTime}GetTimedTextAdaptionSet(e){return e<0||e>this.m_rgPeriods.length?[]:this.m_rgPeriods[e].rgAdaptationSets.filter((e=>e.bIsTimedText))}IsLiveContent(){return"dynamic"==this.GetType()}GetAdaptationByTrackID(e){if(!this.m_rgPeriods||0==this.m_rgPeriods.length)return null;let t=this.m_rgPeriods[0];for(let n of t.rgAdaptationSets)if(e==n.strID)return n;return null}GetVideoAdaption(){let e=this.m_rgPeriods[0];for(let t of e.rgAdaptationSets)if(t.bContainsVideo)return t;return null}GetStartTime(){return!this.IsLiveContent()&&this.m_rgPeriods.length>0?this.m_rgPeriods[0].nStart:0}GetEndTime(){return!this.IsLiveContent()&&this.m_rgPeriods.length>0?this.GetStartTime()+this.m_rgPeriods[0].nDuration:Number.MAX_VALUE}GetLowestRepresentation(e){let t=this.GetAdaptationByTrackID(e);if(!t)return null;let n=t.rgRepresentations[0];for(let e of t.rgRepresentations)e.nBandwidth1)for(let e=0;et.end(0)&&(e=t.end(0));let n=t.end(0)-e;return Math.floor(1e3*n)}GetAmountBufferedMS(e){let t=this.GetAmountBufferedInPlayerMS(e);for(let e of this.m_rgBufferedSegments)t+=e.nDurationMS;return t}ChangeRepresentation(e){if(this.m_adaptation.rgRepresentations.indexOf(e)<0)return null;if(this.m_representation==e)return null;if(this.ContainsVideo()&&(0,_.yv)(`${this.GetDebugName()} changing representation to ${e.nHeight||0}p at ${Math.ceil(e.nBandwidth/1e3)}KB for segment ${this.m_nNextSegment}`),this.m_representation=e,this.m_bNeedInitSegment=!this.ContainsGame(),this.m_stats.SetRepresentation(e),this.ContainsGame())return e;if(!this.m_sourceBuffer){let t=e.strMimeType+";codecs="+e.strCodecs;this.m_sourceBuffer=this.m_mediaSource.addSourceBuffer(t),(0,_.yv)(t),this.m_listeners.AddEventListener(this.m_sourceBuffer,"updateend",this.OnSourceBufferUpdateEnd),this.m_listeners.AddEventListener(this.m_sourceBuffer,"error",this.OnSourceBufferError),this.m_listeners.AddEventListener(this.m_sourceBuffer,"abort",this.OnSourceBufferAbort)}return e}Close(){this.m_listeners.Unregister(),this.m_sourceBuffer=null,this.ForceStopDownloads(),this.m_eBufferUpdate=T.None,this.m_bRemoveBufferState=!1,this.m_callbacks=null,this.m_mpd=null,this.m_adaptation=null,this.m_mediaSource=null,this.m_nTrackBufferMS=0,this.m_representation=null,this.m_rgBufferedSegments=[],this.m_bNeedInitSegment=!0,this.m_nNextSegment=0,this.m_bSeekInProgress=!1,this.m_tsLastBufferRemove=0,this.m_rgDownloadLog=[],this.m_stats=null,this.m_rgGameDataFrames=[],this.m_statsGameData=null}GetActiveDownloads(){return this.m_xhrDownload?1:0}GetActiveDownloadProgress(){return this.GetActiveDownloads()?this.m_nCurDownloadProgress:0}OnSourceBufferUpdateEnd(e){let t=this.m_callbacks.GetCurrentPlayTime(),n=this.GetAmountBufferedInPlayerMS(t);(0,_.yv)(`${this.GetDebugName()} OnSourceBufferUpdateEnd: [playback=${t}][buffered=${n}][start=${this.GetBufferedStart()}][end=${this.GetBufferedEnd()}]`);let r=this.m_eBufferUpdate;this.m_eBufferUpdate=T.None,r==T.Append&&this.m_callbacks.OnSegmentDownloaded(this),this.m_bSeekInProgress&&r==T.Remove&&!this.m_bRemoveBufferState&&this.ContinueSeek(),this.UpdateBuffer()}OnSourceBufferError(e){console.log("OnSourceBufferError",this.GetDebugName(),e)}OnSourceBufferAbort(e){console.log("OnSourceBufferAbort",this.GetDebugName(),e)}ScheduleNextDownload(){if(this.m_bNeedInitSegment)return void this.DownloadNextSegment();if(this.m_schNextDownload.Cancel(),this.m_xhrDownload)return void(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - download already going`);if(this.m_bSeekInProgress)return void(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - seeking`);if(this.m_nNextSegment>this.GetMaxSegment())return void(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - reached max segment`);let e=this.m_callbacks.GetCurrentPlayTime(),t=this.m_callbacks.GetPlaybackRate(),n=function(e,t,n){if(!e.IsLiveContent())return 0;let r=I(t);return(n-t.segmentTemplate.nStartNumber)*r-e.GetDurationSinceStarted()}(this.m_mpd,this.m_adaptation,this.m_nNextSegment);if(n>0)return(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - segment in future`),void this.m_schNextDownload.Schedule(n,this.ScheduleNextDownload);let r=this.GetAmountBufferedMS(e);if(t>1&&(r/=t),r<4e4)return(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - download now`),void this.DownloadNextSegment();let i=1.1*I(this.m_adaptation),o=this.GetAmountBufferedInPlayerMS(this.m_callbacks.GetCurrentPlayTime());(0,_.yv)(`${this.GetDebugName()} ScheduleNextDownload - buffered, schedule later [sleep=${i}ms][buffer=${o}]`),this.m_schNextDownload.Schedule(i,this.ScheduleNextDownload)}DownloadNextSegment(){this.m_schNextDownload.Cancel();let e="",t=0;if(this.m_bNeedInitSegment)this.m_bNeedInitSegment=!1,n=this.m_mpd.GetBaseURL(),r=this.m_adaptation,i=this.m_representation,e=w(n+r.segmentTemplate.strInitialization,i.strID,0),t=0;else{if(this.m_nNextSegment<0)return void console.error("Attempting to download negative segment:",this.m_nNextSegment);e=function(e,t,n,r){return w(e+t.segmentTemplate.strMedia,n.strID,r)}(this.m_mpd.GetBaseURL(),this.m_adaptation,this.m_representation,this.m_nNextSegment),t=I(this.m_adaptation),this.m_nNextSegment++}var n,r,i;this.DownloadSegment(this.m_representation.strID,e,t)}DownloadSegment(e,t,n,i=performance.now()){return(0,r.mG)(this,void 0,void 0,(function*(){(0,l.X)(null===this.m_xhrDownload,"Trying to download another segment while a download is already in flight"),this.m_schNextDownload.Cancel();const r=this.m_callbacks.GetCDNAuthURLParameter();r&&(t+=r),(0,_.yv)("Downloading: "+t);let a=null,s=performance.now(),c=o().CancelToken.source();try{this.m_nCurDownloadProgress=0,this.m_xhrDownload=c;let e={cancelToken:this.m_xhrDownload.token,timeout:15e3,responseType:"arraybuffer",onDownloadProgress:e=>{this.m_nCurDownloadProgress=e.loaded/e.total,this.m_nCurDownloadBitrate=8*e.loaded*1e3/Math.max(1,performance.now()-s)}};this.ContainsGame()&&(e.responseType="json"),a=yield o().get(t,e)}catch(e){(0,_.yv)("Failed to download segment: "+e),a=e.response}if(!this.m_xhrDownload||this.m_xhrDownload!=c)return;let d=performance.now(),u=Math.floor(performance.now()-s),m=a?a.status:0;if(this.m_xhrDownload=null,this.m_bSeekInProgress)this.ContinueSeek();else{if(!a||200!=a.status)return this.ContainsGame()?void this.ScheduleNextDownload():(this.m_stats.LogSegmentDownloadFailure(u,a?a.status:444),d-i>9e3?((0,_.yv)(`${this.GetDebugName()} HTTP download failed.. stopping loader: ${d-i}ms`),void this.DownloadFailed()):410==m?(this.m_nNumConsecutiveDownloadGones+=1,(0,_.yv)(`${this.GetDebugName()} HTTP download gone.. informing the player: ${d-i}ms`),void this.DownloadGone()):void this.m_schNextDownload.Schedule(500,(()=>this.DownloadSegment(e,t,n,i))));if(this.m_nNumConsecutiveDownloadGones=0,this.ContainsGame()){let e=a.data;this.m_rgGameDataFrames||(this.m_rgGameDataFrames=[]);let t=Number.MIN_VALUE,n=Number.MIN_VALUE;this.m_rgGameDataFrames.length>0&&(t=this.m_rgGameDataFrames[this.m_rgGameDataFrames.length-1].pts,n=this.m_rgGameDataFrames[this.m_rgGameDataFrames.length-1].gdi);const r=e.frame;r&&(r.pts&&r.gamedata&&r.gdi?r.pts<=t?(0,_.yv)("Invalid game pts"):r.gdi!=n&&this.m_rgGameDataFrames.push(r):(0,_.yv)("Invalid game data")),this.TrimGameDataIfNecessary(),this.m_statsGameData={nAppID:e.appid,ulBroadcastRelayID:e.broadcastrelayid,nSegmentID:e.segmentid}}else{let r=new Uint8Array(a.data);this.m_rgBufferedSegments.push({nDurationMS:n,data:r,representationStrID:e}),this.LogDownload(s,r.length),this.UpdateBuffer();{let e=r.length/1e3;(0,_.yv)(`HTTP ${m} (${u}ms, ${Math.floor(e)}k): ${t}`)}}this.ScheduleNextDownload()}}))}DownloadFailed(){this.m_callbacks.OnSegmentDownloadFailed(this)}DownloadGone(){this.m_callbacks.OnSegmentDownloadGone(this)}TrimGameDataIfNecessary(){}UpdateBuffer(){if(this.m_eBufferUpdate!=T.None)return;if(this.m_bRemoveBufferState)return void this.RemoveAllBuffers();if(!this.m_sourceBuffer)return void(0,_.yv)("No source buffer?");if(this.m_rgBufferedSegments.length>0){try{this.m_eBufferUpdate=T.Append;let e=this.m_rgBufferedSegments[0];this.m_sourceBuffer.appendBuffer(e.data),this.m_rgBufferedSegments.splice(0,1)}catch(e){"QuotaExceededError"===e.name?(this.m_eBufferUpdate=T.None,(0,_.yv)(`${this.GetDebugName()} Buffer - QuotaExceededError`)):(0,_.yv)(`${this.GetDebugName()} Buffer - Exception`,e)}return}let e=performance.now();if(!this.m_bSeekInProgress&&e-this.m_tsLastBufferRemove>1e4){let t=this.GetBufferedStart(),n=this.m_callbacks.GetCurrentPlayTime()-40;if(tn;if(0==t&&0==n&&(r=!0),(0,_.yv)(`${this.GetDebugName()} making an ${r?"unbuffered":"buffered"} seek to ${e}`),!this.m_bSeekInProgress&&!r&&!this.m_bNeedInitSegment)return void this.ScheduleNextDownload();this.m_bSeekInProgress=!0,this.ForceStopDownloads();let i=R(this.m_adaptation,1e3*e);if(this.m_nNextSegment=Math.min(i,this.GetMaxSegment()),(0,_.yv)("Seek To Next Segment: "+this.m_nNextSegment+" at approx. "+(0,_.zB)((this.m_nNextSegment-1)*I(this.m_adaptation)/1e3)+" seconds."),this.ContainsGame())return this.m_bSeekInProgress=!1,this.m_rgGameDataFrames=[],void this.ScheduleNextDownload();this.m_bRemoveBufferState=!0,this.UpdateBuffer()}ContinueSeek(){this.m_bSeekInProgress&&(this.m_eBufferUpdate==T.Remove||this.m_bRemoveBufferState||(this.m_bSeekInProgress=!1,this.ScheduleNextDownload()))}BHasEnoughBuffered(e){return!this.m_bSeekInProgress&&(!!this.ContainsGame()||(this.GetAmountBufferedInPlayerMS(e)>=this.m_nTrackBufferMS||this.m_nNextSegment>=this.GetMaxSegment()))}LogDownload(e,t){this.m_rgDownloadLog.length>=4&&this.m_rgDownloadLog.shift();let n=performance.now()-e;n<=0||(this.m_rgDownloadLog.push({cubData:t,nDownloadMS:n}),this.m_stats.LogDownload(t,n))}GetDownloadHistory(){return this.m_rgDownloadLog}GetAvgDownloadRate(){let e=0,t=0;for(let n of this.m_rgDownloadLog)e+=n.nDownloadMS,t+=n.cubData;return e<=0?this.m_nCurDownloadBitrate&&this.GetActiveDownloads()>0?this.m_nCurDownloadBitrate:0:8*t*1e3/e}GetGameDataFrames(){return this.m_rgGameDataFrames}GetLatestGameDataFrameAppID(){return this.m_statsGameData&&this.m_statsGameData.nAppID?this.m_statsGameData.nAppID:0}}(0,r.gn)([m.a],A.prototype,"OnSourceBufferUpdateEnd",null),(0,r.gn)([m.a],A.prototype,"OnSourceBufferError",null),(0,r.gn)([m.a],A.prototype,"OnSourceBufferAbort",null),(0,r.gn)([m.a],A.prototype,"ScheduleNextDownload",null),(0,r.gn)([m.a],A.prototype,"DownloadNextSegment",null),(0,r.gn)([m.a],A.prototype,"DownloadFailed",null),(0,r.gn)([m.a],A.prototype,"DownloadGone",null);const L=5,B="auto";var k,O;!function(e){e[e.HAVE_NOTHING=0]="HAVE_NOTHING",e[e.HAVE_METADATA=1]="HAVE_METADATA",e[e.HAVE_CURRENT_DATA=2]="HAVE_CURRENT_DATA",e[e.HAVE_FUTURE_DATA=3]="HAVE_FUTURE_DATA",e[e.HAVE_ENOUGH_DATA=4]="HAVE_ENOUGH_DATA"}(k||(k={})),function(e){e[e.Invalid=0]="Invalid",e[e.StreamGone=1]="StreamGone"}(O||(O={}));class F{constructor(e,t=!1){this.m_elVideo=null,this.m_strMPD="",this.m_strHLS="",this.m_strCDNAuthURLParameters=null,this.m_schUpdateMPD=new c.Ar,this.m_bUseHLSManifest=!1,this.m_strVideoAdaptationID="",this.m_strAudioAdaptationID="",this.m_strGameAdaptationID="",this.m_rgLoaders=[],this.m_mediaSource=null,this.m_nTrackBufferMS=0,this.m_nLimitFPS=0,this.m_bIsBuffering=!0,this.m_nSeekingToTime=-1,this.m_listeners=new c.G_,this.m_bFirstPlay=!0,this.m_schGameDataEventTrigger=new c.Ar,this.m_schReportPlayerTrigger=new c.Ar,this.m_nGameDataLastFramePTS=-1,this.m_bStatsViewVisible=!1,this.m_schCaptureDisplayStatsTrigger=new c.Ar,this.m_videoRepSelected=null,this.m_nAudioRepresentationIndex=0,this.m_timedTextRepSelected=null,this.m_stats=new g.vf,this.m_bClosing=!1,this.m_hlsTimeOffset=0,this.m_bUserPlayChoice=!0,this.m_bUserLiveEdgeChoice=!0,this.m_schFirstFrameThrottler=new c.Ar,this.m_bookMarkAdapter=null,this.m_schBookmarkUpdater=new c.Ar,this.m_elVideo=e,this.m_schReportPlayerTrigger.Schedule(3e4,this.ReportPlayerStats),this.m_bUseHLSManifest=t}CalcVideoStartRelativeToSystemClock(e){let t=(e?new Date(e).getTime():Date.now())-this.m_mpd.GetAvailabilityStartTime().getTime();this.m_mpd.StartLiveContentNow(t),(0,_.yv)("server time: "+e)}PlayMPD(e,t,n){return(0,r.mG)(this,void 0,void 0,(function*(){this.m_strMPD=e,this.m_strHLS=n,this.m_strCDNAuthURLParameters=t;let r=yield this.DownloadMPD();if(r)if(this.m_mpd=new M,this.m_mpd.BParse(r.data)){if(this.IsLiveContent()&&(this.m_mpd.GetMinimumUpdatePeriod()>0&&this.m_schUpdateMPD.Schedule(1e3*this.m_mpd.GetMinimumUpdatePeriod(),this.UpdateMPD),this.CalcVideoStartRelativeToSystemClock(r.headers.date)),this.m_bUseHLSManifest)return this.m_elVideo.src=this.m_strHLS,this.m_elVideo.addEventListener("loadedmetadata",(()=>{this.m_bIsBuffering=!1,this.BeginPlayback()})),void document.addEventListener("visibilitychange",this.OnVisibilityChange);this.BCreateLoaders()?(this.m_stats.SetSegmentDurationMS(I(this.GetCurrentVideoAdaptation())),this.m_stats.SetAnalyticLinks(this.m_mpd.GetStatsLink(),this.m_mpd.GetStalledLink(),this.m_mpd.GetEventLink()),this.m_stats.SetVideoInitializationURL(this.GetCurrentVideoAdaptation().segmentTemplate.strInitialization),this.InitVideoControl(),this.InitTimedText()):this.CloseWithError("playbackerror","Failed to create segment loaders")}else this.CloseWithError("playbackerror","Failed to parse MPD file",this.m_strMPD)}))}InitTimedText(){let e=!0;this.m_mpd.GetTimedTextAdaptionSet(0).forEach((t=>{let n=(0,s.jM)(p.De.LANGUAGE);if(t.rgRepresentations.length>0&&t.rgRepresentations[0].strClosedCaptionFile&&d.is[t.strLanguage]){const r=document.createElement("track");r.kind="subtitles",r.label=(0,d.Xx)("#Language_"+(0,s.j_)(d.is[t.strLanguage])),r.srclang=t.strLanguage,r.src=t.rgRepresentations[0].strClosedCaptionFile,0!=n&&d.is[t.strLanguage]==n&&(r.default=!0,this.m_timedTextRepSelected=t.rgRepresentations[0],e=!1),this.m_elVideo.appendChild(r),e&&(r.addEventListener("load",(()=>{this.m_elVideo.textTracks&&this.m_elVideo.textTracks.length>0&&(this.m_elVideo.textTracks[0].mode="disabled")})),e=!1)}}))}SetSubtitles(e){let t=null;for(let n=0;ne.strLanguage==r.language));e&&e.length>0&&e[0].rgRepresentations&&(t=e[0].rgRepresentations[0]),r.mode="showing"}else r.mode="disabled"}this.m_timedTextRepSelected=t}PlayWebRTC(e,t,n,r,i){}OnVisibilityChange(){"visible"===document.visibilityState&&(this.m_elVideo.src=this.m_strHLS)}Close(){if(this.m_bClosing=!0,this.m_listeners.Unregister(),this.m_bUseHLSManifest&&document.removeEventListener("visibilitychange",this.OnVisibilityChange),this.StopDownloads(),this.m_elVideo&&this.m_elVideo.pause(),this.m_mediaSource){try{"closed"!=this.m_mediaSource.readyState&&this.m_mediaSource.endOfStream()}catch(e){}this.m_mediaSource=null}this.m_bIsBuffering=!0,this.m_elVideo=null,this.m_strMPD="",this.m_mpd=null,this.m_bUseHLSManifest=!1,this.m_strVideoAdaptationID="",this.m_strAudioAdaptationID="",this.m_strGameAdaptationID="",this.m_nTrackBufferMS=0,this.m_nLimitFPS=0,this.m_nSeekingToTime=-1,this.m_nGameDataLastFramePTS=-1,this.m_bStatsViewVisible=!1,this.m_videoRepSelected=null,this.m_nAudioRepresentationIndex=0,this.m_stats&&this.m_stats.GetFPSMonitor().Close(),this.m_stats=null,this.m_bFirstPlay=!0}StopDownloads(){this.m_xhrUpdateMPD&&(this.m_xhrUpdateMPD.cancel(),this.m_xhrUpdateMPD=null),this.m_schUpdateMPD.Cancel(),this.m_schGameDataEventTrigger.Cancel(),this.m_schReportPlayerTrigger.Cancel(),this.m_schCaptureDisplayStatsTrigger.Cancel(),this.m_schFirstFrameThrottler.Cancel(),this.m_schBookmarkUpdater.Cancel(),this.m_elVideo&&1!=this.m_elVideo.playbackRate&&(this.m_elVideo.playbackRate=1);for(let e of this.m_rgLoaders)e.Close();this.m_bIsBuffering=!0}IsBuffering(){return this.m_bIsBuffering}IsLiveContent(){return!!this.m_mpd&&this.m_mpd.IsLiveContent()}DownloadMPD(){return(0,r.mG)(this,void 0,void 0,(function*(){if(this.m_xhrUpdateMPD)return(0,l.X)(!1,"Multiple MPD download requests"),null;let e=performance.now();for(;performance.now()-e<3e4;){let e=null;try{this.m_xhrUpdateMPD=o().CancelToken.source();const t=this.m_strMPD+(this.m_strCDNAuthURLParameters?this.m_strCDNAuthURLParameters:"");e=yield o().get(t,{cancelToken:this.m_xhrUpdateMPD.token})}catch(e){}if(this.m_xhrUpdateMPD=null,this.m_bClosing)return null;if(e&&200==e.status)return e;if(e&&410==e.status)return this.CloseWithError("playbackerror","Failed to download MPD: 410 Gone"),null;(0,_.yv)("Failed to download, will retry: "+this.m_strMPD),yield(0,h._R)(200)}return(0,_.yv)("Failed to download: "+this.m_strMPD),null}))}UpdateMPD(){return(0,r.mG)(this,void 0,void 0,(function*(){let e=yield this.DownloadMPD();e&&(this.m_mpd.BUpdate(e.data)?(this.CalcVideoStartRelativeToSystemClock(e.headers.date),this.m_stats.SetAnalyticLinks(this.m_mpd.GetStatsLink(),this.m_mpd.GetStalledLink(),this.m_mpd.GetEventLink()),this.m_mpd.GetMinimumUpdatePeriod()>0&&this.m_schUpdateMPD.Schedule(1e3*this.m_mpd.GetMinimumUpdatePeriod(),this.UpdateMPD)):this.CloseWithError("playbackerror","Failed to parse on Update the MPD file"))}))}CloseWithError(e,...t){this.Close(),(0,_.yv)(...t)}BCreateLoaders(){let e=this.m_mpd.GetPeriods();if(0==e.length)return!1;let t=e[0];this.m_strVideoAdaptationID="",this.m_strAudioAdaptationID="",this.m_strGameAdaptationID="";for(let e of t.rgAdaptationSets){let t=null;if(!this.m_strVideoAdaptationID&&e.bContainsVideo&&y(e)&&(t=e,this.m_strVideoAdaptationID=e.strID),!this.m_strAudioAdaptationID&&e.bContainsAudio&&y(e)&&(t=e,this.m_strAudioAdaptationID=e.strID),!this.m_strGameAdaptationID&&e.bContainsGame&&(t=e,this.m_strGameAdaptationID=e.strID),t){let e=new A(this,this.m_mpd,t,this.m_stats);this.m_rgLoaders.push(e)}}return this.m_strVideoAdaptationID.length>0}InitVideoControl(){let e=new MediaSource,t=URL.createObjectURL(e);this.m_elVideo.pause(),this.m_elVideo.srcObject=null,this.m_elVideo.src=t,this.m_mediaSource=e,this.m_listeners.AddEventListener(e,"sourceopen",this.OnMediaSourceOpen),this.m_listeners.AddEventListener(e,"sourceended",this.OnMediaSourceEnded),this.m_listeners.AddEventListener(e,"sourceclose",this.OnMediaSourceClose),this.m_listeners.AddEventListener(this.m_elVideo,"waiting",this.OnVideoWaiting),this.m_listeners.AddEventListener(this.m_elVideo,"error",this.OnVideoError),this.m_listeners.AddEventListener(this.m_elVideo,"canplay",this.OnVideoCanPlay),this.m_listeners.AddEventListener(this.m_elVideo,"pause",this.OnVideoPause),this.m_listeners.AddEventListener(this.m_elVideo,"resize",this.OnVideoResize),this.m_listeners.AddEventListener(this.m_elVideo,"valve-bufferupdate",this.OnVideoTimeUpdate),this.m_listeners.AddEventListener(this.m_elVideo,"timeupdate",this.OnVideoTimeUpdate),this.m_listeners.AddEventListener(this.m_elVideo,"play",this.OnPlayAction)}OnMediaSourceOpen(e){(0,_.yv)("OnMediaSourceOpen");for(let e of this.m_rgLoaders)e.SetMediaSource(this.m_mediaSource);this.BeginPlayback()}HandleMediaSourceError(e){this.m_bClosing||e.target!=this.m_mediaSource||this.StopDownloads()}OnMediaSourceEnded(e){(0,_.yv)("OnMediaSourceEnded",e),this.HandleMediaSourceError(e)}OnMediaSourceClose(e){(0,_.yv)("OnMediaSourceClose",e),this.HandleMediaSourceError(e)}OnVideoWaiting(e){if(!this.IsLiveContent()&&this.m_mpd&&this.m_mpd.GetEndTime()-this.GetCurrentPlayTime()<1)this.Pause();else if(!this.BIsPlayerBufferedBetween(this.m_elVideo.currentTime,this.m_elVideo.currentTime+.5)){if(this.m_elVideo&&this.m_elVideo.buffered.length>1){let e=this.m_elVideo.currentTime,t=this.m_elVideo.buffered;for(let n=0;n0&&0===this.m_hlsTimeOffset&&(this.m_hlsTimeOffset=this.GetBufferedLiveEdgeTime()-this.m_elVideo.currentTime),this.m_elVideo.currentTime+this.m_hlsTimeOffset):this.m_elVideo.currentTime}OnVideoTimeUpdate(){if(this.m_bUserLiveEdgeChoice&&this.IsLiveContent()){let e=this.GetBufferedLiveEdgeTime();if(1==this.m_elVideo.playbackRate&&this.m_elVideo.currentTime<=e-4.5&&this.BIsPlayerBufferedBetween(this.m_elVideo.currentTime,e)){let t=e-this.m_elVideo.currentTime;this.m_elVideo.playbackRate=1.1,(0,_.yv)("User is behind by "+t.toFixed(2)+" seconds, increasing playback speed to catch-up to live edge.")}else 1.1==this.m_elVideo.playbackRate&&this.m_elVideo.currentTime>=e-1&&(this.m_elVideo.playbackRate=1,(0,_.yv)("User is caught up, returning to normal playrate"))}}SetBookmarkAdapter(e){this.m_bookMarkAdapter=e}SendUpdateToBookmarkServiceIfNeeded(){if(this.m_bookMarkAdapter){let e=this.m_elVideo.currentTime,t=this.GetCurrentVideoAdaptation(),n=t&&t.strID?t.strID:null,r=this.GetCurrentAudioAdaptationfunction(),i=r&&r.strID?r.strID:null,o=this.GetCurrentTimedTextRepresentation(),a=o&&o.strID?o.strID:null;this.m_bookMarkAdapter.SetBookmark(e>=0?e:0,n,i,a),this.IsPaused()?this.m_schBookmarkUpdater.Cancel():this.m_schBookmarkUpdater.Schedule(6e4,this.SendUpdateToBookmarkServiceIfNeeded)}}GetCurrentTimedTextRepresentation(){return this.m_timedTextRepSelected}OnPlayAction(){this.SendUpdateToBookmarkServiceIfNeeded()}BIsPlayerBufferedBetween(e,t){return this.m_elVideo.buffered.length>0&&e>=this.m_elVideo.buffered.start(0)&&t<=this.m_elVideo.buffered.end(0)}GetLiveContentStartTime(){return this.m_mpd.GetAvailabilityStartTime()}GetTimeTextAdaptions(e){return this.m_mpd?this.m_mpd.GetTimedTextAdaptionSet(e):[]}GetAvailableVideoStartTime(){if(!this.m_mpd)return 0;let e=0;if(this.IsLiveContent()){let t=Math.floor(this.m_mpd.GetDurationSinceStarted()/1e3),n=this.GetBufferedLiveEdgeTime(),r=this.m_mpd.GetTimeShiftBufferDepth();e=u.Lh(t-r+10,0,n)}else e=this.m_mpd.GetStartTime();return e}GetBufferedLiveEdgeTime(){if(!this.m_mpd)return 0;let e=0;return e=this.IsLiveContent()?Math.floor((this.m_mpd.GetDurationSinceStarted()-this.m_nTrackBufferMS)/1e3):this.m_mpd.GetEndTime(),e}IsPaused(){return this.m_elVideo.paused}Play(){this.m_bUserPlayChoice=!0,!this.IsLiveContent()&&this.m_mpd&&this.m_mpd.GetEndTime()-this.GetCurrentPlayTime()<1?this.Seek(this.m_mpd.GetStartTime()):this.Seek(this.GetCurrentPlayTime())}Pause(){this.m_bUserLiveEdgeChoice=!1,1.1==this.m_elVideo.playbackRate&&(this.m_elVideo.playbackRate=1),this.m_bUserPlayChoice=!1,this.m_elVideo.pause()}GetPlaybackRate(){return this.m_elVideo.paused?0:this.m_elVideo.playbackRate}GetCDNAuthURLParameter(){return this.m_strCDNAuthURLParameters}OnSegmentDownloaded(e){(0,_.yv)(e.GetDebugName()+" OnSegmentDownloaded"),this.UpdateVideoRepresentation(this.m_videoRepSelected),this.OnVideoBufferProgress(),e==this.GetVideoLoader()&&this.m_stats.SetCurrentVideoBandwidth(e.GetAvgDownloadRate())}PlayOnElement(){let e=this.m_bFirstPlay;this.m_bFirstPlay=!1;let t=this.m_elVideo.play();t?t.then((()=>{this.m_stats.GetFPSMonitor().StartTracking((()=>this.m_stats.ExtractFrameInfo(this.m_elVideo)))})).catch((t=>{e&&this.DispatchEvent("valve-userinputneeded")})):this.m_stats.GetFPSMonitor().StartTracking((()=>this.m_stats.ExtractFrameInfo(this.m_elVideo)))}OnVideoBufferProgress(){if(!this.IsBuffering())return;let e=this.m_rgLoaders.length>0,t=-1!=this.m_nSeekingToTime?this.m_nSeekingToTime:0;for(let n of this.m_rgLoaders){if(!n.BHasEnoughBuffered(t)){e=!1;break}t=Math.max(t,n.GetBufferedStart())}e&&(this.m_bIsBuffering=!1,this.m_nSeekingToTime=-1,this.m_elVideo.currentTime!=t?this.m_elVideo.currentTime=t:this.m_elVideo.paused&&this.m_bUserPlayChoice&&this.PlayOnElement(),this.DispatchEvent("valve-bufferupdate"))}OnSegmentDownloadFailed(e,t){this.StopDownloads(),this.DispatchEvent("valve-downloadfailed",t)}OnSegmentDownloadGone(e){this.m_bIsBuffering&&e.GetNumConsecutiveDownloadGones()<=3?this.Seek(this.GetCurrentPlayTime()+I(this.GetCurrentVideoAdaptation())/1e3):((0,_.yv)("OnSegmentDownloadGone: too many consecutive 'gone', erroring the download: "+e.GetNumConsecutiveDownloadGones()),this.OnSegmentDownloadFailed(e,O.StreamGone))}GetCurrentAudioAdaptationfunction(){return this.m_mpd?this.m_mpd.GetAdaptationByTrackID(this.m_strAudioAdaptationID):null}GetCurrentVideoAdaptation(){return this.m_mpd?this.m_mpd.GetAdaptationByTrackID(this.m_strVideoAdaptationID):null}GetVideoLoader(){for(let e of this.m_rgLoaders)if(e.ContainsVideo())return e;return null}GetAudioLoader(){for(let e of this.m_rgLoaders)if(e.ContainsAudio())return e;return null}GetGameLoader(){for(let e of this.m_rgLoaders)if(e.ContainsGame())return e;return null}SetTrackBufferMS(e){this.m_nTrackBufferMS=e;for(let t of this.m_rgLoaders)t.SetBufferMS(e)}BeginPlayback(){let e=0;if(this.IsLiveContent()){let t=I(this.GetCurrentVideoAdaptation()),n=1e3*this.m_mpd.GetMinBufferTime(),r=Math.max(t,n);this.SetTrackBufferMS(r),e=this.GetBufferedLiveEdgeTime(),(0,_.yv)(`Begin playback of live content [this.buffer=${this.m_nTrackBufferMS}][nStartTime=${e}]`)}else this.SetTrackBufferMS(8e3),e=0,this.m_bookMarkAdapter&&(e=this.m_bookMarkAdapter.GetBeginPlaytime(),this.m_mpd.GetEndTime()-e<5&&(e=0)),(0,_.yv)(`Begin playback of non-live content [this.buffer=${this.m_nTrackBufferMS}][nStartTime=${e}]`);if((0,_.yv)("Starting playback at "+e),!this.m_bUseHLSManifest){let e=this.PickStartingVideoRepresentation();for(let t of this.m_rgLoaders)if(t.ContainsVideo()){t.ChangeRepresentation(e);let n=I(t.GetAdaptation());this.m_schFirstFrameThrottler.Schedule(n/2,this.VerifyFirstSegementDownloadProgress)}else if(t.ContainsAudio()||t.ContainsGame()){let e=t.GetAdaptation().rgRepresentations.length>0?t.GetAdaptation().rgRepresentations[0]:null;t.ChangeRepresentation(e)}}this.Seek(e),this.GetGameLoader()&&this.m_schGameDataEventTrigger.Schedule(500,this.GameDataEventTrigger)}VerifyFirstSegementDownloadProgress(){let e=this.GetVideoLoader();if(null===this.m_videoRepSelected&&e&&e.GetDownloadHistory().length<=1&&e.GetActiveDownloads()>0&&e.GetActiveDownloadProgress()<.55){let t=this.DetermineBestVideoRepresentation();t&&!e.BIsCurrentRepresentation(t)&&(e.ChangeRepresentation(t),e.ForceRestartDownload(),(0,_.yv)("Video download progressing too slowly, choosing "+t.nWidth+"x"+t.nHeight+"@"+t.nFrameRate+" instead"))}}PickStartingVideoRepresentation(){let e=this.GetVideoLoader();if(!e)return null;let t=e.GetAdaptation(),n=null;for(let r=e.GetRepresentationsCount()-1;r>=0;r--){let e=t.rgRepresentations[r],i=e.nFrameRate?e.nFrameRate:0;if(!(this.m_nLimitFPS>0&&i>this.m_nLimitFPS)&&(n=e,this.GetVideoPlayerHeight()<=e.nHeight))break}return n}DetermineBestVideoRepresentation(){let e=this.GetVideoLoader(),t=this.GetAudioLoader(),n=t&&t!=e?t.GetEstimatedAudioRate():0,r=this.GetAvgLoaderDownloadRate(),i=e.GetRepresentationsCount()-1,o=e.GetAdaptation().rgRepresentations[i];for(let t=i-1;t>=0;t--){let i=e.GetAdaptation().rgRepresentations[t],a=(i.nBandwidth+n)*this.m_elVideo.playbackRate*1.15;if(r30){let e=this.m_stats.GetFPSMonitor();if(e.BIsDroppingFrames()||e.BHasCurrentFPS()&&Math.ceil(e.GetCurrentFPS())<29){(0,_.yv)(`Video select: Skipping ${t} due to dropping frames and high FPS representation: [fps:${s}]`);continue}}if(this.m_nLimitFPS>0&&s>this.m_nLimitFPS){(0,_.yv)(`Video select: Skipping ${t} due to frame rate limit`);continue}let l=o.nHeight||0,c=i.nHeight||0,d=this.GetVideoPlayerHeight();if(d>0&&l>0){if(c>P(d))break}o=i}return o}UpdateVideoRepresentation(e){if(e&&this.m_videoRepSelected==e)return null;let t=this.GetVideoLoader();if(!t)return null;if(this.IsBuffering())return null;let n=this.DetermineBestVideoRepresentation();return this.m_videoRepSelected=null,t.ChangeRepresentation(n)}CanSeek(){return!0}SeekAndPlay(e){return this.m_bUserPlayChoice=!0,this.Seek(e)}Seek(e){if(!this.m_mpd)return 0;let t=this.GetAvailableVideoStartTime(),n=this.GetBufferedLiveEdgeTime();e=u.Lh(e,t,n),this.m_bUserLiveEdgeChoice=e>=n-L;let r=this.m_elVideo.paused;if(r||this.m_elVideo.pause(),this.m_bUseHLSManifest)this.m_elVideo.currentTime=e-this.m_hlsTimeOffset,this.m_elVideo.play();else{this.m_bIsBuffering=!0,this.m_nSeekingToTime=e;for(let t of this.m_rgLoaders)t.ContainsGame()&&(e=this.GetBufferedLiveEdgeTime()),t.Seek(e);this.DispatchEvent("valve-bufferupdate"),r&&this.OnVideoBufferProgress()}return e}JumpTime(e){return e+=this.GetCurrentPlayTime(),this.Seek(e)}GetVideoPlayerHeight(){return this.m_elVideo.clientHeight}GetAvgLoaderDownloadRate(){let e=0,t=0,n=[this.GetVideoLoader()];for(let r of n)r&&(e+=r.GetAvgDownloadRate(),t++);return 0==t?0:e/t}GameDataEventTrigger(){let e=this.GetGameLoader();if(!e)return;let t=e.GetGameDataFrames(),n=-1;if(n=t.length-1,n>=0){let r=t[n];r.pts!=this.m_nGameDataLastFramePTS&&(this.m_nGameDataLastFramePTS=r.pts,r.gamedata.appid=e.GetLatestGameDataFrameAppID(),this.DispatchEvent("valve-gamedataupdate",r))}this.m_schGameDataEventTrigger.Schedule(500,this.GameDataEventTrigger)}DispatchEvent(e,t=null){let n=new CustomEvent(e,{cancelable:!0,bubbles:!0,detail:t});this.m_elVideo.dispatchEvent(n)}IsMuted(){return this.m_elVideo.muted}SetMuted(e){this.m_elVideo.muted=e}SetVolume(e){e=u.Lh(e,0,1),this.m_elVideo.volume=e}GetVolume(){return this.m_elVideo.volume}GetDASHPlayerStats(){return this.m_stats}ReportPlayerStats(){this.m_stats.ReportPlayerStats(this.m_rgLoaders,this.m_elVideo),this.m_schReportPlayerTrigger.Schedule(3e5,this.ReportPlayerStats)}SetStatsViewIsVisible(e){e&&!this.m_bStatsViewVisible?(this.CaptureStatsForDisplay(),this.m_schCaptureDisplayStatsTrigger.Schedule(250,this.CaptureStatsForDisplay)):!e&&this.m_bStatsViewVisible&&this.m_schCaptureDisplayStatsTrigger.Cancel(),this.m_bStatsViewVisible=e}CaptureStatsForDisplay(){this.m_stats.SetHTMLVideoPlayerDisplay(this.m_elVideo.videoWidth,this.m_elVideo.videoHeight,this.m_elVideo.clientWidth,this.m_elVideo.clientHeight),this.m_stats.CaptureFrequentlyUpdatingInformation(this.m_elVideo,this.m_rgLoaders),this.m_schCaptureDisplayStatsTrigger.Schedule(250,this.CaptureStatsForDisplay)}GetVideoRepresentations(){let e=[];if(e.push({id:B,displayName:"Auto",selected:null===this.m_videoRepSelected}),this.m_bUseHLSManifest)return e;let t=this.GetCurrentVideoAdaptation();if(t)for(let n of t.rgRepresentations){let t=this.m_videoRepSelected&&this.m_videoRepSelected.strID==n.strID,r=n.nFrameRate;r>50&&n.nFrameRate<70?r=60:r>25&&r<35&&(r=30);let i=`${n.nWidth}x${n.nHeight} @ ${r}fps`;e.push({id:n.strID,displayName:i,selected:t,width:n.nWidth,fps:r})}return e.sort(((e,t)=>e.width===t.width?t.fps-e.fps:t.width-e.width)),e}SetVideoRepresentation(e){let t=!0,n=this.GetVideoLoader();if(e&&e.id!=B){let r=n.GetRepresentationByID(e.id);r&&(t=!1,null!==this.m_videoRepSelected&&this.m_videoRepSelected.strID==r.strID||(this.m_videoRepSelected=r,n.ChangeRepresentation(r),this.Seek(this.GetCurrentPlayTime())))}t&&(this.m_videoRepSelected=null)}GetThumbnailForTimestamp(e){try{const t=this.m_mpd.GetPeriods()[0].rgAdaptationSets[0].segmentTemplate.nDuration/1e3,n=e-e%(t*10),r=Math.floor(n/t)+1;let i=this.m_mpd.GetPeriods()[0].rgAdaptationSets[0].segmentTemplate.strMedia;return i=i.replace("/video/","/scrollthumb/"),i=i.replace("$RepresentationID$","1"),i=i.replace("$Number$",r.toString()),i}catch(e){return""}}}function P(e){return e<360?480:e<480?720:4320}(0,r.gn)([m.a],F.prototype,"OnVisibilityChange",null),(0,r.gn)([m.a],F.prototype,"UpdateMPD",null),(0,r.gn)([m.a],F.prototype,"OnMediaSourceOpen",null),(0,r.gn)([m.a],F.prototype,"HandleMediaSourceError",null),(0,r.gn)([m.a],F.prototype,"OnMediaSourceEnded",null),(0,r.gn)([m.a],F.prototype,"OnMediaSourceClose",null),(0,r.gn)([m.a],F.prototype,"OnVideoWaiting",null),(0,r.gn)([m.a],F.prototype,"OnVideoPause",null),(0,r.gn)([m.a],F.prototype,"OnVideoResize",null),(0,r.gn)([m.a],F.prototype,"OnDebugPrintEventInfoAndAvailableBuffer",null),(0,r.gn)([m.a],F.prototype,"OnVideoError",null),(0,r.gn)([m.a],F.prototype,"OnVideoCanPlay",null),(0,r.gn)([m.a],F.prototype,"GetCurrentPlayTime",null),(0,r.gn)([m.a],F.prototype,"OnVideoTimeUpdate",null),(0,r.gn)([m.a],F.prototype,"SendUpdateToBookmarkServiceIfNeeded",null),(0,r.gn)([m.a],F.prototype,"OnPlayAction",null),(0,r.gn)([m.a],F.prototype,"GetPlaybackRate",null),(0,r.gn)([m.a],F.prototype,"GetCDNAuthURLParameter",null),(0,r.gn)([m.a],F.prototype,"OnSegmentDownloaded",null),(0,r.gn)([m.a],F.prototype,"PlayOnElement",null),(0,r.gn)([m.a],F.prototype,"OnSegmentDownloadFailed",null),(0,r.gn)([m.a],F.prototype,"OnSegmentDownloadGone",null),(0,r.gn)([m.a],F.prototype,"VerifyFirstSegementDownloadProgress",null),(0,r.gn)([m.a],F.prototype,"GameDataEventTrigger",null),(0,r.gn)([m.a],F.prototype,"ReportPlayerStats",null),(0,r.gn)([a.aD.bound],F.prototype,"CaptureStatsForDisplay",null)},56189:(e,t,n)=>{"use strict";n.d(t,{vf:()=>f});var r=n(33940),i=n(50265),o=n(52868),a=n.n(o),s=n(47165),l=n(80525),c=n(32765),d=n(85246),u=n(14826),m=n(88443);const h=1e6;class p{constructor(){this.playback_speed=1}}class _ extends p{}class g extends p{}class f{constructor(){this.m_steamIDBroadcast="",this.m_steamIDViewer="",this.m_broadcastID="",this.m_ulViewerToken="",this.m_strCDNAuthUrlParameters=void 0,this.m_host="",this.m_strBroadcastOrigin="",this.m_strStatsLink="",this.m_strStalledLink="",this.m_strEventLogLink="",this.m_allTimeSnapshot=new v(0),this.m_rgSnapShots=new Array(new v(0)),this.m_videoResolution=0,this.m_audioRate=0,this.m_audioChannel=0,this.m_frameRate=0,this.m_strBufferingVideoResolution="0x0@0",this.m_nPlaybackVideoResolution=0,this.m_strPlaybackVideoResolution="0x0",this.m_htmlVideoResolution=0,this.m_strHtmlVideoDisplay="",this.m_nAudioBandwidth=0,this.m_nVideoBandwidth=0,this.m_nBandwidthRequired=0,this.m_nCurBandwidthVideo=0,this.m_nAudioBufferedMS=0,this.m_nVideoBufferedMS=0,this.m_nActiveDownloads=0,this.m_nVideoDownloadProgress=0,this.m_videoBufferedRanges=null,this.m_audioBufferedRanges=null,this.m_nSegmentDurationMS=0,this.m_nPlaybackRate=0,this.m_nTimeToFirstFrameMS=-1,this.m_fpsMonitor=new S}GetBytesReceivedToDisplay(){return(0,m.l)(this.m_allTimeSnapshot.m_nBytesReceived,1)}GetBufferingResolutionToDisplay(){return this.m_strBufferingVideoResolution}GetPlaybackResolutionToDisplay(){return this.m_strPlaybackVideoResolution}GetHTMLVideoResolutionToDisplay(){return this.m_strHtmlVideoDisplay}GetDroppedFramesToDisplay(){return this.m_allTimeSnapshot.m_nFramesDropped+"/"+this.m_allTimeSnapshot.m_nFramesDecoded}GetStalledEventsToDisplay(){return String(this.m_allTimeSnapshot.m_nStallEvents)}GetFailedDownloadsToDisplay(){return String(this.m_allTimeSnapshot.m_nFailedSegments)}GetNumBufferedVideoRanges(){return this.m_videoBufferedRanges?this.m_videoBufferedRanges.length:0}GetNumBufferedAudioRanges(){return this.m_audioBufferedRanges?this.m_audioBufferedRanges.length:0}GetBufferedVideoSegmentForDisplay(e){return this.m_videoBufferedRanges&&e0}GetBandwidthRequiredToDisplay(){return(this.m_nBandwidthRequired/h).toFixed(3)}GetBandwithVideoToDisplay(){return(this.m_nCurBandwidthVideo/h).toFixed(3)}GetContentServerToDisplay(){return this.m_host}GetVideoBufferedToDisplay(){return(this.m_nVideoBufferedMS/1e3).toFixed(3)}GetAudioBufferedToDisplay(){return(this.m_nAudioBufferedMS/1e3).toFixed(3)}GetActiveDownloadsToDisplay(){return String(this.m_nActiveDownloads)}GetVideoDownloadProgressToDisplay(){return this.m_nVideoDownloadProgress?String(Math.round(100*this.m_nVideoDownloadProgress))+"%":"100%"}GetTimeToFirstFrameToDisplay(){return-1==this.m_nTimeToFirstFrameMS?"Unknown":String(this.m_nTimeToFirstFrameMS)}GetPersistentFrameDropsForDisplay(){return String(this.m_fpsMonitor.BIsDroppingFrames())}GetCurrentFPSForDisplay(){return this.m_fpsMonitor.BHasCurrentFPS()?this.m_fpsMonitor.GetCurrentFPS().toFixed(1):(0,u.Xx)("#DASHPlayerStats_Tracking")}GetPlaybackRateForDisplay(){return this.m_nPlaybackRate.toFixed(1)+"x"}GetFPSMonitor(){return this.m_fpsMonitor}SetHTMLVideoPlayerDisplay(e,t,n,r){this.m_htmlVideoResolution!=r&&(this.m_htmlVideoResolution=r,this.m_strHtmlVideoDisplay=n+"x"+r),this.m_nPlaybackVideoResolution!=t&&(this.m_nPlaybackVideoResolution=t,this.m_strPlaybackVideoResolution=e+"x"+t)}SetVideoPlaybackResolution(e,t,n){0==this.m_videoResolution&&(this.m_allTimeSnapshot.m_nInitialVideoResolution=t,this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nInitialVideoResolution=t),this.m_strBufferingVideoResolution=e+"x"+t+"@"+n,this.m_videoResolution=t,this.m_frameRate=n}SetRepresentation(e){e&&(e.nAudioSamplingRate?(this.m_audioRate=Math.round(e.nBandwidth/1e3),this.m_audioChannel=e.nAudioChannels,this.m_nAudioBandwidth=e.nBandwidth):e.nFrameRate&&(this.SetVideoPlaybackResolution(e.nWidth,e.nHeight,e.nFrameRate),this.m_nVideoBandwidth=e.nBandwidth),this.m_nBandwidthRequired=this.m_nAudioBandwidth+this.m_nVideoBandwidth)}SetCurrentVideoBandwidth(e){this.m_nCurBandwidthVideo=e}SetSegmentDurationMS(e){this.m_nSegmentDurationMS=e}SetBroadcasterAndViewerInfo(e,t,n,r,i){this.m_steamIDBroadcast=e,this.m_steamIDViewer=t,this.m_broadcastID=n,this.m_ulViewerToken=r,this.m_strCDNAuthUrlParameters=i}SetAnalyticLinks(e,t,n){this.m_strStatsLink=e,this.m_strStalledLink=t,this.m_strEventLogLink=n}SetVideoInitializationURL(e){let t=new URL(e);this.m_host=t.hostname,this.m_strBroadcastOrigin=t.searchParams.get("broadcast_origin")||"";let n=this.m_strBroadcastOrigin.indexOf(":");-1!==n&&(this.m_strBroadcastOrigin=this.m_strBroadcastOrigin.substr(0,n))}SetAudioRate(e){this.m_audioRate=e}CaptureFrequentlyUpdatingInformation(e,t){let n=this.ExtractFrameInfo(e);this.LogFrameInfo(n),this.LogBufferDuration(t,e)}LogDownload(e,t){this.m_allTimeSnapshot.SegmentReceived(e,t),this.m_rgSnapShots[this.m_rgSnapShots.length-1].SegmentReceived(e,t)}LogSegmentDownloadFailure(e,t){this.m_allTimeSnapshot.m_nFailedSegments+=1,this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nFailedSegments+=1,this.m_allTimeSnapshot.m_nLastSegementDownloadStatus=t,this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nLastSegementDownloadStatus=t,this.LogDownload(0,e)}LogVideoError(e){}LogVideoOnCanPlay(e){-1===this.m_nTimeToFirstFrameMS&&(this.m_nTimeToFirstFrameMS=Date.now()-this.m_allTimeSnapshot.m_timeMS)}LogErrorEvent(e,t){}ReportVideoStalled(e,t){if(0==this.m_strStalledLink.length)return;let n=this.FindBehindSegmentLoader(e,t);if(!n)return void(0,l.yv)("DASHStats: Did not find any audio or video loaders");this.m_allTimeSnapshot.m_nStallEvents+=1,this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nStallEvents+=1;let r=new g;this.GatherCommonStats(r,t,n.GetBandwidthRequired(),n.GetAvgDownloadRate()),r.last_segment_response=this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nLastSegementDownloadStatus,r.audio_stalled=n.ContainsAudio(),this.CaptureActiveDownloads(e),r.active_downloads=this.m_nActiveDownloads,r.vid_down_progress=this.m_nVideoDownloadProgress;let i=n.GetDownloadHistory(),o=0;for(let e=i.length-1;e>=0&&o<3;--e)++o,r["segment"+o+"_bytes"]=i[e].cubData,r["segment"+o+"_time"]=Math.round(i[e].nDownloadMS)/1e3;this.SendReportToServer(r,this.m_strStalledLink)}FindBehindSegmentLoader(e,t){let n=!1,r=!1,i=t.currentTime,o=null,a=null;for(let t of e)a=t.ContainsAudio()?t:a,o=t.ContainsVideo()?t:a,t.BHasEnoughBuffered(i)&&(r=r||t.ContainsAudio(),n=n||t.ContainsVideo());return r=r||null==a,!n||n&&r?o:a}ExtractFrameInfo(e){let t=0,n=0;if(e.getVideoPlaybackQuality)try{let r=e.getVideoPlaybackQuality();n=r.totalVideoFrames,t=r.droppedVideoFrames}catch(e){(0,l.yv)("Browser does not support HTMLVideoElement.getVideoPlaybackQuality()",e.message)}else e.webkitDecodedFrames?(n=e.webkitDecodedFrames,t=e.webkitDroppedFrames):e.webkitDecodedFrameCount&&(n=e.webkitDecodedFrameCount,t=e.webkitDroppedFrameCount);return{framesDecoded:n,framesDropped:t}}LogFrameInfo(e){this.m_allTimeSnapshot.m_nFramesDecoded=e.framesDecoded,this.m_allTimeSnapshot.m_nFramesDropped=e.framesDropped;let t=this.m_rgSnapShots[this.m_rgSnapShots.length-1];if(1==this.m_rgSnapShots.length)t.m_nFramesDecoded=e.framesDecoded,t.m_nFramesDropped=e.framesDropped;else{let n=this.m_rgSnapShots[this.m_rgSnapShots.length-2];t.m_nFramesDecoded=e.framesDecoded-n.m_nFramesDecoded,t.m_nFramesDropped=e.framesDropped-n.m_nFramesDropped}}LogBufferDuration(e,t){this.m_nActiveDownloads=0;for(let n of e)n.ContainsAudio()?(this.m_nAudioBufferedMS=n.GetAmountBufferedMS(t.currentTime),this.m_audioBufferedRanges=n.GetSourceBufferTimeRanges()):n.ContainsVideo()&&(this.m_nVideoBufferedMS=n.GetAmountBufferedMS(t.currentTime),this.m_videoBufferedRanges=n.GetSourceBufferTimeRanges()),this.m_nActiveDownloads+=n.GetActiveDownloads(),n.ContainsVideo()&&(this.m_nVideoDownloadProgress=n.GetActiveDownloadProgress());this.m_nPlaybackRate=t.playbackRate}CaptureActiveDownloads(e){this.m_nActiveDownloads=0;for(let t of e)this.m_nActiveDownloads+=t.GetActiveDownloads(),t.ContainsVideo()&&(this.m_nVideoDownloadProgress=t.GetActiveDownloadProgress())}ReportPlayerStats(e,t){if(0==this.m_strStatsLink.length)return;let n=this.ExtractFrameInfo(t);if(n.framesDecoded==this.m_allTimeSnapshot.m_nFramesDecoded&&0==this.m_rgSnapShots[this.m_rgSnapShots.length-1].m_nBytesReceived)return void this.CreateNewEmptySnapshot(t.videoHeight);this.LogFrameInfo(n),this.LogBufferDuration(e,t);let r=new _,i=this.m_rgSnapShots[this.m_rgSnapShots.length-1];r.frames_decoded=i.m_nFramesDecoded,r.frames_dropped=i.m_nFramesDropped,r.bytes_received=i.m_nBytesReceived,r.seconds_delta=Math.round((Date.now()-i.m_timeMS)/1e3),r.failed_segments=i.m_nFailedSegments,r.bw_min=i.m_nBandwidthMin,r.bw_max=i.m_nBandwidthMax,r.audio_buffer=Math.round(this.m_nAudioBufferedMS/1e3),r.video_buffer=Math.round(this.m_nVideoBufferedMS/1e3),r.seg_time_avg=Math.round(i.GetAverageDownloadTime())/1e3,r.seg_time_min=Math.round(i.m_nSegmentDownloadTimeMinMS)/1e3,r.seg_time_max=Math.round(i.m_nSegmentDownloadTimeMaxMS)/1e3,r.initial_vid_res=i.m_nInitialVideoResolution,r.ttff=this.m_nTimeToFirstFrameMS,r.seg_duration=this.m_nSegmentDurationMS,this.GatherCommonStats(r,t,this.m_nBandwidthRequired,i.GetAverageBandwidth()),this.CreateNewEmptySnapshot(t.videoHeight),this.SendReportToServer(r,this.m_strStatsLink)}SendReportToServer(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){let n=new URL(t),r=new FormData;for(let t of Object.keys(e))r.append(t,e[t]);r.append("l",n.searchParams.get("l")),r.append("e",n.searchParams.get("e")),r.append("h",n.searchParams.get("h")),(0,l.yv)("CDASHStats Sending Report to Server",e),a().post(t,r).catch((e=>{(0,l.yv)("Failed to upload stats: ",e)}))}))}CreateNewEmptySnapshot(e){this.m_rgSnapShots.length>=5&&this.m_rgSnapShots.shift(),this.m_rgSnapShots.push(new v(e))}GatherCommonStats(e,t,n,r){e.steamid=this.m_steamIDViewer,e.host=this.m_host,e.playback_position=Math.round(t.currentTime),e.video_res=this.m_videoResolution,e.audio_rate=this.m_audioRate,e.audio_ch=this.m_audioChannel,e.bw_required=n,e.bw_avg=Math.round(r),e.broadcast_accountid=this.m_steamIDBroadcast?new s.K(this.m_steamIDBroadcast).GetAccountID():0,e.useragent=window.navigator.userAgent,e.sessionid=c.De.SESSIONID,e.broadcast_origin=this.m_strBroadcastOrigin}}(0,r.gn)([i.LO],f.prototype,"m_allTimeSnapshot",void 0),(0,r.gn)([i.LO],f.prototype,"m_strBufferingVideoResolution",void 0),(0,r.gn)([i.LO],f.prototype,"m_strPlaybackVideoResolution",void 0),(0,r.gn)([i.LO],f.prototype,"m_strHtmlVideoDisplay",void 0),(0,r.gn)([i.LO],f.prototype,"m_nBandwidthRequired",void 0),(0,r.gn)([i.LO],f.prototype,"m_nCurBandwidthVideo",void 0),(0,r.gn)([i.LO],f.prototype,"m_nAudioBufferedMS",void 0),(0,r.gn)([i.LO],f.prototype,"m_nVideoBufferedMS",void 0),(0,r.gn)([i.LO],f.prototype,"m_nActiveDownloads",void 0),(0,r.gn)([i.LO],f.prototype,"m_nVideoDownloadProgress",void 0),(0,r.gn)([i.LO],f.prototype,"m_videoBufferedRanges",void 0),(0,r.gn)([i.LO],f.prototype,"m_audioBufferedRanges",void 0),(0,r.gn)([i.LO],f.prototype,"m_nPlaybackRate",void 0),(0,r.gn)([i.aD],f.prototype,"SetVideoPlaybackResolution",null),(0,r.gn)([i.aD],f.prototype,"SetRepresentation",null),(0,r.gn)([i.aD],f.prototype,"SetCurrentVideoBandwidth",null),(0,r.gn)([i.aD],f.prototype,"CaptureFrequentlyUpdatingInformation",null),(0,r.gn)([i.aD],f.prototype,"LogDownload",null),(0,r.gn)([i.aD],f.prototype,"LogSegmentDownloadFailure",null),(0,r.gn)([i.aD],f.prototype,"LogFrameInfo",null),(0,r.gn)([i.aD],f.prototype,"LogBufferDuration",null);class v{constructor(e){this.m_timeMS=Date.now(),this.m_nBytesReceived=0,this.m_nInitialVideoResolution=0,this.m_nFailedSegments=0,this.m_nStallEvents=0,this.m_nEntries=0,this.m_nSegmentDownloadTimeTotalMS=0,this.m_nSegmentDownloadTimeMaxMS=0,this.m_nSegmentDownloadTimeMinMS=0,this.m_nBandwidthTotal=0,this.m_nBandwidthMin=0,this.m_nBandwidthMax=0,this.m_nLastSegementDownloadStatus=200,this.m_nFramesDecoded=0,this.m_nFramesDropped=0,this.m_nInitialVideoResolution=e}GetAverageBandwidth(){return this.m_nBandwidthTotal/Math.max(1,this.m_nEntries)}GetAverageDownloadTime(){return this.m_nSegmentDownloadTimeTotalMS/Math.max(1,this.m_nEntries)}GetAverageBandwidthFromTwo(e){return(e.m_nBandwidthTotal+this.m_nBandwidthTotal)/Math.max(1,e.m_nEntries+this.m_nEntries)}GetAverageDownloadTimeFromTwo(e){return(e.m_nSegmentDownloadTimeTotalMS+this.m_nSegmentDownloadTimeTotalMS)/Math.max(1,e.m_nEntries+this.m_nEntries)}SegmentReceived(e,t){if(this.m_nBytesReceived+=e,e<1024)return;let n=Math.round(8*e*1e3/Math.max(t,1));0==this.m_nEntries?(this.m_nSegmentDownloadTimeMinMS=t,this.m_nBandwidthMin=n):(this.m_nSegmentDownloadTimeMinMS=Math.min(t,this.m_nSegmentDownloadTimeMinMS),this.m_nBandwidthMin=Math.min(n,this.m_nBandwidthMin)),this.m_nBandwidthMax=Math.max(n,this.m_nBandwidthMax),this.m_nSegmentDownloadTimeMaxMS=Math.max(t,this.m_nSegmentDownloadTimeMaxMS),this.m_nBandwidthTotal+=n,this.m_nSegmentDownloadTimeTotalMS+=t,this.m_nEntries+=1}}(0,r.gn)([i.LO],v.prototype,"m_nBytesReceived",void 0),(0,r.gn)([i.LO],v.prototype,"m_nFailedSegments",void 0),(0,r.gn)([i.LO],v.prototype,"m_nStallEvents",void 0),(0,r.gn)([i.LO],v.prototype,"m_nSegmentDownloadTimeMaxMS",void 0),(0,r.gn)([i.LO],v.prototype,"m_nSegmentDownloadTimeMinMS",void 0),(0,r.gn)([i.LO],v.prototype,"m_nBandwidthMin",void 0),(0,r.gn)([i.LO],v.prototype,"m_nBandwidthMax",void 0),(0,r.gn)([i.LO],v.prototype,"m_nFramesDecoded",void 0),(0,r.gn)([i.LO],v.prototype,"m_nFramesDropped",void 0),(0,r.gn)([i.aD],v.prototype,"SegmentReceived",null);class C{reset(e,t){this.bDropReading=e,this.nTotalDecodedFrames=t}}class S{constructor(){this.k_nTestFrequencyMS=1e3,this.k_nSlidingWindow=6,this.k_nDroppedFramesThreshold=1,this.k_nFailThreshold=3,this.k_nIgnoreReadingAroundResizeMS=2e3,this.m_schTracker=new d.Ar,this.m_rgResultsWindow=[],this.m_nLastResizeMS=0,this.m_bDroppingFrameDetected=!1,this.m_nCurrentFPS=0}StartTracking(e){this.m_schTracker.Schedule(this.k_nTestFrequencyMS,this.TakeReading),this.m_fnRequestDecoded=e,this.m_lastFrameInfo=this.m_fnRequestDecoded(),this.m_bDroppingFrameDetected=!1}BHasCurrentFPS(){return 0!=this.m_nCurrentFPS}GetCurrentFPS(){return this.m_nCurrentFPS}BIsDroppingFrames(){return this.m_bDroppingFrameDetected}SetWindowResized(){this.m_nLastResizeMS=Date.now()}BIsInResizeTimeWindow(){return this.m_nLastResizeMS&&Date.now()-this.m_nLastResizeMS0&&t.framesDropped-this.m_lastFrameInfo.framesDropped>this.k_nDroppedFramesThreshold),this.AppendReading(e,t.framesDecoded),this.m_bDroppingFrameDetected=this.ComputeDroppingFrames(),this.m_nCurrentFPS=t.framesDecoded-this.m_lastFrameInfo.framesDecoded-(t.framesDropped-this.m_lastFrameInfo.framesDropped),this.m_lastFrameInfo=t}ComputeDroppingFrames(){return this.m_rgResultsWindow.length==this.k_nSlidingWindow&&this.m_rgResultsWindow.filter((e=>e.bDropReading)).length>=this.k_nFailThreshold}AppendReading(e,t){let n;n=this.m_rgResultsWindow.length>=this.k_nSlidingWindow?this.m_rgResultsWindow.shift():new C,n.reset(e,t),this.m_rgResultsWindow.push(n)}}(0,r.gn)([i.LO],S.prototype,"m_bDroppingFrameDetected",void 0),(0,r.gn)([i.LO],S.prototype,"m_nCurrentFPS",void 0),(0,r.gn)([i.aD.bound],S.prototype,"TakeReading",null)},46132:(e,t,n)=>{"use strict";function r(e){return 3==e||6==e}function i(e){return 5==e||6==e}n.d(t,{De:()=>m,MR:()=>h,QS:()=>o,YO:()=>a,Z3:()=>s,dt:()=>l,eV:()=>c,fk:()=>i,gg:()=>E,jM:()=>u,j_:()=>d,my:()=>r});const o=1,a=4;const s="18446744073709551615";function l(e,t="en"){switch(e){case 0:return"en";case 1:return"de";case 2:return"fr";case 3:return"it";case 4:return"ko";case 5:return"es";case 6:return"zh-cn";case 7:return"zh-tw";case 8:return"ru";case 9:return"th";case 10:return"ja";case 11:return"pt";case 12:return"pl";case 13:return"da";case 14:return"nl";case 15:return"fi";case 16:return"no";case 17:return"sv";case 18:return"hu";case 19:return"cs";case 20:return"ro";case 21:return"tr";case 25:return"ar";case 22:return"pt-br";case 23:return"bg";case 24:return"el";case 26:return"uk";case 27:return"es-419";case 28:return"vi";case 29:return"sc-sc";default:return t}}const c=e=>"koreana"===e?"korean":e;function d(e,t=""){switch(e){case 0:return"english";case 1:return"german";case 2:return"french";case 3:return"italian";case 4:return"koreana";case 5:return"spanish";case 6:return"schinese";case 7:return"tchinese";case 8:return"russian";case 9:return"thai";case 10:return"japanese";case 11:return"portuguese";case 12:return"polish";case 13:return"danish";case 14:return"dutch";case 15:return"finnish";case 16:return"norwegian";case 17:return"swedish";case 18:return"hungarian";case 19:return"czech";case 20:return"romanian";case 21:return"turkish";case 25:return"arabic";case 22:return"brazilian";case 23:return"bulgarian";case 24:return"greek";case 26:return"ukrainian";case 27:return"latam";case 28:return"vietnamese";case 29:return"sc_schinese";default:return t}}function u(e,t=0){switch(e){case"english":return 0;case"german":return 1;case"french":return 2;case"italian":return 3;case"korean":case"koreana":return 4;case"spanish":return 5;case"schinese":return 6;case"tchinese":return 7;case"russian":return 8;case"thai":return 9;case"japanese":return 10;case"portuguese":return 11;case"polish":return 12;case"danish":return 13;case"dutch":return 14;case"finnish":return 15;case"norwegian":return 16;case"swedish":return 17;case"hungarian":return 18;case"czech":return 19;case"romanian":return 20;case"turkish":return 21;case"arabic":return 25;case"brazilian":return 22;case"bulgarian":return 23;case"greek":return 24;case"ukrainian":return 26;case"latam":return 27;case"vietnamese":return 28;case"sc_schinese":return 29;default:return t}}const m=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,34,35];function h(e){switch(e){case 0:default:return"default";case 1:return"pw_dota2";case 2:return"nexon_dota2";case 3:return"steamcmd";case 4:return"pw_csgo";case 5:return"clientui";case 6:return"steamhdl";case 7:return"steamchina";case 8:return"singleapp";case 9:return"gameserver"}}var p,_,g,f,v,C,S,E,D,b,w,y,I,R,M;!function(e){e[e.k_EConnectivityTestResult_Unknown=0]="k_EConnectivityTestResult_Unknown",e[e.k_EConnectivityTestResult_Connected=1]="k_EConnectivityTestResult_Connected",e[e.k_EConnectivityTestResult_CaptivePortal=2]="k_EConnectivityTestResult_CaptivePortal",e[e.k_EConnectivityTestResult_TimedOut=3]="k_EConnectivityTestResult_TimedOut",e[e.k_EConnectivityTestResult_Failed=4]="k_EConnectivityTestResult_Failed",e[e.k_EConnectivityTestResult_WifiDisabled=5]="k_EConnectivityTestResult_WifiDisabled",e[e.k_EConnectivityTestResult_NoLAN=6]="k_EConnectivityTestResult_NoLAN"}(p||(p={})),function(e){e[e.k_ENetFakeLocalSystemState_Normal=0]="k_ENetFakeLocalSystemState_Normal",e[e.k_ENetFakeLocalSystemState_NoLAN=1]="k_ENetFakeLocalSystemState_NoLAN",e[e.k_ENetFakeLocalSystemState_CaptivePortal_Redirected=2]="k_ENetFakeLocalSystemState_CaptivePortal_Redirected",e[e.k_ENetFakeLocalSystemState_CaptivePortal_InPlace=3]="k_ENetFakeLocalSystemState_CaptivePortal_InPlace",e[e.k_ENetFakeLocalSystemState_NoInternet=4]="k_ENetFakeLocalSystemState_NoInternet",e[e.k_ENetFakeLocalSystemState_NoSteam=5]="k_ENetFakeLocalSystemState_NoSteam"}(_||(_={})),function(e){e[e.k_ESuspendResumeProgressState_Invalid=0]="k_ESuspendResumeProgressState_Invalid",e[e.k_ESuspendResumeProgressState_Complete=1]="k_ESuspendResumeProgressState_Complete",e[e.k_ESuspendResumeProgressState_CloudSync=2]="k_ESuspendResumeProgressState_CloudSync",e[e.k_ESuspendResumeProgressState_LoggingIn=3]="k_ESuspendResumeProgressState_LoggingIn",e[e.k_ESuspendResumeProgressState_WaitingForApp=4]="k_ESuspendResumeProgressState_WaitingForApp",e[e.k_ESuspendResumeProgressState_Working=5]="k_ESuspendResumeProgressState_Working"}(g||(g={})),function(e){e[e.k_EFloatingGamepadTextInputModeModeSingleLine=0]="k_EFloatingGamepadTextInputModeModeSingleLine",e[e.k_EFloatingGamepadTextInputModeModeMultipleLines=1]="k_EFloatingGamepadTextInputModeModeMultipleLines",e[e.k_EFloatingGamepadTextInputModeModeEmail=2]="k_EFloatingGamepadTextInputModeModeEmail",e[e.k_EFloatingGamepadTextInputModeModeNumeric=3]="k_EFloatingGamepadTextInputModeModeNumeric"}(f||(f={})),function(e){e[e.k_EAppUpdateContentType_Content=0]="k_EAppUpdateContentType_Content",e[e.k_EAppUpdateContentType_Workshop=1]="k_EAppUpdateContentType_Workshop",e[e.k_EAppUpdateContentType_Shader=2]="k_EAppUpdateContentType_Shader",e[e.k_EAppUpdateContentType_Max=3]="k_EAppUpdateContentType_Max"}(v||(v={})),function(e){e[e.k_EOverlayToStoreFlag_None=0]="k_EOverlayToStoreFlag_None",e[e.k_EOverlayToStoreFlag_AddToCart=1]="k_EOverlayToStoreFlag_AddToCart",e[e.k_EOverlayToStoreFlag_AddToCartAndShow=2]="k_EOverlayToStoreFlag_AddToCartAndShow"}(C||(C={})),function(e){e[e.k_EActivateGameOverlayToWebPageMode_Default=0]="k_EActivateGameOverlayToWebPageMode_Default",e[e.k_EActivateGameOverlayToWebPageMode_Modal=1]="k_EActivateGameOverlayToWebPageMode_Modal"}(S||(S={})),function(e){e[e.k_EGamingDeviceType_Unknown=0]="k_EGamingDeviceType_Unknown",e[e.k_EGamingDeviceType_StandardPC=1]="k_EGamingDeviceType_StandardPC",e[e.k_EGamingDeviceType_Console=256]="k_EGamingDeviceType_Console",e[e.k_EGamingDeviceType_PS3=272]="k_EGamingDeviceType_PS3",e[e.k_EGamingDeviceType_Steambox=288]="k_EGamingDeviceType_Steambox",e[e.k_EGamingDeviceType_Handheld=512]="k_EGamingDeviceType_Handheld",e[e.k_EGamingDeviceType_Phone=528]="k_EGamingDeviceType_Phone",e[e.k_EGamingDeviceType_SteamDeck=544]="k_EGamingDeviceType_SteamDeck"}(E||(E={})),function(e){e[e.k_ELoginUIStyleOld=0]="k_ELoginUIStyleOld",e[e.k_ELoginUIStyleNewWithoutQRCode=1]="k_ELoginUIStyleNewWithoutQRCode",e[e.k_ELoginUIStyleNew=2]="k_ELoginUIStyleNew"}(D||(D={})),function(e){e[e.k_ECommunityProfileItemProperty_ImageSmall=0]="k_ECommunityProfileItemProperty_ImageSmall",e[e.k_ECommunityProfileItemProperty_ImageLarge=1]="k_ECommunityProfileItemProperty_ImageLarge",e[e.k_ECommunityProfileItemProperty_InternalName=2]="k_ECommunityProfileItemProperty_InternalName",e[e.k_ECommunityProfileItemProperty_Title=3]="k_ECommunityProfileItemProperty_Title",e[e.k_ECommunityProfileItemProperty_Description=4]="k_ECommunityProfileItemProperty_Description",e[e.k_ECommunityProfileItemProperty_AppID=5]="k_ECommunityProfileItemProperty_AppID",e[e.k_ECommunityProfileItemProperty_TypeID=6]="k_ECommunityProfileItemProperty_TypeID",e[e.k_ECommunityProfileItemProperty_Class=7]="k_ECommunityProfileItemProperty_Class",e[e.k_ECommunityProfileItemProperty_MovieWebM=8]="k_ECommunityProfileItemProperty_MovieWebM",e[e.k_ECommunityProfileItemProperty_MovieMP4=9]="k_ECommunityProfileItemProperty_MovieMP4",e[e.k_ECommunityProfileItemProperty_MovieWebMSmall=10]="k_ECommunityProfileItemProperty_MovieWebMSmall",e[e.k_ECommunityProfileItemProperty_MovieMP4Small=11]="k_ECommunityProfileItemProperty_MovieMP4Small"}(b||(b={})),function(e){e[e.k_ERaiseGameWindowResult_NotRunning=1]="k_ERaiseGameWindowResult_NotRunning",e[e.k_ERaiseGameWindowResult_Success=2]="k_ERaiseGameWindowResult_Success",e[e.k_ERaiseGameWindowResult_Failure=3]="k_ERaiseGameWindowResult_Failure"}(w||(w={})),function(e){e[e.k_EPositionInvalid=-1]="k_EPositionInvalid",e[e.k_EPositionTopLeft=0]="k_EPositionTopLeft",e[e.k_EPositionTopRight=1]="k_EPositionTopRight",e[e.k_EPositionBottomLeft=2]="k_EPositionBottomLeft",e[e.k_EPositionBottomRight=3]="k_EPositionBottomRight"}(y||(y={})),function(e){e[e.k_EAppReleaseState_Unknown=0]="k_EAppReleaseState_Unknown",e[e.k_EAppReleaseState_Unavailable=1]="k_EAppReleaseState_Unavailable",e[e.k_EAppReleaseState_Prerelease=2]="k_EAppReleaseState_Prerelease",e[e.k_EAppReleaseState_PreloadOnly=3]="k_EAppReleaseState_PreloadOnly",e[e.k_EAppReleaseState_Released=4]="k_EAppReleaseState_Released",e[e.k_EAppReleaseState_Disabled=5]="k_EAppReleaseState_Disabled"}(I||(I={})),function(e){e[e.k_EGameIDTypeApp=0]="k_EGameIDTypeApp",e[e.k_EGameIDTypeGameMod=1]="k_EGameIDTypeGameMod",e[e.k_EGameIDTypeShortcut=2]="k_EGameIDTypeShortcut",e[e.k_EGameIDTypeP2P=3]="k_EGameIDTypeP2P"}(R||(R={})),function(e){e[e.k_EInstallMgrStateNone=0]="k_EInstallMgrStateNone",e[e.k_EInstallMgrStateSetup=1]="k_EInstallMgrStateSetup",e[e.k_EInstallMgrStateWaitLicense=2]="k_EInstallMgrStateWaitLicense",e[e.k_EInstallMgrStateFreeLicense=3]="k_EInstallMgrStateFreeLicense",e[e.k_EInstallMgrStateShowCDKey=4]="k_EInstallMgrStateShowCDKey",e[e.k_EInstallMgrStateWaitAppInfo=5]="k_EInstallMgrStateWaitAppInfo",e[e.k_EInstallMgrStateShowPassword=6]="k_EInstallMgrStateShowPassword",e[e.k_EInstallMgrStateShowConfig=7]="k_EInstallMgrStateShowConfig",e[e.k_EInstallMgrStateShowEULAs=8]="k_EInstallMgrStateShowEULAs",e[e.k_EInstallMgrStateCreateApps=9]="k_EInstallMgrStateCreateApps",e[e.k_EInstallMgrStateReadFromMedia=10]="k_EInstallMgrStateReadFromMedia",e[e.k_EInstallMgrStateShowChangeMedia=11]="k_EInstallMgrStateShowChangeMedia",e[e.k_EInstallMgrStateWaitLegacyCDKeys=12]="k_EInstallMgrStateWaitLegacyCDKeys",e[e.k_EInstallMgrStateShowSignup=13]="k_EInstallMgrStateShowSignup",e[e.k_EInstallMgrStateComplete=14]="k_EInstallMgrStateComplete",e[e.k_EInstallMgrStateFailed=15]="k_EInstallMgrStateFailed",e[e.k_EInstallMgrStateCanceled=16]="k_EInstallMgrStateCanceled"}(M||(M={}))},18061:(e,t,n)=>{"use strict";var r,i;n.d(t,{A6:()=>i}),function(e){e[e.k_EControllerBindingType_None=0]="k_EControllerBindingType_None",e[e.k_EControllerBindingType_Key=1]="k_EControllerBindingType_Key",e[e.k_EControllerBindingType_MouseButton=2]="k_EControllerBindingType_MouseButton",e[e.k_EControllerBindingType_Gamepad=3]="k_EControllerBindingType_Gamepad",e[e.k_EControllerBindingType_Mousewheel=4]="k_EControllerBindingType_Mousewheel",e[e.k_EControllerBindingType_Modeshift=5]="k_EControllerBindingType_Modeshift",e[e.k_EControllerBindingType_GameAction=6]="k_EControllerBindingType_GameAction",e[e.k_EControllerBindingType_ControllerAction=7]="k_EControllerBindingType_ControllerAction"}(r||(r={})),function(e){e[e.GAMEPAD_BUTTON_A=0]="GAMEPAD_BUTTON_A",e[e.GAMEPAD_BUTTON_B=1]="GAMEPAD_BUTTON_B",e[e.GAMEPAD_BUTTON_X=2]="GAMEPAD_BUTTON_X",e[e.GAMEPAD_BUTTON_Y=3]="GAMEPAD_BUTTON_Y",e[e.GAMEPAD_BUTTON_DPAD_UP=4]="GAMEPAD_BUTTON_DPAD_UP",e[e.GAMEPAD_BUTTON_DPAD_RIGHT=5]="GAMEPAD_BUTTON_DPAD_RIGHT",e[e.GAMEPAD_BUTTON_DPAD_DOWN=6]="GAMEPAD_BUTTON_DPAD_DOWN",e[e.GAMEPAD_BUTTON_DPAD_LEFT=7]="GAMEPAD_BUTTON_DPAD_LEFT",e[e.GAMEPAD_BUTTON_MENU=8]="GAMEPAD_BUTTON_MENU",e[e.GAMEPAD_BUTTON_VIEW=9]="GAMEPAD_BUTTON_VIEW",e[e.GAMEPAD_LEFTPAD_UP=10]="GAMEPAD_LEFTPAD_UP",e[e.GAMEPAD_LEFTPAD_DOWN=11]="GAMEPAD_LEFTPAD_DOWN",e[e.GAMEPAD_LEFTPAD_LEFT=12]="GAMEPAD_LEFTPAD_LEFT",e[e.GAMEPAD_LEFTPAD_RIGHT=13]="GAMEPAD_LEFTPAD_RIGHT",e[e.GAMEPAD_LEFTPAD_ANALOG=14]="GAMEPAD_LEFTPAD_ANALOG",e[e.GAMEPAD_RIGHTPAD_UP=15]="GAMEPAD_RIGHTPAD_UP",e[e.GAMEPAD_RIGHTPAD_DOWN=16]="GAMEPAD_RIGHTPAD_DOWN",e[e.GAMEPAD_RIGHTPAD_LEFT=17]="GAMEPAD_RIGHTPAD_LEFT",e[e.GAMEPAD_RIGHTPAD_RIGHT=18]="GAMEPAD_RIGHTPAD_RIGHT",e[e.GAMEPAD_RIGHTPAD_ANALOG=19]="GAMEPAD_RIGHTPAD_ANALOG",e[e.GAMEPAD_LEFTSTICK_UP=20]="GAMEPAD_LEFTSTICK_UP",e[e.GAMEPAD_LEFTSTICK_DOWN=21]="GAMEPAD_LEFTSTICK_DOWN",e[e.GAMEPAD_LEFTSTICK_LEFT=22]="GAMEPAD_LEFTSTICK_LEFT",e[e.GAMEPAD_LEFTSTICK_RIGHT=23]="GAMEPAD_LEFTSTICK_RIGHT",e[e.GAMEPAD_LEFTSTICK_ANALOG=24]="GAMEPAD_LEFTSTICK_ANALOG",e[e.GAMEPAD_LEFTSTICK_CLICK=25]="GAMEPAD_LEFTSTICK_CLICK",e[e.GAMEPAD_LTRIGGER_ANALOG=26]="GAMEPAD_LTRIGGER_ANALOG",e[e.GAMEPAD_RTRIGGER_ANALOG=27]="GAMEPAD_RTRIGGER_ANALOG",e[e.GAMEPAD_BUTTON_LTRIGGER=28]="GAMEPAD_BUTTON_LTRIGGER",e[e.GAMEPAD_BUTTON_RTRIGGER=29]="GAMEPAD_BUTTON_RTRIGGER",e[e.GAMEPAD_BUTTON_LSHOULDER=30]="GAMEPAD_BUTTON_LSHOULDER",e[e.GAMEPAD_BUTTON_RSHOULDER=31]="GAMEPAD_BUTTON_RSHOULDER",e[e.GAMEPAD_BUTTON_LBACK=32]="GAMEPAD_BUTTON_LBACK",e[e.GAMEPAD_BUTTON_RBACK=33]="GAMEPAD_BUTTON_RBACK",e[e.GAMEPAD_BUTTON_GUIDE=34]="GAMEPAD_BUTTON_GUIDE",e[e.GAMEPAD_BUTTON_SELECT=35]="GAMEPAD_BUTTON_SELECT",e[e.GAMEPAD_BUTTON_START=36]="GAMEPAD_BUTTON_START",e[e.GAMEPAD_BUTTON_LPAD_CLICKED=37]="GAMEPAD_BUTTON_LPAD_CLICKED",e[e.GAMEPAD_BUTTON_LPAD_TOUCH=38]="GAMEPAD_BUTTON_LPAD_TOUCH",e[e.GAMEPAD_BUTTON_RPAD_CLICKED=39]="GAMEPAD_BUTTON_RPAD_CLICKED",e[e.GAMEPAD_BUTTON_RPAD_TOUCH=40]="GAMEPAD_BUTTON_RPAD_TOUCH",e[e.GAMEPAD_RIGHTSTICK_CLICK=41]="GAMEPAD_RIGHTSTICK_CLICK",e[e.GAMEPAD_RIGHTSTICK_TOUCH=42]="GAMEPAD_RIGHTSTICK_TOUCH",e[e.GAMEPAD_LEFTSTICK_TOUCH=43]="GAMEPAD_LEFTSTICK_TOUCH",e[e.GAMEPAD_BUTTON_LBACK_UPPER=44]="GAMEPAD_BUTTON_LBACK_UPPER",e[e.GAMEPAD_BUTTON_RBACK_UPPER=45]="GAMEPAD_BUTTON_RBACK_UPPER",e[e.GAMEPAD_BUTTON_LAST=46]="GAMEPAD_BUTTON_LAST",e[e.GAMEPAD_ANALOG_SCROLL=47]="GAMEPAD_ANALOG_SCROLL",e[e.GAMEPAD_ANALOG_LEFT_KEYBOARD_CURSOR=48]="GAMEPAD_ANALOG_LEFT_KEYBOARD_CURSOR",e[e.GAMEPAD_ANALOG_RIGHT_KEYBOARD_CURSOR=49]="GAMEPAD_ANALOG_RIGHT_KEYBOARD_CURSOR",e[e.GAMEPAD_ANALOG_LAST=50]="GAMEPAD_ANALOG_LAST"}(i||(i={}))},86283:(e,t,n)=>{"use strict";n.d(t,{e7:()=>l,mU:()=>w,i_:()=>d,De:()=>i.De,j_:()=>i.j_,dt:()=>i.dt,IN:()=>s,Xg:()=>u,eV:()=>i.eV,jM:()=>i.jM,MR:()=>i.MR,t$:()=>p,VR:()=>r});var r={};n.r(r),n.d(r,{wb:()=>R});var i=n(46132);var o,a,s;!function(e){e[e.Input=0]="Input",e[e.Output=1]="Output"}(o||(o={})),function(e){e[e.Input=0]="Input",e[e.AllOutput=1]="AllOutput",e[e.Left=2]="Left",e[e.Right=3]="Right",e[e.Sub=4]="Sub",e[e.BackLeft=5]="BackLeft",e[e.BackRight=6]="BackRight"}(a||(a={}));function l(e){return e===s.k_ESteamRealmChina}!function(e){e[e.k_ESteamRealmUnknown=0]="k_ESteamRealmUnknown",e[e.k_ESteamRealmGlobal=1]="k_ESteamRealmGlobal",e[e.k_ESteamRealmChina=2]="k_ESteamRealmChina"}(s||(s={}));var c;!function(e){e[e.k_BluetoothDeviceType_Invalid=0]="k_BluetoothDeviceType_Invalid",e[e.k_BluetoothDeviceType_Unknown=1]="k_BluetoothDeviceType_Unknown",e[e.k_BluetoothDeviceType_Phone=2]="k_BluetoothDeviceType_Phone",e[e.k_BluetoothDeviceType_Computer=3]="k_BluetoothDeviceType_Computer",e[e.k_BluetoothDeviceType_Headset=4]="k_BluetoothDeviceType_Headset",e[e.k_BluetoothDeviceType_Headphones=5]="k_BluetoothDeviceType_Headphones",e[e.k_BluetoothDeviceType_Speakers=6]="k_BluetoothDeviceType_Speakers",e[e.k_BluetoothDeviceType_OtherAudio=7]="k_BluetoothDeviceType_OtherAudio",e[e.k_BluetoothDeviceType_Mouse=8]="k_BluetoothDeviceType_Mouse",e[e.k_BluetoothDeviceType_Joystick=9]="k_BluetoothDeviceType_Joystick",e[e.k_BluetoothDeviceType_Gamepad=10]="k_BluetoothDeviceType_Gamepad",e[e.k_BluetoothDeviceType_Keyboard=11]="k_BluetoothDeviceType_Keyboard"}(c||(c={}));var d,u,m,h;!function(e){e[e.EBrowserType_OffScreen=0]="EBrowserType_OffScreen",e[e.EBrowserType_OpenVROverlay=1]="EBrowserType_OpenVROverlay",e[e.EBrowserType_OpenVROverlay_Dashboard=2]="EBrowserType_OpenVROverlay_Dashboard",e[e.EBrowserType_DirectHWND=3]="EBrowserType_DirectHWND",e[e.EBrowserType_DirectHWND_Borderless=4]="EBrowserType_DirectHWND_Borderless",e[e.EBrowserType_DirectHWND_Hidden=5]="EBrowserType_DirectHWND_Hidden",e[e.EBrowserType_ChildHWNDNative=6]="EBrowserType_ChildHWNDNative",e[e.EBrowserType_Transparent_Toplevel=7]="EBrowserType_Transparent_Toplevel",e[e.EBrowserType_OffScreen_SharedTexture=8]="EBrowserType_OffScreen_SharedTexture",e[e.EBrowserType_OffScreen_GameOverlay=9]="EBrowserType_OffScreen_GameOverlay",e[e.EBrowserType_OffScreen_GameOverlay_SharedTexture=10]="EBrowserType_OffScreen_GameOverlay_SharedTexture",e[e.EBrowserType_Offscreen_FriendsUI=11]="EBrowserType_Offscreen_FriendsUI",e[e.EBrowserType_Offscreen_SteamUI=12]="EBrowserType_Offscreen_SteamUI",e[e.EBrowserType_OpenVROverlay_Subview=13]="EBrowserType_OpenVROverlay_Subview"}(d||(d={})),function(e){e[e.SystemKey0=0]="SystemKey0",e[e.SystemKey1=1]="SystemKey1"}(u||(u={})),function(e){e[e.Hidden=0]="Hidden",e[e.Notification=1]="Notification",e[e.Overlay=2]="Overlay",e[e.Opaque=3]="Opaque",e[e.OverlayKeyboard=4]="OverlayKeyboard"}(m||(m={})),function(e){e[e.MainGamepadUI=0]="MainGamepadUI",e[e.OverlayGamepadUI=1]="OverlayGamepadUI",e[e.Keyboard=2]="Keyboard",e[e.ControllerConfigurator=3]="ControllerConfigurator",e[e.VR=4]="VR",e[e.SteamLibrary=5]="SteamLibrary",e[e.MainDesktopUI=6]="MainDesktopUI",e[e.DesktopLogin=7]="DesktopLogin",e[e.OverlayDesktopUI=8]="OverlayDesktopUI",e[e.SmallModeDesktopUI=9]="SmallModeDesktopUI"}(h||(h={}));class p{}var _;!function(e){e[e.k_EPending=0]="k_EPending",e[e.k_EAccepted=1]="k_EAccepted",e[e.k_ERejected=2]="k_ERejected"}(_||(_={}));var g,f;n(18061);!function(e){e[e.k_ERemoteClientLaunchOK=1]="k_ERemoteClientLaunchOK",e[e.k_ERemoteClientLaunchFail=2]="k_ERemoteClientLaunchFail",e[e.k_ERemoteClientLaunchRequiresUI=3]="k_ERemoteClientLaunchRequiresUI",e[e.k_ERemoteClientLaunchRequiresLaunchOption=4]="k_ERemoteClientLaunchRequiresLaunchOption",e[e.k_ERemoteClientLaunchRequiresEULA=5]="k_ERemoteClientLaunchRequiresEULA",e[e.k_ERemoteClientLaunchTimeout=6]="k_ERemoteClientLaunchTimeout",e[e.k_ERemoteClientLaunchStreamTimeout=7]="k_ERemoteClientLaunchStreamTimeout",e[e.k_ERemoteClientLaunchStreamClientFail=8]="k_ERemoteClientLaunchStreamClientFail",e[e.k_ERemoteClientLaunchOtherGameRunning=9]="k_ERemoteClientLaunchOtherGameRunning",e[e.k_ERemoteClientLaunchDownloadStarted=10]="k_ERemoteClientLaunchDownloadStarted",e[e.k_ERemoteClientLaunchDownloadNoSpace=11]="k_ERemoteClientLaunchDownloadNoSpace",e[e.k_ERemoteClientLaunchDownloadFiltered=12]="k_ERemoteClientLaunchDownloadFiltered",e[e.k_ERemoteClientLaunchDownloadRequiresUI=13]="k_ERemoteClientLaunchDownloadRequiresUI",e[e.k_ERemoteClientLaunchAccessDenied=14]="k_ERemoteClientLaunchAccessDenied",e[e.k_ERemoteClientLaunchNetworkError=15]="k_ERemoteClientLaunchNetworkError",e[e.k_ERemoteClientLaunchProgress=16]="k_ERemoteClientLaunchProgress",e[e.k_ERemoteClientLaunchParentalUnlockFailed=17]="k_ERemoteClientLaunchParentalUnlockFailed",e[e.k_ERemoteClientLaunchScreenLocked=18]="k_ERemoteClientLaunchScreenLocked",e[e.k_ERemoteClientLaunchUnsupported=19]="k_ERemoteClientLaunchUnsupported",e[e.k_ERemoteClientLaunchDisabledLocal=20]="k_ERemoteClientLaunchDisabledLocal",e[e.k_ERemoteClientLaunchDisabledRemote=21]="k_ERemoteClientLaunchDisabledRemote",e[e.k_ERemoteClientLaunchBroadcasting=22]="k_ERemoteClientLaunchBroadcasting",e[e.k_ERemoteClientLaunchBusy=23]="k_ERemoteClientLaunchBusy",e[e.k_ERemoteClientLaunchDriversNotInstalled=24]="k_ERemoteClientLaunchDriversNotInstalled",e[e.k_ERemoteClientLaunchTransportUnavailable=25]="k_ERemoteClientLaunchTransportUnavailable",e[e.k_ERemoteClientLaunchCanceled=26]="k_ERemoteClientLaunchCanceled",e[e.k_ERemoteClientLaunchInvisible=27]="k_ERemoteClientLaunchInvisible",e[e.k_ERemoteClientLaunchRestrictedCountry=28]="k_ERemoteClientLaunchRestrictedCountry"}(g||(g={}));!function(e){e[e.AudioPlayback_Undefined=0]="AudioPlayback_Undefined",e[e.AudioPlayback_Playing=1]="AudioPlayback_Playing",e[e.AudioPlayback_Paused=2]="AudioPlayback_Paused",e[e.AudioPlayback_Idle=3]="AudioPlayback_Idle"}(f||(f={}));var v,C,S,E,D,b;!function(e){e[e.Unknown=0]="Unknown",e[e.Wired=1]="Wired",e[e.Wireless=2]="Wireless",e[e.Virtual=3]="Virtual"}(v||(v={})),function(e){e[e.NotPresent=0]="NotPresent",e[e.Failed=1]="Failed",e[e.Disconnected=2]="Disconnected",e[e.Disconnecting=3]="Disconnecting",e[e.Connecting=4]="Connecting",e[e.Connected=5]="Connected",e[e.Retrying=6]="Retrying"}(C||(C={})),function(e){e[e.None=0]="None",e[e.Weak=1]="Weak",e[e.Ok=2]="Ok",e[e.Good=3]="Good",e[e.Excellent=4]="Excellent"}(S||(S={})),function(e){e[e.None=0]="None",e[e.StaticWep=1]="StaticWep",e[e.DynamicWep=2]="DynamicWep",e[e.Wpa=4]="Wpa",e[e.WpaEnterprise=8]="WpaEnterprise",e[e.Wpa2=16]="Wpa2",e[e.Wpa2Enterprise=32]="Wpa2Enterprise",e[e.Unsupported=32768]="Unsupported"}(E||(E={})),function(e){e[e.k_EHTTPProxyMode_Invalid=0]="k_EHTTPProxyMode_Invalid",e[e.k_EHTTPProxyMode_None=1]="k_EHTTPProxyMode_None",e[e.k_EHTTPProxyMode_Manual=2]="k_EHTTPProxyMode_Manual",e[e.k_EHTTPProxyMode_Automatic=3]="k_EHTTPProxyMode_Automatic"}(D||(D={}));!function(e){e[e.k_EClientUINotificationGroupChatMessage=1]="k_EClientUINotificationGroupChatMessage",e[e.k_EClientUINotificationFriendChatMessage=2]="k_EClientUINotificationFriendChatMessage",e[e.k_EClientUINotificationFriendPersonaState=3]="k_EClientUINotificationFriendPersonaState"}(b||(b={}));function w(e){return"game"===e||"dlc"===e||"software"===e||"music"===e||"application"===e||"demo"===e||"hardware"===e||"mod"===e||"video"==e||"beta"===e||"advertising"===e}var y,I,R,M,T,A;!function(e){e[e.k_EComputerActiveStateInvalid=0]="k_EComputerActiveStateInvalid",e[e.k_EComputerActiveStateActive=1]="k_EComputerActiveStateActive",e[e.k_EComputerActiveStateIdle=2]="k_EComputerActiveStateIdle"}(y||(y={})),function(e){e[e.k_EClientUsedInputTypeKeyboard=0]="k_EClientUsedInputTypeKeyboard",e[e.k_EClientUsedInputTypeMouse=1]="k_EClientUsedInputTypeMouse",e[e.k_EClientUsedInputTypeController=2]="k_EClientUsedInputTypeController",e[e.k_EClientUsedInputTypeMax=3]="k_EClientUsedInputTypeMax"}(I||(I={})),function(e){e[e.k_EVRError_None=0]="k_EVRError_None",e[e.k_EVRError_VRSkipParam=1]="k_EVRError_VRSkipParam",e[e.k_EVRError_ComponentNotInstalled=2]="k_EVRError_ComponentNotInstalled",e[e.k_EVRError_ComponentBusy=3]="k_EVRError_ComponentBusy",e[e.k_EVRError_CrashProtection=4]="k_EVRError_CrashProtection",e[e.k_EVRError_HmdError=5]="k_EVRError_HmdError",e[e.k_EVRError_PathChanged=6]="k_EVRError_PathChanged"}(R||(R={})),function(e){e[e.VRInitError_None=0]="VRInitError_None",e[e.VRInitError_Unknown=1]="VRInitError_Unknown",e[e.VRInitError_Init_InstallationNotFound=100]="VRInitError_Init_InstallationNotFound",e[e.VRInitError_Init_InstallationCorrupt=101]="VRInitError_Init_InstallationCorrupt",e[e.VRInitError_Init_VRClientDLLNotFound=102]="VRInitError_Init_VRClientDLLNotFound",e[e.VRInitError_Init_FileNotFound=103]="VRInitError_Init_FileNotFound",e[e.VRInitError_Init_FactoryNotFound=104]="VRInitError_Init_FactoryNotFound",e[e.VRInitError_Init_InterfaceNotFound=105]="VRInitError_Init_InterfaceNotFound",e[e.VRInitError_Init_InvalidInterface=106]="VRInitError_Init_InvalidInterface",e[e.VRInitError_Init_UserConfigDirectoryInvalid=107]="VRInitError_Init_UserConfigDirectoryInvalid",e[e.VRInitError_Init_HmdNotFound=108]="VRInitError_Init_HmdNotFound",e[e.VRInitError_Init_NotInitialized=109]="VRInitError_Init_NotInitialized",e[e.VRInitError_Init_PathRegistryNotFound=110]="VRInitError_Init_PathRegistryNotFound",e[e.VRInitError_Init_NoConfigPath=111]="VRInitError_Init_NoConfigPath",e[e.VRInitError_Init_NoLogPath=112]="VRInitError_Init_NoLogPath",e[e.VRInitError_Init_PathRegistryNotWritable=113]="VRInitError_Init_PathRegistryNotWritable",e[e.VRInitError_Init_AppInfoInitFailed=114]="VRInitError_Init_AppInfoInitFailed",e[e.VRInitError_Init_Retry=115]="VRInitError_Init_Retry",e[e.VRInitError_Init_InitCanceledByUser=116]="VRInitError_Init_InitCanceledByUser",e[e.VRInitError_Init_AnotherAppLaunching=117]="VRInitError_Init_AnotherAppLaunching",e[e.VRInitError_Init_SettingsInitFailed=118]="VRInitError_Init_SettingsInitFailed",e[e.VRInitError_Init_ShuttingDown=119]="VRInitError_Init_ShuttingDown",e[e.VRInitError_Init_TooManyObjects=120]="VRInitError_Init_TooManyObjects",e[e.VRInitError_Init_NoServerForBackgroundApp=121]="VRInitError_Init_NoServerForBackgroundApp",e[e.VRInitError_Init_NotSupportedWithCompositor=122]="VRInitError_Init_NotSupportedWithCompositor",e[e.VRInitError_Init_NotAvailableToUtilityApps=123]="VRInitError_Init_NotAvailableToUtilityApps",e[e.VRInitError_Init_Internal=124]="VRInitError_Init_Internal",e[e.VRInitError_Init_HmdDriverIdIsNone=125]="VRInitError_Init_HmdDriverIdIsNone",e[e.VRInitError_Init_HmdNotFoundPresenceFailed=126]="VRInitError_Init_HmdNotFoundPresenceFailed",e[e.VRInitError_Init_VRMonitorNotFound=127]="VRInitError_Init_VRMonitorNotFound",e[e.VRInitError_Init_VRMonitorStartupFailed=128]="VRInitError_Init_VRMonitorStartupFailed",e[e.VRInitError_Init_LowPowerWatchdogNotSupported=129]="VRInitError_Init_LowPowerWatchdogNotSupported",e[e.VRInitError_Init_InvalidApplicationType=130]="VRInitError_Init_InvalidApplicationType",e[e.VRInitError_Init_NotAvailableToWatchdogApps=131]="VRInitError_Init_NotAvailableToWatchdogApps",e[e.VRInitError_Init_WatchdogDisabledInSettings=132]="VRInitError_Init_WatchdogDisabledInSettings",e[e.VRInitError_Init_VRDashboardNotFound=133]="VRInitError_Init_VRDashboardNotFound",e[e.VRInitError_Init_VRDashboardStartupFailed=134]="VRInitError_Init_VRDashboardStartupFailed",e[e.VRInitError_Init_VRHomeNotFound=135]="VRInitError_Init_VRHomeNotFound",e[e.VRInitError_Init_VRHomeStartupFailed=136]="VRInitError_Init_VRHomeStartupFailed",e[e.VRInitError_Init_RebootingBusy=137]="VRInitError_Init_RebootingBusy",e[e.VRInitError_Init_FirmwareUpdateBusy=138]="VRInitError_Init_FirmwareUpdateBusy",e[e.VRInitError_Init_FirmwareRecoveryBusy=139]="VRInitError_Init_FirmwareRecoveryBusy",e[e.VRInitError_Init_USBServiceBusy=140]="VRInitError_Init_USBServiceBusy",e[e.VRInitError_Init_VRWebHelperStartupFailed=141]="VRInitError_Init_VRWebHelperStartupFailed",e[e.VRInitError_Init_TrackerManagerInitFailed=142]="VRInitError_Init_TrackerManagerInitFailed",e[e.VRInitError_Init_AlreadyRunning=143]="VRInitError_Init_AlreadyRunning",e[e.VRInitError_Init_FailedForVrMonitor=144]="VRInitError_Init_FailedForVrMonitor",e[e.VRInitError_Init_PropertyManagerInitFailed=145]="VRInitError_Init_PropertyManagerInitFailed",e[e.VRInitError_Init_WebServerFailed=146]="VRInitError_Init_WebServerFailed",e[e.VRInitError_Init_IllegalTypeTransition=147]="VRInitError_Init_IllegalTypeTransition",e[e.VRInitError_Init_MismatchedRuntimes=148]="VRInitError_Init_MismatchedRuntimes",e[e.VRInitError_Init_InvalidProcessId=149]="VRInitError_Init_InvalidProcessId",e[e.VRInitError_Init_VRServiceStartupFailed=150]="VRInitError_Init_VRServiceStartupFailed",e[e.VRInitError_Init_PrismNeedsNewDrivers=151]="VRInitError_Init_PrismNeedsNewDrivers",e[e.VRInitError_Init_PrismStartupTimedOut=152]="VRInitError_Init_PrismStartupTimedOut",e[e.VRInitError_Init_CouldNotStartPrism=153]="VRInitError_Init_CouldNotStartPrism",e[e.VRInitError_Init_PrismClientInitFailed=154]="VRInitError_Init_PrismClientInitFailed",e[e.VRInitError_Init_PrismClientStartFailed=155]="VRInitError_Init_PrismClientStartFailed",e[e.VRInitError_Init_PrismExitedUnexpectedly=156]="VRInitError_Init_PrismExitedUnexpectedly",e[e.VRInitError_Init_BadLuid=157]="VRInitError_Init_BadLuid",e[e.VRInitError_Init_NoServerForAppContainer=158]="VRInitError_Init_NoServerForAppContainer",e[e.VRInitError_Init_DuplicateBootstrapper=159]="VRInitError_Init_DuplicateBootstrapper",e[e.VRInitError_Init_VRDashboardServicePending=160]="VRInitError_Init_VRDashboardServicePending",e[e.VRInitError_Init_VRDashboardServiceTimeout=161]="VRInitError_Init_VRDashboardServiceTimeout",e[e.VRInitError_Init_VRDashboardServiceStopped=162]="VRInitError_Init_VRDashboardServiceStopped",e[e.VRInitError_Init_VRDashboardAlreadyStarted=163]="VRInitError_Init_VRDashboardAlreadyStarted",e[e.VRInitError_Init_VRDashboardCopyFailed=164]="VRInitError_Init_VRDashboardCopyFailed",e[e.VRInitError_Init_VRDashboardTokenFailure=165]="VRInitError_Init_VRDashboardTokenFailure",e[e.VRInitError_Init_VRDashboardEnvironmentFailure=166]="VRInitError_Init_VRDashboardEnvironmentFailure",e[e.VRInitError_Init_VRDashboardPathFailure=167]="VRInitError_Init_VRDashboardPathFailure",e[e.VRInitError_Driver_Failed=200]="VRInitError_Driver_Failed",e[e.VRInitError_Driver_Unknown=201]="VRInitError_Driver_Unknown",e[e.VRInitError_Driver_HmdUnknown=202]="VRInitError_Driver_HmdUnknown",e[e.VRInitError_Driver_NotLoaded=203]="VRInitError_Driver_NotLoaded",e[e.VRInitError_Driver_RuntimeOutOfDate=204]="VRInitError_Driver_RuntimeOutOfDate",e[e.VRInitError_Driver_HmdInUse=205]="VRInitError_Driver_HmdInUse",e[e.VRInitError_Driver_NotCalibrated=206]="VRInitError_Driver_NotCalibrated",e[e.VRInitError_Driver_CalibrationInvalid=207]="VRInitError_Driver_CalibrationInvalid",e[e.VRInitError_Driver_HmdDisplayNotFound=208]="VRInitError_Driver_HmdDisplayNotFound",e[e.VRInitError_Driver_TrackedDeviceInterfaceUnknown=209]="VRInitError_Driver_TrackedDeviceInterfaceUnknown",e[e.VRInitError_Driver_HmdDriverIdOutOfBounds=211]="VRInitError_Driver_HmdDriverIdOutOfBounds",e[e.VRInitError_Driver_HmdDisplayMirrored=212]="VRInitError_Driver_HmdDisplayMirrored",e[e.VRInitError_Driver_HmdDisplayNotFoundLaptop=213]="VRInitError_Driver_HmdDisplayNotFoundLaptop",e[e.VRInitError_Driver_PeerDriverNotInstalled=214]="VRInitError_Driver_PeerDriverNotInstalled",e[e.VRInitError_Driver_WirelessHmdNotConnected=215]="VRInitError_Driver_WirelessHmdNotConnected",e[e.VRInitError_IPC_ServerInitFailed=300]="VRInitError_IPC_ServerInitFailed",e[e.VRInitError_IPC_ConnectFailed=301]="VRInitError_IPC_ConnectFailed",e[e.VRInitError_IPC_SharedStateInitFailed=302]="VRInitError_IPC_SharedStateInitFailed",e[e.VRInitError_IPC_CompositorInitFailed=303]="VRInitError_IPC_CompositorInitFailed",e[e.VRInitError_IPC_MutexInitFailed=304]="VRInitError_IPC_MutexInitFailed",e[e.VRInitError_IPC_Failed=305]="VRInitError_IPC_Failed",e[e.VRInitError_IPC_CompositorConnectFailed=306]="VRInitError_IPC_CompositorConnectFailed",e[e.VRInitError_IPC_CompositorInvalidConnectResponse=307]="VRInitError_IPC_CompositorInvalidConnectResponse",e[e.VRInitError_IPC_ConnectFailedAfterMultipleAttempts=308]="VRInitError_IPC_ConnectFailedAfterMultipleAttempts",e[e.VRInitError_IPC_ConnectFailedAfterTargetExited=309]="VRInitError_IPC_ConnectFailedAfterTargetExited",e[e.VRInitError_IPC_NamespaceUnavailable=310]="VRInitError_IPC_NamespaceUnavailable",e[e.VRInitError_Compositor_Failed=400]="VRInitError_Compositor_Failed",e[e.VRInitError_Compositor_D3D11HardwareRequired=401]="VRInitError_Compositor_D3D11HardwareRequired",e[e.VRInitError_Compositor_FirmwareRequiresUpdate=402]="VRInitError_Compositor_FirmwareRequiresUpdate",e[e.VRInitError_Compositor_OverlayInitFailed=403]="VRInitError_Compositor_OverlayInitFailed",e[e.VRInitError_Compositor_ScreenshotsInitFailed=404]="VRInitError_Compositor_ScreenshotsInitFailed",e[e.VRInitError_Compositor_UnableToCreateDevice=405]="VRInitError_Compositor_UnableToCreateDevice",e[e.VRInitError_Compositor_SharedStateIsNull=406]="VRInitError_Compositor_SharedStateIsNull",e[e.VRInitError_Compositor_NotificationManagerIsNull=407]="VRInitError_Compositor_NotificationManagerIsNull",e[e.VRInitError_Compositor_ResourceManagerClientIsNull=408]="VRInitError_Compositor_ResourceManagerClientIsNull",e[e.VRInitError_Compositor_MessageOverlaySharedStateInitFailure=409]="VRInitError_Compositor_MessageOverlaySharedStateInitFailure",e[e.VRInitError_Compositor_PropertiesInterfaceIsNull=410]="VRInitError_Compositor_PropertiesInterfaceIsNull",e[e.VRInitError_Compositor_CreateFullscreenWindowFailed=411]="VRInitError_Compositor_CreateFullscreenWindowFailed",e[e.VRInitError_Compositor_SettingsInterfaceIsNull=412]="VRInitError_Compositor_SettingsInterfaceIsNull",e[e.VRInitError_Compositor_FailedToShowWindow=413]="VRInitError_Compositor_FailedToShowWindow",e[e.VRInitError_Compositor_DistortInterfaceIsNull=414]="VRInitError_Compositor_DistortInterfaceIsNull",e[e.VRInitError_Compositor_DisplayFrequencyFailure=415]="VRInitError_Compositor_DisplayFrequencyFailure",e[e.VRInitError_Compositor_RendererInitializationFailed=416]="VRInitError_Compositor_RendererInitializationFailed",e[e.VRInitError_Compositor_DXGIFactoryInterfaceIsNull=417]="VRInitError_Compositor_DXGIFactoryInterfaceIsNull",e[e.VRInitError_Compositor_DXGIFactoryCreateFailed=418]="VRInitError_Compositor_DXGIFactoryCreateFailed",e[e.VRInitError_Compositor_DXGIFactoryQueryFailed=419]="VRInitError_Compositor_DXGIFactoryQueryFailed",e[e.VRInitError_Compositor_InvalidAdapterDesktop=420]="VRInitError_Compositor_InvalidAdapterDesktop",e[e.VRInitError_Compositor_InvalidHmdAttachment=421]="VRInitError_Compositor_InvalidHmdAttachment",e[e.VRInitError_Compositor_InvalidOutputDesktop=422]="VRInitError_Compositor_InvalidOutputDesktop",e[e.VRInitError_Compositor_InvalidDeviceProvided=423]="VRInitError_Compositor_InvalidDeviceProvided",e[e.VRInitError_Compositor_D3D11RendererInitializationFailed=424]="VRInitError_Compositor_D3D11RendererInitializationFailed",e[e.VRInitError_Compositor_FailedToFindDisplayMode=425]="VRInitError_Compositor_FailedToFindDisplayMode",e[e.VRInitError_Compositor_FailedToCreateSwapChain=426]="VRInitError_Compositor_FailedToCreateSwapChain",e[e.VRInitError_Compositor_FailedToGetBackBuffer=427]="VRInitError_Compositor_FailedToGetBackBuffer",e[e.VRInitError_Compositor_FailedToCreateRenderTarget=428]="VRInitError_Compositor_FailedToCreateRenderTarget",e[e.VRInitError_Compositor_FailedToCreateDXGI2SwapChain=429]="VRInitError_Compositor_FailedToCreateDXGI2SwapChain",e[e.VRInitError_Compositor_FailedtoGetDXGI2BackBuffer=430]="VRInitError_Compositor_FailedtoGetDXGI2BackBuffer",e[e.VRInitError_Compositor_FailedToCreateDXGI2RenderTarget=431]="VRInitError_Compositor_FailedToCreateDXGI2RenderTarget",e[e.VRInitError_Compositor_FailedToGetDXGIDeviceInterface=432]="VRInitError_Compositor_FailedToGetDXGIDeviceInterface",e[e.VRInitError_Compositor_SelectDisplayMode=433]="VRInitError_Compositor_SelectDisplayMode",e[e.VRInitError_Compositor_FailedToCreateNvAPIRenderTargets=434]="VRInitError_Compositor_FailedToCreateNvAPIRenderTargets",e[e.VRInitError_Compositor_NvAPISetDisplayMode=435]="VRInitError_Compositor_NvAPISetDisplayMode",e[e.VRInitError_Compositor_FailedToCreateDirectModeDisplay=436]="VRInitError_Compositor_FailedToCreateDirectModeDisplay",e[e.VRInitError_Compositor_InvalidHmdPropertyContainer=437]="VRInitError_Compositor_InvalidHmdPropertyContainer",e[e.VRInitError_Compositor_UpdateDisplayFrequency=438]="VRInitError_Compositor_UpdateDisplayFrequency",e[e.VRInitError_Compositor_CreateRasterizerState=439]="VRInitError_Compositor_CreateRasterizerState",e[e.VRInitError_Compositor_CreateWireframeRasterizerState=440]="VRInitError_Compositor_CreateWireframeRasterizerState",e[e.VRInitError_Compositor_CreateSamplerState=441]="VRInitError_Compositor_CreateSamplerState",e[e.VRInitError_Compositor_CreateClampToBorderSamplerState=442]="VRInitError_Compositor_CreateClampToBorderSamplerState",e[e.VRInitError_Compositor_CreateAnisoSamplerState=443]="VRInitError_Compositor_CreateAnisoSamplerState",e[e.VRInitError_Compositor_CreateOverlaySamplerState=444]="VRInitError_Compositor_CreateOverlaySamplerState",e[e.VRInitError_Compositor_CreatePanoramaSamplerState=445]="VRInitError_Compositor_CreatePanoramaSamplerState",e[e.VRInitError_Compositor_CreateFontSamplerState=446]="VRInitError_Compositor_CreateFontSamplerState",e[e.VRInitError_Compositor_CreateNoBlendState=447]="VRInitError_Compositor_CreateNoBlendState",e[e.VRInitError_Compositor_CreateBlendState=448]="VRInitError_Compositor_CreateBlendState",e[e.VRInitError_Compositor_CreateAlphaBlendState=449]="VRInitError_Compositor_CreateAlphaBlendState",e[e.VRInitError_Compositor_CreateBlendStateMaskR=450]="VRInitError_Compositor_CreateBlendStateMaskR",e[e.VRInitError_Compositor_CreateBlendStateMaskG=451]="VRInitError_Compositor_CreateBlendStateMaskG",e[e.VRInitError_Compositor_CreateBlendStateMaskB=452]="VRInitError_Compositor_CreateBlendStateMaskB",e[e.VRInitError_Compositor_CreateDepthStencilState=453]="VRInitError_Compositor_CreateDepthStencilState",e[e.VRInitError_Compositor_CreateDepthStencilStateNoWrite=454]="VRInitError_Compositor_CreateDepthStencilStateNoWrite",e[e.VRInitError_Compositor_CreateDepthStencilStateNoDepth=455]="VRInitError_Compositor_CreateDepthStencilStateNoDepth",e[e.VRInitError_Compositor_CreateFlushTexture=456]="VRInitError_Compositor_CreateFlushTexture",e[e.VRInitError_Compositor_CreateDistortionSurfaces=457]="VRInitError_Compositor_CreateDistortionSurfaces",e[e.VRInitError_Compositor_CreateConstantBuffer=458]="VRInitError_Compositor_CreateConstantBuffer",e[e.VRInitError_Compositor_CreateHmdPoseConstantBuffer=459]="VRInitError_Compositor_CreateHmdPoseConstantBuffer",e[e.VRInitError_Compositor_CreateHmdPoseStagingConstantBuffer=460]="VRInitError_Compositor_CreateHmdPoseStagingConstantBuffer",e[e.VRInitError_Compositor_CreateSharedFrameInfoConstantBuffer=461]="VRInitError_Compositor_CreateSharedFrameInfoConstantBuffer",e[e.VRInitError_Compositor_CreateOverlayConstantBuffer=462]="VRInitError_Compositor_CreateOverlayConstantBuffer",e[e.VRInitError_Compositor_CreateSceneTextureIndexConstantBuffer=463]="VRInitError_Compositor_CreateSceneTextureIndexConstantBuffer",e[e.VRInitError_Compositor_CreateReadableSceneTextureIndexConstantBuffer=464]="VRInitError_Compositor_CreateReadableSceneTextureIndexConstantBuffer",e[e.VRInitError_Compositor_CreateLayerGraphicsTextureIndexConstantBuffer=465]="VRInitError_Compositor_CreateLayerGraphicsTextureIndexConstantBuffer",e[e.VRInitError_Compositor_CreateLayerComputeTextureIndexConstantBuffer=466]="VRInitError_Compositor_CreateLayerComputeTextureIndexConstantBuffer",e[e.VRInitError_Compositor_CreateLayerComputeSceneTextureIndexConstantBuffer=467]="VRInitError_Compositor_CreateLayerComputeSceneTextureIndexConstantBuffer",e[e.VRInitError_Compositor_CreateComputeHmdPoseConstantBuffer=468]="VRInitError_Compositor_CreateComputeHmdPoseConstantBuffer",e[e.VRInitError_Compositor_CreateGeomConstantBuffer=469]="VRInitError_Compositor_CreateGeomConstantBuffer",e[e.VRInitError_Compositor_CreatePanelMaskConstantBuffer=470]="VRInitError_Compositor_CreatePanelMaskConstantBuffer",e[e.VRInitError_Compositor_CreatePixelSimUBO=471]="VRInitError_Compositor_CreatePixelSimUBO",e[e.VRInitError_Compositor_CreateMSAARenderTextures=472]="VRInitError_Compositor_CreateMSAARenderTextures",e[e.VRInitError_Compositor_CreateResolveRenderTextures=473]="VRInitError_Compositor_CreateResolveRenderTextures",e[e.VRInitError_Compositor_CreateComputeResolveRenderTextures=474]="VRInitError_Compositor_CreateComputeResolveRenderTextures",e[e.VRInitError_Compositor_CreateDriverDirectModeResolveTextures=475]="VRInitError_Compositor_CreateDriverDirectModeResolveTextures",e[e.VRInitError_Compositor_OpenDriverDirectModeResolveTextures=476]="VRInitError_Compositor_OpenDriverDirectModeResolveTextures",e[e.VRInitError_Compositor_CreateFallbackSyncTexture=477]="VRInitError_Compositor_CreateFallbackSyncTexture",e[e.VRInitError_Compositor_ShareFallbackSyncTexture=478]="VRInitError_Compositor_ShareFallbackSyncTexture",e[e.VRInitError_Compositor_CreateOverlayIndexBuffer=479]="VRInitError_Compositor_CreateOverlayIndexBuffer",e[e.VRInitError_Compositor_CreateOverlayVertexBuffer=480]="VRInitError_Compositor_CreateOverlayVertexBuffer",e[e.VRInitError_Compositor_CreateTextVertexBuffer=481]="VRInitError_Compositor_CreateTextVertexBuffer",e[e.VRInitError_Compositor_CreateTextIndexBuffer=482]="VRInitError_Compositor_CreateTextIndexBuffer",e[e.VRInitError_Compositor_CreateMirrorTextures=483]="VRInitError_Compositor_CreateMirrorTextures",e[e.VRInitError_Compositor_CreateLastFrameRenderTexture=484]="VRInitError_Compositor_CreateLastFrameRenderTexture",e[e.VRInitError_Compositor_CreateMirrorOverlay=485]="VRInitError_Compositor_CreateMirrorOverlay",e[e.VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer=486]="VRInitError_Compositor_FailedToCreateVirtualDisplayBackbuffer",e[e.VRInitError_Compositor_DisplayModeNotSupported=487]="VRInitError_Compositor_DisplayModeNotSupported",e[e.VRInitError_Compositor_CreateOverlayInvalidCall=488]="VRInitError_Compositor_CreateOverlayInvalidCall",e[e.VRInitError_Compositor_CreateOverlayAlreadyInitialized=489]="VRInitError_Compositor_CreateOverlayAlreadyInitialized",e[e.VRInitError_Compositor_FailedToCreateMailbox=490]="VRInitError_Compositor_FailedToCreateMailbox",e[e.VRInitError_Compositor_WindowInterfaceIsNull=491]="VRInitError_Compositor_WindowInterfaceIsNull",e[e.VRInitError_Compositor_SystemLayerCreateInstance=492]="VRInitError_Compositor_SystemLayerCreateInstance",e[e.VRInitError_Compositor_SystemLayerCreateSession=493]="VRInitError_Compositor_SystemLayerCreateSession",e[e.VRInitError_Compositor_CreateInverseDistortUVs=494]="VRInitError_Compositor_CreateInverseDistortUVs",e[e.VRInitError_Compositor_CreateBackbufferDepth=495]="VRInitError_Compositor_CreateBackbufferDepth",e[e.VRInitError_VendorSpecific_UnableToConnectToOculusRuntime=1e3]="VRInitError_VendorSpecific_UnableToConnectToOculusRuntime",e[e.VRInitError_VendorSpecific_WindowsNotInDevMode=1001]="VRInitError_VendorSpecific_WindowsNotInDevMode",e[e.VRInitError_VendorSpecific_OculusLinkNotEnabled=1002]="VRInitError_VendorSpecific_OculusLinkNotEnabled",e[e.VRInitError_VendorSpecific_HmdFound_CantOpenDevice=1101]="VRInitError_VendorSpecific_HmdFound_CantOpenDevice",e[e.VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart=1102]="VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart",e[e.VRInitError_VendorSpecific_HmdFound_NoStoredConfig=1103]="VRInitError_VendorSpecific_HmdFound_NoStoredConfig",e[e.VRInitError_VendorSpecific_HmdFound_ConfigTooBig=1104]="VRInitError_VendorSpecific_HmdFound_ConfigTooBig",e[e.VRInitError_VendorSpecific_HmdFound_ConfigTooSmall=1105]="VRInitError_VendorSpecific_HmdFound_ConfigTooSmall",e[e.VRInitError_VendorSpecific_HmdFound_UnableToInitZLib=1106]="VRInitError_VendorSpecific_HmdFound_UnableToInitZLib",e[e.VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion=1107]="VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion",e[e.VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart=1108]="VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart",e[e.VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart=1109]="VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart",e[e.VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext=1110]="VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext",e[e.VRInitError_VendorSpecific_HmdFound_UserDataAddressRange=1111]="VRInitError_VendorSpecific_HmdFound_UserDataAddressRange",e[e.VRInitError_VendorSpecific_HmdFound_UserDataError=1112]="VRInitError_VendorSpecific_HmdFound_UserDataError",e[e.VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck=1113]="VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck",e[e.VRInitError_VendorSpecific_OculusRuntimeBadInstall=1114]="VRInitError_VendorSpecific_OculusRuntimeBadInstall",e[e.VRInitError_VendorSpecific_HmdFound_UnexpectedConfiguration_1=1115]="VRInitError_VendorSpecific_HmdFound_UnexpectedConfiguration_1",e[e.VRInitError_Steam_SteamInstallationNotFound=2e3]="VRInitError_Steam_SteamInstallationNotFound",e[e.VRInitError_LastError=2001]="VRInitError_LastError"}(M||(M={})),function(e){e[e.Invalid=0]="Invalid",e[e.TrackingSystemName_String=1e3]="TrackingSystemName_String",e[e.ModelNumber_String=1001]="ModelNumber_String",e[e.SerialNumber_String=1002]="SerialNumber_String",e[e.RenderModelName_String=1003]="RenderModelName_String",e[e.WillDriftInYaw_Bool=1004]="WillDriftInYaw_Bool",e[e.ManufacturerName_String=1005]="ManufacturerName_String",e[e.TrackingFirmwareVersion_String=1006]="TrackingFirmwareVersion_String",e[e.HardwareRevision_String=1007]="HardwareRevision_String",e[e.AllWirelessDongleDescriptions_String=1008]="AllWirelessDongleDescriptions_String",e[e.ConnectedWirelessDongle_String=1009]="ConnectedWirelessDongle_String",e[e.DeviceIsWireless_Bool=1010]="DeviceIsWireless_Bool",e[e.DeviceIsCharging_Bool=1011]="DeviceIsCharging_Bool",e[e.DeviceBatteryPercentage_Float=1012]="DeviceBatteryPercentage_Float",e[e.StatusDisplayTransform_Matrix34=1013]="StatusDisplayTransform_Matrix34",e[e.Firmware_UpdateAvailable_Bool=1014]="Firmware_UpdateAvailable_Bool",e[e.Firmware_ManualUpdate_Bool=1015]="Firmware_ManualUpdate_Bool",e[e.Firmware_ManualUpdateURL_String=1016]="Firmware_ManualUpdateURL_String",e[e.HardwareRevision_Uint64=1017]="HardwareRevision_Uint64",e[e.FirmwareVersion_Uint64=1018]="FirmwareVersion_Uint64",e[e.FPGAVersion_Uint64=1019]="FPGAVersion_Uint64",e[e.VRCVersion_Uint64=1020]="VRCVersion_Uint64",e[e.RadioVersion_Uint64=1021]="RadioVersion_Uint64",e[e.DongleVersion_Uint64=1022]="DongleVersion_Uint64",e[e.BlockServerShutdown_Bool=1023]="BlockServerShutdown_Bool",e[e.CanUnifyCoordinateSystemWithHmd_Bool=1024]="CanUnifyCoordinateSystemWithHmd_Bool",e[e.ContainsProximitySensor_Bool=1025]="ContainsProximitySensor_Bool",e[e.DeviceProvidesBatteryStatus_Bool=1026]="DeviceProvidesBatteryStatus_Bool",e[e.DeviceCanPowerOff_Bool=1027]="DeviceCanPowerOff_Bool",e[e.Firmware_ProgrammingTarget_String=1028]="Firmware_ProgrammingTarget_String",e[e.DeviceClass_Int32=1029]="DeviceClass_Int32",e[e.HasCamera_Bool=1030]="HasCamera_Bool",e[e.DriverVersion_String=1031]="DriverVersion_String",e[e.Firmware_ForceUpdateRequired_Bool=1032]="Firmware_ForceUpdateRequired_Bool",e[e.ViveSystemButtonFixRequired_Bool=1033]="ViveSystemButtonFixRequired_Bool",e[e.ParentDriver_Uint64=1034]="ParentDriver_Uint64",e[e.ResourceRoot_String=1035]="ResourceRoot_String",e[e.RegisteredDeviceType_String=1036]="RegisteredDeviceType_String",e[e.InputProfilePath_String=1037]="InputProfilePath_String",e[e.NeverTracked_Bool=1038]="NeverTracked_Bool",e[e.NumCameras_Int32=1039]="NumCameras_Int32",e[e.CameraFrameLayout_Int32=1040]="CameraFrameLayout_Int32",e[e.CameraStreamFormat_Int32=1041]="CameraStreamFormat_Int32",e[e.AdditionalDeviceSettingsPath_String=1042]="AdditionalDeviceSettingsPath_String",e[e.DevicePowerUsage_Float=1052]="DevicePowerUsage_Float",e[e.ReportsTimeSinceVSync_Bool=2e3]="ReportsTimeSinceVSync_Bool",e[e.SecondsFromVsyncToPhotons_Float=2001]="SecondsFromVsyncToPhotons_Float",e[e.DisplayFrequency_Float=2002]="DisplayFrequency_Float",e[e.UserIpdMeters_Float=2003]="UserIpdMeters_Float",e[e.CurrentUniverseId_Uint64=2004]="CurrentUniverseId_Uint64",e[e.PreviousUniverseId_Uint64=2005]="PreviousUniverseId_Uint64",e[e.DisplayFirmwareVersion_Uint64=2006]="DisplayFirmwareVersion_Uint64",e[e.IsOnDesktop_Bool=2007]="IsOnDesktop_Bool",e[e.DisplayMCType_Int32=2008]="DisplayMCType_Int32",e[e.DisplayMCOffset_Float=2009]="DisplayMCOffset_Float",e[e.DisplayMCScale_Float=2010]="DisplayMCScale_Float",e[e.EdidVendorID_Int32=2011]="EdidVendorID_Int32",e[e.DisplayMCImageLeft_String=2012]="DisplayMCImageLeft_String",e[e.DisplayMCImageRight_String=2013]="DisplayMCImageRight_String",e[e.DisplayGCBlackClamp_Float=2014]="DisplayGCBlackClamp_Float",e[e.EdidProductID_Int32=2015]="EdidProductID_Int32",e[e.CameraToHeadTransform_Matrix34=2016]="CameraToHeadTransform_Matrix34",e[e.DisplayGCType_Int32=2017]="DisplayGCType_Int32",e[e.DisplayGCOffset_Float=2018]="DisplayGCOffset_Float",e[e.DisplayGCScale_Float=2019]="DisplayGCScale_Float",e[e.DisplayGCPrescale_Float=2020]="DisplayGCPrescale_Float",e[e.DisplayGCImage_String=2021]="DisplayGCImage_String",e[e.LensCenterLeftU_Float=2022]="LensCenterLeftU_Float",e[e.LensCenterLeftV_Float=2023]="LensCenterLeftV_Float",e[e.LensCenterRightU_Float=2024]="LensCenterRightU_Float",e[e.LensCenterRightV_Float=2025]="LensCenterRightV_Float",e[e.UserHeadToEyeDepthMeters_Float=2026]="UserHeadToEyeDepthMeters_Float",e[e.CameraFirmwareVersion_Uint64=2027]="CameraFirmwareVersion_Uint64",e[e.CameraFirmwareDescription_String=2028]="CameraFirmwareDescription_String",e[e.DisplayFPGAVersion_Uint64=2029]="DisplayFPGAVersion_Uint64",e[e.DisplayBootloaderVersion_Uint64=2030]="DisplayBootloaderVersion_Uint64",e[e.DisplayHardwareVersion_Uint64=2031]="DisplayHardwareVersion_Uint64",e[e.AudioFirmwareVersion_Uint64=2032]="AudioFirmwareVersion_Uint64",e[e.CameraCompatibilityMode_Int32=2033]="CameraCompatibilityMode_Int32",e[e.ScreenshotHorizontalFieldOfViewDegrees_Float=2034]="ScreenshotHorizontalFieldOfViewDegrees_Float",e[e.ScreenshotVerticalFieldOfViewDegrees_Float=2035]="ScreenshotVerticalFieldOfViewDegrees_Float",e[e.DisplaySuppressed_Bool=2036]="DisplaySuppressed_Bool",e[e.DisplayAllowNightMode_Bool=2037]="DisplayAllowNightMode_Bool",e[e.DisplayMCImageWidth_Int32=2038]="DisplayMCImageWidth_Int32",e[e.DisplayMCImageHeight_Int32=2039]="DisplayMCImageHeight_Int32",e[e.DisplayMCImageNumChannels_Int32=2040]="DisplayMCImageNumChannels_Int32",e[e.DisplayMCImageData_Binary=2041]="DisplayMCImageData_Binary",e[e.SecondsFromPhotonsToVblank_Float=2042]="SecondsFromPhotonsToVblank_Float",e[e.DriverDirectModeSendsVsyncEvents_Bool=2043]="DriverDirectModeSendsVsyncEvents_Bool",e[e.DisplayDebugMode_Bool=2044]="DisplayDebugMode_Bool",e[e.GraphicsAdapterLuid_Uint64=2045]="GraphicsAdapterLuid_Uint64",e[e.DriverProvidedChaperonePath_String=2048]="DriverProvidedChaperonePath_String",e[e.ExpectedTrackingReferenceCount_Int32=2049]="ExpectedTrackingReferenceCount_Int32",e[e.ExpectedControllerCount_Int32=2050]="ExpectedControllerCount_Int32",e[e.NamedIconPathControllerLeftDeviceOff_String=2051]="NamedIconPathControllerLeftDeviceOff_String",e[e.NamedIconPathControllerRightDeviceOff_String=2052]="NamedIconPathControllerRightDeviceOff_String",e[e.NamedIconPathTrackingReferenceDeviceOff_String=2053]="NamedIconPathTrackingReferenceDeviceOff_String",e[e.DoNotApplyPrediction_Bool=2054]="DoNotApplyPrediction_Bool",e[e.CameraToHeadTransforms_Matrix34_Array=2055]="CameraToHeadTransforms_Matrix34_Array",e[e.DistortionMeshResolution_Int32=2056]="DistortionMeshResolution_Int32",e[e.DriverIsDrawingControllers_Bool=2057]="DriverIsDrawingControllers_Bool",e[e.DriverRequestsApplicationPause_Bool=2058]="DriverRequestsApplicationPause_Bool",e[e.DriverRequestsReducedRendering_Bool=2059]="DriverRequestsReducedRendering_Bool",e[e.MinimumIpdStepMeters_Float=2060]="MinimumIpdStepMeters_Float",e[e.AudioBridgeFirmwareVersion_Uint64=2061]="AudioBridgeFirmwareVersion_Uint64",e[e.ImageBridgeFirmwareVersion_Uint64=2062]="ImageBridgeFirmwareVersion_Uint64",e[e.ImuToHeadTransform_Matrix34=2063]="ImuToHeadTransform_Matrix34",e[e.ImuFactoryGyroBias_Vector3=2064]="ImuFactoryGyroBias_Vector3",e[e.ImuFactoryGyroScale_Vector3=2065]="ImuFactoryGyroScale_Vector3",e[e.ImuFactoryAccelerometerBias_Vector3=2066]="ImuFactoryAccelerometerBias_Vector3",e[e.ImuFactoryAccelerometerScale_Vector3=2067]="ImuFactoryAccelerometerScale_Vector3",e[e.ConfigurationIncludesLighthouse20Features_Bool=2069]="ConfigurationIncludesLighthouse20Features_Bool",e[e.Prop_AdditionalRadioFeatures_Uint64=2070]="Prop_AdditionalRadioFeatures_Uint64",e[e.Prop_CameraWhiteBalance_Vector4_Array=2071]="Prop_CameraWhiteBalance_Vector4_Array",e[e.Prop_CameraDistortionFunction_Int32_Array=2072]="Prop_CameraDistortionFunction_Int32_Array",e[e.Prop_CameraDistortionCoefficients_Float_Array=2073]="Prop_CameraDistortionCoefficients_Float_Array",e[e.Prop_ExpectedControllerType_String=2074]="Prop_ExpectedControllerType_String",e[e.HmdTrackingStyle_Int32=2075]="HmdTrackingStyle_Int32",e[e.DriverProvidedChaperoneVisibility_Bool=2076]="DriverProvidedChaperoneVisibility_Bool",e[e.HmdColumnCorrectionSettingPrefix_String=2077]="HmdColumnCorrectionSettingPrefix_String",e[e.CameraSupportsCompatibilityModes_Bool=2078]="CameraSupportsCompatibilityModes_Bool",e[e.SupportsRoomViewDepthProjection_Bool=2079]="SupportsRoomViewDepthProjection_Bool",e[e.DisplayAvailableFrameRates_Float_Array=2080]="DisplayAvailableFrameRates_Float_Array",e[e.DisplaySupportsRuntimeFramerateChange_Bool=2084]="DisplaySupportsRuntimeFramerateChange_Bool",e[e.DisplaySupportsAnalogGain_Bool=2085]="DisplaySupportsAnalogGain_Bool",e[e.DisplayMinAnalogGain_Float=2086]="DisplayMinAnalogGain_Float",e[e.DisplayMaxAnalogGain_Float=2087]="DisplayMaxAnalogGain_Float",e[e.DashboardScale_Float=2091]="DashboardScale_Float",e[e.PeerButtonInfo_String=2092]="PeerButtonInfo_String",e[e.IpdUIRangeMinMeters_Float=2100]="IpdUIRangeMinMeters_Float",e[e.IpdUIRangeMaxMeters_Float=2101]="IpdUIRangeMaxMeters_Float",e[e.Hmd_SupportsHDCP14LegacyCompat_Bool=2102]="Hmd_SupportsHDCP14LegacyCompat_Bool",e[e.Hmd_SupportsMicMonitoring_Bool=2103]="Hmd_SupportsMicMonitoring_Bool",e[e.Hmd_SupportsDisplayPortTrainingMode_Bool=2104]="Hmd_SupportsDisplayPortTrainingMode_Bool",e[e.Hmd_SupportsRoomViewDirect_Bool=2105]="Hmd_SupportsRoomViewDirect_Bool",e[e.Hmd_SupportsAppThrottling_Bool=2106]="Hmd_SupportsAppThrottling_Bool",e[e.Hmd_SupportsGpuBusMonitoring_Bool=2107]="Hmd_SupportsGpuBusMonitoring_Bool",e[e.DriverRequestedMuraCorrectionMode_Int32=2200]="DriverRequestedMuraCorrectionMode_Int32",e[e.DriverRequestedMuraFeather_InnerLeft_Int32=2201]="DriverRequestedMuraFeather_InnerLeft_Int32",e[e.DriverRequestedMuraFeather_InnerRight_Int32=2202]="DriverRequestedMuraFeather_InnerRight_Int32",e[e.DriverRequestedMuraFeather_InnerTop_Int32=2203]="DriverRequestedMuraFeather_InnerTop_Int32",e[e.DriverRequestedMuraFeather_InnerBottom_Int32=2204]="DriverRequestedMuraFeather_InnerBottom_Int32",e[e.DriverRequestedMuraFeather_OuterLeft_Int32=2205]="DriverRequestedMuraFeather_OuterLeft_Int32",e[e.DriverRequestedMuraFeather_OuterRight_Int32=2206]="DriverRequestedMuraFeather_OuterRight_Int32",e[e.DriverRequestedMuraFeather_OuterTop_Int32=2207]="DriverRequestedMuraFeather_OuterTop_Int32",e[e.DriverRequestedMuraFeather_OuterBottom_Int32=2208]="DriverRequestedMuraFeather_OuterBottom_Int32",e[e.Audio_SupportsDualSpeakerAndJackOutput_Bool=2303]="Audio_SupportsDualSpeakerAndJackOutput_Bool",e[e.AttachedDeviceId_String=3e3]="AttachedDeviceId_String",e[e.SupportedButtons_Uint64=3001]="SupportedButtons_Uint64",e[e.Axis0Type_Int32=3002]="Axis0Type_Int32",e[e.Axis1Type_Int32=3003]="Axis1Type_Int32",e[e.Axis2Type_Int32=3004]="Axis2Type_Int32",e[e.Axis3Type_Int32=3005]="Axis3Type_Int32",e[e.Axis4Type_Int32=3006]="Axis4Type_Int32",e[e.ControllerRoleHint_Int32=3007]="ControllerRoleHint_Int32",e[e.FieldOfViewLeftDegrees_Float=4e3]="FieldOfViewLeftDegrees_Float",e[e.FieldOfViewRightDegrees_Float=4001]="FieldOfViewRightDegrees_Float",e[e.FieldOfViewTopDegrees_Float=4002]="FieldOfViewTopDegrees_Float",e[e.FieldOfViewBottomDegrees_Float=4003]="FieldOfViewBottomDegrees_Float",e[e.TrackingRangeMinimumMeters_Float=4004]="TrackingRangeMinimumMeters_Float",e[e.TrackingRangeMaximumMeters_Float=4005]="TrackingRangeMaximumMeters_Float",e[e.ModeLabel_String=4006]="ModeLabel_String",e[e.IconPathName_String=5e3]="IconPathName_String",e[e.NamedIconPathDeviceOff_String=5001]="NamedIconPathDeviceOff_String",e[e.NamedIconPathDeviceSearching_String=5002]="NamedIconPathDeviceSearching_String",e[e.NamedIconPathDeviceSearchingAlert_String=5003]="NamedIconPathDeviceSearchingAlert_String",e[e.NamedIconPathDeviceReady_String=5004]="NamedIconPathDeviceReady_String",e[e.NamedIconPathDeviceReadyAlert_String=5005]="NamedIconPathDeviceReadyAlert_String",e[e.NamedIconPathDeviceNotReady_String=5006]="NamedIconPathDeviceNotReady_String",e[e.NamedIconPathDeviceStandby_String=5007]="NamedIconPathDeviceStandby_String",e[e.NamedIconPathDeviceAlertLow_String=5008]="NamedIconPathDeviceAlertLow_String",e[e.DisplayHiddenArea_Binary_Start=5100]="DisplayHiddenArea_Binary_Start",e[e.DisplayHiddenArea_Binary_End=5150]="DisplayHiddenArea_Binary_End",e[e.ParentContainer=5151]="ParentContainer",e[e.UserConfigPath_String=6e3]="UserConfigPath_String",e[e.InstallPath_String=6001]="InstallPath_String",e[e.HasDisplayComponent_Bool=6002]="HasDisplayComponent_Bool",e[e.HasControllerComponent_Bool=6003]="HasControllerComponent_Bool",e[e.HasCameraComponent_Bool=6004]="HasCameraComponent_Bool",e[e.HasDriverDirectModeComponent_Bool=6005]="HasDriverDirectModeComponent_Bool",e[e.HasVirtualDisplayComponent_Bool=6006]="HasVirtualDisplayComponent_Bool",e[e.HasSpatialAnchorsSupport_Bool=6007]="HasSpatialAnchorsSupport_Bool",e[e.ControllerType_String=7e3]="ControllerType_String",e[e.LegacyInputProfile_String=7001]="LegacyInputProfile_String",e[e.VendorSpecific_Reserved_Start=1e4]="VendorSpecific_Reserved_Start",e[e.VendorSpecific_Reserved_End=10999]="VendorSpecific_Reserved_End",e[e.TrackedDeviceProperty_Max=1e6]="TrackedDeviceProperty_Max"}(T||(T={})),function(e){e[e.Invalid=0]="Invalid",e[e.TrackingSystemName_String=1e3]="TrackingSystemName_String",e[e.ModelNumber_String=1001]="ModelNumber_String",e[e.SerialNumber_String=1002]="SerialNumber_String",e[e.RenderModelName_String=1003]="RenderModelName_String",e[e.WillDriftInYaw_Bool=1004]="WillDriftInYaw_Bool",e[e.ManufacturerName_String=1005]="ManufacturerName_String",e[e.TrackingFirmwareVersion_String=1006]="TrackingFirmwareVersion_String",e[e.HardwareRevision_String=1007]="HardwareRevision_String",e[e.AllWirelessDongleDescriptions_String=1008]="AllWirelessDongleDescriptions_String",e[e.ConnectedWirelessDongle_String=1009]="ConnectedWirelessDongle_String",e[e.DeviceIsWireless_Bool=1010]="DeviceIsWireless_Bool",e[e.DeviceIsCharging_Bool=1011]="DeviceIsCharging_Bool",e[e.DeviceBatteryPercentage_Float=1012]="DeviceBatteryPercentage_Float",e[e.StatusDisplayTransform_Matrix34=1013]="StatusDisplayTransform_Matrix34",e[e.Firmware_UpdateAvailable_Bool=1014]="Firmware_UpdateAvailable_Bool",e[e.Firmware_ManualUpdate_Bool=1015]="Firmware_ManualUpdate_Bool",e[e.Firmware_ManualUpdateURL_String=1016]="Firmware_ManualUpdateURL_String",e[e.HardwareRevision_Uint64=1017]="HardwareRevision_Uint64",e[e.FirmwareVersion_Uint64=1018]="FirmwareVersion_Uint64",e[e.FPGAVersion_Uint64=1019]="FPGAVersion_Uint64",e[e.VRCVersion_Uint64=1020]="VRCVersion_Uint64",e[e.RadioVersion_Uint64=1021]="RadioVersion_Uint64",e[e.DongleVersion_Uint64=1022]="DongleVersion_Uint64",e[e.BlockServerShutdown_Bool=1023]="BlockServerShutdown_Bool",e[e.CanUnifyCoordinateSystemWithHmd_Bool=1024]="CanUnifyCoordinateSystemWithHmd_Bool",e[e.ContainsProximitySensor_Bool=1025]="ContainsProximitySensor_Bool",e[e.DeviceProvidesBatteryStatus_Bool=1026]="DeviceProvidesBatteryStatus_Bool",e[e.DeviceCanPowerOff_Bool=1027]="DeviceCanPowerOff_Bool",e[e.Firmware_ProgrammingTarget_String=1028]="Firmware_ProgrammingTarget_String",e[e.DeviceClass_Int32=1029]="DeviceClass_Int32",e[e.HasCamera_Bool=1030]="HasCamera_Bool",e[e.DriverVersion_String=1031]="DriverVersion_String",e[e.Firmware_ForceUpdateRequired_Bool=1032]="Firmware_ForceUpdateRequired_Bool",e[e.ViveSystemButtonFixRequired_Bool=1033]="ViveSystemButtonFixRequired_Bool",e[e.ParentDriver_Uint64=1034]="ParentDriver_Uint64",e[e.ResourceRoot_String=1035]="ResourceRoot_String",e[e.RegisteredDeviceType_String=1036]="RegisteredDeviceType_String",e[e.InputProfilePath_String=1037]="InputProfilePath_String",e[e.NeverTracked_Bool=1038]="NeverTracked_Bool",e[e.NumCameras_Int32=1039]="NumCameras_Int32",e[e.CameraFrameLayout_Int32=1040]="CameraFrameLayout_Int32",e[e.CameraStreamFormat_Int32=1041]="CameraStreamFormat_Int32",e[e.AdditionalDeviceSettingsPath_String=1042]="AdditionalDeviceSettingsPath_String",e[e.DevicePowerUsage_Float=1052]="DevicePowerUsage_Float",e[e.ReportsTimeSinceVSync_Bool=2e3]="ReportsTimeSinceVSync_Bool",e[e.SecondsFromVsyncToPhotons_Float=2001]="SecondsFromVsyncToPhotons_Float",e[e.DisplayFrequency_Float=2002]="DisplayFrequency_Float",e[e.UserIpdMeters_Float=2003]="UserIpdMeters_Float",e[e.CurrentUniverseId_Uint64=2004]="CurrentUniverseId_Uint64",e[e.PreviousUniverseId_Uint64=2005]="PreviousUniverseId_Uint64",e[e.DisplayFirmwareVersion_Uint64=2006]="DisplayFirmwareVersion_Uint64",e[e.IsOnDesktop_Bool=2007]="IsOnDesktop_Bool",e[e.DisplayMCType_Int32=2008]="DisplayMCType_Int32",e[e.DisplayMCOffset_Float=2009]="DisplayMCOffset_Float",e[e.DisplayMCScale_Float=2010]="DisplayMCScale_Float",e[e.EdidVendorID_Int32=2011]="EdidVendorID_Int32",e[e.DisplayMCImageLeft_String=2012]="DisplayMCImageLeft_String",e[e.DisplayMCImageRight_String=2013]="DisplayMCImageRight_String",e[e.DisplayGCBlackClamp_Float=2014]="DisplayGCBlackClamp_Float",e[e.EdidProductID_Int32=2015]="EdidProductID_Int32",e[e.CameraToHeadTransform_Matrix34=2016]="CameraToHeadTransform_Matrix34",e[e.DisplayGCType_Int32=2017]="DisplayGCType_Int32",e[e.DisplayGCOffset_Float=2018]="DisplayGCOffset_Float",e[e.DisplayGCScale_Float=2019]="DisplayGCScale_Float",e[e.DisplayGCPrescale_Float=2020]="DisplayGCPrescale_Float",e[e.DisplayGCImage_String=2021]="DisplayGCImage_String",e[e.LensCenterLeftU_Float=2022]="LensCenterLeftU_Float",e[e.LensCenterLeftV_Float=2023]="LensCenterLeftV_Float",e[e.LensCenterRightU_Float=2024]="LensCenterRightU_Float",e[e.LensCenterRightV_Float=2025]="LensCenterRightV_Float",e[e.UserHeadToEyeDepthMeters_Float=2026]="UserHeadToEyeDepthMeters_Float",e[e.CameraFirmwareVersion_Uint64=2027]="CameraFirmwareVersion_Uint64",e[e.CameraFirmwareDescription_String=2028]="CameraFirmwareDescription_String",e[e.DisplayFPGAVersion_Uint64=2029]="DisplayFPGAVersion_Uint64",e[e.DisplayBootloaderVersion_Uint64=2030]="DisplayBootloaderVersion_Uint64",e[e.DisplayHardwareVersion_Uint64=2031]="DisplayHardwareVersion_Uint64",e[e.AudioFirmwareVersion_Uint64=2032]="AudioFirmwareVersion_Uint64",e[e.CameraCompatibilityMode_Int32=2033]="CameraCompatibilityMode_Int32",e[e.ScreenshotHorizontalFieldOfViewDegrees_Float=2034]="ScreenshotHorizontalFieldOfViewDegrees_Float",e[e.ScreenshotVerticalFieldOfViewDegrees_Float=2035]="ScreenshotVerticalFieldOfViewDegrees_Float",e[e.DisplaySuppressed_Bool=2036]="DisplaySuppressed_Bool",e[e.DisplayAllowNightMode_Bool=2037]="DisplayAllowNightMode_Bool",e[e.DisplayMCImageWidth_Int32=2038]="DisplayMCImageWidth_Int32",e[e.DisplayMCImageHeight_Int32=2039]="DisplayMCImageHeight_Int32",e[e.DisplayMCImageNumChannels_Int32=2040]="DisplayMCImageNumChannels_Int32",e[e.DisplayMCImageData_Binary=2041]="DisplayMCImageData_Binary",e[e.SecondsFromPhotonsToVblank_Float=2042]="SecondsFromPhotonsToVblank_Float",e[e.DriverDirectModeSendsVsyncEvents_Bool=2043]="DriverDirectModeSendsVsyncEvents_Bool",e[e.DisplayDebugMode_Bool=2044]="DisplayDebugMode_Bool",e[e.GraphicsAdapterLuid_Uint64=2045]="GraphicsAdapterLuid_Uint64",e[e.DriverProvidedChaperonePath_String=2048]="DriverProvidedChaperonePath_String",e[e.ExpectedTrackingReferenceCount_Int32=2049]="ExpectedTrackingReferenceCount_Int32",e[e.ExpectedControllerCount_Int32=2050]="ExpectedControllerCount_Int32",e[e.NamedIconPathControllerLeftDeviceOff_String=2051]="NamedIconPathControllerLeftDeviceOff_String",e[e.NamedIconPathControllerRightDeviceOff_String=2052]="NamedIconPathControllerRightDeviceOff_String",e[e.NamedIconPathTrackingReferenceDeviceOff_String=2053]="NamedIconPathTrackingReferenceDeviceOff_String",e[e.DoNotApplyPrediction_Bool=2054]="DoNotApplyPrediction_Bool",e[e.CameraToHeadTransforms_Matrix34_Array=2055]="CameraToHeadTransforms_Matrix34_Array",e[e.DistortionMeshResolution_Int32=2056]="DistortionMeshResolution_Int32",e[e.DriverIsDrawingControllers_Bool=2057]="DriverIsDrawingControllers_Bool",e[e.DriverRequestsApplicationPause_Bool=2058]="DriverRequestsApplicationPause_Bool",e[e.DriverRequestsReducedRendering_Bool=2059]="DriverRequestsReducedRendering_Bool",e[e.MinimumIpdStepMeters_Float=2060]="MinimumIpdStepMeters_Float",e[e.AudioBridgeFirmwareVersion_Uint64=2061]="AudioBridgeFirmwareVersion_Uint64",e[e.ImageBridgeFirmwareVersion_Uint64=2062]="ImageBridgeFirmwareVersion_Uint64",e[e.ImuToHeadTransform_Matrix34=2063]="ImuToHeadTransform_Matrix34",e[e.ImuFactoryGyroBias_Vector3=2064]="ImuFactoryGyroBias_Vector3",e[e.ImuFactoryGyroScale_Vector3=2065]="ImuFactoryGyroScale_Vector3",e[e.ImuFactoryAccelerometerBias_Vector3=2066]="ImuFactoryAccelerometerBias_Vector3",e[e.ImuFactoryAccelerometerScale_Vector3=2067]="ImuFactoryAccelerometerScale_Vector3",e[e.ConfigurationIncludesLighthouse20Features_Bool=2069]="ConfigurationIncludesLighthouse20Features_Bool",e[e.Prop_AdditionalRadioFeatures_Uint64=2070]="Prop_AdditionalRadioFeatures_Uint64",e[e.Prop_CameraWhiteBalance_Vector4_Array=2071]="Prop_CameraWhiteBalance_Vector4_Array",e[e.Prop_CameraDistortionFunction_Int32_Array=2072]="Prop_CameraDistortionFunction_Int32_Array",e[e.Prop_CameraDistortionCoefficients_Float_Array=2073]="Prop_CameraDistortionCoefficients_Float_Array",e[e.Prop_ExpectedControllerType_String=2074]="Prop_ExpectedControllerType_String",e[e.HmdTrackingStyle_Int32=2075]="HmdTrackingStyle_Int32",e[e.DriverProvidedChaperoneVisibility_Bool=2076]="DriverProvidedChaperoneVisibility_Bool",e[e.HmdColumnCorrectionSettingPrefix_String=2077]="HmdColumnCorrectionSettingPrefix_String",e[e.CameraSupportsCompatibilityModes_Bool=2078]="CameraSupportsCompatibilityModes_Bool",e[e.SupportsRoomViewDepthProjection_Bool=2079]="SupportsRoomViewDepthProjection_Bool",e[e.DisplayAvailableFrameRates_Float_Array=2080]="DisplayAvailableFrameRates_Float_Array",e[e.DisplaySupportsRuntimeFramerateChange_Bool=2084]="DisplaySupportsRuntimeFramerateChange_Bool",e[e.DisplaySupportsAnalogGain_Bool=2085]="DisplaySupportsAnalogGain_Bool",e[e.DisplayMinAnalogGain_Float=2086]="DisplayMinAnalogGain_Float",e[e.DisplayMaxAnalogGain_Float=2087]="DisplayMaxAnalogGain_Float",e[e.DashboardScale_Float=2091]="DashboardScale_Float",e[e.PeerButtonInfo_String=2092]="PeerButtonInfo_String",e[e.IpdUIRangeMinMeters_Float=2100]="IpdUIRangeMinMeters_Float",e[e.IpdUIRangeMaxMeters_Float=2101]="IpdUIRangeMaxMeters_Float",e[e.Hmd_SupportsHDCP14LegacyCompat_Bool=2102]="Hmd_SupportsHDCP14LegacyCompat_Bool",e[e.Hmd_SupportsMicMonitoring_Bool=2103]="Hmd_SupportsMicMonitoring_Bool",e[e.Hmd_SupportsDisplayPortTrainingMode_Bool=2104]="Hmd_SupportsDisplayPortTrainingMode_Bool",e[e.Hmd_SupportsRoomViewDirect_Bool=2105]="Hmd_SupportsRoomViewDirect_Bool",e[e.Hmd_SupportsAppThrottling_Bool=2106]="Hmd_SupportsAppThrottling_Bool",e[e.Hmd_SupportsGpuBusMonitoring_Bool=2107]="Hmd_SupportsGpuBusMonitoring_Bool",e[e.DriverRequestedMuraCorrectionMode_Int32=2200]="DriverRequestedMuraCorrectionMode_Int32",e[e.DriverRequestedMuraFeather_InnerLeft_Int32=2201]="DriverRequestedMuraFeather_InnerLeft_Int32",e[e.DriverRequestedMuraFeather_InnerRight_Int32=2202]="DriverRequestedMuraFeather_InnerRight_Int32",e[e.DriverRequestedMuraFeather_InnerTop_Int32=2203]="DriverRequestedMuraFeather_InnerTop_Int32",e[e.DriverRequestedMuraFeather_InnerBottom_Int32=2204]="DriverRequestedMuraFeather_InnerBottom_Int32",e[e.DriverRequestedMuraFeather_OuterLeft_Int32=2205]="DriverRequestedMuraFeather_OuterLeft_Int32",e[e.DriverRequestedMuraFeather_OuterRight_Int32=2206]="DriverRequestedMuraFeather_OuterRight_Int32",e[e.DriverRequestedMuraFeather_OuterTop_Int32=2207]="DriverRequestedMuraFeather_OuterTop_Int32",e[e.DriverRequestedMuraFeather_OuterBottom_Int32=2208]="DriverRequestedMuraFeather_OuterBottom_Int32",e[e.Audio_SupportsDualSpeakerAndJackOutput_Bool=2303]="Audio_SupportsDualSpeakerAndJackOutput_Bool",e[e.AttachedDeviceId_String=3e3]="AttachedDeviceId_String",e[e.SupportedButtons_Uint64=3001]="SupportedButtons_Uint64",e[e.Axis0Type_Int32=3002]="Axis0Type_Int32",e[e.Axis1Type_Int32=3003]="Axis1Type_Int32",e[e.Axis2Type_Int32=3004]="Axis2Type_Int32",e[e.Axis3Type_Int32=3005]="Axis3Type_Int32",e[e.Axis4Type_Int32=3006]="Axis4Type_Int32",e[e.ControllerRoleHint_Int32=3007]="ControllerRoleHint_Int32",e[e.FieldOfViewLeftDegrees_Float=4e3]="FieldOfViewLeftDegrees_Float",e[e.FieldOfViewRightDegrees_Float=4001]="FieldOfViewRightDegrees_Float",e[e.FieldOfViewTopDegrees_Float=4002]="FieldOfViewTopDegrees_Float",e[e.FieldOfViewBottomDegrees_Float=4003]="FieldOfViewBottomDegrees_Float",e[e.TrackingRangeMinimumMeters_Float=4004]="TrackingRangeMinimumMeters_Float",e[e.TrackingRangeMaximumMeters_Float=4005]="TrackingRangeMaximumMeters_Float",e[e.ModeLabel_String=4006]="ModeLabel_String",e[e.IconPathName_String=5e3]="IconPathName_String",e[e.NamedIconPathDeviceOff_String=5001]="NamedIconPathDeviceOff_String",e[e.NamedIconPathDeviceSearching_String=5002]="NamedIconPathDeviceSearching_String",e[e.NamedIconPathDeviceSearchingAlert_String=5003]="NamedIconPathDeviceSearchingAlert_String",e[e.NamedIconPathDeviceReady_String=5004]="NamedIconPathDeviceReady_String",e[e.NamedIconPathDeviceReadyAlert_String=5005]="NamedIconPathDeviceReadyAlert_String",e[e.NamedIconPathDeviceNotReady_String=5006]="NamedIconPathDeviceNotReady_String",e[e.NamedIconPathDeviceStandby_String=5007]="NamedIconPathDeviceStandby_String",e[e.NamedIconPathDeviceAlertLow_String=5008]="NamedIconPathDeviceAlertLow_String",e[e.DisplayHiddenArea_Binary_Start=5100]="DisplayHiddenArea_Binary_Start",e[e.DisplayHiddenArea_Binary_End=5150]="DisplayHiddenArea_Binary_End",e[e.ParentContainer=5151]="ParentContainer",e[e.UserConfigPath_String=6e3]="UserConfigPath_String",e[e.InstallPath_String=6001]="InstallPath_String",e[e.HasDisplayComponent_Bool=6002]="HasDisplayComponent_Bool",e[e.HasControllerComponent_Bool=6003]="HasControllerComponent_Bool",e[e.HasCameraComponent_Bool=6004]="HasCameraComponent_Bool",e[e.HasDriverDirectModeComponent_Bool=6005]="HasDriverDirectModeComponent_Bool",e[e.HasVirtualDisplayComponent_Bool=6006]="HasVirtualDisplayComponent_Bool",e[e.HasSpatialAnchorsSupport_Bool=6007]="HasSpatialAnchorsSupport_Bool",e[e.ControllerType_String=7e3]="ControllerType_String",e[e.LegacyInputProfile_String=7001]="LegacyInputProfile_String",e[e.VendorSpecific_Reserved_Start=1e4]="VendorSpecific_Reserved_Start",e[e.VendorSpecific_Reserved_End=10999]="VendorSpecific_Reserved_End",e[e.TrackedDeviceProperty_Max=1e6]="TrackedDeviceProperty_Max"}(A||(A={}))},54856:(e,t,n)=>{"use strict";n.d(t,{gA:()=>s,lq:()=>a});var r=n(45878),i=(n(47165),n(16244),n(84321)),o=n(27527);class a{static InstallErrorReportingStore(e){this.sm_ErrorReportingStore=e}static InitHeaderFromPacket(e){return new a(void 0,e)}constructor(e,t,n,o,a){if(o)this.m_eMsg=o.m_eMsg,this.m_bValid=o.m_bValid,this.m_bValid&&(this.m_netPacket=o.m_netPacket,this.m_cubHeader=o.m_cubHeader,this.m_header=o.m_header,this.InitForType(n));else{if(this.m_header=new i.Cu(null),this.m_bValid=!0,t)if(this.m_netPacket=t,this.m_netPacket.SeekGetHead(),this.m_eMsg=this.m_netPacket.GetUint32(),2147483648&this.m_eMsg){this.m_eMsg=2147483647&this.m_eMsg,this.m_cubHeader=this.m_netPacket.GetUint32();try{i.Cu.deserializeBinaryFromReader(this.m_header,new r.BinaryReader(this.m_netPacket.GetPacket(),this.m_netPacket.TellGet(),this.m_cubHeader)),this.m_netPacket.SeekGetCurrent(this.m_cubHeader),n&&this.InitForType(n)}catch(e){console.error("Exception deserializing protobuf",e),this.m_bValid=!1}}else this.m_bValid=!1;else e&&(this.m_eMsg=e),n&&(this.m_body=new n);a&&this.m_header.set_jobid_target(a.Hdr().jobid_target())}}InitForType(e){if(this.m_body=new e,this.m_netPacket){this.m_netPacket.SeekGetHead(8+this.m_cubHeader);try{e.deserializeBinaryFromReader(this.m_body,new r.BinaryReader(this.m_netPacket.GetPacket(),this.m_netPacket.TellGet(),this.m_netPacket.GetCountBytesRemaining()))}catch(e){this.m_bValid=!1;const t=a.sm_ErrorReportingStore,n=`Exception parsing protobuf message body of type ${this.m_eMsg}. Definitions may be out of sync with server version.`;t&&t.ReportError(new Error(n),{bIncludeMessageInIdentifier:!0}),console.warn(n),console.log(e.stack||e)}}}BIsValid(){return this.m_bValid}Body(){return this.m_body}SetBodyJSON(e){e.toObject=()=>e,this.m_body=e}Hdr(){return this.m_header}GetEMsg(){return this.m_eMsg}SetEMsg(e){this.m_eMsg=e}GetEResult(){return this.Hdr().eresult()}BSuccess(){return 1==this.Hdr().eresult()}GetErrorMessage(){return this.Hdr().error_message()?this.Hdr().error_message():`eresult ${this.Hdr().eresult()}`}Serialize(){let e=this.m_header.serializeBinary(),t=this.m_body.serializeBinary(),n=2147483648|this.m_eMsg,r=new Uint8Array(8+e.length+t.length),i=new o.At(r);return i.PutUint32(n),i.PutUint32(e.length),i.PutBytes(e),i.PutBytes(t),r}SerializeBody(){let e=this.m_body.serializeBinary(),t=new Uint8Array(e.length);return new o.At(t).PutBytes(e),t}DEBUG_ToObject(){return{}}DEBUG_LogToConsole(){0}}class s extends a{constructor(e,t=0,n,r){super(t,n,e,r)}static InitFromPacket(e,t){return new s(e,0,t)}static InitFromMsg(e,t){return new s(e,void 0,void 0,t)}static Init(e,t){return new s(e,t)}Body(){return super.Body()}SetBodyFields(e){for(let t in e)Array.isArray(e[t])?this.Body()[`add_${t}`]&&e[t].forEach((e=>{this.Body()[`add_${t}`](e)})):this.Body()[`set_${t}`]&&this.Body()[`set_${t}`](e[t])}}},29063:(e,t,n)=>{"use strict";n.d(t,{Bh:()=>a,F:()=>c,FE:()=>i,TA:()=>l,Xc:()=>o,aD:()=>s,aR:()=>u,l2:()=>d});var r=n(45878);const i=r.BinaryReader.prototype,o=r.BinaryWriter.prototype;function a(e){let t={};const{fields:n}=e;for(let e in n){const r=n[e];t[r.n]=r}return t}function s(e,t){const{proto:n,fields:i}=e,o=new n;for(let e in i){const{n,c:a,r:s,d:l,q:c}=i[e];if(!t.hasOwnProperty(e))continue;const d=t[e];a?s?r.Message.setRepeatedWrapperField(o,n,Array.isArray(d)?d.map((e=>a.fromObject(e))):[]):r.Message.setWrapperField(o,n,a.fromObject(d)):r.Message.setField(o,n,d)}return o}function l(e,t,n){const{proto:i,fields:o}=e;let a={};for(let e in o){const{n:i,c:s,r:l,d:c,q:d}=o[e];if(s)if(l)a[e]=r.Message.toObjectList(r.Message.getRepeatedWrapperField(n,s,i),s.toObject,t);else{const o=r.Message.getWrapperField(n,s,i,d?1:0);o&&(a[e]=s.toObject(t,o))}else{const t=r.Message.getFieldWithDefault(n,i,void 0!==c?c:null);(null!==t||d)&&(a[e]=t)}}return t&&(a.$jspbMessageInstance=n),a}function c(e,t,n){for(;n.nextField()&&!n.isEndGroup();){const i=e[n.getFieldNumber()];if(i){const{n:e,c:o,r:a,d:s,q:l,br:c}=i;if(o){const i=new o;n.readMessage(i,o.deserializeBinaryFromReader),a?r.Message.addToRepeatedWrapperField(t,e,i,o):r.Message.setWrapperField(t,e,i)}else if(c){const i=c.call(n);a?r.Message.addToRepeatedField(t,e,i):r.Message.setField(t,e,i)}else console.assert(c,`Reader func not set for field number ${e} in class ${o}`),n.skipField()}else n.skipField()}return t}function d(e,t,n){const{fields:i}=e;for(let e in i){const{n:o,c:a,r:s,d:l,q:c,bw:d}=i[e];if(a)if(s){const e=r.Message.getRepeatedWrapperField(t,a,o);(e&&e.length||c)&&n.writeRepeatedMessage(o,e,a.serializeBinaryToWriter)}else{const e=r.Message.getWrapperField(t,a,o,c?1:0);e&&n.writeMessage(o,e,a.serializeBinaryToWriter)}else if(d){const e=r.Message.getField(t,o);void 0!==e&&d.call(n,o,e)}else console.assert(d,`Writer func not set for field number ${o} in class ${a}`)}}function u(e){const t=e.proto;for(const n in e.fields){const i=e.fields[n],{n:o,c:a,r:s,d:l,q:c}=i;i.hasOwnProperty("d")?t.prototype[n]=m(r.Message.getFieldWithDefault,o,l):t.prototype[n]=a?s?m(r.Message.getRepeatedWrapperField,a,o):h(a,o):m(r.Message.getField,o),t.prototype[`set_${n}`]=p(a?s?r.Message.setRepeatedWrapperField:r.Message.setWrapperField:r.Message.setField,o),s&&(t.prototype[`add_${n}`]=_(o,a))}}function m(e,...t){return function(){return e(this,...t)}}function h(e,t){return function(n=!0){return r.Message.getWrapperField(this,e,t,n?1:0)}}function p(e,t){return function(n){return e(this,t,n)}}function _(e,t){return t?function(n,i){return r.Message.addToRepeatedWrapperField(this,e,n,t,i)}:function(t,n){r.Message.addToRepeatedField(this,e,t,n)}}},27070:(e,t,n)=>{"use strict";n.d(t,{Ub:()=>s,lS:()=>c,y$:()=>l});var r=n(89526);const i=r.createContext(void 0),o=i.Provider,a=()=>{const e=r.useContext(i);if(!e)throw new Error("called useActiveServiceTransportContext outside of ServiceTransportProvider");return e};function s(e){const{useStorage:t,children:n}=e;let i,a;a="useActiveCMInterface"in e?i=e.useActiveCMInterface:e.useActiveSteamInterface;const s=r.useMemo((()=>({useActiveSteamInterface:a,useActiveCMInterface:i,useStorage:t})),[a,i,t]);return r.createElement(o,{value:s},n)}const l=()=>a().useStorage(),c=()=>a().useActiveSteamInterface()},27527:(e,t,n)=>{"use strict";n.d(t,{At:()=>r});class r{constructor(e,t=0,n){this.m_nOffset=t||0,e instanceof Uint8Array||e instanceof DataView?(this.m_nLength=n||e.byteLength-this.m_nOffset,this.m_nOffset+=e.byteOffset,this.m_viewPacket=new DataView(e.buffer,this.m_nOffset,this.m_nLength)):(this.m_nLength=n||e.byteLength-this.m_nOffset,this.m_viewPacket=new DataView(e,this.m_nOffset,this.m_nLength)),this.m_rgubPacket=new Uint8Array(this.m_viewPacket.buffer,this.m_viewPacket.byteOffset,this.m_viewPacket.byteLength),this.m_iGet=0,this.m_iPut=0}TellGet(){return this.m_iGet+this.m_viewPacket.byteOffset}GetPacket(){return this.m_viewPacket.buffer}GetUint8(){return this.m_viewPacket.getUint8(this.m_iGet++)}GetUint32(e=!0){let t=this.m_viewPacket.getUint32(this.m_iGet,e);return this.m_iGet+=4,t}SeekGetHead(e=0){this.m_iGet=e||0}SeekGetCurrent(e){this.m_iGet+=e}TellPut(){return this.m_iPut+this.m_viewPacket.byteOffset}TellMaxPut(){return this.m_viewPacket.byteLength}PutUint8(e){this.m_viewPacket.setUint8(this.m_iPut++,e)}PutUint32(e,t=!0){this.m_viewPacket.setUint32(this.m_iPut,e,t),this.m_iPut+=4}PutBytes(e){this.m_rgubPacket.set(e,this.m_iPut),this.m_iPut+=e.length}SeekPut(e){this.m_iPut+=e}GetCountBytesRemaining(){return this.m_viewPacket.byteLength-this.m_iGet}}},65406:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(33940);class i{GetObject(e){return(0,r.mG)(this,void 0,void 0,(function*(){try{const t=yield this.GetString(e);return t?JSON.parse(t):null}catch(e){return null}}))}StoreObject(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){return this.StoreString(e,JSON.stringify(t))}))}}class o extends i{GetString(e){return Promise.resolve(localStorage.getItem(e))}StoreString(e,t){return localStorage.setItem(e,t),Promise.resolve()}RemoveObject(e){return localStorage.removeItem(e),Promise.resolve()}}},40103:(e,t,n)=>{"use strict";n.d(t,{Oo:()=>s,yV:()=>l});n(65850);var r=n(30837),i=n(16383),o=n(23801);class a{constructor(){this.m_mapManagers=new WeakMap}GetContextMenuManagerFromWindow(e){var t;let n=(null===(t=null==e?void 0:e.ownerDocument)||void 0===t?void 0:t.defaultView)||window;return this.GetContextMenuManager(n)}GetContextMenuManager(e){let t=this.m_mapManagers.get(e);if(!t){let n=e;for(;!t&&n.opener;)n=n.opener,t=this.m_mapManagers.get(n)}return t||(t=new r.u,this.m_mapManagers.set(e,t)),t}SetMenuManager(e,t){(0,o.X)(!this.m_mapManagers.has(e)||!t||e==window,`Stomping CContextMenuManager for ${e.document.title}!`),this.m_mapManagers.set(e,t)}RegisterChildWindow(e,t){this.m_mapManagers.set(t,this.GetContextMenuManager(e))}}const s=(0,i.Yt)("ContextMenuFactory",(()=>new a));function l(e,t,n){let r,i,o,a=t;if((null==a?void 0:a.preventDefault)&&(null==a?void 0:a.stopPropagation)){if(a.shiftKey||a.altKey&&!n.bRootContextMenu)return null;a.preventDefault(),a.stopPropagation(),o=a.currentTarget,r=a.clientX,i=a.clientY}else o=t;let l=s.GetContextMenuManagerFromWindow(o).CreateContextMenuInstance(e,o,r,i,n);return l.Show(),(null==n?void 0:n.bCreateHidden)&&l.Hide(),l}},65850:(e,t,n)=>{"use strict";n.d(t,{$Y:()=>s});var r=n(33940),i=n(50265),o=n(60161);n(69159);class a{constructor(e,t){this.m_nKey=null,this.m_bVisible=!1,this.m_elSubmenuItem=null,this.m_timerHideSubMenu=0,this.m_ContextMenuManager=e,this.m_rctElement=t}get Manager(){return this.m_ContextMenuManager}get key(){return null==this.m_nKey&&(this.m_nKey=a.s_nNextKeyValue,a.s_nNextKeyValue++),this.m_nKey}SetElement(e){this.m_element=e}SetPopup(e){this.m_popupContextMenu=e}get ReactElement(){return this.m_rctElement}get label(){return this.m_rctLabel}get submenu(){return this.m_submenu}get visible(){return this.m_bVisible}get options(){return this.m_options}get position(){return this.m_position}SetOnHideCallback(e){this.m_fnOnHideCallback=e}Show(){this.m_ContextMenuManager.ShowMenu(this),this.m_bVisible=!0}OnCancel(){this.options.onCancel&&this.options.onCancel(),this.Hide()}Hide(){this.InternalHide()}ForceHide(){this.InternalHide()}HideIfNotInFocus(){this.BHasFocus()||this.BIsFocusInChildHierarchy()||this.Hide()}InternalHide(){this.m_bVisible&&(this.m_bVisible=!1,this.InternalHideSubMenu(),this.m_fnOnHideCallback&&this.m_fnOnHideCallback(),this.m_ContextMenuManager.HideMenu(this))}SetTakeFocus(e){this.m_fnTakeFocus=e}ShowSubMenu(e,t){return this.m_elSubmenuItem==e?(this.CancelHideSubMenuTimer(),this.m_submenu.TakeFocus(),null):(this.InternalHideSubMenu(),this.m_elSubmenuItem=e,this.m_submenu=new l(this,t(),e),this.m_submenu.Show(),this.m_submenu)}CancelHideSubMenuTimer(){this.m_timerHideSubMenu>0&&(clearTimeout(this.m_timerHideSubMenu),this.m_timerHideSubMenu=0)}HideSubMenu(){if(!this.m_submenu)return void this.CancelHideSubMenuTimer();if(this.m_timerHideSubMenu>0)return;this.m_timerHideSubMenu=window.setTimeout((()=>{this.InternalHideSubMenu(),this.m_timerHideSubMenu=0}),150)}OnSubMenuDismissed(e){this.m_submenu==e&&this.InternalHideSubMenu()}HideSelf(){this.m_parentInstance?this.m_parentInstance.OnSubMenuDismissed(this):this.InternalHide()}InternalHideSubMenu(){this.CancelHideSubMenuTimer(),this.m_submenu&&(this.m_submenu.m_element&&this.BIsFocusInChildHierarchy()&&this.TakeFocus(),this.m_elSubmenuItem=null,this.m_submenu.InternalHide(),this.m_submenu=null)}TakeFocus(){this.m_popupContextMenu&&this.m_popupContextMenu.Focus(),this.m_fnTakeFocus&&this.m_fnTakeFocus()}BInternalElementInParentHierarchy(e){return this.m_parentInstance&&(this.m_parentInstance.BIsChildElement(e)||this.m_parentInstance.BInternalElementInParentHierarchy(e))}BInternalElementInChildHierarchy(e){return this.m_submenu&&(this.m_submenu.BIsChildElement(e)||this.m_submenu.BInternalElementInChildHierarchy(e))}BIsChildElement(e){return this.m_element?o.ni(this.m_element,e):o.ni(this.m_popupContextMenu.root_element,e)}BHasFocus(){return this.m_popupContextMenu?this.m_popupContextMenu.focused:o.ni(this.m_element,this.m_element.ownerDocument.activeElement)}BIsFocusInChildHierarchy(){return this.m_submenu&&(this.m_submenu.BHasFocus()||this.m_submenu.BIsFocusInChildHierarchy())}BIsElementInMenuHierarchy(e){return this.BInternalElementInParentHierarchy(e)||this.BInternalElementInChildHierarchy(e)}BIsSubMenuVisible(){return!!this.m_submenu}SetLabel(e){this.m_rctLabel=e}}a.s_nNextKeyValue=1,(0,r.gn)([i.LO],a.prototype,"m_bVisible",void 0),(0,r.gn)([i.LO.ref],a.prototype,"m_rctLabel",void 0);class s extends a{constructor(e,t,n,r,i,o){super(e,t),this.m_options=o||{},this.m_position={element:n,clientX:r,clientY:i,instance:this,options:this.m_options,fnOnMenuItemSelected:()=>{this.Hide()}}}Show(){super.Show()}Hide(){super.Hide()}ForceHide(){super.ForceHide()}BIsSubMenu(){return!1}}class l extends a{constructor(e,t,n){super(e.Manager,t),this.m_parentInstance=e,this.m_options={bOverlapVertical:!0,strClassName:e.options.strClassName,bFitToWindow:e.options.bFitToWindow,bShiftToFitWindow:e.options.bShiftToFitWindow},this.m_position={element:n,clientX:null,clientY:null,instance:this,options:this.m_options,fnOnMenuItemSelected:()=>{this.Hide()},bSubmenu:!0}}Hide(){this.m_popupContextMenu?window.setTimeout((()=>{this.m_parentInstance.HideIfNotInFocus()}),10):this.m_parentInstance.Hide()}ForceHide(){this.m_parentInstance.ForceHide()}BIsSubMenu(){return!0}}},30837:(e,t,n)=>{"use strict";n.d(t,{u:()=>s});var r=n(65850),i=n(23801),o=n(85246),a=n(11837);class s{constructor(){this.m_callbacksMenusChanged=new o.pB,this.m_rgActiveSubmenus=[],this.m_setHiddenMenus=new Set}CreateContextMenuInstance(e,t,n,i,o){const a=new r.$Y(this,e,t,n,i,o);return(null==o?void 0:o.bCreateHidden)&&(this.m_setHiddenMenus.add(a),this.m_callbacksMenusChanged.Dispatch()),a}get OnMenusChanged(){return this.m_callbacksMenusChanged}HideActiveMenu(){this.m_ActiveMenu.options.bRetainOnHide?this.m_setHiddenMenus.add(this.m_ActiveMenu):this.m_rgActiveSubmenus.length&&(this.m_rgActiveSubmenus=[]),this.m_ActiveMenu=void 0}get ActiveMenu(){return this.m_ActiveMenu}GetVisibleMenus(){return this.m_ActiveMenu?[this.m_ActiveMenu,...this.m_rgActiveSubmenus]:[]}GetHiddenMenus(){return Array.from(this.m_setHiddenMenus)}GetAllMenus(){let e;return e=this.m_ActiveMenu?[this.m_ActiveMenu,...this.m_rgActiveSubmenus,...Array.from(this.m_setHiddenMenus)]:[...this.m_rgActiveSubmenus,...Array.from(this.m_setHiddenMenus)],e.sort(((e,t)=>e.key-t.key))}BShouldRenderMouseOverlay(){return this.m_ActiveMenu&&!this.m_ActiveMenu.options.bDisableMouseOverlay}ShowMenu(e){if(e.BIsSubMenu())this.m_rgActiveSubmenus.push(e);else{if(e==this.m_ActiveMenu)return;this.m_ActiveMenu&&(this.m_ActiveMenu.options.bRetainOnHide&&this.m_setHiddenMenus.add(this.m_ActiveMenu),this.m_ActiveMenu.Hide()),this.m_ActiveMenu=e,this.m_setHiddenMenus.delete(e)}this.m_callbacksMenusChanged.Dispatch()}HideMenu(e){e.BIsSubMenu()?a.Zf(this.m_rgActiveSubmenus,e)&&this.m_callbacksMenusChanged.Dispatch():((0,i.X)(e==this.m_ActiveMenu,"Call to hide inactive menu"),e==this.m_ActiveMenu&&(this.HideActiveMenu(),this.m_callbacksMenusChanged.Dispatch()))}ReleaseHiddenMenu(e){this.m_setHiddenMenus.delete(e)}}},894:(e,t,n)=>{"use strict";n.d(t,{AN:()=>s});var r=n(73961),i=n(60161);class o{constructor(e){this.instance=new a(e,!1)}}class a{constructor(e,t=!0){this.m_parent=e,this.m_window=e.ownerDocument.defaultView,this.m_bRemoveOnHide=t}Show(e,t){return this.CancelShowInterval(),t?new Promise(((n,r)=>{this.iIntervalShow=this.m_window.setTimeout((()=>{let t=this.m_parent.ownerDocument;t.defaultView&&!t.defaultView.closed&&(this.InternalShow(e),n())}),t)})):(this.InternalShow(e),Promise.resolve())}InternalShow(e){this.m_container||(this.m_container=this.m_parent.ownerDocument.createElement("div"),this.m_parent.appendChild(this.m_container)),r.render(e,this.m_container)}Hide(e){this.CancelShowInterval(),e?this.iIntervalShow=this.m_window.setTimeout((()=>{this.InternalHide()}),e):this.InternalHide()}InternalHide(){this.m_container&&(r.unmountComponentAtNode(this.m_container),this.m_bRemoveOnHide&&(this.m_parent.removeChild(this.m_container),this.m_container=null))}CancelShowInterval(){void 0!==this.iIntervalShow&&(this.m_window.clearInterval(this.iIntervalShow),this.iIntervalShow=void 0)}BIsChildElement(e){return this.m_container&&i.ni(this.m_container,e)}}class s{constructor(e){this.m_mapEmbeddedHovers=new WeakMap,this.m_strUniqueID=e}ShowElementDelayed(e,t,n,r){let i=this.GetEmbeddedElement(e);return i.activeObject=r,i.instance.Show(n,t)}ShowElement(e,t,n){let r=this.GetEmbeddedElement(e);r.activeObject=n,r.instance.Show(t)}HideElement(e,t,n){let r=this.GetEmbeddedElement(e);r.activeObject==t&&(r.activeObject=void 0,r.instance.Hide(n))}GetEmbeddedElement(e){let t=this.m_mapEmbeddedHovers.get(e);return t||(t=new o(e.body),this.m_mapEmbeddedHovers.set(e,t)),t}}},73070:(e,t,n)=>{"use strict";n.d(t,{Rt:()=>S,K3:()=>E,eL:()=>_,Wy:()=>C});var r=n(33940),i=n(50265),o=n(89526),a=n(60161),s=n(37377),l=n(26464),c=n(86283),d=n(14826),u=n(32765),m=n(23801),h=n(11837);class p{constructor(e,t,n){if(this.m_rgLoadingLinks=[],this.m_rgLoadingLinks=[],n)for(let e=0;eo.useContext(v);function S(e){const{ownerWindow:t,children:n}=e,r=o.useMemo((()=>({ownerWindow:t})),[t]);return o.createElement(v.Provider,{value:r},n)}class E{constructor(e,t){this.m_bCreated=!1,this.m_onCreateRender=null,this.m_bFocused=!1,(0,m.X)(e,"Name is required. This is an internal name, different from title."),this.m_strName=e,this.m_rgParams=t,this.m_rgParams.target_browser&&(this.m_strName+="_uid"+this.m_rgParams.target_browser.m_unPID),this.m_bCreateHidden=!!(t.eCreationFlags&_.Hidden),this.m_strTitle=t.title,delete this.m_rgParams.title}UpdateParamsBeforeShow(e){return e}OnDrop(e){console.log("Ignoring drop onto toplevel window",e),e.preventDefault(),e.stopPropagation()}OnDragOver(e){e.preventDefault(),e.dataTransfer.dropEffect="none",e.stopPropagation()}OnMessage(e){"window_moved"==e.data&&this.OnResize(),"popup-created"==e.data&&this.OnCreateInternal(),"steam_shutdown"==e.data&&SteamClient.User.StartShutdown(!1)}Show(e=!0,t=!1){var n,r;window.SteamClient&&(this.m_rgParams.eCreationFlags|=_.Hidden),this.m_rgParams.eCreationFlags&_.NotFocusable&&(e=!1),this.BIsValid()&&(this.BIsClosed()?(this.m_popup=void 0,this.m_element=void 0):e&&this.Focus(t));let i,o,a,s=b.GetExistingPopup(this.m_strName);s&&!this.m_rgParams.replace_existing_popup||(this.m_rgParams=this.UpdateParamsBeforeShow(this.m_rgParams),s?(o=s.m_element,i=s.m_popup,s.ReleasePopup(),a=s.m_renderWhenReady,b.RemoveTrackedPopup(s),i.removeEventListener("beforeunload",s.OnBeforeUnloadEvent),i.removeEventListener("unload",s.OnUnload),i.removeEventListener("resize",s.OnResizeEvent),i.removeEventListener("focus",this.OnFocusInternal),i.removeEventListener("blur",this.OnBlurInternal),i.removeEventListener("drop",s.OnDrop),i.removeEventListener("dragover",s.OnDragOver),i.removeEventListener("message",this.OnMessage)):(({popup:i,element:o}=D.CreatePopup(this.m_strName,this.m_rgParams)),a=new p(i.document,o)),i&&o&&(i.document.title=this.m_strTitle,i.addEventListener("beforeunload",this.OnBeforeUnloadEvent),i.addEventListener("unload",this.OnUnload),i.addEventListener("resize",this.OnResizeEvent),i.addEventListener("focus",this.OnFocusInternal),i.addEventListener("blur",this.OnBlurInternal),i.addEventListener("drop",this.OnDrop),i.addEventListener("dragover",this.OnDragOver),i.addEventListener("message",this.OnMessage),u.De.LANGUAGE&&i.document.documentElement.setAttribute("lang",(0,d.CE)()),this.m_popup=i,this.m_element=o,this.m_renderWhenReady=a,this.m_renderWhenReady.SetTarget((()=>this.RenderInternal(this.m_popup,this.m_element,e)))),b.AddTrackedPopup(this),s?(this.OnCreateInternal(),e&&this.Focus()):(null===(r=null===(n=SteamClient.Features)||void 0===n?void 0:n.SteamInitsPopups)||void 0===r?void 0:r.call(n))||this.OnCreateInternal())}RemoveEventListeners(){this.window.removeEventListener("beforeunload",this.OnBeforeUnloadEvent),this.window.removeEventListener("unload",this.OnUnload),this.window.removeEventListener("resize",this.OnResizeEvent),this.window.removeEventListener("focus",this.OnFocusInternal),this.window.removeEventListener("blur",this.OnBlurInternal),this.window.removeEventListener("drop",this.OnDrop),this.window.removeEventListener("dragover",this.OnDragOver),this.window.removeEventListener("message",this.OnMessage)}RenderInternal(e,t,n){var r;this.m_bCreated?(this.browser_info&&((r=this.browser_info).m_eBrowserType==c.i_.EBrowserType_OpenVROverlay||r.m_eBrowserType==c.i_.EBrowserType_OpenVROverlay_Dashboard)&&(t.ownerDocument.body.className+=" VR"),this.Render(e,t),this.OnLoad(),e.SteamClient&&!this.m_bCreateHidden&&(n?e.SteamClient.Window.BringToFront():e.SteamClient.Window.ShowWindow())):this.m_onCreateRender=()=>this.RenderInternal(e,t,n)}OnCreateInternal(){this.m_bCreated||(this.m_bCreated=!0,this.OnCreate(),this.m_onCreateRender&&(this.m_onCreateRender(),this.m_onCreateRender=null))}OnCreate(){}OnResizeEvent(){this.OnResize()}OnBeforeUnloadEvent(){this.OnBeforeUnload()}OnUnload(e){this.RemoveEventListeners(),b.RemoveTrackedPopup(this),this.OnClose(),this.m_popup=void 0}get browser_info(){return this.m_rgParams.target_browser}get window(){return this.m_popup}get root_element(){return this.m_element}get title(){return this.m_strTitle}set title(e){this.m_strTitle=e,this.m_popup&&(this.m_popup.document.title=this.m_strTitle)}get params(){return this.m_rgParams}Focus(e=!1){this.m_popup&&void 0!==this.m_popup.SteamClient&&void 0!==this.m_popup.SteamClient.Window?e?this.m_popup.SteamClient.Window.SetForegroundWindow():this.m_popup.SteamClient.Window.BringToFront():this.m_popup&&this.m_popup.focus()}Close(){this.m_popup&&((0,f.w3)(this.m_popup.window,"Window.Close")?this.m_popup.window.SteamClient.Window.Close():this.m_popup.window.close())}GetName(){return this.m_strName}BIsValid(){return!!this.m_popup}BIsClosed(){return!this.m_popup||this.m_popup.closed}BIsVisible(){return this.m_popup&&!this.m_popup.closed&&"visible"==this.m_popup.document.visibilityState}BIsFocused(){return this.BIsVisible()&&this.m_popup.document.hasFocus()}OnFocusInternal(){this.m_popup&&this.m_popup.document.body.classList.add("WindowFocus"),this.m_bFocused=!0,this.OnFocus()}OnBlurInternal(){this.m_popup&&this.m_popup.document.body.classList.remove("WindowFocus"),this.m_bFocused=!1,this.OnBlur()}get focused(){return this.m_bFocused}GetWindowRestoreDetails(){return this.m_popup&&!this.m_popup.closed&&this.m_popup.SteamClient?new Promise(((e,t)=>{this.m_popup.SteamClient.Window.GetWindowRestoreDetails((t=>{e(t)}))})):Promise.resolve("")}IsMinimized(){return this.m_popup&&!this.m_popup.closed&&this.m_popup.SteamClient&&this.m_popup.SteamClient.Window&&this.m_popup.SteamClient.Window.IsWindowMinimized?new Promise(((e,t)=>{this.m_popup.SteamClient.Window.IsWindowMinimized((t=>{e(t)}))})):Promise.resolve(!1)}ReleasePopup(){this.OnClose(),this.m_popup=null}OnBeforeUnload(){}OnFocus(){}OnBlur(){}}(0,r.gn)([i.LO],E.prototype,"m_bFocused",void 0),(0,r.gn)([l.a],E.prototype,"OnMessage",null),(0,r.gn)([l.a],E.prototype,"RenderInternal",null),(0,r.gn)([l.a],E.prototype,"OnCreateInternal",null),(0,r.gn)([l.a],E.prototype,"OnResizeEvent",null),(0,r.gn)([l.a],E.prototype,"OnBeforeUnloadEvent",null),(0,r.gn)([l.a],E.prototype,"OnUnload",null),(0,r.gn)([l.a],E.prototype,"OnFocusInternal",null),(0,r.gn)([l.a],E.prototype,"OnBlurInternal",null);(0,r.gn)([l.a],class extends E{constructor(e,t,n,r){super(e,n),this.SetSavedDimensionsKey(t),this.m_bExpires=r}BIsInOverlay(){return this.browser_info&&0!=this.browser_info.m_unPID&&-1!=this.browser_info.m_nBrowserID}SetSavedDimensionsKey(e){this.m_strSavedDimensionsKey=e}UpdateParamsBeforeShow(e){return!this.m_strSavedDimensionsKey||e.bIgnoreSavedDimensions||e.strRestoreDetails?e.strRestoreDetails&&(this.m_strInitialSavedDimensionsKey=this.GetSavedDimensionsKey(),b.SetRestoreDetails(this.m_strInitialSavedDimensionsKey,e.strRestoreDetails,this.m_bExpires)):(this.m_strInitialSavedDimensionsKey=this.GetSavedDimensionsKey(),e.strRestoreDetails=b.GetRestoreDetails(this.m_strInitialSavedDimensionsKey)),e}OnLoad(){this.GetWindowRestoreDetails().then((e=>{this.m_strInitialRestoreDetails=e,this.OnResizeComplete(e)}))}OnResize(){this.QueryAndStoreWindowPosition()}OnResizeComplete(e){}QueryAndStoreWindowPosition(){if(this.m_strInitialRestoreDetails){let e=this.GetSavedDimensionsKey();this.m_popup.setTimeout((()=>{this.GetWindowRestoreDetails().then((t=>{let n=this.m_strInitialRestoreDetails==t&&e==this.m_strInitialSavedDimensionsKey;this.m_popup&&this.m_strSavedDimensionsKey&&t&&!n&&(b.SetRestoreDetails(e,t,this.m_bExpires),this.m_rgParams.strRestoreDetails=t,this.m_strInitialSavedDimensionsKey=e,this.OnResizeComplete(t))}))}),30)}}OnBeforeUnload(){this.QueryAndStoreWindowPosition(),super.OnBeforeUnload()}OnClose(){}SaveWindowPosition(e){b.SetRestoreDetails(this.GetSavedDimensionsKey(),e,!1),this.m_rgParams.strRestoreDetails=e}}.prototype,"QueryAndStoreWindowPosition",null);class D{constructor(){if(this.m_bShuttingDown=!1,this.m_mapPopups=i.LO.map([],{deep:!1}),this.m_rgShutdownCallbacks=[],this.m_rgPopupCreatedCallbacks=[],this.m_unCurrentAccountID=0,this.m_mapRestoreDetails=new Map,this.m_bSaveRequired=!1,!{NODE_ENV:"production",STEAM_BUILD:"buildbot"}.MOBILE_BUILD){window.addEventListener("beforeunload",(e=>{var t,n,r,i;this.m_bShuttingDown=!0;for(let e of this.m_rgShutdownCallbacks)e();let o=[];this.m_mapPopups.forEach((e=>{e.BIsValid()&&!e.BIsClosed()&&o.push(e)}));for(let e of o)(null===(n=null===(t=e.window)||void 0===t?void 0:t.SteamClient.Browser)||void 0===n?void 0:n.SetShouldExitSteamOnBrowserClosed)&&e.window.SteamClient.Browser.SetShouldExitSteamOnBrowserClosed(!1),(null===(r=e.window)||void 0===r?void 0:r.SteamClient.Window.SetHideOnClose)&&(null===(i=e.window)||void 0===i||i.SteamClient.Window.SetHideOnClose(!1)),e.Close();this.m_bSaveRequired&&this.SaveSavedDimensionStore(),this.m_mapPopups.clear()}));let e=document.querySelector("head");(0,m.X)(e,"Couldn't find head element"),e&&(this.m_DynamicCSSObserver=new MutationObserver((()=>{const e=a.Mv();this.m_mapPopups.forEach((t=>{a.b$(t.window.document,e,!1)}))})),this.m_DynamicCSSObserver.observe(e,{childList:!0}))}}BAnyPopupHasFocus(){for(const e of this.m_mapPopups.values())if(e.focused)return!0;return!1}BAnyMenuHasFocus(){for(const e of this.m_mapPopups.values())if(e.focused&&e.params.eCreationFlags&_.NoTaskbarIcon)return!0;return!1}SetCurrentLoggedInAccountID(e){this.m_unCurrentAccountID!=e&&(this.m_unCurrentAccountID=e,e?this.LoadSavedDimensionStore():this.ClearSavedDimensionStore())}AddShutdownCallback(e){this.m_rgShutdownCallbacks.push(e)}AddPopupCreatedCallback(e){this.m_rgPopupCreatedCallbacks.push(e)}AddTrackedPopup(e){this.m_mapPopups.set(e.GetName(),e);for(let t of this.m_rgPopupCreatedCallbacks)t(e)}RemoveTrackedPopup(e){this.m_mapPopups.delete(e.GetName())}GetExistingPopup(e){return this.m_mapPopups.get(e)}GetPopups(){return this.m_mapPopups.values()}ClosePopupsOwnedByBrowser(e){this.m_mapPopups.forEach((t=>{t.browser_info&&t.browser_info.m_nBrowserID==e.m_nBrowserID&&t.browser_info.m_unPID==e.m_unPID&&t.Close()}))}static CreatePopup(e,t){let n=t.dimensions||{},r=n.width||300,i=n.height||300,o=t.title,s="width="+r+",height="+i;void 0!==n.left&&(s+=",left="+n.left),void 0!==n.top&&(s+=",top="+n.top),s+=",resizeable,status=0,toolbar=0,menubar=0,location=0";let l="about:blank",d=[];d.push("createflags="+t.eCreationFlags),t.minWidth&&d.push("minwidth="+t.minWidth),t.minHeight&&d.push("minheight="+t.minHeight),t.maxWidth&&t.maxWidth!=1/0&&d.push("maxwidth="+t.maxWidth),t.maxHeight&&t.maxHeight!=1/0&&d.push("maxheight="+t.maxHeight),t.target_browser?(d.push("pid="+t.target_browser.m_unPID),d.push("browser="+t.target_browser.m_nBrowserID),t.target_browser.m_eBrowserType?d.push("browserType="+t.target_browser.m_eBrowserType):t.browserType&&d.push("browserType="+t.browserType),t.availscreenwidth&&t.availscreenheight&&(d.push("screenavailwidth="+t.availscreenwidth),d.push("screenavailheight="+t.availscreenheight))):t.browserType&&d.push("browserType="+t.browserType),t.strVROverlayKey&&d.push("vrOverlayKey="+t.strVROverlayKey),t.strRestoreDetails&&d.push("restoredetails="+t.strRestoreDetails),t.window_opener_id&&d.push("openerid="+t.window_opener_id),t.parent_container_popup_id&&d.push("parentcontainerpopupid="+t.parent_container_popup_id),t.center_on_window&&void 0===n.left&&void 0===n.top&&d.push("centerOnBrowserID="+t.center_on_window.SteamClient.Browser.GetBrowserID()),t.strUserAgent&&d.push("useragent="+t.strUserAgent+"/"+(0,c.MR)(u.De.LAUNCHER_TYPE)),t.hwndParent&&d.push("hwndParent="+t.hwndParent),t.bPinned&&d.push("pinned=true"),t.bModal&&d.push("modal=true"),d&&(l+="?"+d.join("&"));let m=(t.owner_window||window).open(l,e,s);if(!m)return console.error(`Failed to create popup, browser/CEF may be blocking popups for "${window.location.origin}"`),{};let h="";t.html_class&&(h=`class="${t.html_class}"`);let p="";t.body_class&&(p=`class="${t.body_class}"`);let _="";t.popup_class&&(_=`class="${t.popup_class}"`);let g=``;return m.document.write(g),m.document.title=o,a.V2(m,a.Mv()),{popup:m,element:m.document.getElementById("popup_target")}}BShuttingDown(){return this.m_bShuttingDown}GetLocalStorageKey(){return"PopupSavedDimensions_"+this.m_unCurrentAccountID}LoadSavedDimensionStore(){if(!this.m_unCurrentAccountID)return;let e=this.GetLocalStorageKey();this.m_mapRestoreDetails=void 0;let t=window.localStorage.getItem(e);if(t)try{let e=JSON.parse(t);this.m_mapRestoreDetails=new Map(e)}catch(e){}this.m_mapRestoreDetails||(this.m_mapRestoreDetails=new Map)}SaveSavedDimensionStore(){if(!this.m_unCurrentAccountID||!this.m_bSaveRequired)return;let e=this.GetLocalStorageKey(),t=JSON.stringify(Array.from(this.m_mapRestoreDetails));window.localStorage.setItem(e,t),this.m_bSaveRequired=!1}DebouncedSaveSavedDimensionStore(){this.SaveSavedDimensionStore()}ClearSavedDimensionStore(){this.m_mapRestoreDetails.clear(),this.m_bSaveRequired=!1}GetRestoreDetails(e){if(!this.m_mapRestoreDetails.has(e))return"";let t=this.m_mapRestoreDetails.get(e);return t.last_used=Date.now(),this.m_bSaveRequired=!0,t.strRestoreDetails}SetRestoreDetails(e,t,n){if(e){if(t){if(this.m_mapRestoreDetails.size>50){let e=null,t=Date.now();for(let n of Array.from(this.m_mapRestoreDetails.keys())){let r=this.m_mapRestoreDetails.get(n);r.last_usednew D));window.g_PopupManager=b},86777:(e,t,n)=>{"use strict";n.d(t,{B:()=>s});var r=n(89526),i=n(73070);const o=r.createContext({body_class:""});function a(){return r.useContext(o)}function s(e,t,n){const i=r.useRef(),[o,s]=r.useState(void 0),c=a();return i.current||(i.current=new l(e,function(e,t){return Object.assign(Object.assign({},e),{body_class:e.body_class+" "+t.body_class})}(t,c),s)),i.current.m_callbacks=n,r.useEffect((()=>(i.current.Show(),()=>{var e,t;i.current.m_callbacks=void 0,(null===(e=i.current.window)||void 0===e?void 0:e.SteamClient.Window.SetHideOnClose)&&(null===(t=i.current.window)||void 0===t||t.SteamClient.Window.SetHideOnClose(!1)),i.current.Close()})),[]),r.useEffect((()=>{var e,n;(null===(e=i.current.window)||void 0===e?void 0:e.SteamClient.Window.SetHideOnClose)&&(null===(n=i.current.window)||void 0===n||n.SteamClient.Window.SetHideOnClose(t.bHideOnClose))}),[t.bHideOnClose]),{popup:i.current.window,element:o,popupObj:i.current}}class l extends i.K3{constructor(e,t,n){super(e,t),this.m_fnReadyToRender=n}DoCallback(e){this.m_callbacks&&this.m_callbacks[e]&&this.m_callbacks[e](this.m_popup,this.m_element)}UpdateParamsBeforeShow(e){var t;return(null===(t=this.m_callbacks)||void 0===t?void 0:t.updateParamsBeforeShow)?this.m_callbacks.updateParamsBeforeShow(e):e}OnCreate(){var e;(null===(e=this.m_callbacks)||void 0===e?void 0:e.onCreate)&&this.m_callbacks.onCreate(this.m_popup,this.m_element)}OnBlur(){this.DoCallback("onBlur")}OnFocus(){this.DoCallback("onFocus")}OnLoad(){this.DoCallback("onLoad")}OnResize(){this.DoCallback("onResize")}OnClose(){this.DoCallback("onClose")}Render(e,t){this.m_fnReadyToRender(t)}}},44026:(e,t,n)=>{"use strict";n.d(t,{Fe:()=>c,Hy:()=>u,IS:()=>p,Ks:()=>m,bX:()=>_,wl:()=>h});var r=n(33940),i=n(89526),o=n(44673),a=n(88045),s=n(4306),l=n(32053);const c=i.forwardRef((function(e,t){const{NavigationManager:n,onActivated:c,onDeactivated:u,navTreeRef:m,secondary:h,virtualFocus:p,navID:_,children:g,"flow-children":f,parentEmbeddedNavTree:v}=e,C=(0,r._T)(e,["NavigationManager","onActivated","onDeactivated","navTreeRef","secondary","virtualFocus","navID","children","flow-children","parentEmbeddedNavTree"]),{elemProps:S,navOptions:E,gamepadEvents:D}=(0,o.QH)(C),b=i.useContext(d)||n.GetDefaultContext();let w=i.useRef(null);w.current||(w.current=n.NewGamepadNavigationTree(b,_));const y=w.current;i.useLayoutEffect((()=>{const e=(0,a.t)(f);y.Root.SetProperties(Object.assign(Object.assign({},E),{layout:e}))}));let I=i.useRef();y.SetUseVirtualFocus(p),y.SetParentEmbeddedNavTree(v),(0,s.Qg)(y.OnActivateCallbacks,c),(0,s.Qg)(y.OnDeactivateCallbacks,u),(0,l.Jd)(D,I,w.current),i.useLayoutEffect((()=>y.RegisterNavigationItem(y.Root,I.current)),[y,I]),i.useLayoutEffect((()=>n.RegisterGamepadNavigationTree(y,I.current.ownerDocument.defaultView,h)),[n,h,y]),i.useLayoutEffect((()=>((0,s.k$)(m,y),()=>(0,s.k$)(m,null))),[m,y]);const R=(0,s.BE)(I,t);return i.createElement("div",Object.assign({},S,{id:_,"data-react-nav-root":_,ref:R}),i.createElement(o.ET.Provider,{value:y.Root},g))})),d=i.createContext(null);function u(){return i.createRef()}const m=(0,o.lP)("div"),h=(0,o.lP)("button"),p=(0,o.lP)("a"),_=(0,o.hi)("input");(0,o.hi)("textarea"),(0,o.lP)("img")},44673:(e,t,n)=>{"use strict";n.d(t,{CO:()=>f,QH:()=>v,zQ:()=>S,Iy:()=>_,lP:()=>D,hi:()=>b,ET:()=>p,Pd:()=>g});var r=n(33940),i=n(89526),o=n(32053),a=n(58123),s=n(47927),l=n(94952);var c=n(16383),d=n(78330),u=n(19304),m=n(4306),h=n(32765);const p=(0,c.Yt)("GamepadNavigationContext",(()=>i.createContext(null))),_=(0,c.Yt)("FocusRingNavigationContext",(()=>i.createContext(s.U7)));function g(e){const{navRef:t}=e,n=(0,r._T)(e,["navRef"]),o=i.useRef(),a=(0,i.useContext)(p),s=(0,i.useContext)(_),l=function(e,t){let n=i.useRef(null);return!e||n.current&&n.current.m_Parent==e||(n.current=e.Tree.CreateNode(e,t)),n.current}(a,s);return i.useLayoutEffect((()=>{l&&l.SetProperties(n)})),i.useLayoutEffect((()=>{if(!a)return;const e=a.Tree.RegisterNavigationItem(l,o.current);return()=>{e()}}),[a,l,o]),i.useLayoutEffect((()=>{if(l&&t)return(0,m.k$)(t,l.CreateHandle()),()=>(0,m.k$)(t,null)}),[l,t]),{ref:o,node:l}}function f(e){const{onButtonDown:t,onButtonUp:n,onOKButton:i,onCancelButton:o,onSecondaryButton:s,onOptionsButton:l,onGamepadDirection:c,onGamepadFocus:d,onGamepadBlur:u,onMenuButton:m,onOKActionDescription:h,onCancelActionDescription:p,onSecondaryActionDescription:_,onOptionsActionDescription:g,onMenuActionDescription:f,actionDescriptionMap:v}=e,C=(0,r._T)(e,["onButtonDown","onButtonUp","onOKButton","onCancelButton","onSecondaryButton","onOptionsButton","onGamepadDirection","onGamepadFocus","onGamepadBlur","onMenuButton","onOKActionDescription","onCancelActionDescription","onSecondaryActionDescription","onOptionsActionDescription","onMenuActionDescription","actionDescriptionMap"]),S={};void 0!==t&&(S.onButtonDown=t),void 0!==n&&(S.onButtonUp=n),void 0!==i&&(S.onOKButton=i),void 0!==o&&(S.onCancelButton=o),void 0!==s&&(S.onSecondaryButton=s),void 0!==l&&(S.onOptionsButton=l),void 0!==m&&(S.onMenuButton=m),void 0!==c&&(S.onGamepadDirection=c),void 0!==d&&(S.onGamepadFocus=d),void 0!==u&&(S.onGamepadBlur=u);return{gamepadEvents:S,actionDescriptions:(0,a.Cj)({onOKActionDescription:h,onCancelActionDescription:p,onSecondaryActionDescription:_,onOptionsActionDescription:g,onMenuActionDescription:f,actionDescriptionMap:v}),props:C}}function v(e){const{autoFocus:t,preferredFocus:n,disableNavSounds:i,fnCanTakeFocus:o,childFocusDisabled:a,retainFocus:s,onFocusWithin:l,navKey:c,noFocusRing:d,focusable:u,focusableIfNoChildren:m,navRef:h,actionDescriptionMap:p,onMoveUp:_,onMoveRight:g,onMoveDown:v,onMoveLeft:C,navEntryPreferPosition:S,scrollIntoViewWhenChildFocused:E,fnScrollIntoViewHandler:D,scrollIntoViewType:b,resetNavOnEntry:w}=e,y=(0,r._T)(e,["autoFocus","preferredFocus","disableNavSounds","fnCanTakeFocus","childFocusDisabled","retainFocus","onFocusWithin","navKey","noFocusRing","focusable","focusableIfNoChildren","navRef","actionDescriptionMap","onMoveUp","onMoveRight","onMoveDown","onMoveLeft","navEntryPreferPosition","scrollIntoViewWhenChildFocused","fnScrollIntoViewHandler","scrollIntoViewType","resetNavOnEntry"]),{gamepadEvents:I,actionDescriptions:R,props:M}=f(y);return{elemProps:M,navOptions:{autoFocus:t,preferredFocus:n,disableNavSounds:i,fnCanTakeFocus:o,childFocusDisabled:a,retainFocus:s,onFocusWithin:l,navKey:c,noFocusRing:d,focusable:u,focusableIfNoChildren:m,navRef:h,onMoveUp:_,onMoveRight:g,onMoveDown:v,onMoveLeft:C,navEntryPreferPosition:S,scrollIntoViewWhenChildFocused:E,fnScrollIntoViewHandler:D,scrollIntoViewType:b,resetNavOnEntry:w,actionDescriptionMap:Object.assign(Object.assign({},p),R)},gamepadEvents:I}}function C(e){return function(t){const{focusClassName:n,focusWithinClassName:o,className:a,divRef:s,node:l,tabIndex:c,children:d}=t,p=(0,r._T)(t,["focusClassName","focusWithinClassName","className","divRef","node","tabIndex","children"]),_=(0,m.NW)(),g=(0,h.id)(),f=l.BHasFocus(),v=l.BFocusWithin(),C=l.Tree.BIsActive();return(0,m.Qg)(l.FocusCallbackList,_),(0,m.Qg)(l.FocusWithinCallbackList,_),(0,m.Qg)(l.Tree.OnActiveStateChangedCallbacks,f||v?_:void 0),i.createElement(e,Object.assign(Object.assign({},p),{className:(0,u.Z)(a,g&&f&&C&&n,g&&v&&C&&o),tabIndex:C?c:-1,ref:s}),d)}}const S=C("div");function E(e,t,n,r){const{elemProps:a,navOptions:s,gamepadEvents:l}=v(n);void 0!==s.focusable||a.disabled||(s.focusable=!0);const{ref:c,node:h}=g(Object.assign({},s)),_=(0,i.useCallback)((()=>(d.LT.PlayNavSound(d.qr.DefaultOk),c.current.click(),!0)),[c]);l.onOKButton||(a.onClick||"button"==e&&"submit"==a.type||"a"==e)&&(l.onOKButton=_),s.focusable&&(a.tabIndex=a.tabIndex||0),(0,o.pD)(l,c);const f=(0,m.BE)(r,c),C=a.children;delete a.children;const S=a.focusClassName;return delete a.focusClassName,i.createElement(p.Provider,{value:h},h?i.createElement(t,Object.assign(Object.assign({},a),{divRef:f,node:h,focusClassName:(0,u.Z)(S,"gpfocus"),focusWithinClassName:"gpfocuswithin",className:(0,u.Z)(a.className,"Focusable")}),C):i.createElement(e,Object.assign(Object.assign({},a),{ref:f,className:(0,u.Z)(a.className,"Focusable")}),C))}function D(e){const t=C(e);return i.forwardRef((function(n,r){return E(e,t,n,r)}))}function b(e){const t=C(e);return i.forwardRef((function(n,i){const o=function(e){const{onEnterKeyPress:t,strEnterKeyLabel:n,onKeyboardNavOut:i,onKeyboardShow:o,onKeyboardFullyVisible:a,onTextEntered:s,BIsElementValidForInput:l}=e;return{virtualKeyboardProps:{onEnterKeyPress:t,strEnterKeyLabel:n,onKeyboardNavOut:i,onKeyboardShow:o,onKeyboardFullyVisible:a,onTextEntered:s,BIsElementValidForInput:l},props:(0,r._T)(e,["onEnterKeyPress","strEnterKeyLabel","onKeyboardNavOut","onKeyboardShow","onKeyboardFullyVisible","onTextEntered","BIsElementValidForInput"])}}(n),{virtualKeyboardProps:a}=o,s=o.props,{refKeyboardHandle:c}=s,d=(0,r._T)(s,["refKeyboardHandle"]),u=(0,l.k$)(a,c),h=(0,m.BE)(i,u);return E(e,t,d,h)}))}},17589:(e,t,n)=>{"use strict";n.d(t,{O:()=>m});var r=n(89526),i=n(19304),o=n(50454),a=(n(47927),n(44673)),s=n(12069),l=n.n(s),c=n(4306),d=n(32765);const u=new o.s("FocusNavigation").Debug;function m(e){const{className:t,rootClassName:n,render:o,children:s,NavigationManager:u}=e,m=(0,d.id)(),p=r.useRef(),[_,g]=r.useState({bFocusWithin:!1,navTarget:null,prevTarget:null}),f=(0,c.e1)(null==u?void 0:u.GetShowDebugFocusRing()),v=r.useRef(),C=r.useMemo((()=>({OnBlur:(e,t,n)=>{g({bFocusWithin:!1,navTarget:null,prevTarget:null})},OnFocus:(e,t,n)=>{g({bFocusWithin:!0,navTarget:t,prevTarget:null})},OnFocusChange:(e,t,n)=>{g({bFocusWithin:!0,navTarget:n,prevTarget:t})},OnForceMeasureFocusRing:()=>{var e;null===(e=v.current)||void 0===e||e.MeasureElementAndUpdate()}})),[g]);let{bFocusWithin:S,navTarget:E,prevTarget:D}=_;return m?r.createElement(r.Fragment,null,r.createElement("div",{className:(0,i.Z)(l().FocusRingRoot,n),ref:p},r.createElement(h,{ref:v,className:(0,i.Z)(t,f&&l().DebugFocusRing),render:o,bFocusWithin:S,navTarget:E,refContainer:p,bDebug:f})),r.createElement(a.Iy.Provider,{value:C},s)):r.createElement(r.Fragment,null,s)}const h=r.forwardRef(((e,t)=>{const{className:n,render:o,bFocusWithin:a,navTarget:s,refContainer:c,bDebug:d}=e,[m,h]=r.useState(s),[_,g]=r.useState(null),[f,v]=r.useState(!1),[C,S]=r.useState(!1),E=r.useRef(performance.now()),D=(0,r.useCallback)((()=>{if(!s||!s.BWantsFocusRing())return null!=_&&(g(null),!0);let e=s.GetBoundingRect();const t=c.current.getBoundingClientRect();if(d){let t=s.Element;const n=t.ownerDocument.defaultView,r=t=>"none"==n.getComputedStyle(t).display||0==e.width&&0==e.height&&0==e.x&&0==e.y;for(;r(t)&&t.parentElement;)t=t.parentElement,e=t.getBoundingClientRect();let i=s.Element!=t;i!=C&&(S(i),i&&u("Focused on hidden item: ",s.Element,". Closest visible ancestor: ",t))}const n={left:e.x-t.x,top:e.y-t.y,height:e.height,width:e.width};return(!_||n.left!=_.left||n.top!=_.top||n.height!=_.height||n.width!=_.width)&&(g(n),!0)}),[s,c,g,_,C,S,d]);r.useImperativeHandle(t,(()=>({MeasureElementAndUpdate:D})),[D]);let b=a,w=_||{};s&&c.current&&(s.BWantsFocusRing()||(b=!1)),s!=m&&(h(s),E.current=performance.now(),D(),f&&v(!1)),r.useEffect((()=>{if(!b||performance.now()-E.current>500)return;let e;const t=()=>{e=requestAnimationFrame((()=>{D()?v(!0):performance.now()-E.current<=500&&t()}))};return t(),()=>cancelAnimationFrame(e)}));const y=o||p;return r.createElement(y,Object.assign({},w,{visible:b&&null!==_,key:E.current,className:(0,i.Z)(n,C&&l().FocusRingOnHiddenItem),animationEnabled:!f,target:s}))}));function p(e){const{className:t,visible:n,left:o,top:a,height:s,width:c,target:d,animationEnabled:u}=e;if(!n)return null;const m={left:o-0+"px",top:a-0+"px",height:s+"px",width:c+"px"};return r.createElement("div",{className:(0,i.Z)(l().FocusRing,u&&l().Animated,t),style:m})}},32053:(e,t,n)=>{"use strict";n.d(t,{Jd:()=>d,pD:()=>l});var r=n(33940),i=n(89526),o=n(58123),a=n(50454);n(44673);const s=new a.s("GamepadEvents").Debug;function l(e,t,n){void 0===n&&(n=[e.onButtonDown,e.onButtonUp,e.onOKButton,e.onCancelButton,e.onSecondaryButton,e.onOptionsButton,e.onMenuButton,e.onGamepadDirection,e.onGamepadFocus,e.onGamepadBlur]),i.useLayoutEffect((()=>{let n=t.current;const r=[];return n&&(e.onButtonDown&&r.push((0,o.VC)(n,e.onButtonDown)),e.onButtonUp&&r.push((0,o.If)(n,e.onButtonUp)),e.onOKButton&&r.push((0,o.x)(n,e.onOKButton)),e.onCancelButton&&r.push((0,o.R3)(n,e.onCancelButton)),e.onSecondaryButton&&r.push((0,o.n2)(n,e.onSecondaryButton)),e.onOptionsButton&&r.push((0,o.DX)(n,e.onOptionsButton)),e.onMenuButton&&r.push((0,o.WF)(n,e.onMenuButton)),e.onGamepadDirection&&r.push((0,o.$G)(n,e.onGamepadDirection)),e.onGamepadFocus&&r.push((0,o.mk)(n,e.onGamepadFocus)),e.onGamepadBlur&&r.push((0,o.BG)(n,e.onGamepadBlur))),()=>r.forEach((e=>e()))}),n)}function c(e){return e.stopPropagation(),!1}function d(e,t,n){const{onButtonDown:o}=e,a=(0,r._T)(e,["onButtonDown"]),d=i.useCallback((e=>{o&&o(e),s("Gamepad Event fired:",e.detail.button,", handled:",null!=o,", propagation stopped:",e.cancelBubble),e.cancelBubble||n.HandleButtonDownEventAsLogicalEvent(e)}),[o,n]);l(a,t);l({onButtonDown:d,onButtonUp:c,onOKButton:c,onCancelButton:c,onSecondaryButton:c,onOptionsButton:c,onMenuButton:c,onGamepadDirection:c,onGamepadFocus:c,onGamepadBlur:c},t,[d])}},90699:(e,t,n)=>{"use strict";n.d(t,{s:()=>g});var r=n(33940),i=n(89526),o=n(44673),a=n(19304),s=n(4306),l=n(16221),c=n(32053),d=n(88045);const u=(0,i.createContext)(null);var m=n(50265),h=n(86283);new(n(50454).s)("VR");class p{constructor(){this.m_mapAffordanceElems=new Map}Init(){null===SteamClient||void 0===SteamClient||SteamClient.OpenVR.RegisterForVRHardwareDetected(this.OnVRHardwareDetected),null===SteamClient||void 0===SteamClient||SteamClient.OpenVR.RegisterForVRModeChange(this.OnVRModeChanged),null===SteamClient||void 0===SteamClient||SteamClient.OpenVR.RegisterForStartupErrors(this.OnStartupError)}OnVRHardwareDetected(e,t,n){this.m_bHMDPresent=e,this.m_bHMDHardwareDetected=t,this.m_strHMDName=n}OnVRModeChanged(e){this.m_bIsVRRunning=e}OnStartupError(e,t,n){let r;e!=h.VR.wb.k_EVRError_None&&(r={eClient:e,eInit:t,strInit:n}),this.m_error=r}get isVRHMDPresent(){return this.m_bHMDPresent||this.m_bHMDHardwareDetected}get isSteamVRRunning(){return this.m_bIsVRRunning}get error(){return this.m_error}ClearError(){this.m_error=void 0}SetInteractionAffordance(e,t,n){0}}(0,r.gn)([m.LO],p.prototype,"m_bHMDPresent",void 0),(0,r.gn)([m.LO],p.prototype,"m_bHMDHardwareDetected",void 0),(0,r.gn)([m.LO],p.prototype,"m_strHMDName",void 0),(0,r.gn)([m.LO],p.prototype,"m_bIsVRRunning",void 0),(0,r.gn)([m.LO],p.prototype,"m_error",void 0),(0,r.gn)([m.aD.bound],p.prototype,"OnVRHardwareDetected",null),(0,r.gn)([m.aD.bound],p.prototype,"OnVRModeChanged",null),(0,r.gn)([m.aD.bound],p.prototype,"OnStartupError",null),(0,r.gn)([m.aD.bound],p.prototype,"ClearError",null);const _=new p;window.vrStore=_;const g=i.forwardRef((function(e,t){const{"flow-children":n,onActivate:m,onCancel:h,focusClassName:p,focusWithinClassName:g}=e,f=(0,r._T)(e,["flow-children","onActivate","onCancel","focusClassName","focusWithinClassName"]),{elemProps:v,navOptions:C,gamepadEvents:S}=(0,o.QH)(f);let E={};const D=(0,d.t)(n);D!=l.gj.NONE&&(E.layout=D),m&&(v.onClick=v.onClick||m,S.onOKButton=S.onOKButton||m),S.onOKButton&&void 0===C.focusable&&(C.focusable=!0),h&&(S.onCancelButton=S.onCancelButton||h),v.className=(0,a.Z)(v.className,"Panel","Focusable");const{ref:b,node:w}=(0,o.Pd)(Object.assign(Object.assign({},E),C));(0,c.pD)(S,b);const y=(0,i.useContext)(u),I=function(e,t){const[n,r]=i.useState();return i.useEffect((()=>{const r=()=>{_.SetInteractionAffordance(n,e,t())},i=()=>{_.SetInteractionAffordance(n,e,!1)};return null==n||n.addEventListener("mouseenter",r),null==n||n.addEventListener("mouseleave",i),()=>{null==n||n.removeEventListener("mouseenter",r),null==n||n.removeEventListener("mouseleave",i),_.SetInteractionAffordance(n,e,!1)}}),[n,e,t]),r}(1,(()=>null==y?void 0:y.HasContextMenu(w))),R=(0,s.BE)(I,b,t);return!C.focusable&&!C.focusableIfNoChildren||w&&w.Tree.BUseVirtualFocus()||(v.tabIndex=v.tabIndex||0),y&&(v.onContextMenu=t=>{var n;y.OnContextMenu(w,t)||null===(n=e.onContextMenu)||void 0===n||n.call(e,t)}),i.createElement(o.ET.Provider,{value:w},w?i.createElement(o.zQ,Object.assign({},v,{divRef:R,node:w,focusClassName:(0,a.Z)(p,"gpfocus"),focusWithinClassName:(0,a.Z)(g,"gpfocuswithin")})):i.createElement("div",Object.assign({},v,{ref:R})))}))},30928:(e,t,n)=>{"use strict";n.d(t,{eh:()=>l});var r=n(33940),i=n(89526),o=n(4306),a=n(90699),s=n(34329);const l=i.forwardRef((function(e,t){const{onExplicitFocusLevelChanged:n,onOKButton:s,onCancelButton:l,navRef:d,focusable:u}=e,m=(0,r._T)(e,["onExplicitFocusLevelChanged","onOKButton","onCancelButton","navRef","focusable"]),h=i.useRef(),{fnOnOKButton:p,fnOnCancelButton:_}=c({navRefPanel:h,onOKButton:s,onCancelButton:l,onExplicitFocusLevelChanged:n}),g=(0,o.BE)(d,h);return i.createElement(a.s,Object.assign({},m,{onOKButton:p,onCancelButton:_,navRef:g,ref:t,focusable:!1!==u}))}));i.forwardRef((function(e,t){const{onOKButton:n,onCancelButton:a,navRef:l,focusable:d}=e,u=(0,r._T)(e,["onOKButton","onCancelButton","navRef","focusable"]),m=i.useRef(),h=i.useRef(),p=i.useCallback(((e,t)=>e.FocusVisibleChild()),[]),{fnOnOKButton:_,fnOnCancelButton:g}=c({navRefPanel:m,onOKButton:n,onCancelButton:a,fnFocusChildren:p}),f=(0,o.BE)(h,t),v=(0,o.BE)(l,m);return i.createElement(s.TN,Object.assign({},u,{onOKButton:e=>_(e),onCancelButton:g,navRef:v,ref:f,focusable:!1!==d}))}));function c(e){let{navRefPanel:t,onOKButton:n,onCancelButton:r,onExplicitFocusLevelChanged:o,fnFocusChildren:a}=e;a=null!=a?a:d;return{fnOnOKButton:i.useCallback((e=>{const r=t.current;return r.BHasFocus()&&a(r,e.detail.button)?(o&&o(!0),!0):!!n&&n(e)}),[t,n,o,a]),fnOnCancelButton:i.useCallback((e=>{const n=t.current;return n.BFocusWithin()&&!n.BHasFocus()&&n.TakeFocus(e.detail.button)?(o&&o(!1),!0):!!r&&r(e)}),[t,r,o])}}function d(e,t){return e.ChildTakeFocus(t)}},34329:(e,t,n)=>{"use strict";n.d(t,{P8:()=>_,TN:()=>g});var r=n(33940),i=n(89526),o=n(23801),a=n(19304),s=n(4306),l=n(45820),c=n(16221),d=n(22612),u=n(17589),m=n(90699),h=n(35352),p=n.n(h);const _=i.forwardRef((function(e,t){const{scrollDirection:n,scrollPaddingTop:o,scrollPaddingRight:l,scrollPaddingBottom:c,scrollPaddingLeft:h,className:_,children:g,style:f}=e,v=(0,r._T)(e,["scrollDirection","scrollPaddingTop","scrollPaddingRight","scrollPaddingBottom","scrollPaddingLeft","className","children","style"]);let C;switch(n){case"x":C=p().ScrollX;break;case"both":C=p().ScrollBoth;break;default:C=p().ScrollY}let S=Object.assign({},f);(o||0===o)&&(S.scrollPaddingTop=o),(l||0===l)&&(S.scrollPaddingRight=l),(c||0===c)&&(S.scrollPaddingBottom=c),(h||0===h)&&(S.scrollPaddingLeft=h);const{ref:E,navRef:D}=(0,d.$1)(),b=(0,s.BE)(D,v.navRef),w=(0,s.BE)(E,t);return i.createElement(m.s,Object.assign({},v,{style:S,className:(0,a.Z)(_,p().ScrollPanel,C),ref:w,navRef:b}),i.createElement(u.O,null,g))})),g=i.forwardRef((function(e,t){const{scrollStepPercent:n,scrollBehavior:o}=e,a=(0,r._T)(e,["scrollStepPercent","scrollBehavior"]),l=i.useRef(),u=i.useCallback((e=>e.currentTarget!=e.target),[]),m=(0,d.pj)(l,o,n,u),h=(0,s.BE)(l,t);return i.createElement(_,Object.assign({},a,{onGamepadDirection:m,ref:h,scrollIntoViewType:c.mz.NoTransformSparseContent}))}));i.forwardRef((function(e,t){const{name:n,msScrollRestoreDelay:o,onScroll:a}=e,s=(0,r._T)(e,["name","msScrollRestoreDelay","onScroll"]);return i.createElement(f,{name:n,msScrollRestoreDelay:o,parentOnScroll:a,refDiv:t},((e,t)=>i.createElement(_,Object.assign({},s,{onScroll:e,ref:t}))))})),i.forwardRef((function(e,t){const{name:n,msScrollRestoreDelay:o,onScroll:a}=e,s=(0,r._T)(e,["name","msScrollRestoreDelay","onScroll"]);return i.createElement(f,{name:n,msScrollRestoreDelay:o,parentOnScroll:a,refDiv:t},((e,t)=>i.createElement(g,Object.assign({},s,{onScroll:e,ref:t}))))}));function f(e){const{name:t,msScrollRestoreDelay:n,parentOnScroll:r,refDiv:a,children:c}=e,[d,u]=(0,l.lJ)(`${t}ScrollTop`,250,0),[m,h]=(0,l.lJ)(`${t}ScrollLeft`,250,0),p=i.useRef(0),_=i.useRef(0),g=i.useRef();let f=i.useCallback((e=>{const{scrollTop:t,scrollLeft:n}=e.currentTarget;u(t),p.current=t,h(n),_.current=n,r&&r(e)}),[u,h,r]);i.useLayoutEffect((()=>{const e=function(){(0,o.X)(g.current.scrollHeight>=d,`Element is ${g.current.scrollHeight} high but trying to restore scrollTop of ${d}, element may need more time to lay out.`,g.current),p.current=d,_.current=m,g.current.scrollTo({top:d,left:m,behavior:"auto"}),g.current.dispatchEvent(new UIEvent("scroll"))};d==p.current&&m==_.current||(n?window.setTimeout(e,n):e())}),[d,m,n]);const v=(0,s.BE)(g,a);return i.useMemo((()=>c(f,v)),[f,v,c])}},58123:(e,t,n)=>{"use strict";n.d(t,{$G:()=>p,BG:()=>g,Cj:()=>S,DX:()=>m,If:()=>l,Jb:()=>f,R3:()=>d,Ut:()=>v,VC:()=>s,WF:()=>h,mk:()=>_,n2:()=>u,uS:()=>r,x:()=>c});var r,i=n(8179);!function(e){e[e.GAMEPAD=0]="GAMEPAD",e[e.KEYBOARD=1]="KEYBOARD",e[e.APPLICATION=2]="APPLICATION",e[e.BROWSER=3]="BROWSER"}(r||(r={}));let o={[i.eV.OK]:"vgp_onok",[i.eV.CANCEL]:"vgp_oncancel",[i.eV.SECONDARY]:"vgp_onsecondaryaction",[i.eV.OPTIONS]:"vgp_onoptions",[i.eV.START]:"vgp_onmenu"};function a(e,t,n){return e.addEventListener(t,n),()=>function(e,t,n){e.removeEventListener(t,n)}(e,t,n)}function s(e,t){return a(e,"vgp_onbuttondown",t)}function l(e,t){return a(e,"vgp_onbuttonup",t)}function c(e,t){return a(e,"vgp_onok",C(t))}function d(e,t){return a(e,"vgp_oncancel",C(t))}function u(e,t){return a(e,"vgp_onsecondaryaction",C(t))}function m(e,t){return a(e,"vgp_onoptions",C(t))}function h(e,t){return a(e,"vgp_onmenu",C(t))}function p(e,t){return a(e,"vgp_ondirection",C(t))}function _(e,t){return a(e,"vgp_onfocus",t)}function g(e,t){return a(e,"vgp_onblur",t)}function f(e,t,n){let r=e;if(!r||!r.ownerDocument||!r.ownerDocument.defaultView)return!0;let i=new r.ownerDocument.defaultView.CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});return e.dispatchEvent(i)}function v(e){const t=[i.eV.DIR_UP,i.eV.DIR_DOWN,i.eV.DIR_LEFT,i.eV.DIR_RIGHT];let n=!0,r=!1,a=o[e.detail.button];return a?(r=!0,n=f(e.target,a,e.detail)):-1!==t.indexOf(e.detail.button)&&(r=!0,n=f(e.target,"vgp_ondirection",e.detail)),{bUnhandled:n,bHadLogicalEventMapping:r}}function C(e){return t=>{!1!==e(t)&&(t.stopPropagation(),t.preventDefault())}}function S(e){const{onOKActionDescription:t,onCancelActionDescription:n,onSecondaryActionDescription:r,onOptionsActionDescription:o,onMenuActionDescription:a,actionDescriptionMap:s}=e,l=Object.assign({},s);return void 0!==t&&(l[i.eV.OK]=t),void 0!==n&&(l[i.eV.CANCEL]=n),void 0!==r&&(l[i.eV.SECONDARY]=r),void 0!==o&&(l[i.eV.OPTIONS]=o),void 0!==a&&(l[i.eV.START]=a),l}},8179:(e,t,n)=>{"use strict";n.d(t,{eV:()=>r,Rr:()=>i,oH:()=>l});var r,i,o=n(85246);class a{constructor(e){this.m_config=e}Reset(){this.m_ActiveInputId=void 0,null!=this.m_ActiveInputTimeout&&(clearInterval(this.m_ActiveInputTimeout),this.m_ActiveInputTimeout=void 0)}HandleInputButtonDown(e,t){if(this.m_ActiveInputId!==e&&null!=t){this.Reset(),this.m_ActiveInputId=e;const n=()=>{this.m_ActiveInputTimeout=window.setInterval((()=>{t()}),this.m_config.repeatInterval_ms)};null==this.m_config.firstRepeatInterval_ms||this.m_config.firstRepeatInterval_ms===this.m_config.repeatInterval_ms?n():this.m_ActiveInputTimeout=window.setTimeout((()=>{t(),n()}),this.m_config.firstRepeatInterval_ms)}}}class s{constructor(e){this.m_config=e,this.m_inputRepeatGenerator=new a(e)}Reset(){this.m_inputRepeatGenerator.Reset()}HandleInputButtonDown(e,t){this.m_config.inputsThatRepeat.has(e)?this.m_inputRepeatGenerator.HandleInputButtonDown(e,t):this.m_inputRepeatGenerator.Reset()}HandleInputButtonUp(e){this.m_inputRepeatGenerator.Reset()}}!function(e){e[e.INVALID=0]="INVALID",e[e.OK=1]="OK",e[e.CANCEL=2]="CANCEL",e[e.SECONDARY=3]="SECONDARY",e[e.OPTIONS=4]="OPTIONS",e[e.BUMPER_LEFT=5]="BUMPER_LEFT",e[e.BUMPER_RIGHT=6]="BUMPER_RIGHT",e[e.TRIGGER_LEFT=7]="TRIGGER_LEFT",e[e.TRIGGER_RIGHT=8]="TRIGGER_RIGHT",e[e.DIR_UP=9]="DIR_UP",e[e.DIR_DOWN=10]="DIR_DOWN",e[e.DIR_LEFT=11]="DIR_LEFT",e[e.DIR_RIGHT=12]="DIR_RIGHT",e[e.SELECT=13]="SELECT",e[e.START=14]="START",e[e.LSTICK_CLICK=15]="LSTICK_CLICK",e[e.RSTICK_CLICK=16]="RSTICK_CLICK",e[e.LSTICK_TOUCH=17]="LSTICK_TOUCH",e[e.RSTICK_TOUCH=18]="RSTICK_TOUCH",e[e.LPAD_TOUCH=19]="LPAD_TOUCH",e[e.LPAD_CLICK=20]="LPAD_CLICK",e[e.RPAD_TOUCH=21]="RPAD_TOUCH",e[e.RPAD_CLICK=22]="RPAD_CLICK",e[e.REAR_LEFT_UPPER=23]="REAR_LEFT_UPPER",e[e.REAR_LEFT_LOWER=24]="REAR_LEFT_LOWER",e[e.REAR_RIGHT_UPPER=25]="REAR_RIGHT_UPPER",e[e.REAR_RIGHT_LOWER=26]="REAR_RIGHT_LOWER",e[e.STEAM_GUIDE=27]="STEAM_GUIDE",e[e.STEAM_QUICK_MENU=28]="STEAM_QUICK_MENU"}(r||(r={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.GAMEPAD=1]="GAMEPAD",e[e.KEYBOARD=2]="KEYBOARD",e[e.MOUSE=3]="MOUSE",e[e.TOUCH=4]="TOUCH",e[e.LPAD=5]="LPAD",e[e.RPAD=6]="RPAD"}(i||(i={}));class l{constructor(){this.m_OnGamepadDetectedCallbacks=new o.pB,this.m_ButtonDownCallbacks=new o.pB,this.m_ButtonUpCallbacks=new o.pB,this.m_AnalogCallbacks=new o.pB,this.m_NavigationTypeChangeCallbacks=new o.pB,this.m_nLastActiveControllerIndex=-1,this.m_ButtonRepeatHandler=new s({inputsThatRepeat:new Set([r.DIR_UP,r.DIR_DOWN,r.DIR_LEFT,r.DIR_RIGHT]),firstRepeatInterval_ms:400,repeatInterval_ms:50}),this.m_bGamepadDetected=!1}RegisterForGamepadDetected(e){return this.m_OnGamepadDetectedCallbacks.Register(e)}RegisterForGamepadButtonDown(e){return this.m_ButtonDownCallbacks.Register(e)}RegisterForGamepadButtonUp(e){return this.m_ButtonUpCallbacks.Register(e)}RegisterForAnalog(e){return this.m_AnalogCallbacks.Register(e)}RegisterForNavigationTypeChange(e){return this.m_NavigationTypeChangeCallbacks.Register(e)}SetSourceType(e){this.m_eNavigationSourceType=e}GetSourceType(){return this.m_eNavigationSourceType}SetControllerActive(e){this.m_nLastActiveControllerIndex=e,this.m_fLastActiveTime=Date.now()}GetActiveControllerIndex(){return this.m_nLastActiveControllerIndex}GetActiveControllerTime(){return this.m_fLastActiveTime}OnGamepadDetected(){console.log("Gamepad detected"),this.m_bGamepadDetected=!0,this.m_OnGamepadDetectedCallbacks.Dispatch()}OnButtonDown(e,t){void 0===t&&(t=-1),this.SetControllerActive(t),this.DispatchButtonDown(e),this.m_ButtonRepeatHandler.HandleInputButtonDown(e,(()=>this.DispatchButtonDown(e,!0)))}OnButtonUp(e,t){void 0===t&&(t=-1),this.SetControllerActive(t),this.m_ButtonRepeatHandler.HandleInputButtonUp(e),this.m_ButtonUpCallbacks.Dispatch(e,this.m_eNavigationSourceType,this.m_nLastActiveControllerIndex)}DispatchButtonDown(e,t){this.m_ButtonDownCallbacks.Dispatch(e,this.m_eNavigationSourceType,this.m_nLastActiveControllerIndex,t)}OnAnalogPad(e,t,n,r){void 0===r&&(r=-1),this.SetControllerActive(r),this.m_AnalogCallbacks.Dispatch(e,this.m_nLastActiveControllerIndex,t,n)}OnNavigationTypeChanged(e){this.m_NavigationTypeChangeCallbacks.Dispatch(e)}}},60142:(e,t,n)=>{"use strict";n.d(t,{$y:()=>s,Sp:()=>a,VA:()=>l,Y0:()=>c});var r=n(23801),i=n(58123);class o{constructor(e){this.m_root=e}static SerializeNavState(e,t=!0,n=!0){return{root:o.SerializeNavNode(e,t,n),bHadFocus:e.BFocusWithin()}}static SerializeNavNode(e,t=!0,n=!0){let r=null;const[i,a]=e.GetChildren();return i.length&&-1!=a&&t&&(r=i.map(((e,t)=>o.SerializeNavNode(e,t==a||n,n)))),{sNavKey:e.NavKey,iActiveChild:a,rgChildren:r}}static RestoreSerializedNavState(e,t,n=0){const{root:r,bHadFocus:a}=t;e.Tree.Controller.RestoreHistoryTransaction((()=>{o.RestoreSerializedNavNode(e,r),(1==n||0==n&&a)&&e.BTakeFocus(i.uS.APPLICATION)}))}static RestoreSerializedNavNode(e,t){var n;const{sNavKey:i,iActiveChild:a,rgChildren:s}=t;if(i&&(0,r.X)(i==e.NavKey,"navkey mismatch"),e.SetActiveChild(a),s&&s.length){const[t]=e.GetChildren();let r=new Map;t.forEach((e=>{e.NavKey&&r.set(e.NavKey,e)}));for(const e of s){if(!e.sNavKey)continue;const t=r.get(e.sNavKey);t&&o.RestoreSerializedNavNode(t,e)}if(-1!=a&&(null===(n=s[a])||void 0===n?void 0:n.sNavKey)){const n=r.get(s[a].sNavKey);n&&e.SetActiveChild(t.indexOf(n))}let i=0,l=0;for(;i=t.length||l>=s.length)break;o.RestoreSerializedNavNode(t[i],s[l]),i++,l++}}}}function a(e){return o.SerializeNavState(e,!0,!1)}function s(e,t,n=0){return o.RestoreSerializedNavState(e,t,n)}class l extends o{constructor(){super(...arguments),this.m_rgHistory=[]}PushState(){this.m_rgHistory.push(o.SerializeNavState(this.m_root))}PopState(e=0){this.m_rgHistory.length&&o.RestoreSerializedNavState(this.m_root,this.m_rgHistory.pop(),e)}}class c extends o{constructor(){super(...arguments),this.m_mapHistory=new Map}SaveState(e){this.m_mapHistory.set(e,o.SerializeNavState(this.m_root))}RestoreState(e,t=0){const n=this.m_mapHistory.get(e);return!!n&&(console.log(`Restoring history for state ${e}`),o.RestoreSerializedNavState(this.m_root,n,t),!0)}}},96572:(e,t,n)=>{"use strict";n.d(t,{Z:()=>C});var r=n(33940),i=n(8179),o=n(34433),a=n(11837),s=n(23801),l=n(26464),c=n(85246),d=n(60161),u=n(50454),m=n(58123),h=n(9501);const p=new u.s("FocusNavigation").Debug;class _{constructor(e,t){this.m_bActive=!1,this.m_rgGamepadNavigationTrees=[],this.m_LastActiveNavTree=null,this.m_LastActiveFocusNavTree=null,this.m_bMounted=!0,this.m_schDeferredActivate=new c.Ar,this.m_FocusChangedCallbacks=new c.pB,this.m_ActiveCallbacks=new c.pB,this.m_iFocusChangeStack=0,this.m_controller=e,this.m_rootWindow=t,this.m_activeWindow=t}get RootWindow(){return this.m_rootWindow}get ActiveWindow(){return this.m_activeWindow}FindNavTreeInFocusedWindow(){for(let e=this.m_rgGamepadNavigationTrees.length-1;e>=0;e--){const t=this.m_rgGamepadNavigationTrees[e];if(t.Window.document.hasFocus())return t}}Destroy(e){e==this.m_rootWindow?(p(`${this.LogName(e)} Destroying context for window`),this.m_bMounted=!1,this.m_schDeferredActivate.Cancel(),this.SetActive(!1,e)):p(`${this.LogName(e)} Child window destroyed`)}SetActive(e,t,n=undefined){this.m_controller.BatchedUpdate((()=>{var r;e?(this.m_activeWindow=t,this.m_activeBrowserView=n,this.m_controller.OnContextActivated(this)):(this.m_activeBrowserView=void 0,this.m_controller.OnContextDeactivated(this,!1)),this.m_bActive!=e&&(this.m_bActive=e,this.m_ActiveCallbacks.Dispatch(e),null===(r=this.m_LastActiveFocusNavTree)||void 0===r||r.OnActiveStateChangedCallbacks.Dispatch(e,this.m_LastActiveFocusNavTree))}))}OnActivate(e){p(`${this.LogName(e)} Activating context, there are ${this.m_rgGamepadNavigationTrees.length} trees in this context`),this.SetActive(!0,e)}OnActivateBrowserView(e,t){p(`${this.LogName(e)} Browser View "${t}" activated in context`),this.SetActive(!0,e,t)}OnDeactivate(e){this.m_activeWindow==e?(p(`${this.LogName(e)} Deactivate context for window`),this.SetActive(!1,e)):p(`${this.LogName(e)} Blurred, but not deactivating because (${this.m_activeWindow.name}) has focus.`)}OnDeactivateBrowserView(e,t){p(`${this.LogName(e)} Browser View "${t}" deactivated in context`),this.m_activeBrowserView==t&&this.SetActive(!1,e,t)}BIsActive(){return this.m_bActive}get ActiveCallbacks(){return this.m_ActiveCallbacks}AddNavTree(e,t){t?this.m_rgGamepadNavigationTrees.unshift(e):(this.m_rgGamepadNavigationTrees.push(e),this.SetActiveNavTree(e,!0))}LogName(e=undefined){return e&&this.m_rootWindow!=e?`(${this.m_rootWindow.name}) > (${e.name})`:`(${this.m_rootWindow.name})`}SetActiveNavTree(e,t=!1){if(e&&this.m_LastActiveNavTree==e)return;const n=this.m_LastActiveNavTree;n&&a.Zf(this.m_rgGamepadNavigationTrees,n),e||this.m_rgGamepadNavigationTrees.length&&(e=this.m_rgGamepadNavigationTrees[this.m_rgGamepadNavigationTrees.length-1]);const r=this.m_LastActiveFocusNavTree==e;e&&a.Zf(this.m_rgGamepadNavigationTrees,e),this.m_LastActiveNavTree=e,e&&e.BUseVirtualFocus()||(this.m_LastActiveFocusNavTree=e),p(`${this.LogName(e.Window)} Move from nav tree ${null==n?void 0:n.id} to nav tree ${null==e?void 0:e.id} ${t?"taking focus":"no focus"}`),n&&this.m_rgGamepadNavigationTrees.push(n),e&&(this.m_rgGamepadNavigationTrees.push(e),r||!t||e.DeferredFocus.BHasQueuedFocusNode()||e.DeferredFocus.RequestFocus(e.Root)),n&&n!=this.m_LastActiveFocusNavTree&&n.OnDeactivate(e),e&&!r&&e.OnActivate(n)}BlurNavTree(e){this.m_LastActiveNavTree==e&&this.SetActiveNavTree(null,!0),a.Zf(this.m_rgGamepadNavigationTrees,e),this.m_rgGamepadNavigationTrees.unshift(e)}UnregisterGamepadNavigationTree(e){a.Zf(this.m_rgGamepadNavigationTrees,e),p(`(${this.m_rootWindow.name}) Unregister tree ${null==e?void 0:e.id} ${this.m_LastActiveFocusNavTree==e?"(was active)":"(inactive)"}`),this.m_LastActiveNavTree==e&&(this.m_LastActiveNavTree=null,this.m_bMounted&&this.m_schDeferredActivate.Schedule(1,(()=>{this.m_LastActiveNavTree||this.SetActiveNavTree(null,!0)})))}get FocusChangedCallbacks(){return this.m_FocusChangedCallbacks}OnFocusChangeStart(e,t,n,r){return 0==this.m_iFocusChangeStack?this.m_ActiveFocusChange={source:e,from:n,to:r}:!this.m_ActiveFocusChange.from&&n&&(this.m_ActiveFocusChange.from=n),this.m_iFocusChangeStack++}OnFocusChangeComplete(e){if(this.m_iFocusChangeStack--,(0,s.X)(e==this.m_iFocusChangeStack,"out of order focus pop"),0==this.m_iFocusChangeStack){const{source:e,from:t,to:n}=this.m_ActiveFocusChange;this.m_FocusChangedCallbacks.Dispatch(e,t,n)}}}const g=new u.s("FocusNavigation").Debug,f=new u.s("FocusNavigation").Assert,v="focus-nav-show-debug-focus-ring";class C{constructor(){this.m_rgGamepadInputSources=[],this.m_rgAllContexts=[],this.m_bGlobalEventsInitialized=!1,this.m_fnCatchAllGamepadInput=null,this.m_UnhandledButtonEventsCallbacks=new c.pB,this.m_navigationSource=(0,c.vq)({eActivationSourceType:i.Rr.UNKNOWN,nActiveGamepadIndex:-1,nLastActiveGamepadIndex:-1}),this.m_bShowDebugFocusRing=(0,c.vq)(!1),this.m_bRestoringHistory=!1,this.m_fnGamepadEventUpdateBatcher=e=>e(),window.FocusNavController=this,this.m_bShowDebugFocusRing.Set("shown"==sessionStorage.getItem(v))}CreateContext(e){const t=new _(this,e);return this.m_rgAllContexts.push(t),t}GetDefaultContext(){return this.m_DefaultContext||(this.m_DefaultContext=this.CreateContext(window)),this.m_DefaultContext}GetActiveContext(){return this.m_ActiveContext}FindAnActiveContext(){var e,t;if(!this.m_ActiveContext&&0!=this.m_rgAllContexts.length){console.warn("No active context; finding one");for(const e of this.m_rgAllContexts){const t=e.FindNavTreeInFocusedWindow();if(t){g(`${e.LogName(t.Window)} Found a focused window; setting this context as active.`),this.m_ActiveContext=e,this.m_ActiveContext.OnActivate(t.Window);break}}}return!this.m_ActiveContext&&this.m_LastActiveContext&&((0,s.X)(!1,`Failed to find an active context, will fall back to ${null===(e=this.m_LastActiveContext)||void 0===e?void 0:e.LogName()}`),this.m_ActiveContext=this.m_LastActiveContext,this.m_ActiveContext.OnActivate(null===(t=this.m_LastActiveContext.m_LastActiveFocusNavTree)||void 0===t?void 0:t.Window)),this.m_ActiveContext}SetShowDebugFocusRing(e){this.m_bShowDebugFocusRing.Set(e),function(e){sessionStorage.setItem(v,e?"shown":void 0)}(e)}GetShowDebugFocusRing(){return this.m_bShowDebugFocusRing}RegisterInputSource(e){let t=new c.Hf;return this.m_rgGamepadInputSources.push(e),t.PushArrayRemove(this.m_rgGamepadInputSources,e),t.Push(e.RegisterForGamepadButtonDown(this.OnButtonDown).Unregister),t.Push(e.RegisterForGamepadButtonUp(this.OnButtonUp).Unregister),t.Push(e.RegisterForNavigationTypeChange(this.OnNavigationTypeChange).Unregister),t.GetUnregisterFunc()}SetGamepadEventUpdateBatcher(e){this.m_fnGamepadEventUpdateBatcher=e}get NavigationSource(){return this.m_navigationSource}DispatchVirtualButtonPress(e){this.OnButtonDown(e,i.Rr.UNKNOWN,-1)}DispatchVirtualButtonClick(e,t){var n;let r=null;null!==t&&(r=null!==(n=this.GetActiveContext())&&void 0!==n?n:this.FindAnActiveContext()),this.OnButtonDown(e,i.Rr.GAMEPAD,-1,null,t,r),this.OnButtonUp(e,i.Rr.GAMEPAD,-1,null,t)}DispatchVirtualGamepad(e,t){switch(e){case"vgp_onbuttondown":this.OnButtonDown(t.button,t.source,-1,t.is_repeat);break;case"vgp_onbuttonup":this.OnButtonUp(t.button,t.source,-1)}}BGlobalGamepadButton(e){return e===i.eV.STEAM_GUIDE||e===i.eV.STEAM_QUICK_MENU||e===i.eV.CANCEL}GetEventTarget(e,t=!1){let n=this.GetActiveContext();!n&&t&&(n=this.FindAnActiveContext());let r=null==n?void 0:n.ActiveWindow.document.activeElement;if(null==n?void 0:n.m_LastActiveNavTree){let o=this.m_navigationSource.Value.eActivationSourceType;if(!(n.m_LastActiveNavTree.GetLastFocusedNode()||o!=i.Rr.GAMEPAD&&o!=i.Rr.KEYBOARD||(t&&n.m_LastActiveNavTree.TakeFocus(m.uS.GAMEPAD,!0),this.BGlobalGamepadButton(e))))return[null,n];n.m_LastActiveNavTree.GetLastFocusedNode()&&(r=n.m_LastActiveNavTree.GetLastFocusedNode().Element)}return[r,n]}ChangeNavigationSource(e,t){let n=this.m_navigationSource.Value,r=n.nLastActiveGamepadIndex;n.nActiveGamepadIndex>=0&&(r=n.nActiveGamepadIndex),this.m_navigationSource.Set({eActivationSourceType:e,nActiveGamepadIndex:t,nLastActiveGamepadIndex:r}),e!=i.Rr.MOUSE&&(0,o.U5)("Browser.HideCursorUntilMouseEvent")&&SteamClient.Browser.HideCursorUntilMouseEvent()}OnButtonDown(e,t,n,r,o,a){var s;if(this.m_fnCatchAllGamepadInput&&this.m_fnCatchAllGamepadInput(e))return void g("Ignoring button press - gamepad input is suppressed by parent window");this.ChangeNavigationSource(t,n),f(!!o==!!a,"Must set both overrideContext and overrideElement or neither");let l=o,c=a;null!=l&&null!=c||([l,c]=this.GetEventTarget(e,!0)),g(`Firing ${i.eV[e]} in tree ${null===(s=null==c?void 0:c.m_LastActiveNavTree)||void 0===s?void 0:s.id} at `,l),this.BatchedUpdate((()=>(0,m.Jb)(l,"vgp_onbuttondown",{button:e,source:t,is_repeat:r})))}OnButtonUp(e,t,n,r,i){if(this.m_fnCatchAllGamepadInput)return;this.ChangeNavigationSource(t,n);const[o]=i?[i]:this.GetEventTarget();this.BatchedUpdate((()=>(0,m.Jb)(o,"vgp_onbuttonup",{button:e,source:t,is_repeat:!1})))}BatchedUpdate(e){this.m_fnGamepadEventUpdateBatcher(e)}OnNavigationTypeChange(e){var t,n;if(this.ChangeNavigationSource(e,-1),document.hasFocus()&&(e==i.Rr.MOUSE||e==i.Rr.TOUCH)&&(null===(t=this.m_ActiveContext)||void 0===t?void 0:t.m_LastActiveNavTree)){const e=this.m_ActiveContext.m_LastActiveNavTree.GetLastFocusedNode(),t=function(e){if(!(0,d.GB)(e))return!1;const t=e.tagName,n=(0,d.uk)(e)?e.type:null;return(0,d._J)(t,n)}(null==e?void 0:e.Element)?e:null;null===(n=this.m_ActiveContext.m_LastActiveNavTree)||void 0===n||n.TransferFocus(m.uS.BROWSER,t)}}NewGamepadNavigationTree(e,t){return new h.C(this,e,t)}RegisterGamepadNavigationTree(e,t,n){const r=e.WindowContext;return e.SetIsMounted(t),n||(this.m_ActiveContext=r,this.m_LastActiveContext=r),r.AddNavTree(e,n),this.m_bGlobalEventsInitialized||this.BindGlobalEventHandlers(),()=>r.UnregisterGamepadNavigationTree(e)}OnGamepadNavigationTreeActivated(e,t=!1){e.WindowContext.SetActiveNavTree(e,t)}OnGamepadNavigationTreeFocused(e,t,n=!1){const r=e.WindowContext;r!=this.m_ActiveContext&&g(`(${r.LogName(e.Window)}) Focus event in inactive window`),e!=r.m_LastActiveFocusNavTree&&e!=r.m_LastActiveNavTree&&(r.m_LastActiveFocusNavTree.GetParentEmbeddedNavTree()==e||e.GetParentEmbeddedNavTree()==r.m_LastActiveFocusNavTree?(g(`There was a focus event in ${e.id}, allowing focus transfer to activate nav tree due to parent embedded relationship`),e.Activate()):g(`There was a focus event in ${e.id}, but the active nav tree is ${r.m_LastActiveFocusNavTree.id} so it is being ignored. Source: ${m.uS[t]}.`))}BlurNavTree(e){e.WindowContext.BlurNavTree(e)}IsActiveFocusNavTree(e){var t;return Boolean(e&&e==(null===(t=this.m_ActiveContext)||void 0===t?void 0:t.m_LastActiveFocusNavTree))}IsActiveNavTree(e){var t;return Boolean(e&&e==(null===(t=this.m_ActiveContext)||void 0===t?void 0:t.m_LastActiveNavTree))}BIsInActiveContext(e){return Boolean(e&&e.WindowContext==this.m_ActiveContext)}BindGlobalEventHandlers(){this.m_bGlobalEventsInitialized||(this.m_bGlobalEventsInitialized=!0)}RegisterForUnhandledButtonDownEvents(e){return this.m_UnhandledButtonEventsCallbacks.Register(e)}FireUnhandledGamepadEventCallbacks(e){return!this.m_UnhandledButtonEventsCallbacks.CountRegistered()||(this.m_UnhandledButtonEventsCallbacks.Dispatch(e),!1)}SetSuppressGamepadInput(e){this.m_fnCatchAllGamepadInput=e?()=>!0:null}SetCatchAllGamepadInput(e){this.m_fnCatchAllGamepadInput=e}TakeFocusChangingIFrame(){window.focus();let e=this.m_ActiveContext.m_LastActiveFocusNavTree||this.m_ActiveContext.m_LastActiveNavTree;e&&e.TakeFocus(m.uS.APPLICATION)}OnContextActivated(e){this.m_ActiveContext=e,this.m_LastActiveContext=e}OnContextDeactivated(e,t){t&&(this.m_LastActiveContext==e&&(this.m_LastActiveContext=void 0),a.Zf(this.m_rgAllContexts,e)),this.m_ActiveContext==e&&(this.m_ActiveContext=void 0)}BIsRestoringHistory(){return this.m_bRestoringHistory}RestoreHistoryTransaction(e){return(0,r.mG)(this,void 0,void 0,(function*(){this.m_bRestoringHistory=!0;try{yield e()}finally{this.m_bRestoringHistory=!1}}))}}(0,r.gn)([l.a],C.prototype,"OnButtonDown",null),(0,r.gn)([l.a],C.prototype,"OnButtonUp",null),(0,r.gn)([l.a],C.prototype,"OnNavigationTypeChange",null)},47927:(e,t,n)=>{"use strict";n.d(t,{Ii:()=>_,TB:()=>m,U7:()=>p,ZR:()=>h,ZT:()=>l.Z,lx:()=>d,sA:()=>g,sq:()=>u,uW:()=>c});var r=n(8179),i=n(23801),o=n(58123),a=n(60142),s=n(16221),l=n(96572);n(9501);class c{constructor(e){this.m_node=e}TakeFocus(e){return this.m_node.BTakeFocus(e?o.uS.GAMEPAD:o.uS.APPLICATION,e)}ParentTakeFocus(e){this.m_node.Parent.BTakeFocus(e?o.uS.GAMEPAD:o.uS.APPLICATION,e)}ChildTakeFocus(e){return this.m_node.BChildTakeFocus(e?o.uS.GAMEPAD:o.uS.APPLICATION,e)}FocusVisibleChild(e){return this.m_node.BVisibleChildTakeFocus(e)}BHasFocus(){return this.m_node.BHasFocus()}BFocusWithin(){return this.m_node.BFocusWithin()}get NavKey(){return this.m_node.NavKey}PushState(){this.m_History||(this.m_History=new a.VA(this.m_node)),this.m_History.PushState()}PopState(e=0){this.m_History&&this.m_History.PopState(e)}SaveState(e){this.m_StateHistory||(this.m_StateHistory=new a.Y0(this.m_node)),this.m_StateHistory.SaveState(e)}RestoreState(e,t=0){return!!this.m_StateHistory&&this.m_StateHistory.RestoreState(e,t)}GetFocusSnapshot(){return(0,a.Sp)(this.m_node)}RestoreFocusSnapshot(e,t=0){return(0,a.$y)(this.m_node,e,t)}NavTree(){return this.m_node.Tree}Node(){return this.m_node}}function d(e,t,n,r=.001){return"x"==e?t.x+t.width>n.x+r&&t.x+rn.y+r&&t.y+ro.max?r-o.max:0}function h(e){return{x:e.x,y:e.y}}const p={OnBlur:()=>{},OnFocus:()=>{},OnFocusChange:()=>{},OnForceMeasureFocusRing:()=>{}};function _(e){if(!e)return s.gj.NONE;const t=e.ownerDocument.defaultView,n=t.getComputedStyle(e);if("flex"==n.display)switch(n.flexDirection){case"row":return"wrap"==n.flexWrap?s.gj.GRID:s.gj.ROW;case"row-reverse":return s.gj.ROW_REVERSE;case"column":return s.gj.COLUMN;case"column-reverse":return s.gj.COLUMN_REVERSE}else{if("grid"==n.display)return s.gj.GRID;if(e.childElementCount>0){const n=t.getComputedStyle(e.firstElementChild);if("left"===n.float)return s.gj.ROW;if("right"===n.float)return s.gj.ROW_REVERSE;if("inline"===n.display||"inline-block"===n.display)return s.gj.GRID}}return s.gj.COLUMN}function g(e){switch(e){case r.eV.DIR_UP:case r.eV.DIR_DOWN:return"y";case r.eV.DIR_LEFT:case r.eV.DIR_RIGHT:return"x";default:return}}},16221:(e,t,n)=>{"use strict";n.d(t,{Vp:()=>U,zE:()=>G,gj:()=>x,c4:()=>N,mz:()=>V});var r=n(33940),i=n(8179),o=n(89855),a=n(23801),s=n(26464),l=n(85246),c=n(50454);var d=n(58123),u=n(47927),m=n(60161);function h(e,t,n){const r=[],[i,o]=e.GetChildren(),a=e.GetActiveChild();let s;const l=a?a.Element.getBoundingClientRect():null;if(a){const e=g(a,t,n);if(e&&!e.offScreen&&(s=p(a,e,e.overlap,n),s&&!s.visibility.offScreen))return s;e&&r.push({child:a,visibility:e})}const c=n||l;for(let e=0;ed.visibility.distance)break}const i=n==a?s:p(n,r,r.overlap||t,c);i&&(!d||_(i,d)<0)&&(d=i)}return d}function p(e,t,n,r){switch(e.GetFocusable()){case"none":return null;case"children":return h(e,t.overlap||n,r);case"self":return{child:e,visibility:t}}}function _(e,t){const n=e.visibility,r=t.visibility;return n.offScreen?r.offScreen?n.distance-r.distance:1:r.offScreen?-1:n.distance-r.distance}function g(e,t,n){const r=e.Element.getBoundingClientRect(),i=e.GetFocusable();let o;if("none"==i)return null;if("self"==i){if(r.topt.right||r.bottom>t.bottom||r.leftt.right)return{offScreen:"right",distance:n-t.right};if(e>t.bottom)return{offScreen:"bottom",distance:e-t.bottom};if(nr.height||n.scrollWidth>r.width){const e=n.ownerDocument.defaultView.getComputedStyle(n);if("visible"==e.overflowX||"visible"==e.overflowY)return{overlap:t}}if(r.bottomt.right)return{offScreen:"right",distance:r.left-t.right};if(r.top>t.bottom)return{offScreen:"bottom",distance:r.top-t.bottom};if(r.rightl?0:il&&a>c?i-s-d:ic||o>l&&a<=c?o-l+u:0}function R(e){return"auto"==e?0:e.endsWith("px")?parseInt(e):(console.log("Unsupported length",e),0)}function M(e){if(!("ownerDocument"in e))return{left:0,right:0,top:0,bottom:0};const t=e.ownerDocument.defaultView.getComputedStyle(e);return{left:R(t.scrollMarginLeft),right:R(t.scrollMarginRight),top:R(t.scrollMarginTop),bottom:R(t.scrollMarginBottom)}}function T(e,t){let n=function(e){let t;return t="ownerDocument"in e?e.ownerDocument.defaultView.getComputedStyle(e):e.document.defaultView.getComputedStyle(window.document.documentElement),{left:R(t.scrollPaddingLeft),right:R(t.scrollPaddingRight),top:R(t.scrollPaddingTop),bottom:R(t.scrollPaddingBottom)}}(e);return{left:Math.max(0,t.left+n.left),right:Math.max(0,t.right-n.right),top:Math.max(0,t.top+n.top),bottom:Math.max(0,t.bottom-n.bottom)}}function A(e){return e>-1&&e<1}function L(e,t,n,r,i){C("----------------------------------------------------------------------------------"),C("Scrolling Into View:",t);let o=[],a=t,s=w(t),l=null!=i?i:Number.MAX_VALUE;for(;a;){let e=(0,m.Et)(a);e||(e=(0,m.kR)(a));let t=M(a),n=T(e,w(e)),c=O(e),d={element:e,left:0,top:0};if(C("Checking scroll div",e,`scroll y:${c.scrollTop} of ${c.MaxScrollTop()}, x:${c.scrollLeft} of ${c.MaxScrollLeft()}, adjusted =>`,n,"target => ",s),r&&"y"!=r||!(0,m.U0)(e,"y")||(d.top=I(s,n,t,"y"),d.top=f.Lh(d.top,-c.scrollTop,c.MaxScrollTop()-c.scrollTop),i&&(d.top=Math.min(l,Math.abs(d.top))*(d.top<0?-1:1),l-=Math.abs(d.top)),C(`- checked y: ${d.top}`)),r&&"x"!=r||!(0,m.U0)(e,"x")||(d.left=I(s,n,t,"x"),d.left=f.Lh(d.left,-c.scrollLeft,c.MaxScrollLeft()-c.scrollLeft),i&&(d.left=Math.min(l,Math.abs(d.left))*(d.left<0?-1:1),l-=Math.abs(d.left)),C(`- checked x: ${d.left}`)),o.push(d),i&&!l)break;if(!("ownerDocument"in e))break;const u=window.getComputedStyle(e);if("fixed"===u.position||"sticky"===u.position)break;a=e,s={top:s.top-d.top,right:s.right-d.left,bottom:s.bottom-d.top,left:s.left-d.left}}let c=!1;for(let e of o){if(A(e.left)&&A(e.top))continue;let t=O(e.element),r=t.scrollTop+e.top,i=t.scrollLeft+e.left;i=f.Lh(i,0,t.MaxScrollLeft()),r=f.Lh(r,0,t.MaxScrollTop()),A(t.scrollLeft-i)&&A(t.scrollTop-r)||(t.scrollTo({left:i,top:r,behavior:n}),c||(C("Scrolling:"),c=!0),C(`- ${e.top},${e.left} => ${r}, ${i}, behavior: ${n}`,e.element))}}class B{constructor(e){this.m_scrollTopTarget=void 0,this.m_scrollLeftTarget=void 0,this.m_animation=void 0,"ownerDocument"in e?(this.m_element=e,this.m_fnOriginalScrollTo=e.scrollTo,this.m_element.scrollTo=(e,t)=>{"number"==typeof e?this.scrollTo({left:e,top:t}):this.scrollTo(e)}):(this.m_window=e,this.m_element=e.document.documentElement)}ResetScrollState(){this.m_scrollTopTarget=void 0,this.m_scrollLeftTarget=void 0,this.m_window||(this.m_element.style.scrollSnapType="")}scrollTo(e){var t,n;if("auto"==e.behavior)this.m_animation&&(this.m_animation.Cancel(),this.m_animation=void 0),this.m_window?this.m_window.scrollTo(e):this.m_fnOriginalScrollTo.apply(this.m_element,[e]),this.ResetScrollState();else{const r=null!==(t=e.left)&&void 0!==t?t:this.scrollLeft,i=null!==(n=e.top)&&void 0!==n?n:this.scrollTop;let o="sine";this.m_animation&&(this.m_animation.Cancel(),o="linear");if(Math.max(Math.abs(this.currentScrollTop-i),Math.abs(this.currentScrollLeft-r))>0){const e={msDuration:200,timing:o,onComplete:this.ResetScrollState};if(this.m_window){const t=this.currentScrollLeft,n=this.currentScrollTop;this.m_animation=new v.sw(this.m_window,e,(e=>{this.m_window.scrollTo({left:t+(r-t)*e,top:n+(i-n)*e,behavior:"auto"})}))}else this.m_element.style.scrollSnapType="initial",this.m_animation=new v.jg(this.m_element,{scrollTop:i,scrollLeft:r},e);this.m_scrollLeftTarget=r,this.m_scrollTopTarget=i,this.m_animation.Start()}}}get clientWidth(){return this.m_window?this.m_window.innerWidth:this.m_element.clientWidth}get clientHeight(){return this.m_window?this.m_window.innerHeight:this.m_element.clientHeight}get currentScrollLeft(){return this.m_window?this.m_window.scrollX:this.m_element.scrollLeft}get currentScrollTop(){return this.m_window?this.m_window.scrollY:this.m_element.scrollTop}get scrollLeft(){var e;return null!==(e=this.m_scrollLeftTarget)&&void 0!==e?e:this.currentScrollLeft}get scrollTop(){var e;return null!==(e=this.m_scrollTopTarget)&&void 0!==e?e:this.currentScrollTop}get scrollWidth(){return this.m_element.scrollWidth}get scrollHeight(){return this.m_element.scrollHeight}MaxScrollTop(){return this.scrollHeight-this.clientHeight}MaxScrollLeft(){return this.scrollWidth-this.clientWidth}}(0,r.gn)([s.a],B.prototype,"ResetScrollState",null);const k=new WeakMap;function O(e){let t=k.get(e);return t||(t=new B(e),k.set(e,t)),t}function F(e){const t=k.get(e);return t?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}const P=new c.s("FocusNavigationMovement").Debug;var x,N,V,G;!function(e){e[e.NONE=0]="NONE",e[e.COLUMN=1]="COLUMN",e[e.ROW=2]="ROW",e[e.COLUMN_REVERSE=3]="COLUMN_REVERSE",e[e.ROW_REVERSE=4]="ROW_REVERSE",e[e.GRID=5]="GRID",e[e.GEOMETRIC=6]="GEOMETRIC"}(x||(x={})),function(e){e[e.FIRST=0]="FIRST",e[e.LAST=1]="LAST",e[e.MAINTAIN_X=2]="MAINTAIN_X",e[e.MAINTAIN_Y=3]="MAINTAIN_Y",e[e.PREFERRED_CHILD=4]="PREFERRED_CHILD"}(N||(N={})),function(e){e[e.Standard=0]="Standard",e[e.NoTransform=1]="NoTransform",e[e.NoTransformSparseContent=2]="NoTransformSparseContent"}(V||(V={})),function(e){e[e.INVALID=0]="INVALID",e[e.FORWARD=1]="FORWARD",e[e.BACKWARD=2]="BACKWARD"}(G||(G={}));class U{constructor(e,t,n){this.m_rgChildren=[],this.m_iLastActiveChildIndex=-1,this.m_bChildrenSorted=!1,this.m_bAutoFocusChild=!1,this.m_bMounted=!1,this.m_bFocused=!1,this.m_FocusCallbackList=new l.pB,this.m_bFocusWithin=!1,this.m_FocusWithinCallbackList=new l.pB,this.m_ActionDescriptionsChangedCallbackList=new l.pB,this.m_RetainFocusParent=null,this.m_rgNavigationHandlers=[],this.m_rgFocusHandlers=[],this.m_Tree=e,this.m_Parent=t,this.m_FocusRing=n,this.m_nDepth=t?t.m_nDepth+1:0}CreateHandle(){return new u.uW(this)}get Tree(){return this.m_Tree}get NavKey(){var e,t;return(null===(e=this.m_Properties)||void 0===e?void 0:e.navKey)?this.m_Properties.navKey:(null===(t=this.m_element)||void 0===t?void 0:t.id)?this.m_element.id:void 0}get Element(){return this.m_element}get Parent(){return this.m_Parent}SetProperties(e){var t,n,r,i,o;const a=(s=null===(t=this.m_Properties)||void 0===t?void 0:t.actionDescriptionMap,l=null==e?void 0:e.actionDescriptionMap,!(null==s||null==l?s===l:"object"==typeof s&&"object"==typeof l&&Object.keys(s).length===Object.keys(l).length&&Object.keys(s).every((e=>l.hasOwnProperty(e)&&s[e]===l[e]))));var s,l;const c=null===(n=this.m_Properties)||void 0===n?void 0:n.retainFocus,u=null===(r=this.m_Properties)||void 0===r?void 0:r.noFocusRing;this.m_Properties=e||{},a&&this.m_ActionDescriptionsChangedCallbackList.Dispatch(),this.m_Properties.retainFocus&&!c?this.PropagateRetainFocusParentToChildren(this):!this.m_Properties.retainFocus&&c&&this.PropagateRetainFocusParentToChildren(this.m_RetainFocusParent),this.m_Properties.noFocusRing&&!u&&this.BHasFocus()?null===(i=this.m_FocusRing)||void 0===i||i.OnBlur(d.uS.APPLICATION,this,this):!this.m_Properties.noFocusRing&&u&&this.BHasFocus()&&(null===(o=this.m_FocusRing)||void 0===o||o.OnFocus(d.uS.APPLICATION,this,this)),this.m_element&&this.RegisterDOMEvents()}BWantsAutoFocus(){return this.m_Properties.autoFocus||this.m_bAutoFocusChild}BWantsPreferredFocus(){return this.m_Properties.preferredFocus}BWantsFocusRing(){return!this.m_Properties.noFocusRing||this.m_Tree.Controller.GetShowDebugFocusRing().Value}GetBoundingRect(){return this.m_element&&this.m_element.getBoundingClientRect()}SetHasFocus(e){e!=this.m_bFocused&&(this.m_bFocused=e,this.m_FocusCallbackList.Dispatch(this.m_bFocused))}SetFocusWithin(e){var t;e!=this.m_bFocusWithin&&(this.m_bFocusWithin=e,this.m_FocusWithinCallbackList.Dispatch(this.m_bFocusWithin),(null===(t=this.m_Properties)||void 0===t?void 0:t.onFocusWithin)&&this.m_Properties.onFocusWithin(this.m_bFocusWithin))}BHasFocus(){return this.m_bFocused}BFocusWithin(){return this.m_bFocusWithin}get FocusCallbackList(){return this.m_FocusCallbackList}get FocusWithinCallbackList(){return this.m_FocusWithinCallbackList}ForceMeasureFocusRing(){var e;null===(e=this.m_FocusRing)||void 0===e||e.OnForceMeasureFocusRing()}get ActionDescriptionChangedCallbackList(){return this.m_ActionDescriptionsChangedCallbackList}GetActiveActionDescriptions(){return this.BuildConsolidatedActionDescriptionMap({})}BuildConsolidatedActionDescriptionMap(e){var t;const n=null===(t=this.m_Properties)||void 0===t?void 0:t.actionDescriptionMap;if(n)for(const t in n){const r=t;void 0===e[r]&&(e[r]=n[r])}return this.m_Parent?this.m_Parent.BuildConsolidatedActionDescriptionMap(e):e}AddChild(e){var t;this.m_rgChildren.push(e),this.m_bChildrenSorted=!1,this.m_element&&this.RegisterDOMEvents(),(null===(t=this.m_Properties)||void 0===t?void 0:t.retainFocus)?e.SetRetainFocusParent(this):this.m_RetainFocusParent&&e.SetRetainFocusParent(this.m_RetainFocusParent),this.m_bMounted&&e.BFocusWithin()&&((0,a.X)(!this.m_ActiveChild&&this.BFocusWithin(),"Invalid focus state in AddChild"),this.SetActiveChild(this.m_rgChildren.length-1))}OnMount(e){this.m_element=e,this.m_Parent?this.m_Parent.AddChild(this):(0,a.X)(this==this.m_Tree.Root,"Only root should have no parent"),this.m_bMounted=!0,this.RegisterDOMEvents();const t=this.m_RetainFocusParent&&this.m_RetainFocusParent.BHasFocus(),n=this.m_Properties.autoFocus||t;if(this.BWantsAutoFocus()||n){let e=-1;this.m_rgChildren.length&&(this.EnsureChildrenSorted(),e=this.m_rgChildren.findIndex((e=>e.BWantsAutoFocus()))),(this.m_Properties.autoFocus||n||-1!==e)&&(this.SetActiveChild(e),!this.m_Parent||this.m_Parent.m_element?t?this.m_Tree.DeferredFocus.BHasQueuedFocusNode()||this.m_Tree.DeferredFocus.RequestFocus(this.m_RetainFocusParent,{bFocusDescendant:!0}):this.Tree.DeferredFocus.RequestFocus(this):this.m_Parent.m_bAutoFocusChild=!0)}else if(this.m_rgChildren.length){const e=this.m_rgChildren.findIndex((e=>e.BFocusWithin()));-1!=e&&(this.SetActiveChild(e),(0,a.X)(this.m_bFocusWithin,"Child has focus, we should be m_bFocusWithin"))}}DEV_SetDebugPropsOnElement(){}OnUnmount(){var e;(null===(e=this.m_Properties)||void 0===e?void 0:e.retainFocus)&&this.PropagateRetainFocusParentToChildren(this.m_RetainFocusParent),this.m_bMounted=!1;const t=this.Tree.DeferredFocus.BIsQueuedFocusNode(this);(this.m_bFocused||t)&&(P(`The focused node is unmounting, ${this.m_RetainFocusParent?"will transfer to retain focus ancestor":"will blur"}.`),t&&this.Tree.DeferredFocus.RequestFocus(void 0),this.m_RetainFocusParent?this.m_RetainFocusParent.OnFocusedDecendantRemoved(this):this.m_bFocused&&this.m_Tree.TransferFocus(d.uS.APPLICATION,null)),this.UnregisterDOMEvents(),this.m_Parent?this.m_Parent.RemoveChild(this):(0,a.X)(this==this.m_Tree.Root,"Only root should have no parent")}RegisterDOMEvents(){!this.m_rgNavigationHandlers.length&&(this.m_rgChildren.length>=2||this.m_Properties.layout!=x.NONE||this.m_Properties.onMoveUp||this.m_Properties.onMoveRight||this.m_Properties.onMoveDown||this.m_Properties.onMoveLeft)&&this.m_rgNavigationHandlers.push((0,d.$G)(this.m_element,this.OnNavigationEvent)),(this.m_Properties.focusable||0==this.m_rgChildren.length)&&(this.m_rgFocusHandlers.length||(this.m_element.addEventListener("focus",this.OnDOMFocus),this.m_element.addEventListener("blur",this.OnDOMBlur),this.m_rgFocusHandlers.push((()=>{this.m_element.removeEventListener("focus",this.OnDOMFocus),this.m_element.removeEventListener("blur",this.OnDOMBlur)}))))}RemoveChild(e){let t=this.m_rgChildren.indexOf(e);(0,a.X)(-1!==t,"Child was not found to remove"),-1!==t&&(this.m_ActiveChild==e&&(this.m_ActiveChild=void 0),this.m_rgChildren.splice(t,1))}UnregisterDOMEvents(){this.m_rgNavigationHandlers.forEach((e=>e())),this.m_rgNavigationHandlers=[],this.m_rgFocusHandlers.forEach((e=>e())),this.m_rgFocusHandlers=[]}GetActiveDescendant(){const e=this.GetActiveChild();return e?e.GetActiveDescendant():this}IsValidChildIndex(e){return e>=0&&e{const n=e.m_element,r=t.m_element;if(!n)return r?1:0;if(!r)return-1;const i=n.compareDocumentPosition(r);return i&Node.DOCUMENT_POSITION_PRECEDING?1:i&Node.DOCUMENT_POSITION_FOLLOWING?-1:0})),this.m_ActiveChild&&(this.m_iLastActiveChildIndex=this.m_rgChildren.indexOf(this.m_ActiveChild)),this.m_bChildrenSorted=!0)}GetLastFocusElement(){const e=this.GetActiveChild();return e?e.GetLastFocusElement():this.m_element}OnDOMFocus(e){this.m_bFocused||this.m_Tree.TransferFocus(d.uS.BROWSER,this)}OnDOMBlur(e){this.m_bFocused&&this.m_element.ownerDocument.hasFocus()&&this.m_Tree.TransferFocus(d.uS.BROWSER,null)}UpdateParentActiveChild(){this.m_Parent&&(this.m_Parent.SetActiveChild(this),this.m_Parent.UpdateParentActiveChild())}GetFocusable(){const{focusable:e,focusableIfNoChildren:t,childFocusDisabled:n,fnCanTakeFocus:r}=this.m_Properties;return this.m_bMounted?r&&!r(this)?"none":e||t&&(n||0==this.m_rgChildren.length)?"self":!n&&this.m_rgChildren.length?"children":"none":"none"}BTakeFocus(e,t){const n=this.FindFocusableNode(t);return this.InternalFocusDescendant(n,e,t)}FindFocusableNode(e,t){switch(this.GetFocusable()){case"none":return null;case"self":return this;case"children":return this.FindFocusableDescendant(e,t)}}BChildTakeFocus(e,t){const n=this.FindFocusableDescendant(t);return this.InternalFocusDescendant(n,e,t)}BFocusFirstChild(e){const t=this.FindNextFocusableChildInDirection(-1,G.FORWARD,i.eV.INVALID);return this.InternalFocusDescendant(t,e)}BFocusLastChild(e){const t=this.FindNextFocusableChildInDirection(this.m_rgChildren.length,G.BACKWARD,i.eV.INVALID);return this.InternalFocusDescendant(t,e)}FindFocusableDescendant(e,t){const n=(0,u.sA)(e),{focusableIfNoChildren:r,childFocusDisabled:i}=this.m_Properties;if(i)return null;if(this.m_rgChildren.length){this.EnsureChildrenSorted();const{navEntryPreferPosition:i,resetNavOnEntry:a}=this.m_Properties;let s,l=this.GetActiveChildIndex();if(a&&void 0!==e&&(l=-1),!this.IsValidChildIndex(l)){const e=this.GetLayout();l=l>=this.m_rgChildren.length||e==x.ROW_REVERSE||e==x.COLUMN_REVERSE||i==N.LAST?this.m_rgChildren.length-1:0}if((i==N.MAINTAIN_X||i==N.MAINTAIN_Y||t)&&n){let r,a;i==N.MAINTAIN_X?r="x":i==N.MAINTAIN_Y&&(r="y"),r==o.TP[n]&&(a=this.m_Tree.GetLastFocusedMovementRect(o.TP[n])),P(`Taking focus while preserving ${N[i]} preserved: ${r} movement: ${n}, node:`,a||t);const l=this.ComputeRelativeDirection(e,x.GRID);if(a||t){const i=l==G.BACKWARD?this.m_rgChildren.length-1:0;s=this.FindClosestChildInNextAxiallyAlignedSet(r||o.TP[n],l,e,a||t,i,this.m_rgChildren[i].GetBoundingRect())}else if(r!=o.TP[n]){const t=l==G.BACKWARD?this.m_rgChildren.length:-1;s=this.FindNextFocusableChildInDirection(t,l,e)}}else if(i==N.PREFERRED_CHILD){for(const t of this.m_rgChildren)if(s=t.BWantsPreferredFocus()&&t.FindFocusableNode(e),s)return s}else i==N.LAST&&(s=this.FindNextFocusableChildInDirection(l+1,G.BACKWARD,e));return s||(s=this.FindNextFocusableChildInDirection(l-1,G.FORWARD,e)),s||(s=this.FindNextFocusableChildInDirection(l,G.BACKWARD,e)),s||(r?this:null)}return null}BVisibleChildTakeFocus(e){var t,n,r,i;const o=null!==(r=null===(n=null===(t=this.Element)||void 0===t?void 0:t.ownerDocument)||void 0===n?void 0:n.defaultView)&&void 0!==r?r:window,a=h(this,{top:0,left:0,right:o.innerWidth,bottom:o.innerHeight});return P(`Focusing visible child, best child match is ${null===(i=null==a?void 0:a.child)||void 0===i?void 0:i.Element.className} - ${JSON.stringify(null==a?void 0:a.visibility)}`),!!a&&a.child.BTakeFocus(e)}GetLayout(){if(this.m_Properties.layout)return this.m_Properties.layout;if(this.m_rgChildren.length<2)return x.NONE;return(0,u.Ii)(this.m_element)}OnNavigationEvent(e){const t=e.detail.button;if(this.BTryInternalNavigation(t,e.detail.is_repeat))return!0;const{onMoveUp:n,onMoveRight:r,onMoveDown:o,onMoveLeft:a}=this.m_Properties;let s=!1;switch(t){case i.eV.DIR_UP:n&&(s=n(e.detail,this));break;case i.eV.DIR_RIGHT:r&&(s=r(e.detail,this));break;case i.eV.DIR_DOWN:o&&(s=o(e.detail,this));break;case i.eV.DIR_LEFT:a&&(s=a(e.detail,this))}return s}InternalFocusDescendant(e,t,n){return!!e&&(this.m_Tree.TransferFocus(t,e,(0,u.sA)(n)),!0)}BTryInternalNavigation(e,t){var n;const r=this.GetLayout();let o,a=this.ComputeRelativeDirection(e,r);if(P(`Handling navigation event ${i.eV[e]} - ${x[r]} - ${G[a]}`,this.m_element),a==G.INVALID)return!1;if(this.m_Properties.focusable&&this.m_bFocused)return P("Skipping navigation within focused element"),!1;if(this.EnsureChildrenSorted(!0),r==x.GRID)o=this.FindNextFocusableChildInGrid(this.GetActiveChildIndex(),a,e);else{let t=this.GetActiveChildIndex();this.IsValidChildIndex(t)||(t=a==G.FORWARD?-1:this.m_rgChildren.length),o=this.FindNextFocusableChildInDirection(t,a,e)}if(o){const r=(0,u.sA)(e);if(this.GetScrollIntoViewType()==V.NoTransformSparseContent){const e=null===(n=o.Element)||void 0===n?void 0:n.ownerDocument.defaultView,i=("y"==r?e.innerHeight:e.innerWidth)/(t?4.5:3.33),a=w(o.Element);if(a.top>e.innerHeight&&a.bottom>e.innerHeight+i||a.bottom<0&&a.top<-i||a.left>e.innerWidth&&a.right>e.innerWidth+i||a.right<0&&a.left<-i)return P(`Element too far away, scrolling ${i} on ${r} axis `),L(o.Element,o.Element,"smooth",r,i),!0}return this.m_Tree.TransferFocus(d.uS.GAMEPAD,o,r),!0}return!1}GetScrollIntoViewType(){var e;return(null===(e=this.m_Properties)||void 0===e?void 0:e.scrollIntoViewType)?this.m_Properties.scrollIntoViewType:this.m_Parent?this.m_Parent.GetScrollIntoViewType():V.Standard}GetRelativeDirection(e){return this.ComputeRelativeDirection(e,this.GetLayout())}ComputeRelativeDirection(e,t){let n=t==x.ROW_REVERSE||t==x.COLUMN_REVERSE;switch(t){case x.ROW:case x.ROW_REVERSE:switch(e){case i.eV.DIR_LEFT:return n?G.FORWARD:G.BACKWARD;case i.eV.DIR_RIGHT:return n?G.BACKWARD:G.FORWARD;default:return G.INVALID}case x.COLUMN:case x.COLUMN_REVERSE:switch(e){case i.eV.DIR_UP:return n?G.FORWARD:G.BACKWARD;case i.eV.DIR_DOWN:return n?G.BACKWARD:G.FORWARD;default:return G.INVALID}case x.GRID:switch(e){case i.eV.DIR_LEFT:case i.eV.DIR_UP:return n?G.FORWARD:G.BACKWARD;case i.eV.DIR_RIGHT:case i.eV.DIR_DOWN:return n?G.BACKWARD:G.FORWARD;default:return G.INVALID}default:return G.INVALID}}AdvanceIndex(e,t){return e+(t==G.FORWARD?1:-1)}FindNextFocusableChildInDirection(e,t,n){let r=t==G.FORWARD?1:-1;for(let t=e+r;t>=0&&t=0&&t!(0,u.lx)("y",s,e.GetBoundingRect())));if(-1!=e){const r=this.m_rgChildren[e].GetBoundingRect(),i=this.FindClosestChildInNextAxiallyAlignedSet("x",t,n,s,e,r);if(i)return i}r=e}}else{let r=t==G.FORWARD?1:-1;for(let i=this.AdvanceIndex(e,t);i>=0&&i{const n=t.GetBoundingRect();return!(!a||(0,u.lx)(o.TP[e],a,n))||(s.push({child:t,overlap:(0,u.sq)(e,r,n),dist:(0,u.TB)(e,l,n)}),!1)})),t==G.BACKWARD&&s.reverse(),s.sort(((e,t)=>{const n=t.overlap-e.overlap;return 0!=n?n:e.dist-t.dist}));for(const{child:e}of s){const t=e.FindFocusableNode(n,r);if(t)return t}return null}GetChildren(){return this.EnsureChildrenSorted(),[this.m_rgChildren,this.m_iLastActiveChildIndex]}SetActiveChild(e){e instanceof U?(this.EnsureChildrenSorted(),this.m_ActiveChild=e,this.m_iLastActiveChildIndex=this.m_rgChildren.indexOf(e)):(this.IsValidChildIndex(e)&&(this.m_ActiveChild=this.m_rgChildren[e]),this.m_iLastActiveChildIndex=e)}GetDepth(){return this.m_nDepth}SetRetainFocusParent(e){this.m_RetainFocusParent=e,this.m_Properties.retainFocus||this.PropagateRetainFocusParentToChildren(e)}PropagateRetainFocusParentToChildren(e){for(let t=0;twindow.innerHeight+r)&&(n=!0);let i=n?"auto":"smooth";n&&(D=performance.now()),e.Tree.Controller.BIsRestoringHistory()&&(i="auto"),c?L(0,l,i):l.scrollIntoView({behavior:i,block:"nearest"})}else c?L(0,l,"auto"):l.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"})}}(this,t),this.m_Tree.OnChildActivated(e)}}(0,r.gn)([s.a],U.prototype,"OnDOMFocus",null),(0,r.gn)([s.a],U.prototype,"OnDOMBlur",null),(0,r.gn)([s.a],U.prototype,"OnNavigationEvent",null)},9501:(e,t,n)=>{"use strict";n.d(t,{C:()=>d});var r=n(8179),i=n(85246),o=n(50454),a=n(58123),s=n(16221);const l=new o.s("FocusNavigation").Debug,c=new o.s("GamepadEvents").Debug;class d{constructor(e,t,n){this.m_onActivateCallbacks=new i.pB,this.m_onDeactivateCallbacks=new i.pB,this.m_onActiveFocusStateChangedCallbacks=new i.pB,this.m_lastFocusNodeXMovement=new u,this.m_lastFocusNodeYMovement=new u,this.m_DeferredFocus=new m(this),this.m_Controller=e,this.m_context=t,this.m_ID=n,this.m_Root=new s.Vp(this,null,null),this.m_Root.SetProperties({layout:s.gj.COLUMN}),window.GamepadNavTree=this}SetUseVirtualFocus(e){this.m_bVirtualFocus=e}get id(){return this.m_ID}get Root(){return this.m_Root}get Controller(){return this.m_Controller}get WindowContext(){return this.m_context}get Window(){return this.m_window}BUseVirtualFocus(){return this.m_bVirtualFocus}BIsContextActive(){return this.m_Controller.BIsInActiveContext(this)}CreateNode(e,t){return new s.Vp(this,e,t)}RegisterNavigationItem(e,t){return e.OnMount(t),()=>e.OnUnmount()}OnChildActivated(e){this.m_bIsMounted&&this.m_Controller.OnGamepadNavigationTreeFocused(this,e)}GetLastFocusedNode(){return this.m_lastFocusNode}GetLastFocusedMovementRect(e){return"x"==e?this.m_lastFocusNodeXMovement.GetRect():"y"==e?this.m_lastFocusNodeYMovement.GetRect():void 0}get OnActivateCallbacks(){return this.m_onActivateCallbacks}get OnDeactivateCallbacks(){return this.m_onDeactivateCallbacks}get OnActiveStateChangedCallbacks(){return this.m_onActiveFocusStateChangedCallbacks}OnActivate(e){this.m_onActivateCallbacks.Dispatch(this,e),this.m_onActiveFocusStateChangedCallbacks.Dispatch(!0,this)}OnDeactivate(e){this.m_onDeactivateCallbacks.Dispatch(this,e),this.m_onActiveFocusStateChangedCallbacks.Dispatch(!1,this),this.m_bWasActiveForLastFocusChange=!1}IsActiveFocusNavTree(){return this.m_Controller.IsActiveFocusNavTree(this)}TakeFocus(e,t=!1){let n=!1;t?n=this.Root.BVisibleChildTakeFocus(e):this.m_lastFocusNode&&(n=this.m_lastFocusNode.BTakeFocus(e)),n||(n=this.Root.BTakeFocus(e)),n||this.TransferFocus(e,this.Root)}Activate(e=!1){this.m_Controller.OnGamepadNavigationTreeActivated(this,e)}Deactivate(){this.m_Controller.BlurNavTree(this)}BIsActive(){return this.m_bIsMounted&&(this.m_Controller.IsActiveNavTree(this)||this.m_Controller.IsActiveFocusNavTree(this))}BIsActiveFocus(){return this.m_bIsMounted&&this.m_Controller.IsActiveFocusNavTree(this)}BIsActiveWithinContext(){return this.m_bIsMounted&&(this.m_context.m_LastActiveNavTree==this||this.m_context.m_LastActiveFocusNavTree==this)}SetIsMounted(e){this.m_window=e;const t=this.m_Root.Element;t.__nav_tree=this,t.__nav_wrapper&&t.__nav_wrapper.BindTree(this),this.m_bIsMounted=!0}SetParentEmbeddedNavTree(e){this.m_ParentEmbeddedNavTree=e}GetParentEmbeddedNavTree(){return this.m_ParentEmbeddedNavTree}SetOnUnhandledButtonCallback(e){this.m_onUnhandledButton=e}HandleButtonDownEventAsLogicalEvent(e){let{bUnhandled:t,bHadLogicalEventMapping:n}=(0,a.Ut)(e);return c(`Logical gamepad Event fired: ${r.eV[e.detail.button]}, had logical event: ${n}, was handled: ${!t}`),t&&this.m_onUnhandledButton&&(t=this.m_onUnhandledButton(e)),t&&(t=this.m_Controller.FireUnhandledGamepadEventCallbacks(e)),e.stopPropagation(),t}get DeferredFocus(){return this.m_DeferredFocus}TransferFocus(e,t,n){this.m_Controller.BatchedUpdate((()=>this.TransferFocusInternal(e,t,n)))}TransferFocusInternal(e,t,n){const r=this.m_lastFocusNode;if(r==t&&(this.m_bWasActiveForLastFocusChange||!this.BIsActive()))return;l(`Transfer focus in ${this.id}, source: ${a.uS[e]}, from/to:`,null==r?void 0:r.m_element,null==t?void 0:t.m_element);const i={blurredNode:r,focusedNode:t,source:e},o=function(e,t){if(!t||!e)return null;let n=t,r=e;for(;n.GetDepth()>r.GetDepth()&&n.Parent;)n=n.Parent;for(;r.GetDepth()>n.GetDepth()&&r.Parent;)r=r.Parent;for(;n!=r&&n&&r;)n=n.Parent,r=r.Parent;return n}(r,t);if(r){r.SetHasFocus(!1);for(let e=r;e&&e!=o;e=e.Parent)e.SetFocusWithin(!1)}if(t){t.SetHasFocus(!0);for(let e=t;e&&e!=o;e=e.Parent)e.SetFocusWithin(!0)}let s=this.m_context.OnFocusChangeStart(e,this,r,t);t&&t.SetDOMFocusAndScroll(e,r),r&&((0,a.Jb)(r.Element,"vgp_onblur",i),!r.m_FocusRing||t&&r.m_FocusRing==t.m_FocusRing||r.m_FocusRing.OnBlur(e,r,t)),t&&((0,a.Jb)(t.Element,"vgp_onfocus",i),t.m_FocusRing&&(r&&t.m_FocusRing==r.m_FocusRing?t.m_FocusRing.OnFocusChange(e,r,t):t.m_FocusRing.OnFocus(e,t,r))),this.m_lastFocusNode=t,this.m_bWasActiveForLastFocusChange=this.BIsActive(),"x"==n?this.m_lastFocusNodeXMovement.SetNode(t.Element):"y"==n?this.m_lastFocusNodeYMovement.SetNode(t.Element):(this.m_lastFocusNodeXMovement.Reset(),this.m_lastFocusNodeYMovement.Reset()),this.m_context.OnFocusChangeComplete(s)}}class u{SetNode(e){this.m_element=e,this.m_rect=e?e.getBoundingClientRect():void 0}Reset(){this.SetNode(void 0)}GetRect(){var e;return(null===(e=this.m_element)||void 0===e?void 0:e.isConnected)?this.m_element.getBoundingClientRect():this.m_rect}}class m{constructor(e){this.m_schExecuteQueuedFocus=new i.Ar,this.m_bSuppressed=!1,this.m_tree=e}RequestFocus(e,t){e?(this.m_target=Object.assign(Object.assign({},t),{node:e}),this.m_interval||this.m_bSuppressed||this.m_schExecuteQueuedFocus.Schedule(1,(()=>{this.m_interval=void 0,this.ExecuteQueuedFocus()}))):this.m_target=void 0}BHasQueuedFocusNode(){return!!this.m_target}BIsQueuedFocusNode(e){return this.m_target&&this.m_target.node==e}SuppressFocus(){this.m_bSuppressed=!0,this.ClearInterval()}Reset(){this.m_bSuppressed=!1,this.m_target=void 0,this.ClearInterval()}ClearInterval(){this.m_schExecuteQueuedFocus.Cancel()}ExecuteQueuedFocus(){if(this.m_bSuppressed=!1,this.m_target){const{node:e,bFocusDescendant:t}=this.m_target;this.m_target=void 0,l(`DeferredFocus in ${this.m_tree.id} - focusing ${t?"descendant of":"node"} ${e.NavKey}`),t?e.BChildTakeFocus(a.uS.APPLICATION)||this.m_tree.TransferFocus(a.uS.APPLICATION,e):e.BTakeFocus(a.uS.APPLICATION)}}}},88045:(e,t,n)=>{"use strict";n.d(t,{t:()=>i});var r=n(16221);function i(e){switch(e){case"column":return r.gj.COLUMN;case"column-reverse":return r.gj.COLUMN_REVERSE;case"row":return r.gj.ROW;case"row-reverse":return r.gj.ROW_REVERSE;case"grid":return r.gj.GRID;default:return r.gj.NONE}}},22612:(e,t,n)=>{"use strict";n.d(t,{$1:()=>l,pj:()=>s});var r=n(89526),i=n(60729),o=n(4306),a=n(8179);function s(e,t="smooth",n,o){const s=(null!=n?n:30)/100,l=r.useRef(void 0),c=r.useRef(void 0),d=r.useCallback((()=>{l.current=void 0,c.current=void 0}),[]),u=function(e,t){const n=r.useRef();return r.useCallback(((r,o)=>{let a="sine";n.current&&(n.current.Cancel(),a="linear"),void 0===r&&(r=e.current.scrollTop),void 0===o&&(o=e.current.scrollLeft);let s=Math.max(Math.abs(e.current.scrollTop-r),Math.abs(e.current.scrollLeft-o));if(s>0){let l=Math.max(Math.min(s/1e3*200,500),300);n.current=new i.jg(e.current,{scrollTop:r,scrollLeft:o},{msDuration:l,timing:a,onComplete:t}),n.current.Start()}else t&&t()}),[e,t])}(e,d);return r.useCallback((n=>{var r,i;if(o&&!o(n))return!1;if(n.defaultPrevented)return!1;const{scrollTop:m,scrollHeight:h,clientHeight:p,scrollLeft:_,scrollWidth:g,clientWidth:f}=e.current,v=null!==(r=l.current)&&void 0!==r?r:m,C=null!==(i=c.current)&&void 0!==i?i:_;switch(n.detail.button){case a.eV.DIR_UP:if(v<=2)return!1;l.current=Math.max(0,v-p*s);break;case a.eV.DIR_DOWN:if(v>=h-p-2)return!1;l.current=Math.min(h-p,v+p*s);break;case a.eV.DIR_LEFT:if(C<=2)return!1;c.current=Math.max(0,C-f*s);break;case a.eV.DIR_RIGHT:if(C>=g-f-2)return!1;c.current=Math.min(g-f,C+f*s);break;default:return!1}return t&&"smooth"!=t?(e.current.scrollTo({top:l.current,left:c.current,behavior:"auto"}),d()):u(l.current,c.current),!0}),[o,e,t,s,u,d])}function l(){const e=r.useRef(),t=r.useCallback((t=>{window.requestAnimationFrame((()=>{var t,n,r;(null===(t=e.current)||void 0===t?void 0:t.BFocusWithin())&&(null===(r=null===(n=e.current.Node())||void 0===n?void 0:n.GetLastFocusElement())||void 0===r||r.scrollIntoView({behavior:"auto",block:"nearest"}))}))}),[e]);return{ref:(0,o.yU)(t),navRef:e}}},94952:(e,t,n)=>{"use strict";n.d(t,{Wz:()=>u,k$:()=>m});var r=n(33940),i=n(89526),o=n(58123),a=n(16383),s=n(60161),l=n(4306);class c{SetFactory(e){this.m_factory=e}SetHookFactory(e){this.m_hookFactory=e}useHookFactory(){return this.m_hookFactory&&this.m_hookFactory()}CreateVirtualKeyboardRef(e){return d(this.m_factory,e)}}function d(e,t){return e?e.CreateVirtualKeyboardRef(t):{ShowVirtualKeyboard:()=>{},ShowModalKeyboard:()=>{},SetAsCurrentVirtualKeyboardTarget:()=>{},HideVirtualKeyboard:()=>{},DelayHideVirtualKeyboard:()=>{},BIsActive:()=>!1,BIsElementValidForInput:()=>!1}}const u=(0,a.Yt)("VirtualKeyboardRefFactory",(()=>new c));function m(e,t){const{onTextEntered:n}=e,a=(0,r._T)(e,["onTextEntered"]),c=i.useRef(),m=i.useRef({onTextEntered:()=>null});var _;Object.assign(m.current,Object.assign(Object.assign({},a),{onTextEntered:n||(_=c,(e,t)=>{if(!function(e){return"Backspace"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):"Enter"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):"Tab"==e?(SteamClient.Input.ControllerKeyboardSendText("\t"),!0):"ArrowLeft"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):"ArrowRight"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):"ArrowUp"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):"ArrowDown"==e?(SteamClient.Input.ControllerKeyboardSendText(""),!0):(SteamClient.Input.ControllerKeyboardSendText(e),!0)}(e))if(_.current){const n=_.current,r=n.value;!function(e,t,n){const r=e,i=t;if(null==i)return;if(!r||null==r.selectionStart||null==r.selectionEnd||null==r.value||null==r.value.length)return;const o=r.selectionStart,a=r.selectionEnd,l=(d=r.selectionDirection,"backward"===d?-1:"forward"===d?1:0),c=s.__(r);var d;if(1===i.length||"Enter"===i&&c){const e="Enter"===i?"\n":i,t=r.value;Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set.call(r,t.slice(0,o)+e+t.slice(a)),r.setSelectionRange(o+1,o+1,"none")}else if("Backspace"===i){const e=r.value;o!==a?(r.value=e.slice(0,o)+e.slice(a),r.setSelectionRange(o,o,"none")):r.selectionStart>0&&(r.value=e.slice(0,o-1)+e.slice(a),r.setSelectionRange(o-1,o-1,"none"))}else if("ArrowLeft"===i)if(n){const e=h(-1,[o,a,l],[0,r.value.length]);r.setSelectionRange(e[0],e[1],p(e[2]))}else o===a&&o>0?r.setSelectionRange(o-1,o-1,"none"):r.setSelectionRange(o,o,"none");else if("ArrowRight"===i)if(n){const e=h(1,[o,a,l],[0,r.value.length]);r.setSelectionRange(e[0],e[1],p(e[2]))}else o===a&&ac.current&&document.activeElement==c.current}));const g=function(e){const t=i.useRef(),n=u.useHookFactory&&u.useHookFactory();t.current||(t.current=n?d(n,e):u.CreateVirtualKeyboardRef(e));return t.current}(m.current),f=i.useCallback((e=>{(document.hasFocus()||document.activeElement!=c.current)&&(e.currentTarget==c.current?g.BIsActive()&&g.DelayHideVirtualKeyboard():console.warn("keyboard got blur event, but it's not the active element"))}),[g]),v=(0,l.xK)((e=>{c.current=e;const t=[];return e&&(e.addEventListener("focus",g.SetAsCurrentVirtualKeyboardTarget),t.push((()=>e.removeEventListener("focus",g.SetAsCurrentVirtualKeyboardTarget))),e.addEventListener("click",g.ShowVirtualKeyboard),t.push((()=>e.removeEventListener("click",g.ShowVirtualKeyboard))),t.push((0,o.x)(c.current,g.ShowVirtualKeyboard)),t.push((0,o.BG)(c.current,f))),()=>t.forEach((e=>e()))}),[f,g]);return i.useLayoutEffect((()=>((0,l.k$)(t,{TakeFocusAndShowKeyboard:()=>{const e=c.current;e&&(document.activeElement!=e&&e.focus(),g.ShowVirtualKeyboard())}}),()=>(0,l.k$)(t,null))),[g,t]),v}function h(e,t,n){const r=t[2],i=r<0?0:1,o=e<0?0:1,a=[t[0],t[1]];a[i]+=e,(a[i]-n[o])*e>0&&(a[i]=n[o]);return a[0]===a[1]?[a[0],a[1],0]:a[0]0?"forward":"none"}},19094:(e,t,n)=>{"use strict";n.d(t,{J:()=>g});var r=n(33940),i=n(5155),o=n(45878),a=n(54856),s=n(26464),l=n(52868),c=n.n(l),d=n(27527),u=n(47165),m=n(81349);const h=900;function p(e){try{if(!e||"string"!=typeof e)return null;const t=e.split(".");if(3!==t.length)return null;const[n,r]=t,i=(0,m.nh)(n),o=(0,m.nh)(r);return i&&o?{header:JSON.parse(i),body:JSON.parse(o)}:null}catch(e){return console.error(`Exception while attempting to decode token: "${e}"`),null}}function _(e){return e?e.body.exp:0}class g{constructor(e,t,n=!1,r){this.m_webApiAccessToken="",this.m_bJsonMode=!1,this.m_bJWTToken=!1,this.m_dtLastExpireCheck=0,this.m_strWebAPIBaseURL=e,this.m_webApiAccessToken=t,this.m_bJsonMode=n,this.m_fnRequestNewAccessToken=r,this.m_bJWTToken=null!=p(t),this.ConstructServiceTransport()}WaitUntilLoggedOn(){return Promise.resolve()}GetServerRTime32(){return Number(new Date)}get steamid(){return new u.K}RTime32ToDate(e){return new Date(1e3*e)}MakeReady(){return Promise.resolve({result:1,message:"ready"})}GetServiceTransport(){return this.m_ServiceTransport}GetWebAPIAccessToken(){return this.m_webApiAccessToken}GetAnonymousServiceTransport(){return this.m_AnonymousServiceTransport}ConstructServiceTransport(){this.m_ServiceTransport={SendMsg:this.SendMsgAndAwaitResponse.bind(this,{bSendAuth:!0}),SendNotification:this.SendNotification.bind(this,{bSendAuth:!0}),MakeReady:this.MakeReady.bind(this)},this.m_AnonymousServiceTransport={SendMsg:this.SendMsgAndAwaitResponse.bind(this,{bSendAuth:!1}),SendNotification:this.SendNotification.bind(this,{bSendAuth:!1}),MakeReady:this.MakeReady.bind(this)}}SendMsgAndAwaitResponse(e,t,n,i,s){var l;return(0,r.mG)(this,void 0,void 0,(function*(){let r=null;try{if(this.m_bJWTToken&&e.bSendAuth){const e=Date.now()/1e3;this.m_refreshAccessTokenPromise?yield this.m_refreshAccessTokenPromise:this.m_fnRequestNewAccessToken&&e-this.m_dtLastExpireCheck>60&&(this.m_dtLastExpireCheck=e,function(e){const t=_(e),n=function(e){return e?e.body.nbf||e.body.iat:0}(e);let r=h;const i=t-n;return i<1.5*h&&(r=i<=60?0:60),_(e)-r{"use strict";var r;n.d(t,{Yt:()=>i}),function(e){e[e.k_ENoiseGateLevel_Off=0]="k_ENoiseGateLevel_Off",e[e.k_ENoiseGateLevel_Low=1]="k_ENoiseGateLevel_Low",e[e.k_ENoiseGateLevel_Medium=2]="k_ENoiseGateLevel_Medium",e[e.k_ENoiseGateLevel_High=3]="k_ENoiseGateLevel_High"}(r||(r={}));function i(e,t){return t()}},69206:(e,t,n)=>{"use strict";n.d(t,{T:()=>u});var r=n(33940),i=n(89526),o=n(4306),a=n(88464),s=n(85246),l=n(19304),c=n(48410),d=n.n(c);let u=class extends i.Component{constructor(){super(...arguments),this.m_listeners=new s.G_,this.m_bNoSpace=!1,this.state={x:void 0,y:void 0,hoverPositionReady:!1}}bindHover(e){this.m_elHover=e||void 0,this.positionHover()}componentDidMount(){this.m_listeners.AddEventListener(window,"blur",this.OnWindowBlur)}componentDidUpdate(){this.positionHover()}componentWillUnmount(){this.m_listeners.Unregister()}OnWindowBlur(e){this.props.onWindowBlur&&this.props.onWindowBlur(e)}render(){const e=this.props,{target:t,visibilityObserver:n,className:o,style:a,bEnablePointerEvents:s,direction:c,nBodyAlignment:u,nBodyDistance:m,nAllowOffscreenPx:h,nMaxLateralMoveOnScreen:p,children:_,onNoSpace:g,onWindowBlur:f}=e,v=(0,r._T)(e,["target","visibilityObserver","className","style","bEnablePointerEvents","direction","nBodyAlignment","nBodyDistance","nAllowOffscreenPx","nMaxLateralMoveOnScreen","children","onNoSpace","onWindowBlur"]);let C=Object.assign({left:this.state.x,top:this.state.y},a),S=!n||n.visible;return i.createElement("div",Object.assign({},v,{className:(0,l.Z)(o,d().HoverPosition,S&&this.state.hoverPositionReady&&d().Ready,this.m_bNoSpace&&d().NoSpace,s&&d().EnablePointerEvents),style:C,ref:this.bindHover}),_)}positionHover(){let e=this.m_elHover,t=this.props.target;if(!e||!t)return;if(this.state.hoverPositionReady&&this.props.visibilityObserver&&!this.props.visibilityObserver.visible)return;let n=t.ownerDocument.defaultView;if(!n||n.closed)return;const r=e.querySelector(".hover_arrow.left"),i=e.querySelector(".hover_arrow.right"),o=e.querySelector(".hover_arrow.top"),a=e.querySelector(".hover_arrow.bottom"),s=t.getBoundingClientRect(),l=e.getBoundingClientRect(),c="overlay"==this.props.direction||"overlay-center"==this.props.direction;r&&r.setAttribute("style","display: none;"),i&&i.setAttribute("style","display: none;"),o&&o.setAttribute("style","display: none;"),a&&a.setAttribute("style","display: none;");let d=this.props.direction,{nLeft:u,nTop:h,nOverflow:p,nLateralOverflow:_}=m(d,this.props.nBodyAlignment,this.props.nBodyDistance,s,l,n.innerWidth,n.innerHeight);if(p>this.props.nAllowOffscreenPx&&!c){const t=function(e){switch(e){case"right":return"left";case"left":return"right";case"bottom":return"top";case"top":return"bottom";case"overlay":return"overlay";case"overlay-center":return"overlay-center"}}(this.props.direction),{nLeft:r,nTop:i,nOverflow:o,nLateralOverflow:a}=m(t,this.props.nBodyAlignment,this.props.nBodyDistance,s,l,n.innerWidth,n.innerHeight);if(othis.props.nAllowOffscreenPx)return console.log("Not showing hover because it didn't fit in the main or alt direction"),e.setAttribute("style","display: none;"),this.m_bNoSpace=!0,void(this.props.onNoSpace&&this.props.onNoSpace())}0===this.props.nMaxLateralMoveOnScreen||c||([h,u]=function(e,t,n,r,i){let o=Math.max(t[0],t[1]);void 0!==e&&(o=Math.min(e,o));o=Math.max(0,o);const a=t[0]>t[1]?o:-o;"left"===n||"right"===n?r+=a:i+=a;return[r,i]}(this.props.nMaxLateralMoveOnScreen,_,d,h,u));let g=null;switch(d){case"left":g=i;break;case"right":g=r;break;case"top":g=a;break;case"bottom":g=o}g&&g.setAttribute("style",""),u!=this.state.x&&this.setState({x:u}),h!=this.state.y&&this.setState({y:h}),this.state.hoverPositionReady||this.setState({hoverPositionReady:!0})}};function m(e,t,n,r,i,o,a){const s=o,l=a;let c,d,u,m;switch(e){case"right":c=r.right+n,d=h(r.top,r.height,i.height,t),u=Math.max(0,c+i.width-s),m=[Math.max(0,0-d),Math.max(0,d+i.height-l)];break;case"left":c=r.left-n-i.width,d=h(r.top,r.height,i.height,t),u=Math.max(0,0-c),m=[Math.max(0,0-d),Math.max(0,d+i.height-l)];break;case"bottom":c=h(r.left,r.width,i.width,t),d=r.bottom+n,u=Math.max(0,d+i.height-l),m=[Math.max(0,0-c),Math.max(0,c+i.width-s)];break;case"top":c=h(r.left,r.width,i.width,t),d=r.top-n-i.height,u=Math.max(0,0-d),m=[Math.max(0,0-c),Math.max(0,c+i.width-s)];break;case"overlay":c=r.left,d=r.top,u=0,m=[0,0];break;case"overlay-center":c=r.left+.5*r.width-.5*i.width,d=r.top+.5*r.height-.5*i.height,u=0,m=[0,0]}return{nLeft:c,nTop:d,nOverflow:u,nLateralOverflow:m}}function h(e,t,n,r){return Math.max(0,Math.min(1,r))*(t-n)+e}u.defaultProps={direction:"right",nBodyAlignment:.5,nAllowOffscreenPx:10,nBodyDistance:8,nMaxLateralMoveOnScreen:void 0},(0,r.gn)([o.ak],u.prototype,"bindHover",null),(0,r.gn)([o.ak],u.prototype,"OnWindowBlur",null),u=(0,r.gn)([a.Pi],u)},47165:(e,t,n)=>{"use strict";n.d(t,{K:()=>s});var r=n(38072),i=n.n(r),o=n(46132),a=n(32765);class s{constructor(e=0,t,n,r){e instanceof s?this.m_ulSteamID=e.m_ulSteamID:"string"==typeof e?this.m_ulSteamID=i().fromString(e,!0):t&&n&&void 0!==r?this.SetFromComponents(e,r,n,t):this.m_ulSteamID=e?i().fromNumber(e,!0):i().UZERO}static InitFromAccountID(e){return new s(Number(e),a.De.EUNIVERSE,1,o.QS)}static InitFromClanID(e){return new s(Number(e),a.De.EUNIVERSE,7,0)}GetAccountID(){return this.m_ulSteamID.getLowBitsUnsigned()}GetInstance(){return 1048575&this.m_ulSteamID.getHighBitsUnsigned()}GetAccountType(){return this.m_ulSteamID.getHighBitsUnsigned()>>20&15}GetUniverse(){return this.m_ulSteamID.getHighBitsUnsigned()>>24&255}ConvertTo64BitString(){return this.m_ulSteamID.toString()}Render(){switch(this.GetAccountType()){case 0:return"[I:"+this.GetUniverse()+":"+this.GetAccountID()+"]";case 7:return"[g:"+this.GetUniverse()+":"+this.GetAccountID()+"]";case 4:return"[A:"+this.GetUniverse()+":"+this.GetAccountID()+":"+this.GetInstance()+"]";case 3:return"[G:"+this.GetUniverse()+":"+this.GetAccountID()+"]";case 2:return"[M:"+this.GetUniverse()+":"+this.GetAccountID()+":"+this.GetInstance()+"]";case 5:return"[P:"+this.GetUniverse()+":"+this.GetAccountID()+"]";case 6:return"[C:"+this.GetUniverse()+":"+this.GetAccountID()+"]";default:return"[U:"+this.GetUniverse()+":"+this.GetAccountID()+"]"}}static InitFromString(e){let t=new s;try{let[n,r,i,o,a]=e.match(/\[([I|g|A|G|M|P|C|U]):(\d+):(\d+):?(\d+)?\]/)||[],s=Number(i),l=Number(o),c=a?Number(a):1;switch(r){case"I":t.SetFromComponents(l,c,0,s);case"g":t.SetFromComponents(l,0,7,s);case"A":t.SetFromComponents(l,c,4,s);case"G":t.SetFromComponents(l,c,3,s);case"M":t.SetFromComponents(l,c,2,s);case"P":t.SetFromComponents(l,c,5,s);case"C":t.SetFromComponents(l,c,6,s);case"U":t.SetFromComponents(l,c,1,s)}}catch(e){}return t}BIsValid(){let e=this.GetAccountType();if(e<=0||e>=11)return!1;let t=this.GetUniverse();if(t<=0||t>=5)return!1;if(1==e){if(0==this.GetAccountID()||this.GetInstance()>o.YO)return!1}else if(7==e){if(0==this.GetAccountID()||0!=this.GetInstance())return!1}else if(3==e&&0==this.GetAccountID())return!1;return!0}BIsIndividualAccount(){return 1==this.GetAccountType()}BIsClanAccount(){return 7==this.GetAccountType()}SetAccountID(e){this.m_ulSteamID=new(i())(e,this.m_ulSteamID.getHighBitsUnsigned(),!0)}SetInstance(e){this.SetFromComponents(this.GetAccountID(),e,this.GetAccountType(),this.GetUniverse())}SetAccountType(e){this.SetFromComponents(this.GetAccountID(),this.GetInstance(),e,this.GetUniverse())}SetUniverse(e){this.SetFromComponents(this.GetAccountID(),this.GetInstance(),this.GetAccountType(),e)}SetFromComponents(e,t,n,r){let o=((255&r)<<24)+((15&n)<<20)+(1048575&t),a=4294967295&e;this.m_ulSteamID=new(i())(a,o,!0)}}},34433:(e,t,n)=>{"use strict";function r(e,t){return!!e&&("object"==typeof e.SteamClient&&t in e.SteamClient)}function i(e,t){if(!e)return!1;const[n,i]=t.split(".",2);return n&&i&&r(e,n)&&i in e.SteamClient[n]}function o(e){return i(window,e)}n.d(t,{U5:()=>o,w3:()=>i})},16244:(e,t,n)=>{"use strict";n.d(t,{SR:()=>i});var r=n(45878);r.Message;function i(e){return"unknown EMsg ( "+e+" )"}},84321:(e,t,n)=>{"use strict";n.d(t,{Cu:()=>l,VJ:()=>c,cF:()=>m,j7:()=>a,uV:()=>u});var r=n(45878),i=n(29063);const o=r.Message;class a extends o{constructor(e=null){super(),a.prototype.v4||i.aR(a.M()),o.initialize(this,e,0,-1,void 0,null)}static M(){return a.sm_m||(a.sm_m={proto:a,fields:{v4:{n:1,br:i.FE.readFixed32,bw:i.Xc.writeFixed32},v6:{n:2,br:i.FE.readBytes,bw:i.Xc.writeBytes}}}),a.sm_m}static MBF(){return a.sm_mbf||(a.sm_mbf=i.Bh(a.M())),a.sm_mbf}toObject(e=!1){return a.toObject(e,this)}static toObject(e,t){return i.TA(a.M(),e,t)}static fromObject(e){return i.aD(a.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new a;return a.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(a.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return a.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(a.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return a.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CMsgIPAddress"}}class s extends o{constructor(e=null){super(),s.prototype.dst_gcid_queue||i.aR(s.M()),o.initialize(this,e,0,-1,void 0,null)}static M(){return s.sm_m||(s.sm_m={proto:s,fields:{dst_gcid_queue:{n:1,br:i.FE.readUint64String,bw:i.Xc.writeUint64String},dst_gc_dir_index:{n:2,br:i.FE.readUint32,bw:i.Xc.writeUint32}}}),s.sm_m}static MBF(){return s.sm_mbf||(s.sm_mbf=i.Bh(s.M())),s.sm_mbf}toObject(e=!1){return s.toObject(e,this)}static toObject(e,t){return i.TA(s.M(),e,t)}static fromObject(e){return i.aD(s.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new s;return s.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(s.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return s.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(s.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return s.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CMsgGCRoutingProtoBufHeader"}}class l extends o{constructor(e=null){super(),l.prototype.steamid||i.aR(l.M()),o.initialize(this,e,0,-1,[27],null)}static M(){return l.sm_m||(l.sm_m={proto:l,fields:{steamid:{n:1,br:i.FE.readFixed64String,bw:i.Xc.writeFixed64String},client_sessionid:{n:2,br:i.FE.readInt32,bw:i.Xc.writeInt32},routing_appid:{n:3,br:i.FE.readUint32,bw:i.Xc.writeUint32},jobid_source:{n:10,d:"18446744073709551615",br:i.FE.readFixed64String,bw:i.Xc.writeFixed64String},jobid_target:{n:11,d:"18446744073709551615",br:i.FE.readFixed64String,bw:i.Xc.writeFixed64String},target_job_name:{n:12,br:i.FE.readString,bw:i.Xc.writeString},seq_num:{n:24,br:i.FE.readInt32,bw:i.Xc.writeInt32},eresult:{n:13,d:2,br:i.FE.readInt32,bw:i.Xc.writeInt32},error_message:{n:14,br:i.FE.readString,bw:i.Xc.writeString},ip:{n:15,br:i.FE.readUint32,bw:i.Xc.writeUint32},ip_v6:{n:29,br:i.FE.readBytes,bw:i.Xc.writeBytes},auth_account_flags:{n:16,br:i.FE.readUint32,bw:i.Xc.writeUint32},token_source:{n:22,br:i.FE.readUint32,bw:i.Xc.writeUint32},admin_spoofing_user:{n:23,br:i.FE.readBool,bw:i.Xc.writeBool},transport_error:{n:17,d:1,br:i.FE.readInt32,bw:i.Xc.writeInt32},messageid:{n:18,d:"18446744073709551615",br:i.FE.readUint64String,bw:i.Xc.writeUint64String},publisher_group_id:{n:19,br:i.FE.readUint32,bw:i.Xc.writeUint32},sysid:{n:20,br:i.FE.readUint32,bw:i.Xc.writeUint32},trace_tag:{n:21,br:i.FE.readUint64String,bw:i.Xc.writeUint64String},webapi_key_id:{n:25,br:i.FE.readUint32,bw:i.Xc.writeUint32},is_from_external_source:{n:26,br:i.FE.readBool,bw:i.Xc.writeBool},forward_to_sysid:{n:27,r:!0,q:!0,br:i.FE.readUint32,pbr:i.FE.readPackedUint32,bw:i.Xc.writeRepeatedUint32},cm_sysid:{n:28,br:i.FE.readUint32,bw:i.Xc.writeUint32},launcher_type:{n:31,d:0,br:i.FE.readUint32,bw:i.Xc.writeUint32},realm:{n:32,d:0,br:i.FE.readUint32,bw:i.Xc.writeUint32},timeout_ms:{n:33,d:-1,br:i.FE.readInt32,bw:i.Xc.writeInt32},debug_source:{n:34,br:i.FE.readString,bw:i.Xc.writeString},debug_source_string_index:{n:35,br:i.FE.readUint32,bw:i.Xc.writeUint32},token_id:{n:36,br:i.FE.readUint64String,bw:i.Xc.writeUint64String},routing_gc:{n:37,c:s},session_disposition:{n:38,d:0,br:i.FE.readEnum,bw:i.Xc.writeEnum},wg_token:{n:39,br:i.FE.readString,bw:i.Xc.writeString},webui_auth_key:{n:40,br:i.FE.readString,bw:i.Xc.writeString}}}),l.sm_m}static MBF(){return l.sm_mbf||(l.sm_mbf=i.Bh(l.M())),l.sm_mbf}toObject(e=!1){return l.toObject(e,this)}static toObject(e,t){return i.TA(l.M(),e,t)}static fromObject(e){return i.aD(l.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new l;return l.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(l.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return l.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(l.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return l.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CMsgProtoBufHeader"}}class c extends o{constructor(e=null){super(),c.prototype.appid||i.aR(c.M()),o.initialize(this,e,0,-1,[17],null)}static M(){return c.sm_m||(c.sm_m={proto:c,fields:{appid:{n:1,br:i.FE.readUint32,bw:i.Xc.writeUint32},name:{n:2,br:i.FE.readString,bw:i.Xc.writeString},icon:{n:3,br:i.FE.readString,bw:i.Xc.writeString},tool:{n:6,br:i.FE.readBool,bw:i.Xc.writeBool},demo:{n:7,br:i.FE.readBool,bw:i.Xc.writeBool},media:{n:8,br:i.FE.readBool,bw:i.Xc.writeBool},community_visible_stats:{n:9,br:i.FE.readBool,bw:i.Xc.writeBool},friendly_name:{n:10,br:i.FE.readString,bw:i.Xc.writeString},propagation:{n:11,br:i.FE.readString,bw:i.Xc.writeString},has_adult_content:{n:12,br:i.FE.readBool,bw:i.Xc.writeBool},is_visible_in_steam_china:{n:13,br:i.FE.readBool,bw:i.Xc.writeBool},app_type:{n:14,br:i.FE.readUint32,bw:i.Xc.writeUint32},has_adult_content_sex:{n:15,br:i.FE.readBool,bw:i.Xc.writeBool},has_adult_content_violence:{n:16,br:i.FE.readBool,bw:i.Xc.writeBool},content_descriptorids:{n:17,r:!0,q:!0,br:i.FE.readUint32,pbr:i.FE.readPackedUint32,bw:i.Xc.writeRepeatedUint32}}}),c.sm_m}static MBF(){return c.sm_mbf||(c.sm_mbf=i.Bh(c.M())),c.sm_mbf}toObject(e=!1){return c.toObject(e,this)}static toObject(e,t){return i.TA(c.M(),e,t)}static fromObject(e){return i.aD(c.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new c;return c.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(c.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return c.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(c.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return c.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CCDDBAppDetailCommon"}}class d extends o{constructor(e=null){super(),d.prototype.clanid||i.aR(d.M()),o.initialize(this,e,0,-1,void 0,null)}static M(){return d.sm_m||(d.sm_m={proto:d,fields:{clanid:{n:1,br:i.FE.readUint32,bw:i.Xc.writeUint32},event_gid:{n:2,br:i.FE.readFixed64String,bw:i.Xc.writeFixed64String},announcement_gid:{n:3,br:i.FE.readFixed64String,bw:i.Xc.writeFixed64String},rtime_start:{n:4,br:i.FE.readUint32,bw:i.Xc.writeUint32},rtime_end:{n:5,br:i.FE.readUint32,bw:i.Xc.writeUint32},priority_score:{n:6,br:i.FE.readUint32,bw:i.Xc.writeUint32},type:{n:7,br:i.FE.readUint32,bw:i.Xc.writeUint32},clamp_range_slot:{n:8,br:i.FE.readUint32,bw:i.Xc.writeUint32},appid:{n:9,br:i.FE.readUint32,bw:i.Xc.writeUint32},rtime32_last_modified:{n:10,br:i.FE.readUint32,bw:i.Xc.writeUint32}}}),d.sm_m}static MBF(){return d.sm_mbf||(d.sm_mbf=i.Bh(d.M())),d.sm_mbf}toObject(e=!1){return d.toObject(e,this)}static toObject(e,t){return i.TA(d.M(),e,t)}static fromObject(e){return i.aD(d.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new d;return d.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(d.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return d.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(d.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return d.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CClanEventUserNewsTuple"}}class u extends o{constructor(e=null){super(),u.prototype.rtime_before||i.aR(u.M()),o.initialize(this,e,0,-1,[4],null)}static M(){return u.sm_m||(u.sm_m={proto:u,fields:{rtime_before:{n:1,br:i.FE.readUint32,bw:i.Xc.writeUint32},rtime_after:{n:2,br:i.FE.readUint32,bw:i.Xc.writeUint32},qualified:{n:3,br:i.FE.readUint32,bw:i.Xc.writeUint32},events:{n:4,c:d,r:!0,q:!0}}}),u.sm_m}static MBF(){return u.sm_mbf||(u.sm_mbf=i.Bh(u.M())),u.sm_mbf}toObject(e=!1){return u.toObject(e,this)}static toObject(e,t){return i.TA(u.M(),e,t)}static fromObject(e){return i.aD(u.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new u;return u.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(u.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return u.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(u.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return u.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CClanMatchEventByRange"}}class m extends o{constructor(e=null){super(),m.prototype.content_descriptors_to_exclude||i.aR(m.M()),o.initialize(this,e,0,-1,[1],null)}static M(){return m.sm_m||(m.sm_m={proto:m,fields:{content_descriptors_to_exclude:{n:1,c:h,r:!0,q:!0}}}),m.sm_m}static MBF(){return m.sm_mbf||(m.sm_mbf=i.Bh(m.M())),m.sm_mbf}toObject(e=!1){return m.toObject(e,this)}static toObject(e,t){return i.TA(m.M(),e,t)}static fromObject(e){return i.aD(m.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new m;return m.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(m.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return m.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(m.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return m.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"UserContentDescriptorPreferences"}}class h extends o{constructor(e=null){super(),h.prototype.content_descriptorid||i.aR(h.M()),o.initialize(this,e,0,-1,void 0,null)}static M(){return h.sm_m||(h.sm_m={proto:h,fields:{content_descriptorid:{n:1,br:i.FE.readUint32,bw:i.Xc.writeUint32},timestamp_added:{n:2,br:i.FE.readUint32,bw:i.Xc.writeUint32}}}),h.sm_m}static MBF(){return h.sm_mbf||(h.sm_mbf=i.Bh(h.M())),h.sm_mbf}toObject(e=!1){return h.toObject(e,this)}static toObject(e,t){return i.TA(h.M(),e,t)}static fromObject(e){return i.aD(h.M(),e)}static deserializeBinary(e){let t=new r.BinaryReader(e),n=new h;return h.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return i.F(h.MBF(),e,t)}serializeBinary(){var e=new r.BinaryWriter;return h.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){i.l2(h.M(),e,t)}serializeBase64String(){var e=new r.BinaryWriter;return h.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"UserContentDescriptorPreferences_ContentDescriptor"}}},78330:(e,t,n)=>{"use strict";n.d(t,{LT:()=>o,qr:()=>r});var r,i=n(85246);!function(e){e[e.LaunchGame=0]="LaunchGame",e[e.FriendMessage=1]="FriendMessage",e[e.ChatMention=2]="ChatMention",e[e.ChatMessage=3]="ChatMessage",e[e.ToastMessage=4]="ToastMessage",e[e.ToastAchievement=5]="ToastAchievement",e[e.ToastMisc=6]="ToastMisc",e[e.FriendOnline=7]="FriendOnline",e[e.FriendInGame=8]="FriendInGame",e[e.VolSound=9]="VolSound",e[e.ShowModal=10]="ShowModal",e[e.HideModal=11]="HideModal",e[e.IntoGameDetail=12]="IntoGameDetail",e[e.OutOfGameDetail=13]="OutOfGameDetail",e[e.PagedNavigation=14]="PagedNavigation",e[e.ToggleOn=15]="ToggleOn",e[e.ToggleOff=16]="ToggleOff",e[e.SliderUp=17]="SliderUp",e[e.SliderDown=18]="SliderDown",e[e.ChangeTabs=19]="ChangeTabs",e[e.DefaultOk=20]="DefaultOk",e[e.OpenSideMenu=21]="OpenSideMenu",e[e.CloseSideMenu=22]="CloseSideMenu",e[e.BasicNav=23]="BasicNav",e[e.FailedNav=24]="FailedNav",e[e.Typing=25]="Typing",e[e.TimerExpired=26]="TimerExpired"}(r||(r={}));const o=new class{constructor(){this.m_fnCallbackOnPlaySound=new i.pB}RegisterCallbackOnPlaySound(e){return this.m_fnCallbackOnPlaySound.Register(e)}PlayNavSound(e){this.m_fnCallbackOnPlaySound.Dispatch(e)}}},83145:(e,t,n)=>{"use strict";n.d(t,{L:()=>E});var r=n(33940),i=n(8179),o=n(26464);let a=[{index:0,type:i.eV.OK,category:"action"},{index:1,type:i.eV.CANCEL,category:"action"},{index:2,type:i.eV.SECONDARY,category:"action"},{index:3,type:i.eV.OPTIONS,category:"action"},{index:4,type:i.eV.BUMPER_LEFT,category:"action"},{index:5,type:i.eV.BUMPER_RIGHT,category:"action"},{index:6,type:i.eV.TRIGGER_LEFT,category:"action"},{index:7,type:i.eV.TRIGGER_RIGHT,category:"action"},{index:8,type:i.eV.SELECT,category:"action"},{index:9,type:i.eV.START,category:"action"},{index:10,type:i.eV.LSTICK_CLICK,category:"action"},{index:11,type:i.eV.RSTICK_CLICK,category:"action"},{index:12,type:i.eV.DIR_UP,category:"navigation"},{index:13,type:i.eV.DIR_DOWN,category:"navigation"},{index:14,type:i.eV.DIR_LEFT,category:"navigation"},{index:15,type:i.eV.DIR_RIGHT,category:"navigation"},{index:16,type:i.eV.STEAM_GUIDE,category:"action"},{index:17,type:i.eV.SELECT,category:"action"}];class s extends i.oH{constructor(){super(),this.m_rgGamepadStatus=[],this.SetSourceType(i.Rr.GAMEPAD),window.addEventListener("gamepadconnected",(e=>{this.m_bGamepadDetected||(this.OnGamepadDetected(),this.PollGamepads())}))}PollGamepads(){let e=navigator.getGamepads(),t=!1;for(let n=0;n{if(-1==e.findIndex((e=>e.nControllerIndex==n))){for(let e=0;e in i.eV;e++)t.activeButtons[e]&&this.OnButtonUp(e,n);this.OnAnalogPad(i.eV.LPAD_TOUCH,0,0,n),this.OnAnalogPad(i.eV.RPAD_TOUCH,0,0,n),this.m_rgControllers.delete(n)}}))}HandleSystemKeyEvents(e){const t=u[e.eKey];t&&this.OnSystemButtonPress(t,e.nControllerIndex)}OnSystemButtonPress(e,t){this.OnButtonDown(e,t),this.OnButtonUp(e,t)}GetController(e){let t=this.m_rgControllers.get(e);return t||(t={activeButtons:{}},this.m_rgControllers.set(e,t)),t}EnableAnalogInputMessages(e){var t;e?this.m_hUnregisterControllerAnalogInput=SteamClient.Input.RegisterForControllerAnalogInputMessages(this.HandleControllerInputMessages):null===(t=this.m_hUnregisterControllerAnalogInput)||void 0===t||t.unregister()}HandleControllerInputMessages(e){for(const t of e){const e=d[t.nA],n=this.GetController(t.nC);null!=e?t.bS&&!n.activeButtons[e]?(n.activeButtons[e]=!0,this.OnButtonDown(e,t.nC)):!t.bS&&n.activeButtons[e]&&(n.activeButtons[e]=!1,this.OnButtonUp(e,t.nC)):t.nA==c.A6.GAMEPAD_ANALOG_SCROLL||(t.nA==c.A6.GAMEPAD_ANALOG_LEFT_KEYBOARD_CURSOR?n.activeButtons[i.eV.LPAD_TOUCH]&&this.OnAnalogPad(i.eV.LPAD_TOUCH,t.x,t.y,t.nC):t.nA==c.A6.GAMEPAD_ANALOG_RIGHT_KEYBOARD_CURSOR&&n.activeButtons[i.eV.RPAD_TOUCH]&&this.OnAnalogPad(i.eV.RPAD_TOUCH,t.x,t.y,t.nC))}}}(0,r.gn)([o.a],m.prototype,"OnControllerListChanged",null),(0,r.gn)([o.a],m.prototype,"HandleSystemKeyEvents",null),(0,r.gn)([o.a],m.prototype,"EnableAnalogInputMessages",null),(0,r.gn)([o.a],m.prototype,"HandleControllerInputMessages",null);var h=n(60161),p=n(44973);class _ extends i.oH{constructor(e){super(),this.m_lastButtonDown=i.eV.INVALID,this.SetSourceType(i.Rr.KEYBOARD),e.addEventListener("keydown",this.OnKeyDown),e.addEventListener("keyup",this.OnKeyUp),e.addEventListener("blur",this.Reset)}OnKeyDown(e){const t=this.TranslateKey(e);t!=i.eV.INVALID&&(e.preventDefault(),t!=this.m_lastButtonDown&&(this.Reset(),this.OnButtonDown(t),this.m_lastButtonDown=t))}OnKeyUp(e){const t=this.TranslateKey(e);t!=i.eV.INVALID&&(this.OnButtonUp(t),this.m_lastButtonDown=i.eV.INVALID,e.preventDefault())}Reset(){this.m_lastButtonDown!=i.eV.INVALID&&(this.OnButtonUp(this.m_lastButtonDown),this.m_lastButtonDown=i.eV.INVALID)}GetKeycodeFromEvent(e){return"linux"===p.De.PLATFORM&&e.key.length>1?e.key||e.code:e.code||e.key}BShouldSwallowEventForTextInputWorkaround(e){if(!(h.GB(e.target)&&("INPUT"===e.target.nodeName||"TEXTAREA"===e.target.nodeName||e.target.hasAttribute("contenteditable"))))return!1;if(e.target.hasAttribute("contenteditable"))return!0;const t=this.GetKeycodeFromEvent(e);let n=e.target;const r=Array.from(n.ownerDocument.getElementsByClassName("gpfocus")).some((e=>Array.from(e.classList).some((e=>e.includes("virtualkeyboard")))));switch(t){case"ArrowUp":{if(r)return!0;let t=null==n?void 0:n.value.indexOf("\n");return"TEXTAREA"===e.target.nodeName&&t>=0&&t<(null==n?void 0:n.selectionStart)}case"ArrowDown":{if(r)return!0;let t=null==n?void 0:n.value.lastIndexOf("\n");return"TEXTAREA"===e.target.nodeName&&t>=0&&t>=(null==n?void 0:n.selectionStart)&&(null==n?void 0:n.selectionEnd)<(null==n?void 0:n.value.length)}case"ArrowLeft":return!!r||(null==n?void 0:n.selectionStart)>0&&(null==n?void 0:n.selectionEnd)>0;case"ArrowRight":return!!r||(null==n?void 0:n.selectionStart)<(null==n?void 0:n.value.length)&&(null==n?void 0:n.selectionEnd)<(null==n?void 0:n.value.length);case"Enter":case"Backspace":return!0;default:return!1}}TranslateKey(e){const t=this.GetKeycodeFromEvent(e),n=e.ctrlKey,r=e.shiftKey;if(this.BShouldSwallowEventForTextInputWorkaround(e))return i.eV.INVALID;if(n&&r)switch(t){case"Digit4":return i.eV.TRIGGER_LEFT;case"Digit5":return i.eV.TRIGGER_RIGHT;default:return i.eV.INVALID}if(n)switch(t){case"Digit1":return i.eV.STEAM_GUIDE;case"Digit2":return i.eV.STEAM_QUICK_MENU;case"Digit3":case"Digit9":return i.eV.SELECT;case"Digit4":return i.eV.BUMPER_LEFT;case"Digit5":return i.eV.BUMPER_RIGHT;case"Digit6":return i.eV.LSTICK_CLICK;case"Digit7":return i.eV.RSTICK_CLICK;case"Digit8":return i.eV.OPTIONS;case"Digit0":return i.eV.START}switch(t){case"Escape":return i.eV.CANCEL;case"Enter":return i.eV.OK;case"Backspace":return i.eV.SECONDARY;case"ArrowUp":return i.eV.DIR_UP;case"ArrowDown":return i.eV.DIR_DOWN;case"ArrowLeft":return i.eV.DIR_LEFT;case"ArrowRight":return i.eV.DIR_RIGHT}return i.eV.INVALID}}(0,r.gn)([o.a],_.prototype,"OnKeyDown",null),(0,r.gn)([o.a],_.prototype,"OnKeyUp",null),(0,r.gn)([o.a],_.prototype,"Reset",null);class g extends i.oH{constructor(e){super(),this.m_nAccumulatedMouseMovement=0,this.m_bFirstMouseUpdate=!0,this.m_lastButtonDown=i.eV.INVALID,this.SetSourceType(i.Rr.MOUSE),e.addEventListener("mousedown",this.OnMouseDown),e.addEventListener("mouseup",this.OnMouseUp),e.addEventListener("mousemove",this.OnMouseMove),e.addEventListener("blur",this.Reset)}TranslateKey(e){return 3===e.button?i.eV.CANCEL:i.eV.INVALID}OnMouseDown(e){if(e.defaultPrevented)return;const t=this.TranslateKey(e);t!=i.eV.INVALID&&(e.preventDefault(),t!=this.m_lastButtonDown&&(this.Reset(),this.OnButtonDown(t),this.m_lastButtonDown=t),this.OnNavigationTypeChanged(i.Rr.MOUSE))}OnMouseUp(e){const t=this.TranslateKey(e);t!=i.eV.INVALID&&(this.OnButtonUp(t),this.m_lastButtonDown=i.eV.INVALID,event.preventDefault())}OnMouseMove(e){if(!e.defaultPrevented){if(this.m_bFirstMouseUpdate)return this.m_nLastScreenX=e.screenX,this.m_nLastScreenY=e.screenY,void(this.m_bFirstMouseUpdate=!1);this.m_nAccumulatedMouseMovement+=Math.abs(e.screenX-this.m_nLastScreenX)+Math.abs(e.screenY-this.m_nLastScreenY),this.m_nAccumulatedMouseMovement>500&&(this.Reset(),this.OnNavigationTypeChanged(i.Rr.MOUSE))}}Reset(){this.m_nAccumulatedMouseMovement=0,this.m_bFirstMouseUpdate=!0,this.m_lastButtonDown!=i.eV.INVALID&&(this.OnButtonUp(this.m_lastButtonDown),this.m_lastButtonDown=i.eV.INVALID)}}(0,r.gn)([o.a],g.prototype,"TranslateKey",null),(0,r.gn)([o.a],g.prototype,"OnMouseDown",null),(0,r.gn)([o.a],g.prototype,"OnMouseUp",null),(0,r.gn)([o.a],g.prototype,"OnMouseMove",null),(0,r.gn)([o.a],g.prototype,"Reset",null);var f=n(47927),v=n(32765),C=n(73961);class S{GetNavigationController(){return this.m_GamepadNavigationController}static Get(e){return e?(S.s_SingletonGamepaUI||(S.s_SingletonGamepaUI=new S(!0),"dev"==v.De.WEB_UNIVERSE&&(window.g_StoreWebNavStoreGamepadUI=S.s_Singleton)),S.s_SingletonGamepaUI):(S.s_Singleton||(S.s_Singleton=new S(!1)),S.s_Singleton)}constructor(e){this.m_GamepadNavigationController=new f.ZT,e&&(this.m_GamepadNavigationController.RegisterInputSource(new m),this.m_GamepadNavigationController.RegisterInputSource(new s)),"dev"==v.De.WEB_UNIVERSE&&(this.m_GamepadNavigationController.RegisterInputSource(new _(window)),this.m_GamepadNavigationController.RegisterInputSource(new g(window)))}}function E(){let e=window.legacyWebFocusNavController,t=(0,v.id)();return e||(e=S.Get(t).GetNavigationController()),e.SetGamepadEventUpdateBatcher(C.unstable_batchedUpdates),e}},45464:(e,t,n)=>{"use strict";n.d(t,{Uh:()=>M});var r=n(33940),i=n(54856),o=n(45878),a=n(29063);o.Message;const s=o.Message;class l extends s{constructor(e=null){super(),l.prototype.product||a.aR(l.M()),s.initialize(this,e,0,-1,[3],null)}static M(){return l.sm_m||(l.sm_m={proto:l,fields:{product:{n:1,br:a.FE.readString,bw:a.Xc.writeString},version:{n:2,br:a.FE.readString,bw:a.Xc.writeString},errors:{n:3,c,r:!0,q:!0}}}),l.sm_m}static MBF(){return l.sm_mbf||(l.sm_mbf=a.Bh(l.M())),l.sm_mbf}toObject(e=!1){return l.toObject(e,this)}static toObject(e,t){return a.TA(l.M(),e,t)}static fromObject(e){return a.aD(l.M(),e)}static deserializeBinary(e){let t=new o.BinaryReader(e),n=new l;return l.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return a.F(l.MBF(),e,t)}serializeBinary(){var e=new o.BinaryWriter;return l.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){a.l2(l.M(),e,t)}serializeBase64String(){var e=new o.BinaryWriter;return l.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CClientMetrics_ReportClientError_Notification"}}class c extends s{constructor(e=null){super(),c.prototype.identifier||a.aR(c.M()),s.initialize(this,e,0,-1,void 0,null)}static M(){return c.sm_m||(c.sm_m={proto:c,fields:{identifier:{n:1,br:a.FE.readString,bw:a.Xc.writeString},message:{n:2,br:a.FE.readString,bw:a.Xc.writeString},count:{n:3,br:a.FE.readUint32,bw:a.Xc.writeUint32}}}),c.sm_m}static MBF(){return c.sm_mbf||(c.sm_mbf=a.Bh(c.M())),c.sm_mbf}toObject(e=!1){return c.toObject(e,this)}static toObject(e,t){return a.TA(c.M(),e,t)}static fromObject(e){return a.aD(c.M(),e)}static deserializeBinary(e){let t=new o.BinaryReader(e),n=new c;return c.deserializeBinaryFromReader(n,t)}static deserializeBinaryFromReader(e,t){return a.F(c.MBF(),e,t)}serializeBinary(){var e=new o.BinaryWriter;return c.serializeBinaryToWriter(this,e),e.getResultBuffer()}static serializeBinaryToWriter(e,t){a.l2(c.M(),e,t)}serializeBase64String(){var e=new o.BinaryWriter;return c.serializeBinaryToWriter(this,e),e.getResultBase64String()}getClassName(){return"CClientMetrics_ReportClientError_Notification_Error"}}var d;!function(e){e.ClientAppInterfaceStatsReport=function(e,t){return e.SendNotification("ClientMetrics.ClientAppInterfaceStatsReport#1",t,{ePrivilege:1})},e.ClientIPv6ConnectivityReport=function(e,t){return e.SendNotification("ClientMetrics.ClientIPv6ConnectivityReport#1",t,{ePrivilege:1})},e.SteamPipeWorkStatsReport=function(e,t){return e.SendNotification("ClientMetrics.SteamPipeWorkStatsReport#1",t,{ePrivilege:1})},e.ReportReactUsage=function(e,t){return e.SendNotification("ClientMetrics.ReportReactUsage#1",t,{ePrivilege:2,eWebAPIKeyRequirement:1})},e.ReportClientError=function(e,t){return e.SendNotification("ClientMetrics.ReportClientError#1",t,{ePrivilege:2,eWebAPIKeyRequirement:1})},e.ClientBootstrapReport=function(e,t){return e.SendNotification("ClientMetrics.ClientBootstrapReport#1",t,{ePrivilege:1})},e.ClientDownloadRatesReport=function(e,t){return e.SendNotification("ClientMetrics.ClientDownloadRatesReport#1",t,{ePrivilege:1})},e.ClientContentValidationReport=function(e,t){return e.SendNotification("ClientMetrics.ClientContentValidationReport#1",t,{ePrivilege:1})},e.ClientCloudAppSyncStats=function(e,t){return e.SendNotification("ClientMetrics.ClientCloudAppSyncStats#1",t,{ePrivilege:1})},e.ClientDownloadResponseCodeCounts=function(e,t){return e.SendNotification("ClientMetrics.ClientDownloadResponseCodeCounts#1",t,{ePrivilege:1})},e.ReportClientArgs=function(e,t){return e.SendNotification("ClientMetrics.ReportClientArgs#1",t,{ePrivilege:1})}}(d||(d={}));var u=n(17547),m=n(14826);const h=window.addEventListener||n.g&&n.g.addEventListener||(()=>{});let p,_=[],g=(e,t)=>_.push({error:e,cCallsitesToIgnore:t});const f=!0;{const e=console.assert;console.assert=(t,n,...r)=>{t||g(new Error(E(n,...r)),2),e.apply(console,[t,n,...r])};const t=console.error;console.error=(e,...n)=>{g(new Error(E(e,...n)),1),t.apply(console,[e,...n])},h("error",(e=>{g(e.error,0)})),p=window.setTimeout((()=>{_=[],g=()=>{}}),3e4)}const v={cCallsitesToIgnore:0,bIncludeMessageInIdentifier:!1},C=["/localhost:1337/"];class S{constructor(e=!0){this.m_transport=null,this.m_rgErrorQueue=[],this.m_sendTimer=null,this.m_bEnabled=!0,this.m_bInitialized=!1,e?(_.forEach((({error:e,cCallsitesToIgnore:t})=>this.ReportError(e,{cCallsitesToIgnore:t}))),g=(e,t)=>this.ReportError(e,{cCallsitesToIgnore:t})):g=()=>{},_=[],clearTimeout(p),window.setTimeout((()=>{this.m_bInitialized||(this.m_bEnabled=!1,this.m_rgErrorQueue=[])}),3e4)}Init(e,t,n){this.m_bInitialized=!0,this.m_strProduct=e,this.m_strVersion=t,this.m_transport=n,this.m_bEnabled||(console.error("Error reporting was initialized after being disabled, possibly dropping errors."),this.m_bEnabled=!0),this.m_rgErrorQueue.length&&(this.SendErrorReports(this.m_rgErrorQueue),this.m_rgErrorQueue=[])}ReportError(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){if(!e)return console.warn("Failed to report error: ReportError() was called without an error to report."),null;try{const n=Object.assign(Object.assign({},v),t);if(!this.m_bEnabled)return null;0;const i=yield function(e,t){try{return e.stack&&e.stack.match(D)?function(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){const{cCallsitesToIgnore:n,bIncludeMessageInIdentifier:r}=t,i=e.stack.split("\n");let o=R(i.filter((e=>!!e.match(D)))[n]);r&&(o=`${o} ${e.message}`);const a=i.map((e=>{const t=e.match(/(.*)\((.*):(\d+):(\d+)\)/);if(!t)return e;if(5===t.length){const[e,n,r,i,o]=t,a=parseInt(i),s=parseInt(o);if(!isNaN(a)&&!isNaN(s))return[n,r,a,s]}return e})).filter((e=>!!e));return{identifier:o,identifierHash:yield A(o),message:a}}))}(e,t):e.stack&&e.stack.match(b)?function(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){const{cCallsitesToIgnore:n,bIncludeMessageInIdentifier:r}=t,i=e.stack.split("\n");let o=R(i.filter((e=>!!e.match(b)))[n]);r&&(o=`${o} ${e.message}`);const a=i.map((e=>{const t=e.match(/(.*@)?(.*):(\d+):(\d+)/);if(!t)return e;if(5===t.length){const[e,n,r,i,o]=t,a=parseInt(i),s=parseInt(o);if(!isNaN(a)&&!isNaN(s))return[n,r,a,s]}return e})).filter((e=>!!e));return{identifier:o,identifierHash:yield A(o),message:[e.message,...a]}}))}(e,t):e.stack&&e.stack.match(w)?function(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){const{bIncludeMessageInIdentifier:n,cCallsitesToIgnore:r}=t,i=e.stack.split("\n"),o=i[r],a=o.split("/");let s=a[a.length-1];o.indexOf("@")>-1&&(s=o.split("@")[0]+"@"+s),n&&(s=`${s} ${e.message}`);const l=i.map((e=>{const t=e.match(/(.*@)?(.*):(\d+):(\d+)/);if(!t)return e;if(5===t.length){const[e,n,r,i,o]=t,a=parseInt(i),s=parseInt(o);if(!isNaN(a)&&!isNaN(s))return[n,r,a,s]}return e})).filter((e=>!!e));return{identifier:s,identifierHash:yield A(s),message:[e.message,...l]}}))}(e,t):(I||(console.warn("Error reporter does not know how to parse generated stack:"),console.warn(e.stack),I=!0),null)}catch(e){return console.warn(`Failed to normalize error stack: ${e}`),null}}(e,n);return i?(this.SendErrorReport(i),i):null}catch(e){return console.log(`Failed to report error: ${e}`),null}}))}BIsBlacklisted(e){for(let t of e.message){let n=JSON.stringify(t);for(let t of C){const r=new RegExp(t);if(n.match(r))return console.warn("Report",e,"matched regex",t),!0}}return!1}SendErrorReport(e){this.BIsBlacklisted(e)||(this.m_transport?this.QueueSend(e):this.m_rgErrorQueue.push(e))}QueueSend(e){this.m_rgErrorQueue.push(e),this.m_sendTimer||(this.m_sendTimer=window.setTimeout((()=>{this.SendErrorReports(this.m_rgErrorQueue),this.m_rgErrorQueue=[],this.m_sendTimer=null}),1e4))}SendErrorReports(e){if(!e||!e.length)return;const t=i.gA.Init(l),n=e.reduce(((e,t)=>(e[t.identifier]?e[t.identifier].count++:e[t.identifier]={report:t,count:1},e)),{}),r=Object.keys(n).map((e=>{const{report:t,count:r}=n[e],i=new c;return i.set_count(r),i.set_identifier(t.identifier+" "+t.identifierHash),i.set_message(JSON.stringify(t.message)),i}));t.Body().set_product(this.m_strProduct),t.Body().set_version(this.m_strVersion),t.Body().set_errors(r),d.ReportClientError(this.m_transport,t)}get version(){return this.m_strVersion}get product(){return this.m_strProduct}get reporting_enabled(){return f}}function E(e,...t){if("string"==typeof e&&0===t.length)return e;return[e,...t].map((e=>{try{return String(e)}catch(e){return"[Stringify Error]"}})).join(", ")}const D=/^\s*at .*(\S+:\d+|\(native\))/m,b=/(^|@)\S+:\d+/,w=/.*\/bundle-[a-zA-Z0-9]+:\d+:\d+/;let y,I=!1;function R(e){return function(e){const t="https://",n=e.indexOf(t);if(-1===n)return e;const r=e.indexOf("/",n+t.length);return-1===r?e:e.slice(0,n)+e.slice(r)}(function(e){const t=e.lastIndexOf("?");if(-1===t)return e;const n=e.indexOf(":",t);return-1===n?e:e.slice(0,t)+e.slice(n)}(e))}const M=()=>(y||T(new S),y),T=e=>{y=e,u.SV.InstallErrorReportingStore(y),i.lq.InstallErrorReportingStore(y),m.LJ.InstallErrorReportingStore(y)};function A(e){return(0,r.mG)(this,void 0,void 0,(function*(){try{const n=yield window.crypto.subtle.digest("SHA-256",function(e){const t=new ArrayBuffer(2*e.length),n=new Uint16Array(t);for(let t=0,r=e.length;t("00"+e.toString(16)).slice(-2))).join("")).slice(0,16)}catch(e){return""}var t}))}},69159:(e,t,n)=>{"use strict";n.d(t,{Td:()=>M,xV:()=>I,Yr:()=>y,Zo:()=>R,Vc:()=>k,Wn:()=>B,T:()=>O});var r=n(33940),i=n(88464),o=n(89526),a=n(40103),s=n(44026),l=n(90699),c=n(16221),d=n(58123);n(8179);const u=Object.seal({onMoveUp:m,onMoveDown:m});Object.seal({onMoveRight:m,onMoveLeft:m});function m(e,t){if(e.is_repeat)return!1;const n=t.GetRelativeDirection(e.button);return n==c.zE.FORWARD?t.BFocusFirstChild(d.uS.GAMEPAD):n==c.zE.BACKWARD&&t.BFocusLastChild(d.uS.GAMEPAD)}var h=n(16383),p=n(34433),_=n(76476),g=(n(2647),n(57742),n(701)),f=n(19304),v=n(37377),C=n(60161),S=n(14826),E=n(4306),D=n(32765),b=n(93765),w=n.n(b);const y=(0,h.Yt)("ContextMenuInstanceContext",(()=>o.createContext(null)));let I=class extends o.Component{constructor(){super(...arguments),this.m_navRef=(0,s.Hy)(),this.m_divRef=o.createRef()}get instance(){return this.context.instance}componentDidMount(){var e;this.instance.SetLabel(this.props.label),null===(e=this.m_navRef.current)||void 0===e||e.TakeFocus(),(0,E.k$)(this.props.refInstance,this.instance)}componentDidUpdate(e){e.label!==this.props.label&&this.context&&this.instance.SetLabel(this.props.label)}HideIfSubmenu(){return!!this.instance.BIsSubMenu()&&(this.instance.HideSelf(),!0)}HideMenu(){return this.instance.BIsSubMenu()?this.instance.HideSelf():this.instance.Hide(),!0}render(){var e;let t=this.props,{children:n,className:i,label:a,onCancel:s,cancelText:d,refInstance:m,bForceDesktopPresentation:h}=t,p=(0,r._T)(t,["children","className","label","onCancel","cancelText","refInstance","bForceDesktopPresentation"]);const _=null!==(e=this.context.styles)&&void 0!==e?e:w();let g=null!=d?d:"#Button_Cancel";if(1!=this.context.presentation||h)return o.createElement("div",Object.assign({},p,{ref:this.m_divRef,className:(0,f.Z)({[_.contextMenuContents]:!0,[_.hasSubMenu]:this.instance.BIsSubMenuVisible(),[_.ForceDesktop]:h},i)}),n);{const e=()=>{s&&s(),this.instance.Hide()};return o.createElement(l.s,Object.assign({},p,{className:(0,f.Z)(_.contextMenuContents,{[_.hasSubMenu]:this.instance.BIsSubMenuVisible()},i),"flow-children":"column",onMoveLeft:this.HideIfSubmenu,onCancel:this.instance.BIsSubMenu()?this.HideMenu:e,style:{overflowY:this.instance.BIsSubMenuVisible()?"hidden":void 0},navEntryPreferPosition:c.c4.PREFERRED_CHILD,navRef:this.m_navRef,ref:this.m_divRef},u),n,!this.instance.BIsSubMenu()&&o.createElement(o.Fragment,null,o.createElement(A,null),o.createElement(R,{className:_.Cancel,onSelected:e},(0,S.Xx)(g))),this.instance.BIsSubMenuVisible()&&o.createElement("div",{className:_.contextMenuFade,onClick:()=>this.instance.HideSubMenu()}))}}};I.contextType=y,(0,r.gn)([E.ak],I.prototype,"HideIfSubmenu",null),(0,r.gn)([E.ak],I.prototype,"HideMenu",null),I=(0,r.gn)([i.Pi],I);class R extends o.PureComponent{constructor(){super(...arguments),this.m_ref=o.createRef(),this.m_refDiv=o.createRef()}get element(){return this.m_refDiv.current}get instance(){return this.context.instance}OnClick(e){var t;this.props.disabled?(null===(t=this.context.callbacks)||void 0===t?void 0:t.onDisabledItemSelected)&&this.context.callbacks.onDisabledItemSelected():(this.props.onClick&&this.props.onClick(e),this.props.bInteractableItem||(this.props.onSelected&&this.props.onSelected(e),this.context&&this.instance.ForceHide()))}OnOKButton(e){this.m_refDiv.current.click()}OnMouseEnter(e){0==this.context.presentation&&this.instance.HideSubMenu()}Focus(){this.m_ref.current?this.m_ref.current.TakeFocus():this.m_refDiv.current&&this.m_refDiv.current.focus()}render(){var e,t;const n=this.props,{onSelected:i,bInteractableItem:a,onMoveRight:s}=n,c=(0,r._T)(n,["onSelected","bInteractableItem","onMoveRight"]),d=null!==(t=null===(e=this.context)||void 0===e?void 0:e.styles)&&void 0!==t?t:w();return 1==this.context.presentation?o.createElement(l.s,Object.assign({noFocusRing:!0,preferredFocus:this.props.selected,ref:this.m_refDiv,navRef:this.m_ref,onMouseEnter:this.OnMouseEnter},c,{className:(0,f.Z)(this.props.className,d.contextMenuItem,"contextMenuItem",this.props.disabled&&"disabled",this.props.selected&&d.Selected,"positive"==this.props.tone&&d.Positive,"emphasis"==this.props.tone&&d.Emphasis,"destructive"==this.props.tone&&d.Destructive),focusClassName:d.Focused,onClick:this.props.disabled?void 0:this.OnClick,focusable:!this.props.disabled,onOKButton:this.OnOKButton,onMoveRight:s,unselectable:this.props.unselectable}),this.props.children):o.createElement(_.s,Object.assign({ref:this.m_refDiv,onMouseEnter:this.OnMouseEnter},c,{onClick:this.OnClick,unselectable:this.props.unselectable,className:this.props.className}),this.props.children)}}R.contextType=y,(0,r.gn)([E.ak],R.prototype,"OnClick",null),(0,r.gn)([E.ak],R.prototype,"OnOKButton",null),(0,r.gn)([E.ak],R.prototype,"OnMouseEnter",null),(0,r.gn)([E.ak],R.prototype,"Focus",null);class M extends o.PureComponent{render(){const e=this.props,{bChecked:t,children:n,className:i}=e,a=(0,r._T)(e,["bChecked","children","className"]);return o.createElement(R,Object.assign({},a,{className:(0,f.Z)(i,t&&"menuChecked")}),o.createElement("div",{className:"contextMenuCheckMark"}),n)}}class T extends o.PureComponent{render(){const e=this.props,{icon:t,children:n}=e,r=__rest(e,["icon","children"]);return React.createElement(R,Object.assign({},r),React.createElement("div",{className:styles.IconContainer},t),n)}}function A(e){var t;const n=null!==(t=o.useContext(y).styles)&&void 0!==t?t:w();return o.createElement("div",{className:n.ContextMenuSeparator})}class L extends o.PureComponent{constructor(e){super(e),this.m_refItem=o.createRef(),this.state={bActive:!1}}get instance(){return this.context.instance}OnSubMenuMouseEnter(){this.instance.CancelHideSubMenuTimer()}OnSubMenuHidden(){this.setState({bActive:!1}),this.props.bInGamepadUI&&1==this.context.presentation&&this.m_refItem.current&&this.m_refItem.current.Focus()}ShowSubMenu(e){const t=e||this.m_refItem.current.element;let n=this.instance.ShowSubMenu(t,this.RenderSubMenu);return!!n&&(this.setState({bActive:!0}),n.SetOnHideCallback(this.OnSubMenuHidden),!0)}RenderSubMenu(){return o.createElement(I,{onMouseEnter:this.OnSubMenuMouseEnter,label:this.props.label},this.props.children)}OnMouseEnter(e){0==this.context.presentation&&this.ShowSubMenu(e.currentTarget)}OnClick(e){this.OnMouseEnter(e),this.props.onClick&&this.props.onClick(e),this.props.bInGamepadUI&&1==this.context.presentation&&this.ShowSubMenu(e.currentTarget)}render(){var e;let t=this.props,{label:n,selectedWithin:i,children:a,className:s,bInGamepadUI:l}=t,c=(0,r._T)(t,["label","selectedWithin","children","className","bInGamepadUI"]);const d=null!==(e=this.context.styles)&&void 0!==e?e:w();return o.createElement(R,Object.assign({},c,{ref:this.m_refItem,onClick:this.OnClick,selected:i&&!this.state.bActive,className:(0,f.Z)(s,d.SubMenu,this.state.bActive&&d.active),onMouseEnter:this.OnMouseEnter,onSelected:null,bInteractableItem:!0,onMoveRight:()=>this.ShowSubMenu()}),o.createElement("div",{className:d.Label},n),o.createElement("div",{className:d.Arrow},o.createElement(g.$gZ,null)))}}L.contextType=y,(0,r.gn)([E.ak],L.prototype,"OnSubMenuMouseEnter",null),(0,r.gn)([E.ak],L.prototype,"OnSubMenuHidden",null),(0,r.gn)([E.ak],L.prototype,"ShowSubMenu",null),(0,r.gn)([E.ak],L.prototype,"RenderSubMenu",null),(0,r.gn)([E.ak],L.prototype,"OnMouseEnter",null),(0,r.gn)([E.ak],L.prototype,"OnClick",null);let B=class extends o.Component{constructor(e){super(e),this.m_elMenu=void 0,this.m_cReenteranceGuard=1,this.state={ready:!1,menuLeft:void 0,menuTop:void 0,menuRight:void 0,menuBottom:void 0,menuWidth:void 0,menuHeight:void 0,menuMinWidth:void 0},this.m_mutationObserver=new MutationObserver(this.OnMenuMutation)}get parentWin(){var e;return(null===(e=this.props.element)||void 0===e?void 0:e.ownerDocument.defaultView)||this.props.parentWin}BindMenuElement(e){this.props.instance.SetElement(e),this.m_elMenu&&(this.m_mutationObserver.disconnect(),this.props.popup||this.m_elMenu.ownerDocument.defaultView.removeEventListener("resize",this.OnWindowResize)),e&&(this.m_mutationObserver.observe(e,{childList:!0,subtree:!0}),this.props.popup||e.ownerDocument.defaultView.addEventListener("resize",this.OnWindowResize)),this.m_elMenu=e||void 0,D.De.IN_CLIENT&&this.props.popup&&this.m_elMenu?this.m_elMenu.ownerDocument.fonts.ready.then((()=>{this.PositionMenu()})):this.PositionMenu(),this.state.ready||(this.props.instance.SetTakeFocus(this.TakeFocus.bind(this)),this.setState({ready:!0},(()=>{this.TakeFocus()})))}OnMenuMutation(e,t){this.PositionMenu()}OnWindowResize(){this.PositionMenu()}OnBlur(e){e.relatedTarget&&C.ni(e.currentTarget,e.relatedTarget)||e.relatedTarget&&this.props.instance.BIsElementInMenuHierarchy(e.relatedTarget)||this.props.instance.BIsSubMenuVisible()||this.state.ready&&this.props.instance.visible&&this.props.instance.Hide()}OnKeyDown(e){27==e.keyCode&&this.state.ready&&(this.props.instance.Hide(),e.preventDefault(),e.stopPropagation())}componentDidUpdate(){this.m_cReenteranceGuard-- >0?this.PositionMenu():this.m_cReenteranceGuard=2}TakeFocus(){if(this.m_elMenu&&this.state.ready&&this.props.instance.visible&&(this.props.popup||!C.ni(this.m_elMenu,this.m_elMenu.ownerDocument.activeElement))){let e=this.m_elMenu.querySelector(".ContextMenuAutoFocus");e&&e.focus?e.focus():this.m_elMenu.focus()}}PositionMenu(e=!1){const t=this.props.options;let n=this.m_elMenu,r=this.props.element;if(!n)return;let i=null!=this.props.popup,o=this.parentWin;if(!o||r&&"none"===o.getComputedStyle(r).display)return;let a=this.props.clientX,s=this.props.clientY,l=0,c=0,d=o.innerWidth,u=o.innerHeight,m=1,h=null==r?void 0:r.getBoundingClientRect();if(i)if(t.bScreenCoordinates||(a+=o.screenLeft,s+=o.screenTop),h&&(h=C.sH(o,h)),t.targetMonitor)m=t.targetMonitor.flMonitorScale,l=t.targetMonitor.nScreenLeft,c=t.targetMonitor.nScreenTop,d=t.targetMonitor.nScreenWidth,u=t.targetMonitor.nScreenHeight;else{let e=o.screen,t=0,n=0;e.availLeft&&(t=e.availLeft),e.availTop&&(n=e.availTop),l=t,c=n,d=t+e.availWidth,u=n+e.availHeight}(t.bOverlapHorizontal||t.bOverlapVertical)&&(a=s=void 0);let p=n.getBoundingClientRect();if(t.flGamepadScale>0){const e=t.flGamepadScale;p=new DOMRect(p.x*e,p.y*e,p.width*e,p.height*e)}let _={menuLeft:void 0,menuRight:void 0,menuTop:void 0,menuBottom:void 0,menuWidth:void 0,menuHeight:void 0,menuMinWidth:void 0},g=a||h.left,f=a||h.right,v=p.width;t.bMatchWidth&&(v=f-g,_.menuWidth=v),t.bGrowToElementWidth&&(_.menuMinWidth=Math.max(v,f-g));let S=(t.bOverlapHorizontal?f:g)-l-v,E=S>0,D=l+d-(t.bOverlapHorizontal?g:f)-v,b=D>0,w=(t.bPreferPopLeft||!b)&&E;E||b||(w=E>b,t.bFitToWindow&&(v+=(w?S:D)-8,_.menuWidth=v)),w?_.menuRight=d-(t.bOverlapHorizontal?f:g):_.menuLeft=t.bOverlapHorizontal?g:f;let y=s||h.top,I=s||h.bottom,R=n.scrollHeight;t.bMatchHeight&&(R=I-y,_.menuHeight=R);let M=(t.bOverlapVertical?I:y)-c-R,T=M>0,A=c+u-(t.bOverlapVertical?y:I)-R,L=A>0,B=(t.bPreferPopTop||!L)&&T&&!t.bDisablePopTop;if(!T&&!L){const e=void 0!==t.bShiftToFitWindow?t.bShiftToFitWindow:t.bFitToWindow&&!t.bOverlapHorizontal;B=M>A&&!t.bDisablePopTop,e&&(B?_.menuTop=4:_.menuBottom=4),t.bFitToWindow&&(e?R=Math.min(R,u-8):R+=B?M:A,_.menuHeight=R-8)}void 0===_.menuBottom&&void 0===_.menuTop&&(B?_.menuBottom=u-(t.bOverlapVertical?I:y):_.menuTop=t.bOverlapVertical?y:I),i?(_.menuHeight||(_.menuHeight=p.height),_.menuWidth||(_.menuWidth=p.width),_.menuBottom&&!_.menuTop&&(_.menuTop=u-_.menuBottom-_.menuHeight,_.menuBottom=void 0),_.menuRight&&!_.menuLeft&&(_.menuLeft=d-_.menuRight-_.menuWidth,_.menuRight=void 0)):(_.menuLeft&&(_.menuLeft+=o.scrollX),_.menuTop&&(_.menuTop+=o.scrollY),_.menuBottom&&(_.menuBottom+=o.document.body.clientHeight-o.scrollY-o.innerHeight),_.menuRight&&(_.menuRight+=o.document.body.clientWidth-o.scrollX-o.innerWidth)),(e||_.menuLeft!==this.state.menuLeft||_.menuRight!==this.state.menuRight||_.menuTop!==this.state.menuTop||_.menuBottom!==this.state.menuBottom||_.menuWidth!==this.state.menuWidth||_.menuHeight!==this.state.menuHeight)&&this.setState(_)}PositionPopupWindow(){if(!(void 0!==this.state.menuLeft&&void 0!==this.state.menuTop&&void 0!==this.state.menuWidth&&void 0!==this.state.menuHeight))return;const e=this.props.popup.window,t=this.props.options;if(t.bScreenCoordinates){let n=this.parentWin.devicePixelRatio;if(t.targetMonitor){let e=t.flGamepadScale||1;n=t.targetMonitor.flMonitorScale/e}return e.SteamClient.Window.MoveTo(this.state.menuLeft,this.state.menuTop,n),void e.SteamClient.Window.ResizeTo(this.state.menuWidth,this.state.menuHeight,!0)}this.parentWin.SteamClient.Window.GetWindowRestoreDetails((t=>{const n=this.state.menuLeft-this.parentWin.screenX,r=this.state.menuTop-this.parentWin.screenY;try{e.SteamClient.Window.PositionWindowRelative(t,n,r,this.state.menuWidth,this.state.menuHeight)}catch(e){console.error(e)}}))}render(){let e={visibility:this.state.ready?"visible":"hidden"};this.props.options.flGamepadScale>0&&(e.zoom=this.props.options.flGamepadScale),this.props.popup?(this.PositionPopupWindow(),void 0!==this.state.menuMinWidth&&(e.minWidth=this.state.menuMinWidth)):(void 0!==this.state.menuTop?e.top=this.state.menuTop:void 0!==this.state.menuBottom&&(e.bottom=this.state.menuBottom),void 0!==this.state.menuLeft?e.left=this.state.menuLeft:void 0!==this.state.menuRight&&(e.right=this.state.menuRight),void 0!==this.state.menuHeight&&(e.height=this.state.menuHeight),void 0!==this.state.menuWidth&&(e.width=this.state.menuWidth),void 0!==this.state.menuMinWidth&&(e.minWidth=this.state.menuMinWidth));let t=this.props.options.strClassName||w().contextMenu;return(this.props.options.bCreateHidden||this.props.instance.visible&&this.state.ready)&&(t+=" visible"),t+=" "+w().ContextMenuFocusContainer,o.createElement("div",{className:t,ref:this.BindMenuElement,style:e,onBlur:this.OnBlur,onKeyDown:this.OnKeyDown,tabIndex:0},this.props.children)}};function k(e){return o.createElement("div",{className:w().ContextMenuMouseOverlay})}function O(e){let t=[],n=C.RA(e),r=n.getSelection(),i=r&&r.rangeCount>0&&r.toString().length>0,s=e.target,l=!1;const c=e.clientY,d=e.clientX;if(s&&"tagName"in s&&("INPUT"!=s.tagName&&"TEXTAREA"!=s.tagName||(l=!0)),D.De.IN_CLIENT&&l&&n.SteamClient._internal&&n.SteamClient._internal.GetSpellingSuggestions&&n.SteamClient._internal.AddWordToDictionary){let[e,...r]=n.SteamClient._internal.GetSpellingSuggestions(),i=s;if(i&&r.forEach(((e,r)=>{t.push(o.createElement(R,{key:`spelling_${r}_${e}`,onSelected:()=>{i.setRangeText(e),function(e,t){let n=t.createEvent("HTMLEvents");n.initEvent("change",!0,!1),e.dispatchEvent(n)}(i,n.document),i.setSelectionRange(i.selectionEnd,i.selectionEnd),s.focus()},className:w().NoSeparation},e))})),e){const r=30;e=e.trim(),t.push(o.createElement(R,{key:`addtodictionary_${e}`,onSelected:()=>n.SteamClient._internal.AddWordToDictionary(e)},(0,S.Xx)("#ContextMenu_AddToDictionary",e.length{n.document.execCommand("cut")}},(0,S.Xx)("#ContextMenu_Cut"))),(n.document.queryCommandEnabled("copy")||i)&&t.push(o.createElement(R,{key:"copy",onSelected:()=>{n.document.execCommand("copy")},className:w().NoSeparation},(0,S.Xx)("#ContextMenu_Copy"))),D.De.IN_CLIENT&&l&&n.SteamClient._internal&&n.SteamClient._internal.Paste&&t.push(o.createElement(R,{key:"paste",onSelected:()=>{s.focus(),n.SteamClient._internal.Paste()},className:w().NoSeparation},(0,S.Xx)("#ContextMenu_Paste"))),D.De.IN_CLIENT&&D.De.DEV_MODE&&(t.length>0&&((0,p.U5)("Browser.OpenDevTools")||(0,p.U5)("Browser.InspectElement"))&&t.push(o.createElement(A,{key:"devtools-separator"})),(0,p.U5)("Browser.OpenDevTools")&&t.push(o.createElement(R,{key:"opendevtools",onSelected:()=>{s.focus(),n.SteamClient.Browser.OpenDevTools()},className:w().AddSeparator},"Open Dev Tools")),(0,p.U5)("Browser.InspectElement")&&t.push(o.createElement(R,{key:"inspectelement",onSelected:()=>{s.focus(),n.SteamClient.Browser.InspectElement(c,d)},className:w().NoSeparation},"Inspect Element"))),t.length)(0,a.yV)(o.createElement(I,null,t),e,{bRootContextMenu:!0});else{if(e.shiftKey)return;e.preventDefault(),e.stopPropagation()}}(0,r.gn)([E.ak],B.prototype,"BindMenuElement",null),(0,r.gn)([E.ak,(0,v.D)(100)],B.prototype,"OnMenuMutation",null),(0,r.gn)([E.ak],B.prototype,"OnWindowResize",null),(0,r.gn)([E.ak],B.prototype,"OnBlur",null),(0,r.gn)([E.ak],B.prototype,"OnKeyDown",null),B=(0,r.gn)([i.Pi],B)},76476:(e,t,n)=>{"use strict";n.d(t,{P:()=>c,s:()=>l});var r=n(33940),i=n(89526),o=n(19304),a=n(93765),s=n.n(a);const l=i.forwardRef(((e,t)=>{const{className:n,contextMenuStyles:a,disabled:l}=e,c=(0,r._T)(e,["className","contextMenuStyles","disabled"]);return i.createElement("div",Object.assign({},c,{ref:t,className:(0,o.Z)(n,(a||s()).contextMenuItem,"contextMenuItem",l&&"disabled")}))}));function c(e){const{bChecked:t,children:n,className:a}=e,s=(0,r._T)(e,["bChecked","children","className"]);return i.createElement(l,Object.assign({},s,{className:(0,o.Z)(a,t&&"menuChecked")}),i.createElement("div",{className:"contextMenuCheckMark"}),n)}},57605:(e,t,n)=>{"use strict";n.d(t,{E0:()=>tt,iN:()=>V,uT:()=>y,V5:()=>I,Ac:()=>w,zx:()=>F,ji:()=>U,VY:()=>T,oX:()=>B,Vh:()=>Qe,TW:()=>be,ry:()=>Ce,$_:()=>D,fp:()=>It,h4:()=>S,II:()=>Q,__:()=>b,o9:()=>x,$0:()=>N,KM:()=>O,EU:()=>se,SY:()=>ae,BQ:()=>H,DS:()=>te,Yz:()=>P,bU:()=>E,gE:()=>W,Uq:()=>R});var r=n(33940),i=n(89526),o=n(44026),a=n(90699),s=n(701),l=n(19304),c=n(14826),d=n(26464);const u=(0,n(16383).Yt)("DialogPresentationContext",(()=>i.createContext({}))),m=()=>i.useContext(u);var h=n(39884),p=n(3367),_=n.n(p);const g=e=>{const t=m();return i.createElement(h.T,Object.assign({component:null==t?void 0:t.ToggleControl,fallback:f},e))},f=e=>{const{value:t,onChange:n,disabled:r}=e;return i.createElement("div",{className:(0,l.Z)(_().Toggle,r&&_().Disabled),onClick:()=>!r&&n&&n(!t)},i.createElement("div",{className:_().ToggleRail}),i.createElement("div",{className:(0,l.Z)(_().ToggleRail,_().Highlight,t?_().On:_().Off)}),i.createElement("div",{className:(0,l.Z)(_().ToggleSwitch,t?_().On:_().Off)}))};function v(e){return i.forwardRef(((t,n)=>i.createElement("div",Object.assign({},t,{className:(0,l.Z)(e,t.className),ref:n}))))}function C(e){return i.forwardRef((function(t,n){return i.createElement(a.s,Object.assign({},t,{className:(0,l.Z)(e,t.className),ref:n}))}))}let S=v("DialogHeader"),E=v("DialogSubHeader"),D=v("DialogFooter"),b=v("DialogLabel _DialogLayout"),w=v("DialogBodyText"),y=v("DialogBody"),I=C("DialogBody"),R=(v("DialogInnerBody"),v("DialogControlsSection"),v("DialogControlsSectionHeader"),C("DialogTwoColLayout _DialogColLayout")),M=C("DialogThreeColLayout _DialogColLayout");C("DialogTwoThirdColLayout _DialogColLayout"),v("DialogColumn _DialogLayout");function T(e){const t=m().Content||A;return i.createElement(t,Object.assign({},e))}function A(e){let{children:t,bCenterVertically:n}=e,o=(0,r._T)(e,["children","bCenterVertically"]),a="DialogContent _DialogLayout"+(e.className?" "+e.className:"");return n&&(a+=" _DialogCenterVertically"),i.createElement("div",Object.assign({},o,{className:a}),i.createElement("div",{className:"DialogContent_InnerWidth"},t))}class L extends i.Component{OnSubmit(e){e.preventDefault(),this.props.onSubmit&&this.props.onSubmit(e)}render(){return i.createElement("form",Object.assign({},this.props,{onSubmit:this.OnSubmit}))}}function B(e){const{classNameContent:t,bCenterVertically:n}=e,o=(0,r._T)(e,["classNameContent","bCenterVertically"]);return i.createElement(T,{className:t,bCenterVertically:n},i.createElement(L,Object.assign({},o)))}(0,r.gn)([d.a],L.prototype,"OnSubmit",null);const k=i.forwardRef((function(e,t){const n=m(),{svgicon:a}=e,s=(0,r._T)(e,["svgicon"]),c=(0,l.Z)(e.className,void 0!==a&&"hasSVGIcon",s.disabled&&"Disabled",n.strButtonClassName);return i.createElement(o.wl,Object.assign({ref:t,onOKActionDescription:s.disabled?null:void 0,noFocusRing:!0},s,{className:c,disabled:!1,onClick:s.disabled?null:s.onClick,onPointerDown:s.disabled?null:s.onPointerDown,onPointerUp:s.disabled?null:s.onPointerUp,onPointerCancel:s.disabled?null:s.onPointerCancel,onMouseDown:s.disabled?null:s.onMouseDown,onMouseUp:s.disabled?null:s.onMouseUp,onTouchStart:s.disabled?null:s.onTouchStart,onTouchEnd:s.disabled?null:s.onTouchEnd,onTouchCancel:s.disabled?null:s.onTouchCancel,onSubmit:s.disabled?null:s.onSubmit}),a&&a(),e.children)})),O=i.forwardRef((function(e,t){return i.createElement(k,Object.assign({preferredFocus:!0,type:e.onClick?"button":"submit"},e,{ref:t,className:(0,l.Z)(e.className,"DialogButton","_DialogLayout","Primary")}))})),F=i.forwardRef((function(e,t){return i.createElement(k,Object.assign({type:"button"},e,{ref:t,className:(0,l.Z)(e.className,"DialogButton","_DialogLayout","Secondary")}))})),P=i.forwardRef((function(e,t){return i.createElement(k,Object.assign({type:"button"},e,{ref:t,className:(0,l.Z)(e.className,"DialogButton _DialogLayout Small")}))}));i.forwardRef((function(e,t){return i.createElement(k,Object.assign({type:"button"},e,{ref:t,className:(0,l.Z)(e.className,"TextButton")}))}));function x(e){return i.createElement(R,null,i.createElement(O,{onClick:e.onOK,disabled:e.bOKDisabled,autoFocus:"primary"==e.focusButton},e.strOKText||(0,c.Xx)("#Button_Confirm")," "),i.createElement(F,{onClick:e.onCancel,disabled:e.bCancelDisabled,autoFocus:"secondary"==e.focusButton},e.strCancelText||(0,c.Xx)("#Button_Cancel")))}function N(e){return i.createElement(M,null,i.createElement(O,{onClick:e.onOK,disabled:e.bOKDisabled},e.strOKText||(0,c.Xx)("#Button_Confirm")," "),i.createElement(O,{onClick:e.onUpdate,disabled:e.bUpdateDisabled},e.strUpdateText||(0,c.Xx)("#Button_Update")," "),i.createElement(F,{onClick:e.onCancel,disabled:e.bCancelDisabled},e.strCancelText||(0,c.Xx)("#Button_Cancel")))}class V extends i.Component{constructor(e){super(e),this.state={checked:e.checked,disabled:e.disabled}}componentDidUpdate(e){this.props.controlled||e.checked!=this.props.checked&&this.props.checked!=this.state.checked&&this.setState({checked:this.props.checked}),e.disabled!=this.props.disabled&&this.props.disabled!=this.state.disabled&&this.setState({disabled:this.props.disabled})}shouldComponentUpdate(e,t){return e.label!=this.props.label||e.description!=this.props.description||e.onChange!=this.props.onChange||e.controlled!=this.props.controlled||e.disabled!=this.props.disabled||t.disabled!=this.state.disabled||e.checked!=this.checked||t.checked!=this.state.checked}get checked(){return this.props.controlled?this.props.checked:this.state.checked}GetPanelElementProps(){const e=this.props,{onChange:t,checked:n,label:i,description:o,tabIndex:a,disabled:s,className:l,tooltip:c,color:d,highlightColor:u,bottomSeparator:m,controlled:h}=e,p=(0,r._T)(e,["onChange","checked","label","description","tabIndex","disabled","className","tooltip","color","highlightColor","bottomSeparator","controlled"]);return Object.assign(Object.assign({},p),{tabIndex:a||0,onActivate:this.Toggle,onKeyDown:this.KeyDown})}Toggle(){if(this.props.disabled)return;let e=!this.checked;this.props.controlled||this.setState({checked:e}),this.props.onChange&&this.props.onChange(e)}KeyDown(e){32==e.keyCode&&(this.Toggle(),e.preventDefault(),e.stopPropagation())}SetChecked(e,t){this.setState({checked:e}),t&&this.props.onChange&&this.props.onChange(e)}}(0,r.gn)([d.a],V.prototype,"Toggle",null),(0,r.gn)([d.a],V.prototype,"KeyDown",null),(0,r.gn)([d.a],V.prototype,"SetChecked",null);class G extends V{render(){let e="DialogCheckbox"+(this.checked?" Active":"");return 1==this.state.disabled&&(e+=" Disabled"),this.props.label?i.createElement(a.s,Object.assign({className:"DialogCheckbox_Container _DialogLayout "+(this.props.className?this.props.className:"")},this.GetPanelElementProps()),i.createElement("div",{className:e},i.createElement(s.mKE,{color:this.props.color,highlightColor:this.props.highlightColor})),i.createElement("div",{className:"DialogToggle_Label"},"string"==typeof this.props.label&&i.createElement("span",null,this.props.label),"string"!=typeof this.props.label&&this.props.label,this.props.tooltip&&i.createElement("span",{"data-tooltip-text":this.props.tooltip}," (?)")),i.createElement("div",{style:{clear:"left"}}),this.props.description&&i.createElement("div",{className:"DialogToggle_Description"},this.props.description)):i.createElement(a.s,Object.assign({className:e},this.GetPanelElementProps()),i.createElement(s.mKE,null))}}class U extends V{render(){return i.createElement(h.T,Object.assign({fallback:G},this.props))}}U.contextType=u;class H extends V{render(){let e=this.checked?" Active":"";return i.createElement(a.s,Object.assign({className:(0,l.Z)("DialogRoundCheckboxField_Container",this.props.className,this.props.label?"WithLabel":"")},this.GetPanelElementProps()),i.createElement("div",{className:"DialogRoundCheckboxField"},i.createElement("div",{className:"DialogRoundCheckboxField_Control"+e},i.createElement("div",{className:"DialogRoundCheckboxField_OuterCircle"},i.createElement("div",{className:"DialogRoundCheckboxField_InnerCircle"})))),this.props.label&&i.createElement("div",{className:"DialogToggle_Label"},i.createElement("span",null,this.props.label),this.props.tooltip&&i.createElement("span",{"data-tooltip-text":this.props.tooltip}," (?)")))}}const W=i.forwardRef((function(e,t){const n=m();return i.createElement(h.T,Object.assign({component:n.ToggleField,fallback:j,componentRef:t},e))}));class j extends V{OnOffKeyDown(e){37==e.keyCode&&this.checked||39==e.keyCode&&!this.checked?(this.Toggle(),e.preventDefault(),e.stopPropagation()):this.KeyDown(e)}OnNewUIToggle(e){e!==this.checked&&this.Toggle()}render(){let e="DialogToggleField _DialogInputContainer _DialogLayout "+(this.props.className?this.props.className:"");return this.props.disabled&&(e+=" Disabled"),i.createElement("div",{className:e,tabIndex:this.props.tabIndex||0,onKeyDown:this.OnOffKeyDown},i.createElement("div",{className:"displayColumn alignSelfCenter"},i.createElement("div",{className:"DialogToggle_Label"},i.createElement("span",null,this.props.label),this.props.tooltip&&i.createElement("span",{"data-tooltip-text":this.props.tooltip}," (?)")),this.props.description&&i.createElement("div",{className:"DialogToggle_Description"},this.props.description),this.props.children),this.props.useToggleRail?i.createElement("div",{className:"DialogToggleField_NewUIContainer"},i.createElement(g,{onChange:this.OnNewUIToggle,value:this.checked})):i.createElement("div",{className:"DialogToggleField_Control",onClick:this.Toggle},i.createElement(a.s,{className:"DialogToggleField_OptionPanel",onOKButton:this.Toggle},i.createElement("div",{className:"DialogToggleField_Option Off"+(this.checked?"":" Active")},(0,c.Xx)("#Dialog_Off")),i.createElement("div",{className:"DialogToggleField_Option On"+(this.checked?" Active":"")},(0,c.Xx)("#Dialog_On")))))}}(0,r.gn)([d.a],j.prototype,"OnOffKeyDown",null),(0,r.gn)([d.a],j.prototype,"OnNewUIToggle",null);var z=n(4306),K=n(73961),X=n(60161),Z=n(60729);class $ extends Z.Rq{constructor(e,t,n){super(X.kR(K.findDOMNode(e)),n),this.m_props={},this.m_component=e,this.m_propTargets=t,this.m_setStateOnComplete=n.setStateOnComplete}Start(){this.m_props={};for(let e in this.m_propTargets){let t=parseFloat(this.m_component.state[e])||0,n=this.m_propTargets[e];t!=n&&(this.m_props[e]={start:t,end:n})}super.Start()}Update(e){let t={};for(let n in this.m_props){let r=this.m_props[n],i=r.start+(r.end-r.start)*e;t[n]=i}this.m_component.setState(t)}FireOnComplete(){super.FireOnComplete(),this.m_setStateOnComplete&&this.m_component.setState(this.m_setStateOnComplete)}}var q=n(23801);const Y=i.forwardRef((function(e,t){const n=m();return i.createElement(h.T,Object.assign({component:null==n?void 0:n.InputElement,fallback:o.bX},e,{componentRef:t}))}));class Q extends i.PureComponent{constructor(e){super(e),this.CheckProps(e),this.state={m_CopiedYPos:0,m_bPlayingCopiedAnimation:!1,m_bCompletedCopiedAnimation:!1,m_bNumberBelowMinRange:!1,m_bNumberAboveMaxRange:!1,m_bIsNotNumeric:!1,m_bIsInvalidURL:!1,m_bIsInvalidEmail:!1,m_bAboveMaxChars:!1}}componentDidUpdate(e){this.CheckProps(this.props)}OnInputRef(e){this.m_elInput=e,this.m_elInput&&this.props.focusOnMount&&this.m_elInput.focus()}get element(){return this.m_elInput}get value(){return this.m_elInput&&this.m_elInput.value}Focus(){var e;null===(e=this.m_elInput)||void 0===e||e.focus()}static validateUrl(e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/i.test(e)||/^steam:\/\/[-a-zA-Z0-9@:%._\+~#=]{2,256}/i.test(e)}static validateEmail(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e.toLowerCase())}Validate(){this.setState({m_bNumberBelowMinRange:null!==this.props.rangeMin&&void 0!==this.props.rangeMin&&Number(this.m_elInput.value)this.props.rangeMax,m_bIsNotNumeric:1==this.props.mustBeNumeric&&isNaN(Number(this.m_elInput.value)),m_bIsInvalidURL:1==this.props.mustBeURL&&!Q.validateUrl(this.m_elInput.value),m_bIsInvalidEmail:1==this.props.mustBeEmail&&!Q.validateEmail(this.m_elInput.value),m_bAboveMaxChars:null!==this.props.maxChars&&this.m_elInput.value.length>this.props.maxChars})}OnChanged(e){this.props.onChange&&this.props.onChange(e),this.Validate()}OnCopyClick(e){if(!this.m_elInput)return;this.m_elInput.select();let t=this.m_elInput.ownerDocument;if(t.queryCommandEnabled("copy")){t.execCommand("copy"),e.currentTarget.focus(),this.m_CopiedAnimation&&this.m_CopiedAnimation.Cancel();let n=-4,r=-24;this.setState({m_bCompletedCopiedAnimation:!1}),this.setState({m_CopiedYPos:n},(()=>{this.m_CopiedAnimation=new $(this,{m_CopiedYPos:r},{msDuration:300,timing:"sine",setStateOnComplete:{m_bCompletedCopiedAnimation:!0}}),this.m_CopiedAnimation.Start()}))}}OnClearClick(e){if(this.m_elInput&&this.m_elInput.value){Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set.call(this.m_elInput,""),this.m_elInput.dispatchEvent(new Event("input",{bubbles:!0}))}}CheckProps(e){(0,q.X)(!(e.bShowClearAction||e.bAlwaysShowClearAction)||e.onChange,"In order for bShowClearAction to work correctly, you should be handling onChange and passing value to the Dialog.Input.")}render(){const e=this.props,{label:t,description:n,requiredLabel:o,bShowCopyAction:l,bShowClearAction:d,bAlwaysShowClearAction:u,rangeMin:m,rangeMax:h,mustBeNumeric:p,mustBeURL:_,mustBeEmail:g,focusOnMount:f,tooltip:v,inlineControls:C,maxChars:S}=e,E=(0,r._T)(e,["label","description","requiredLabel","bShowCopyAction","bShowClearAction","bAlwaysShowClearAction","rangeMin","rangeMax","mustBeNumeric","mustBeURL","mustBeEmail","focusOnMount","tooltip","inlineControls","maxChars"]);let D="DialogInput DialogInputPlaceholder DialogTextInputBase"+(E.className?" "+E.className:""),b="copiedAnimation",w=this.state.m_bCompletedCopiedAnimation;this.m_CopiedAnimation&&(b="copiedAnimation animationPlaying"),w&&(b="copiedAnimation animationComplete");let y={};void 0!==this.state.m_CopiedYPos&&(y.transform="translateY("+this.state.m_CopiedYPos+"px)");let I=i.createElement(i.Fragment,null,i.createElement(a.s,{className:"DialogInput_Wrapper _DialogLayout","flow-children":"row"},i.createElement(Y,Object.assign({type:"text"},E,{className:D,ref:this.OnInputRef,onChange:this.OnChanged})),l&&i.createElement("div",{className:"displayRow"},i.createElement(F,{className:"DialogInput_CopyAction Primary",onClick:this.OnCopyClick},(0,c.Xx)("#Button_Copy")),i.createElement("div",{style:y,className:b},(0,c.Xx)("#Button_Copied"))),(u||d&&E.value)&&i.createElement("div",{className:"DialogInput_ClearAction",onClick:this.OnClearClick},i.createElement(s.pVO,null)),C),n&&i.createElement("div",{className:"DialogLabelExplainer"},n));return t?i.createElement("div",{className:"DialogInputLabelGroup _DialogLayout "},i.createElement("label",null,i.createElement("div",{className:"DialogLabel"},t," ",this.props.tooltip&&i.createElement("span",{"data-tooltip-text":this.props.tooltip}," (?)"),i.createElement("span",{className:"DialogInputRequirementLabel"},this.props.requiredLabel)," "),I,this.state.m_bNumberBelowMinRange?i.createElement("div",null," ",(0,c.Xx)("#Input_Error_NumberTooSmall")," "):null,this.state.m_bNumberAboveMaxRange?i.createElement("div",null," ",(0,c.Xx)("#Input_Error_NumberTooLarge")," "):null,this.state.m_bIsInvalidURL?i.createElement("div",null," ",(0,c.Xx)("#Input_Error_MustBeURL")," "):null,this.state.m_bIsInvalidEmail?i.createElement("div",null," ",(0,c.Xx)("#Input_Error_MustBeEmail")," "):null,this.state.m_bIsNotNumeric?i.createElement("div",null," ",(0,c.Xx)("#Input_Error_MustBeNumber")," "):null,this.state.m_bAboveMaxChars?i.createElement("div",null," ",(0,c.kQ)("#Input_Error_TooManyCharacters",S)," "):null)):I}}(0,r.gn)([z.ak],Q.prototype,"OnInputRef",null),(0,r.gn)([z.ak],Q.prototype,"OnChanged",null),(0,r.gn)([z.ak],Q.prototype,"OnCopyClick",null),(0,r.gn)([z.ak],Q.prototype,"OnClearClick",null);class J extends Q{OnBackgroundClick(){this.m_elInput&&this.m_elInput.focus()}OnInputFocus(e){this.m_bFocused||(this.m_bFocused=!0,this.forceUpdate()),this.props.onFocus&&this.props.onFocus(e)}OnInputBlur(e){this.m_bFocused&&(this.m_bFocused=!1,this.forceUpdate()),this.props.onBlur&&this.props.onBlur(e)}render(){const e=this.props,{label:t,description:n,children:s,className:c}=e,d=(0,r._T)(e,["label","description","children","className"]);return i.createElement("div",{className:"DialogInputLabelGroup _DialogLayout DialogListBuilderInput"},i.createElement("label",null,t&&i.createElement("div",{className:"DialogLabel"},t),i.createElement("div",{className:(0,l.Z)("_DialogInputContainer","DialogTextInputBase",this.m_bFocused&&"Active"),onClick:this.OnBackgroundClick},i.createElement(a.s,{className:"DialogListBuilderInput_List","flow-children":"row"},i.Children.map(s,((e,t)=>i.createElement("div",{className:"DialogListBuilderInput_ListItem",key:t},e))),i.createElement(o.bX,Object.assign({type:"text"},d,{className:"DialogListBuilderInput_Input DialogInputPlaceholder",ref:this.OnInputRef,onFocus:this.OnInputFocus,onBlur:this.OnInputBlur,size:4})))),n&&i.createElement("div",{className:"DialogLabelExplainer"},n)))}}(0,r.gn)([z.ak],J.prototype,"OnBackgroundClick",null),(0,r.gn)([z.ak],J.prototype,"OnInputFocus",null),(0,r.gn)([z.ak],J.prototype,"OnInputBlur",null);const ee=(e,t)=>""+(null!=e?Number.parseFloat(e.toFixed(3)):null)+(null!=t?t:""),te=e=>{const t=m();return i.createElement(h.T,Object.assign({component:t.SliderField,fallback:ne},e))};class ne extends i.Component{constructor(e){super(e),this.m_flLastSetValue=null}ClampValue(e){return void 0===e||isNaN(e)||ethis.props.max?this.props.max:e}BPropsValid(){return this.props.max>this.props.min}OnMouseDown(e){this.m_elSlider=e.currentTarget,this.m_rectSlider=this.m_elSlider.getBoundingClientRect(),this.props.onChangeStart&&this.props.onChangeStart(1),this.AdjustSliderForClientX(e.clientX,1),this.m_elSlider.ownerDocument.defaultView.addEventListener("mousemove",this.OnMouseMove),this.m_elSlider.ownerDocument.defaultView.addEventListener("mouseup",this.OnMouseUp)}OnMouseMove(e){this.AdjustSliderForClientX(e.clientX,1)}OnMouseUp(e){this.m_elSlider.ownerDocument.defaultView.removeEventListener("mousemove",this.OnMouseMove),this.m_elSlider.ownerDocument.defaultView.removeEventListener("mouseup",this.OnMouseUp),this.CompleteChange(1)}OnTouchStart(e){this.m_elSlider=e.currentTarget,this.m_rectSlider=this.m_elSlider.getBoundingClientRect(),this.props.onChangeStart&&this.props.onChangeStart(0),this.AdjustSliderForClientX(e.touches[0].clientX,0),this.m_elSlider.ownerDocument.defaultView.addEventListener("touchmove",this.OnTouchMove),this.m_elSlider.ownerDocument.defaultView.addEventListener("touchend",this.OnTouchEnd)}OnTouchMove(e){this.AdjustSliderForClientX(e.touches[0].clientX,0)}OnTouchEnd(e){this.m_elSlider.ownerDocument.defaultView.removeEventListener("touchmove",this.OnTouchMove),this.m_elSlider.ownerDocument.defaultView.removeEventListener("touchend",this.OnTouchEnd),this.CompleteChange(0)}OnKeyDown(e){let t=1;e.ctrlKey&&(t=Math.max(1,Math.floor(.1*(this.props.max-this.props.min)+.5))),37==e.keyCode?(this.IncrementValue(-1*t),e.preventDefault()):39==e.keyCode&&(this.IncrementValue(1*t),e.preventDefault()),this.CompleteChange(2)}AdjustSliderForClientX(e,t){let n=(e-this.m_rectSlider.left)/(this.m_rectSlider.right-this.m_rectSlider.left)*(this.props.max-this.props.min)+this.props.min;n=Math.floor(n+.5);const r=this.ClampValue(n);r!=this.props.value&&(this.props.onChange&&this.props.onChange(r,t),this.m_flLastSetValue=r)}CompleteChange(e){null!=this.m_flLastSetValue&&(this.props.onChangeComplete&&this.props.onChangeComplete(this.m_flLastSetValue,e),this.m_flLastSetValue=null)}IncrementValue(e){let t=this.ClampValue(this.props.value+e);t!=this.props.value&&(this.props.onChange&&this.props.onChange(t,2),this.m_flLastSetValue=t)}render(){var e;let t={},n={};if(this.BPropsValid()){let e=100*(this.props.value-this.props.min)/(this.props.max-this.props.min)+"%";t.width=e,n.left=e}const o=this.props,{label:a,description:s,tooltip:l}=o,c=((0,r._T)(o,["label","description","tooltip"]),null!==(e=this.props.renderValue)&&void 0!==e?e:ee);return i.createElement("div",{className:"DialogSlider_Container _DialogInputContainer _DialogLayout"+(this.props.className?" "+this.props.className:""),onKeyDown:this.OnKeyDown,tabIndex:this.props.tabIndex||0},a&&i.createElement("div",{className:"DialogLabel"},a,Boolean(l)&&i.createElement("span",{"data-tooltip-text":l}," (?)")),i.createElement("div",{className:"DialogSlider_Slider",onMouseDown:this.OnMouseDown,onTouchStart:this.OnTouchStart},i.createElement("div",{className:"DialogSlider_Value",style:t}),i.createElement("div",{className:"DialogSlider_Grabber",style:n})),this.props.showValue&&i.createElement("div",{className:"DialogLabelExplainer"},c(this.props.value,this.props.valueSuffix)),s&&i.createElement("div",{className:"DialogLabelExplainer"},s))}}(0,r.gn)([z.ak],ne.prototype,"OnMouseDown",null),(0,r.gn)([z.ak],ne.prototype,"OnMouseMove",null),(0,r.gn)([z.ak],ne.prototype,"OnMouseUp",null),(0,r.gn)([z.ak],ne.prototype,"OnTouchStart",null),(0,r.gn)([z.ak],ne.prototype,"OnTouchMove",null),(0,r.gn)([z.ak],ne.prototype,"OnTouchEnd",null),(0,r.gn)([z.ak],ne.prototype,"OnKeyDown",null);var re=n(31632),ie=n.n(re);const oe=i.createContext({setValue:()=>{}});function ae(e){const{value:t,onChange:n,classNames:r,children:o}=e,s={value:t,setValue:n};return i.createElement(oe.Provider,{value:s},i.createElement(a.s,{className:(0,l.Z)(ie().Group,"Shared_Radio_Group",r)},o))}function se(e){const{value:t}=e,{value:n,setValue:r}=i.useContext(oe);let a=r;const s=t===n;return i.createElement(o.Ks,{className:(0,l.Z)(ie().Button,"RadioButton",s&&ie().Active),onClick:()=>a(t)},e.children)}var le=n(40103),ce=n(64359),de=n.n(ce),ue=n(84343),me=n(48410),he=n.n(me);function pe(e){return"object"==typeof e&&"data"in e}function _e(e){return"object"==typeof e&&"options"in e}function ge(e,t){if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e.length!=t.length)return!1;for(let n=0;n0;)null===(t=n.shift())||void 0===t||t.forEach(((t,o)=>{pe(t)?r.push(i.createElement("div",{key:o,className:(0,l.Z)(de().DialogDropDownMenu_Item,e.strDropDownItemClassName,t.strOptionClass),"data-dropdown-index":o,onClick:n=>e.onValueSelected&&e.onValueSelected(n,t)},Boolean(t.tooltip)?i.createElement(ue.HP,{toolTipContent:t.tooltip,strTooltipClassname:he().HoverAboveModal},t.label):i.createElement(i.Fragment,null,t.label))):_e(t)&&n.push(t.options)}));return i.createElement("div",{className:(0,l.Z)(de().DialogDropDownMenu,"_DialogInputContainer")},r)}class Re extends i.Component{constructor(){super(...arguments),this.state={rgOptions:void 0}}OnMenuOpened(){return(0,r.mG)(this,void 0,void 0,(function*(){if(!this.state.rgOptions){let e=yield this.props.fnLoadOptions();this.setState({rgOptions:e})}}))}render(){const e=this.props,{fnLoadOptions:t,strInitialDisplay:n,initialValue:o}=e,a=(0,r._T)(e,["fnLoadOptions","strInitialDisplay","initialValue"]);let{rgOptions:s}=this.state;return void 0===s&&(n||o?(s=[{label:n,data:o}],a.selectedOption=o):s=[]),i.createElement(Ce,Object.assign({},a,{rgOptions:s,onMenuOpened:this.OnMenuOpened}))}}(0,r.gn)([z.ak],Re.prototype,"OnMenuOpened",null);n(19979);var Me=n(50265),Te=n(894),Ae=n(11837),Le=n(36041);const Be=new(n(50454).s)("DragDrop").Debug;class ke extends i.Component{constructor(){super(...arguments),this.m_coordinator=new Fe}OnDrop(e,t){t>e&&t--,t!=e&&this.props.onReorder(e,t)}render(){let e=[];return e.push(i.createElement(Ge,{coordinator:this.m_coordinator,key:"dropregion_top",fnBAcceptDraggable:e=>0!=e.props.data,fnOnDrop:e=>this.OnDrop(e.props.data,0)})),i.Children.forEach(this.props.children,((t,n)=>{const r=t.props.id||"__list_"+n,o=n+1;e.push(i.createElement(Pe,{coordinator:this.m_coordinator,data:n,key:r},t)),e.push(i.createElement(Ge,{coordinator:this.m_coordinator,key:"dropregion_"+r,fnBAcceptDraggable:e=>e.props.data!=o,fnOnDrop:e=>this.OnDrop(e.props.data,o)}))})),i.createElement("div",{className:"DialogReorderableList"},e)}}function Oe(e,t,n,r){return r?n&&e>n.left&&en.top&&t=n.left&&e<=n.right&&t>=n.top&&t<=n.bottom}(0,r.gn)([z.ak],ke.prototype,"OnDrop",null);class Fe{constructor(){this.m_embeddedElement=new Te.AN("DragGhosts"),this.m_rgDropRegions=[],this.m_rgActiveDropRegions=[],this.m_prevClientX=0,this.m_prevClientY=0}RegisterDropRegion(e){this.m_rgDropRegions.push(e),this.m_activeDraggable&&e.BAcceptDraggable(this.m_activeDraggable)&&(e.OnDragStarted(this.m_activeDraggable),this.m_rgActiveDropRegions.push(e))}UnregisterDropRegion(e){Ae.Zf(this.m_rgDropRegions,e),Ae.Zf(this.m_rgActiveDropRegions,e),this.m_activeDropRegion==e&&(this.m_activeDropRegion=void 0,this.m_activeDraggable&&this.ShowDragGhost())}OnDragGhostRef(e){this.m_dragGhost=e}ShowDragGhost(){const e=this.m_activeDraggable.renderDragGhost(),t=(0,l.Z)(e.props.className,!!this.m_activeDropRegion&&"DraggedOverActiveDrop"),n=i.cloneElement(e,{ref:this.OnDragGhostRef,className:t});this.m_embeddedElement.ShowElement(this.m_activeDraggable.GetDragDocument(),n,this.m_activeDraggable)}HideDragGhost(){this.m_embeddedElement.HideElement(this.m_activeDraggable.GetDragDocument(),this.m_activeDraggable)}MakeDragClone(e){(0,q.X)(!this.m_nodeCloneCopy&&!this.m_elCloneOriginal,"Drag already in progress"),this.m_elCloneOriginal=e.m_divRef.current,this.m_nodeCloneCopy=this.m_elCloneOriginal.cloneNode(!0),e.m_divRef.current.replaceWith(this.m_nodeCloneCopy),this.m_elCloneContainer||(this.m_elCloneContainer=e.GetDragDocument().body.ownerDocument.createElement("div"),e.GetDragDocument().body.appendChild(this.m_elCloneContainer)),this.m_elCloneContainer.appendChild(this.m_elCloneOriginal)}ReverseDragClone(){this.m_nodeCloneCopy.parentNode.replaceChild(this.m_elCloneOriginal,this.m_nodeCloneCopy),this.m_nodeCloneCopy=void 0,this.m_elCloneOriginal=void 0}OnDragStart(e){this.m_activeDraggable=e,this.m_rgActiveDropRegions=[];for(let t of this.m_rgDropRegions)t.BAcceptDraggable(e)&&(t.OnDragStarted(e),this.m_rgActiveDropRegions.push(t));this.MakeDragClone(e),this.ShowDragGhost()}EndDrag(){if(this.m_activeDraggable){this.ReverseDragClone(),this.HideDragGhost(),this.m_activeDropRegion&&this.m_activeDropRegion.OnDrop(this.m_activeDraggable);for(let e of this.m_rgActiveDropRegions)e.OnDragEnded(this.m_activeDraggable);this.m_activeDraggable=void 0,this.m_dropGhost=void 0,this.m_rgActiveDropRegions=[]}}FindBestActiveDropRegionForPoint(e,t){const n=this.m_activeDraggable.GetDragDocument();let r;if("elementsFromPoint"in n&&(r=n.elementsFromPoint(e,t)),r){const e=new Map;this.m_rgActiveDropRegions.forEach((t=>e.set(t.GetElement(),t)));for(const t of r){const n=e.get(t);if(n)return n}}else{if(this.m_activeDropRegion&&this.m_activeDropRegion.BDraggableInRegion(e,t,this.m_activeDraggable))return this.m_activeDropRegion;for(let n=this.m_rgActiveDropRegions.length-1;n>=0;n--){const r=this.m_rgActiveDropRegions[n];if(r.BDraggableInRegion(e,t,this.m_activeDraggable))return r}}return null}OnDrag(e,t,n){const r=this.m_prevClientX||t,i=this.m_prevClientY||n,o=void 0===r?0:r-this.m_dragGhost.state.clientX,a=void 0===i?0:i-this.m_dragGhost.state.clientY;if(e.props.bEnableHTMLDrag&&this.m_dragOffWindowTimer&&window.clearTimeout(this.m_dragOffWindowTimer),this.m_dragGhost&&(this.m_dragGhost.setState({clientX:r,clientY:i,clientXDelta:o,clientYDelta:a,bVisible:!0}),e.props.bEnableHTMLDrag&&(o||a))){const t=r+o,n=i+a,s=e.GetDragDocument().body.getBoundingClientRect();if(Oe(r,i,s)&&!Oe(t,n,s,!0)){const r=Le.r4(t,s.left,s.right,s.left-200,s.right+200),i=Le.r4(n,s.top,s.bottom,s.top-100,s.bottom+100),o=50;this.m_dragOffWindowTimer=window.setTimeout((()=>{e==this.m_activeDraggable&&this.OnDrag(e,r,i)}),o)}}const s=this.FindBestActiveDropRegionForPoint(r,i);this.m_prevClientX=t,this.m_prevClientY=n,!!this.m_activeDropRegion!=!!s&&(this.ShowDragGhost(),this.m_dropGhost||(this.m_dropGhost=this.m_activeDraggable.renderDropGhost())),this.m_activeDropRegion&&this.m_activeDropRegion!=s&&this.m_activeDropRegion.OnDragLeave(this.m_activeDraggable),s&&this.m_activeDropRegion!=s&&s.OnDragEnter(this.m_activeDraggable,this.m_dropGhost),this.m_activeDropRegion=s,this.m_activeDropRegion&&this.m_activeDropRegion.OnDragMove(r,i,this.m_activeDraggable)}}(0,r.gn)([z.ak],Fe.prototype,"OnDragGhostRef",null);class Pe extends i.Component{constructor(){super(...arguments),this.m_DragInfo={bStarted:!1,startClientX:void 0,startClientY:void 0,startOffsetX:void 0,startOffsetY:void 0,startWidth:void 0,startHeight:void 0,ownerWin:void 0},this.m_divRef=i.createRef()}GetDragDocument(){return this.m_DragInfo.ownerWin&&this.m_DragInfo.ownerWin.document}RecordDragStart(e,t,n){this.m_DragInfo.startClientX=t,this.m_DragInfo.startClientY=n;let r=e.getBoundingClientRect();this.m_DragInfo.startOffsetX=t-r.left,this.m_DragInfo.startOffsetY=n-r.top,this.m_DragInfo.startWidth=r.width,this.m_DragInfo.startHeight=r.height,this.m_DragInfo.ownerWin=e.ownerDocument.defaultView}ProcessDragMove(e){Be("ProcessDragMove",e,this.props.data);const[t,n]=function(e){if("touches"in e){let t=e;return[t.touches[0].clientX,t.touches[0].clientY]}return[e.clientX,e.clientY]}(e);if(this.m_DragInfo.bStarted){if(this.props.bEnableHTMLDrag&&0==t&&0==n)return;this.props.coordinator.OnDrag(this,t,n)}else Math.pow(t-this.m_DragInfo.startClientX,2)+Math.pow(n-this.m_DragInfo.startClientY,2)>=25&&(this.m_DragInfo.bStarted=!0,this.forceUpdate(),this.props.fnOnDragStart&&this.props.fnOnDragStart(),this.props.coordinator.OnDragStart(this),this.props.coordinator.OnDrag(this,t,n))}OnMouseDown(e){this.m_DragInfo.bStarted||0!=e.button||(this.RecordDragStart(e.currentTarget,e.clientX,e.clientY),this.m_DragInfo.ownerWin.addEventListener("mousemove",this.ProcessDragMove),this.m_DragInfo.ownerWin.addEventListener("mouseup",this.OnMouseUp))}OnMouseUp(e){this.m_DragInfo.ownerWin.removeEventListener("mousemove",this.ProcessDragMove),this.m_DragInfo.ownerWin.removeEventListener("mouseup",this.OnMouseUp),this.ResetDragState()}OnTouchStart(e){this.m_DragInfo.bStarted||(this.RecordDragStart(e.currentTarget,e.touches[0].clientX,e.touches[0].clientY),this.m_DragInfo.ownerWin.addEventListener("touchmove",this.ProcessDragMove),this.m_DragInfo.ownerWin.addEventListener("touchend",this.OnTouchEnd))}OnTouchEnd(e){this.m_DragInfo.ownerWin.removeEventListener("touchmove",this.ProcessDragMove),this.m_DragInfo.ownerWin.removeEventListener("touchend",this.OnTouchEnd),this.ResetDragState()}ResetDragState(){Be("ResetDragState",this.props.data),this.m_DragInfo.bStarted&&(this.props.coordinator.EndDrag(),this.props.fnOnDragEnd&&this.props.fnOnDragEnd()),this.m_DragInfo.bStarted=!1,this.m_DragInfo.startClientX=void 0,this.m_DragInfo.startClientY=void 0,this.m_DragInfo.startOffsetX=void 0,this.m_DragInfo.startOffsetY=void 0,this.m_DragInfo.ownerWin=void 0,this.forceUpdate()}OnHTMLDragStart(e){Be("HTMLDragStart",e,this.props.data,this.props.strHTMLDragData),e.dataTransfer.effectAllowed="copyMove",this.props.strHTMLDragData&&this.props.strHTMLDragData.forEach(((t,n)=>e.dataTransfer.setData(n,t))),e.dataTransfer.getData("text/plain")||e.dataTransfer.setData("text/plain",this.props.data.toString());const t=new Image;e.dataTransfer.setDragImage(t,0,0),this.RecordDragStart(e.currentTarget,e.clientX,e.clientY),this.m_DragInfo.ownerWin.addEventListener("drag",this.OnHTMLDrag),this.m_DragInfo.ownerWin.addEventListener("dragend",this.OnHTMLDragEnd)}OnHTMLDrag(e){Be("HTMLDrag",e,e.dataTransfer.types.length),this.ProcessDragMove(e)}OnHTMLDragEnd(e){Be("HTMLDragEnd",e,e.dataTransfer.getData("text/plain")||"NOTHING",this.props.data),this.m_DragInfo.ownerWin.removeEventListener("drag",this.OnHTMLDrag),this.m_DragInfo.ownerWin.removeEventListener("dragend",this.OnHTMLDragEnd),this.ResetDragState()}render(){const e=this.props,{coordinator:t,data:n,bEnableHTMLDrag:o,strHTMLDragData:a,fnOnDragStart:s,fnOnDragEnd:c,fnRenderDragGhost:d,fnRenderDropGhost:u,className:m,strActiveClassName:h,children:p}=e,_=(0,r._T)(e,["coordinator","data","bEnableHTMLDrag","strHTMLDragData","fnOnDragStart","fnOnDragEnd","fnRenderDragGhost","fnRenderDropGhost","className","strActiveClassName","children"]);let g={},f=m||"DialogDraggable";return this.m_DragInfo.bStarted?(f=(0,l.Z)(f,h||"DraggedOut"),o&&(g={onDragEnd:this.OnHTMLDragEnd})):g=o?{onDragStart:this.OnHTMLDragStart}:{onMouseDown:this.OnMouseDown,onTouchStart:this.OnTouchStart},i.createElement("div",Object.assign({ref:this.m_divRef,className:f},g,_,{draggable:o}),p)}renderDropGhost(){return this.props.fnRenderDropGhost?this.props.fnRenderDropGhost():i.createElement(xe,{elContent:this.GetClone()})}renderDragGhost(){return this.props.fnRenderDragGhost?this.props.fnRenderDragGhost():i.createElement(Ne,{elContent:this.GetClone(),offsetX:this.m_DragInfo.startOffsetX,offsetY:this.m_DragInfo.startOffsetY,width:this.m_DragInfo.startWidth,height:this.m_DragInfo.startHeight})}GetClone(){const e=this.m_divRef.current;let t;if(e&&e.childElementCount)if(1==e.childElementCount)t=e.firstElementChild.cloneNode(!0);else{t=document.createElement("div");for(let n=e.firstChild;n;n=n.nextSibling)t.appendChild(n.cloneNode(!0))}return t}}(0,r.gn)([z.ak],Pe.prototype,"ProcessDragMove",null),(0,r.gn)([z.ak],Pe.prototype,"OnMouseDown",null),(0,r.gn)([z.ak],Pe.prototype,"OnMouseUp",null),(0,r.gn)([z.ak],Pe.prototype,"OnTouchStart",null),(0,r.gn)([z.ak],Pe.prototype,"OnTouchEnd",null),(0,r.gn)([Me.aD],Pe.prototype,"ResetDragState",null),(0,r.gn)([z.ak],Pe.prototype,"OnHTMLDragStart",null),(0,r.gn)([z.ak],Pe.prototype,"OnHTMLDrag",null),(0,r.gn)([z.ak],Pe.prototype,"OnHTMLDragEnd",null);class xe extends i.Component{OnRef(e){e&&e.appendChild(this.props.elContent)}render(){return i.createElement("div",{className:"DialogDraggable_DropGhost",ref:this.OnRef})}}(0,r.gn)([z.ak],xe.prototype,"OnRef",null);class Ne extends i.Component{constructor(){super(...arguments),this.state={clientX:void 0,clientY:void 0,bVisible:!0,clientXDelta:void 0,clientYDelta:void 0}}OnRef(e){e&&e.appendChild(this.props.elContent)}CalculateRotationDegrees(e){if(!e||Math.abs(e)<4)return 0;return(e>0?7.5:-7.5)*Math.sqrt(Math.abs(e))}render(){if(!this.state.bVisible||void 0===this.state.clientX||void 0===this.state.clientY)return i.createElement("div",null);let e={left:this.state.clientX-(this.props.offsetX||0),top:this.state.clientY-(this.props.offsetY||0),width:this.props.width||"auto",height:this.props.height||"auto",perspective:"600px"},t=Le.r4(this.CalculateRotationDegrees(this.state.clientYDelta),-90,90,2,0),n={transform:`rotateX(${this.CalculateRotationDegrees(-1*this.state.clientYDelta)}deg) rotateY( ${this.CalculateRotationDegrees(this.state.clientXDelta)}deg)`,transition:"transform .16s ease-out, filter .16s ease-out",filter:"brightness("+t+")"};const r=this.props.className||"DialogDraggable_DragGhost";return i.createElement("div",{className:r,style:e},i.createElement("div",{ref:this.OnRef,style:n}))}}(0,r.gn)([z.ak],Ne.prototype,"OnRef",null);class Ve extends i.Component{constructor(e){super(e),this.m_divRef=i.createRef(),this.state={}}componentDidMount(){this.props.coordinator.RegisterDropRegion(this)}componentWillUnmount(){this.props.coordinator.UnregisterDropRegion(this)}OnDragStarted(e){this.setState({bDraggableActive:!0})}OnDragEnded(e){this.setState({bDraggableActive:!1})}OnDragEnter(e,t){this.setState({dropGhost:t}),this.props.fnOnDragEnter&&this.props.fnOnDragEnter(e)}OnDragLeave(e){this.setState({dropGhost:void 0}),this.props.fnOnDragLeave&&this.props.fnOnDragLeave(e)}OnDragMove(e,t,n){}OnDrop(e){this.setState({dropGhost:void 0}),this.props.fnOnDrop(e)}BAcceptDraggable(e){return!this.props.fnBAcceptDraggable||this.props.fnBAcceptDraggable(e)}BDraggableInRegion(e,t,n){return Oe(e,t,this.GetClientRect())}GetElement(){return this.m_divRef.current}GetClientRect(){return this.m_divRef.current&&this.m_divRef.current.getBoundingClientRect()}render(){const e=this.props,{coordinator:t,fnBAcceptDraggable:n,fnOnDrop:a,fnOnDragEnter:s,fnOnDragLeave:c,className:d,strActiveClassName:u,children:m,focusable:h}=e,p=(0,r._T)(e,["coordinator","fnBAcceptDraggable","fnOnDrop","fnOnDragEnter","fnOnDragLeave","className","strActiveClassName","children","focusable"]),_=(0,l.Z)(d||"DialogDropRegion",this.state.bDraggableActive&&(u||"Active"));return i.createElement(o.Ks,Object.assign({ref:this.m_divRef,className:_},p,{focusable:void 0===h?!!p.onClick:h}),this.state.dropGhost,m)}}class Ge extends Ve{BDraggableInRegion(e,t,n){let r=this.GetClientRect();return!!r&&(e>=r.left&&e<=r.right&&t>=r.top-20&&t<=r.bottom+20)}}var Ue=n(8179),He=n(78330),We=n(17547),je=n(96777),ze=n.n(je),Ke=n(16221),Xe=n(16826);function Ze(e){return i.createElement(a.s,Object.assign({navEntryPreferPosition:Ke.c4.PREFERRED_CHILD},e))}function $e(e){const{title:t,icon:n,active:o,className:a,onClick:s}=e,l=(0,r._T)(e,["title","icon","active","className","onClick"]);return i.createElement("div",{className:a,onClick:s},n?i.createElement("div",{className:ze().PageListItem_Icon},n):null,i.createElement("div",Object.assign({className:ze().PageListItem_Title},l),t))}function qe(e){var t;const n=null!==(t=e.activePage.padding)&&void 0!==t?t:"standard";return i.createElement(T,{className:(0,l.Z)(e.stylesheet.PagedSettingsDialog_PageContent,e.activePage.pageClassName,{[e.stylesheet.NoPadding]:"none"==n})},e.activePage.header,!e.hideTitle&&i.createElement(S,null,e.activePage.title),i.createElement(We.SV,{errorKey:e.activePage.title},e.activePage.content))}function Ye(e){return i.createElement("div",{className:(0,l.Z)(ze().PageListSeparator,{[ze().Transparent]:e.bTransparent})})}const Qe=i.forwardRef((function(e,t){var n,r;const o=null!==(n=e.stylesheet)&&void 0!==n?n:ze(),s=e.pages,c=null!=e.startingPage?s.findIndex((t=>"object"==typeof t&&t.identifier===e.startingPage)):-1,d=null==e.page,[u,m]=i.useState(c);let h=u;d||(h=s.findIndex((t=>"object"==typeof t&&t.identifier===e.page))),(h<0||h>=s.length)&&(h=0);let p=null;"object"==typeof s[h]&&(p=s[h]);let _=function(e){let t=i.useRef(e),n=i.useRef("none"),r=t.current;if(r==e)return n.current;let o="none";re&&(o="up");return t.current=e,n.current=o,o}(h);const g=i.useRef(),f=i.useCallback((()=>g.current.TakeFocus()),[g]),v=s.map(((t,n)=>{if("separator"===t){const t=n===h+1||n===h-1;return i.createElement(i.Fragment,{key:n},e.renderPageListSeparator?e.renderPageListSeparator({}):i.createElement(Ye,{bTransparent:t}))}if("spacer"===t)return i.createElement("div",{key:n,className:ze().PageListSpacer});if(!1===t.visible)return null;const r=t==p,a=t.identifier||t.title||n.toString(),s=e.renderPageListItem||$e;return i.createElement(s,{className:(0,l.Z)(o.PagedSettingsDialog_PageListItem,{[o.Active]:r}),key:a,onClick:()=>{He.LT.PlayNavSound(He.qr.PagedNavigation),e.onPageRequested&&e.onPageRequested(t.identifier),t.click?t.click():d&&n!=u&&m(n)},title:t.title,icon:t.icon,active:r})})),C=i.useRef(),S=null==p?void 0:p.hideTitle,E=null===(r=e.showTitle)||void 0===r||r,D=(0,l.Z)("DialogContentTransition",o.PagedSettingDialog_ContentColumn);i.useEffect((()=>{var t;e.focusChild&&(null===(t=C.current)||void 0===t||t.TakeFocus())}),[C.current]);const b=e.renderPageAnimation&&p?e.renderPageAnimation:et;return i.createElement(a.s,{className:(0,l.Z)(o.PagedSettingsDialog,e.className),ref:t},i.createElement(a.s,{className:(0,l.Z)(o.PagedSettingsDialog_PageListColumn,e.hideList&&ze().Hidden,"PageListColumn"),navRef:g,onButtonDown:e=>{var t;e.detail.button==Ue.eV.OK&&(null===(t=C.current)||void 0===t||t.TakeFocus(e.detail.button))}},E&&i.createElement("div",{className:o.PagedSettingsDialog_Title},e.title),e.topControls&&i.createElement("div",null,e.topControls),i.createElement(Ze,{className:(0,l.Z)(o.PagedSettingsDialog_PageList,e.disablePageListScrolling&&o.PagedSettingsDialog_PageList_DisableScrolling)},v),e.bottomControls&&i.createElement("div",null,e.bottomControls)),i.createElement(a.s,{className:D,onCancelButton:f,navRef:C},e.toggleHideList&&i.createElement(Je,{hideList:e.hideList,toggleHideList:e.toggleHideList}),i.createElement(b,{activePage:p,direction:_},p&&i.createElement(qe,{key:p.identifier,stylesheet:o,hideTitle:S,activePage:p}))))}));function Je(e){const{hideList:t,toggleHideList:n}=e;return i.createElement("div",{className:(0,l.Z)(ze().HidePageListButton,t&&ze().ListHidden),onClick:n},t?i.createElement(Xe.vVQ,{direction:"right"}):i.createElement(Xe.vVQ,{direction:"left"}))}function et(e){return i.createElement(i.Fragment,null,e.children)}class tt extends i.Component{constructor(){super(...arguments),this.m_refTextArea=i.createRef(),this.m_cEntryLength=Number.MAX_VALUE}get textarea(){return this.m_refTextArea.current}get value(){return this.m_refTextArea.current&&this.m_refTextArea.current.value}focus(){this.m_refTextArea.current.focus()}InternalOnInput(){const e=this.m_refTextArea.current,t=this.GetMinHeight(),n=this.GetMaxHeight();let r,i=e.value.length;if(void 0===this.m_nTextAreaPadding&&this.CalculatePadding(),in)e.style.height=n+"px",e.style.overflow="auto";else if(e.scrollHeight!=e.clientHeight){let n=Math.max(e.scrollHeight,t);e.style.height=n-this.m_nTextAreaPadding+"px","auto"==e.style.overflow&&(e.style.overflow="hidden")}void 0!==r&&window.scrollTo(window.scrollX,r),this.m_cEntryLength=i}CalculatePadding(){const e=getComputedStyle(this.m_refTextArea.current);this.m_nTextAreaPadding=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom)}GetMinHeight(){return this.props.nMinHeight||20}GetMaxHeight(){return this.props.nMaxHeight||500}DeferredInternalOnInput(){window.setTimeout(this.InternalOnInput,1)}OnKeyUp(e){this.InternalOnInput(),this.props.onKeyUp&&this.props.onKeyUp(e)}OnBlur(e){this.DeferredInternalOnInput(),this.props.onBlur&&this.props.onBlur(e)}OnClick(e){this.InternalOnInput(),this.props.onClick&&this.props.onClick(e)}OnPaste(e){this.DeferredInternalOnInput(),this.props.onPaste&&this.props.onPaste(e)}OnCut(e){this.InternalOnInput(),this.props.onCut&&this.props.onCut(e)}componentDidMount(){this.m_refTextArea.current.style.overflow="hidden",this.m_refTextArea.current.style.resize="none",this.InternalOnInput()}componentDidUpdate(e){e.nMinHeight==this.props.nMinHeight&&e.nMaxHeight==this.props.nMaxHeight||(this.m_cEntryLength=Number.MAX_VALUE),this.m_refTextArea.current.value.length!=this.m_cEntryLength&&this.InternalOnInput()}render(){const e=this.props,{nMinHeight:t,nMaxHeight:n,renderTextArea:o}=e,a=(0,r._T)(e,["nMinHeight","nMaxHeight","renderTextArea"]),s=o||(e=>i.createElement("textarea",Object.assign({},e)));return s(Object.assign(Object.assign({},a),{ref:this.m_refTextArea,onKeyUp:this.OnKeyUp,onBlur:this.OnBlur,onClick:this.OnClick,onPaste:this.OnPaste,onCut:this.OnCut}))}}(0,r.gn)([z.ak],tt.prototype,"InternalOnInput",null),(0,r.gn)([z.ak],tt.prototype,"OnKeyUp",null),(0,r.gn)([z.ak],tt.prototype,"OnBlur",null),(0,r.gn)([z.ak],tt.prototype,"OnClick",null),(0,r.gn)([z.ak],tt.prototype,"OnPaste",null),(0,r.gn)([z.ak],tt.prototype,"OnCut",null);var nt=n(40468),rt=n.n(nt),it=n(32765);const ot=i.forwardRef((function(e,t){const{label:n,description:o,icon:s,children:c,childrenLayout:d,inlineWrap:u,childrenContainerWidth:m,spacingBetweenLabelAndChild:h,padding:p,disabled:_,bottomSeparator:g,className:f,highlightOnFocus:v,indentLevel:C,verticalAlignment:S,tooltip:E}=e,D=(0,r._T)(e,["label","description","icon","children","childrenLayout","inlineWrap","childrenContainerWidth","spacingBetweenLabelAndChild","padding","disabled","bottomSeparator","className","highlightOnFocus","indentLevel","verticalAlignment","tooltip"]),b=(0,it.id)(),w=null!=d?d:"inline",y="inline"==w&&!!c,I="below"==w&&!!c,R=null!=u?u:b?"shift-children-below":"keep-inline",M=!!(D.onClick||D.onActivate||D.focusable),T=null!=s||null!=n||y&&null!=c,A=null!=m?m:"min",L=null!=h?h:"standard",B=null!=p?p:"standard",k=null!=g?g:"standard",O=null==v||v,F=null!=C?C:0,P=null!=S?S:"center",x=i.useRef(),N=(0,z.BE)(x,e.navRef),V=i.useCallback((e=>{var t;null===(t=x.current)||void 0===t||t.TakeFocus(),e.preventDefault()}),[x]);return i.createElement(a.s,Object.assign({focusable:M,noFocusRing:!0,scrollIntoViewWhenChildFocused:!0,onActivate:D.onClick,ref:t,onMouseDown:M?void 0:V},D,{navRef:N,className:(0,l.Z)(f,rt().Field,_&&rt().Disabled,T&&rt().WithFirstRow,y&&rt().WithChildrenInline,I&&rt().WithChildrenBelow,"center"==P&&rt().VerticalAlignCenter,"shift-children-below"==R&&rt().InlineWrapShiftsChildrenBelow,!!o&&rt().WithDescription,"standard"==k&&rt().WithBottomSeparatorStandard,"thick"==k&&rt().WithBottomSeparatorThick,"fixed"==A&&rt().ChildrenWidthFixed,"max"==A&&rt().ChildrenWidthGrow,"standard"==L&&rt().ExtraPaddingOnChildrenBelow,"standard"==B&&rt().StandardPadding,"compact"==B&&rt().CompactPadding,M&&rt().Clickable,O&&rt().HighlightOnFocus),style:{"--indent-level":F}}),T&&i.createElement("div",{className:rt().FieldLabelRow},i.createElement("div",{className:rt().FieldLabel},s&&i.createElement("div",{className:rt().FieldLeadIcon},s),n,E&&i.createElement("span",{"data-tooltip-text":E}," (?)")),y&&i.createElement("div",{className:rt().FieldChildren},c)),I&&i.createElement("div",{className:rt().FieldChildren},c),o&&i.createElement("div",{className:rt().FieldDescription},o))}));i.forwardRef((function(e,t){const{label:n,description:o,icon:a,layout:s,bottomSeparator:l,highlightOnFocus:c,childrenContainerWidth:d,padding:u,inlineWrap:m}=e,h=(0,r._T)(e,["label","description","icon","layout","bottomSeparator","highlightOnFocus","childrenContainerWidth","padding","inlineWrap"]),{refWithValue:p,refForElement:_}=(0,z.ww)(t);return i.createElement(ot,{label:n,description:o,icon:a,bottomSeparator:l,highlightOnFocus:c,childrenLayout:null!=s?s:"inline",childrenContainerWidth:null!=d?d:"min",onMouseDown:e=>{var t;null===(t=p.current)||void 0===t||t.focus(),e.preventDefault()},padding:u,inlineWrap:m},i.createElement(F,Object.assign({},h,{ref:_})))}));const at=i.forwardRef((function(e,t){const{label:n,description:o,icon:a,layout:s,bottomSeparator:l,highlightOnFocus:c}=e,d=(0,r._T)(e,["label","description","icon","layout","bottomSeparator","highlightOnFocus"]),{refWithValue:u,refForElement:m}=(0,z.ww)(t);return i.createElement(ot,{label:n,description:o,icon:a,bottomSeparator:l,highlightOnFocus:c,childrenLayout:null!=s?s:"inline",childrenContainerWidth:"fixed",onMouseDown:e=>{var t,n;null===(n=null===(t=u.current)||void 0===t?void 0:t.element)||void 0===n||n.focus(),e.preventDefault()}},i.createElement(Q,Object.assign({},d,{ref:m})))}));i.forwardRef((function(e,t){return i.createElement(o.bX,Object.assign({noFocusRing:!0},e,{ref:t,className:(0,l.Z)(rt().BasicTextInput,e.className),size:1}))}));var st=n(73364),lt=n.n(st),ct=n(69159),dt=n(44673);i.forwardRef((function(e,t){return i.createElement(F,{className:(0,l.Z)(lt().DropDownControlButton,e.className),focusable:e.focusable,disabled:e.disabled,onClick:e.onClick,tabIndex:e.tabIndex,ref:t},i.createElement("div",{className:rt().DropDownControlButtonContents},e.children,i.createElement("div",{className:rt().Spacer}),i.createElement(Xe.$nC,{direction:"down"})))}));var ut=n(30113);i.forwardRef((function(e,t){const{className:n}=e,o=(0,r._T)(e,["className"]);let s=i.useRef(),l=(0,z.BE)(t,s);const[d,u]=i.useState(!1),m=i.useCallback((()=>{u((e=>!e)),window.setTimeout((()=>s.current.Focus()),1)}),[]);return i.createElement(a.s,{className:n,onOptionsButton:m,onOptionsActionDescription:(0,c.Xx)(d?"#Login_HidePassword":"#Login_ShowPassword")},i.createElement(Q,Object.assign({autoComplete:"off",ref:l,inlineControls:i.createElement(F,{className:ut.TogglePasswordVisibilityBtn,onPointerDown:m,onOKButton:m},d?i.createElement(Xe.Hz5,null):i.createElement(Xe.dQJ,null))},o,{type:d?"text":"password"})))}));i.forwardRef((function(e,t){var n;const{className:o}=e,a=(0,r._T)(e,["className"]),s=null!==(n=e.value)&&void 0!==n?n:"";return i.createElement(at,Object.assign({autoComplete:"off",value:s,ref:t,placeholder:" . . . "},a,{onChange:e=>{!function(e){const t=e.split(".");if(t.length>4)return!1;for(let e=0;e=0&&r<=255))return!1}return!0}(e.target.value)?e.target.value=s:a.onChange&&a.onChange(e)}}))}));var mt=n(74259),ht=n.n(mt),pt=n(89855),_t=n(30928),gt=n(75962);const ft=1;(0,gt.Qc)(ht()["error-shake-duration"]);function vt(e,t){return t<0?0:t>1?1:0==e?t:Math.round(t/e)*e}function Ct(e,t,n){const r=e+n*(t-e);return Number.parseFloat(r.toFixed(10))}function St(e,t,n){return(n-e)/(t-e)}var Et;!function(e){e[e.None=0]="None",e[e.MouseDragging=1]="MouseDragging",e[e.TouchStart=2]="TouchStart",e[e.TouchDragging=3]="TouchDragging"}(Et||(Et={}));class Dt extends i.Component{get showHandle(){var e;return null===(e=this.props.showHandle)||void 0===e||e}get isKeyNavTarget(){var e;return null===(e=this.props.isKeyNavTarget)||void 0===e||e}get validRange(){return this.props.min0?t/this.range:.01;return Math.max(n,this.normalizedStep)}get normalizedClampedValue(){const e=null==this.props.value||isNaN(this.props.value)?this.props.min:(0,Le.Lh)(this.props.value,this.props.min,this.props.max);return St(this.props.min,this.props.max,e)}get normalizedDefaultValue(){const e=this.props.resetValue;if(!(null==e||isNaN(e)||ethis.props.max))return St(this.props.min,this.props.max,e)}get normalizedSliderOrigin(){const e=(0,Le.Lh)(0,this.props.min,this.props.max);return St(this.props.min,this.props.max,e)}get CanResetToDefault(){return null!=this.props.resetValue&&this.props.value!=this.props.resetValue}get SliderChangeSource(){switch(this.m_eDragMode){case Et.MouseDragging:return 1;case Et.TouchDragging:case Et.TouchStart:return 0;case Et.None:return}}constructor(e){super(e),this.m_refSlider=i.createRef(),this.m_refHandle=i.createRef(),this.m_navRefSlider=i.createRef(),this.m_sliderBounds=null,this.m_handleBounds=null,this.m_fZoom=1,this.m_eDragMode=Et.None,this.m_vTouchStartPosition=(0,pt.kN)(),this.m_fStartValue=null,this.m_fLatestUserValue=null,this.m_bInnerSliderHasFocus=!1,this.m_nRepeatCount=0,this.m_fStartValue=this.props.value,this.m_fLatestUserValue=this.props.value}RecomputeSliderBounds(){var e,t;this.m_sliderBounds=null===(e=this.m_refSlider.current)||void 0===e?void 0:e.getBoundingClientRect(),this.m_handleBounds=null===(t=this.m_refHandle.current)||void 0===t?void 0:t.getBoundingClientRect()}SetDragMode(e){var t,n,r,i,o,a,s,l;if(e!=this.m_eDragMode){switch(this.m_eDragMode=e,this.props.onChangeStart&&this.props.onChangeStart(this.SliderChangeSource),e){case Et.MouseDragging:case Et.TouchDragging:case Et.TouchStart:this.RecomputeSliderBounds(),this.m_fStartValue=this.props.value,this.m_fLatestUserValue=this.props.value;case Et.None:}switch(e){case Et.MouseDragging:null===(n=null===(t=this.m_refSlider.current)||void 0===t?void 0:t.ownerDocument)||void 0===n||n.addEventListener("mousemove",this.OnWindowMouseMove,{passive:!1}),null===(i=null===(r=this.m_refSlider.current)||void 0===r?void 0:r.ownerDocument)||void 0===i||i.addEventListener("mouseup",this.OnWindowMouseUp,{passive:!1});break;case Et.TouchStart:case Et.TouchDragging:null===(a=null===(o=this.m_refSlider.current)||void 0===o?void 0:o.ownerDocument)||void 0===a||a.addEventListener("touchmove",this.OnWindowTouchMove,{passive:!1}),null===(l=null===(s=this.m_refSlider.current)||void 0===s?void 0:s.ownerDocument)||void 0===l||l.addEventListener("touchend",this.OnWindowTouchEnd,{passive:!1});break;case Et.None:this.RemoveDocumentEventListeners()}}}OnGamepadDirection(e){var t,n;if(this.props.disabled)return!1;let r=0;if(e.detail.button==Ue.eV.DIR_LEFT)r=-1;else{if(e.detail.button!=Ue.eV.DIR_RIGHT)return!1;r=1}e.detail.is_repeat?this.m_nRepeatCount++:this.m_nRepeatCount=0;const i=1/this.normalizedDpadStep,o=Math.floor((0,Le.bU)(i,8,25,10,30)),a=Math.max(1,o/2),s=(0,Le.Lh)((this.m_nRepeatCount-a)/(o-a),0,1),l=s*s*(.05-this.normalizedDpadStep)+this.normalizedDpadStep,c=0==this.normalizedStep?Math.round(l/this.normalizedDpadStep)*this.normalizedDpadStep:Math.round(l/this.normalizedStep)*this.normalizedStep,d=Math.max(c,this.normalizedDpadStep)*r,u=vt(this.normalizedStep,this.normalizedClampedValue+d);let m=Ct(this.props.min,this.props.max,u);if(m=(0,Le.Lh)(m,null!==(t=this.props.clampMin)&&void 0!==t?t:this.props.min,null!==(n=this.props.clampMax)&&void 0!==n?n:this.props.max),m!=this.props.value){const e=m>this.m_fLatestUserValue;He.LT.PlayNavSound(e?He.qr.SliderUp:He.qr.SliderDown),this.m_fLatestUserValue=m,this.props.onChange&&this.props.onChange(m,2)}else He.LT.PlayNavSound(He.qr.FailedNav);return!0}ComputeNormalizedValueForMousePosition(e){if(null==this.m_sliderBounds)return 0;const t=e/this.m_fZoom,n=this.m_sliderBounds.right-this.m_sliderBounds.left,r=null==this.m_handleBounds?0:this.m_handleBounds.right-this.m_handleBounds.left,i=n-r;return(t-this.m_sliderBounds.left-r/2)/i}UpdateSliderValueForPosition(e){if(this.props.disabled||!this.m_refSlider.current)return;const t=this.ComputeNormalizedValueForMousePosition(e),n=vt(this.normalizedStep,t);let r=Ct(this.props.min,this.props.max,n);if(r=(0,Le.Lh)(r,this.props.clampMin?this.props.clampMin:this.props.min,this.props.clampMax?this.props.clampMax:this.props.max),r!=this.props.value){const e=r>this.props.value,t=0==this.step;(this.m_eDragMode==Et.None||!t)&&He.LT.PlayNavSound(e?He.qr.SliderUp:He.qr.SliderDown),this.m_fLatestUserValue=r,this.props.onChange&&this.props.onChange(r,this.SliderChangeSource)}}OnWindowMouseMove(e){this.UpdateSliderValueForPosition(e.clientX)}OnWindowMouseUp(e){this.m_eDragMode!=Et.None&&this.Complete()}OnMouseDown(e){0==e.button&&(this.props.disabled||(e.preventDefault(),this.SetDragMode(Et.MouseDragging),this.UpdateSliderValueForPosition(e.clientX)))}OnTouchStart(e){if(this.props.disabled||1!=e.touches.length)return;e.preventDefault();const t=this.ComputeNormalizedValueForMousePosition(e.touches[0].clientX);t<0||t>1||(this.SetDragMode(Et.TouchStart),this.m_vTouchStartPosition={x:e.touches[0].clientX,y:e.touches[0].clientY})}OnWindowTouchMove(e){var t;if(1==e.touches.length){switch(this.m_eDragMode){case Et.TouchStart:const n={x:e.touches[0].clientX,y:e.touches[0].clientY};if((0,pt.iD)(this.m_vTouchStartPosition,n)>=10){const e=(0,pt.UA)(this.m_vTouchStartPosition,n);Math.abs(e.x)>Math.abs(e.y)?(this.SetDragMode(Et.TouchDragging),null===(t=this.m_refSlider.current)||void 0===t||t.focus()):this.SetDragMode(Et.None)}break;case Et.TouchDragging:this.UpdateSliderValueForPosition(e.touches[0].clientX)}e.preventDefault()}}OnWindowTouchEnd(e){this.m_eDragMode!=Et.None&&this.Complete()}Complete(){const e=this.m_eDragMode!=Et.None;this.props.onChange&&this.props.onChange(this.m_fLatestUserValue,this.SliderChangeSource),this.props.onChangeComplete&&this.props.onChangeComplete(this.m_fLatestUserValue,this.SliderChangeSource),this.SetDragMode(Et.None);const t=0==this.step;if(this.m_fLatestUserValue!=this.m_fStartValue&&t&&e){const e=this.m_fLatestUserValue>this.m_fStartValue;He.LT.PlayNavSound(e?He.qr.SliderUp:He.qr.SliderDown)}}RemoveDocumentEventListeners(){var e,t,n,r,i,o,a,s;null===(t=null===(e=this.m_refSlider.current)||void 0===e?void 0:e.ownerDocument)||void 0===t||t.removeEventListener("mousemove",this.OnWindowMouseMove),null===(r=null===(n=this.m_refSlider.current)||void 0===n?void 0:n.ownerDocument)||void 0===r||r.removeEventListener("touchmove",this.OnWindowTouchMove),null===(o=null===(i=this.m_refSlider.current)||void 0===i?void 0:i.ownerDocument)||void 0===o||o.removeEventListener("mouseup",this.OnWindowMouseUp),null===(s=null===(a=this.m_refSlider.current)||void 0===a?void 0:a.ownerDocument)||void 0===s||s.removeEventListener("touchend",this.OnWindowTouchEnd)}componentDidMount(){this.m_fZoom=(0,z.KM)(this.m_refSlider.current)}componentWillUnmount(){this.RemoveDocumentEventListeners()}BlurInnerSlider(){var e;null===(e=this.m_navRefSlider.current)||void 0===e||e.ParentTakeFocus()}OnInnerSliderFocus(){this.m_bInnerSliderHasFocus=!0,this.m_fStartValue=this.props.value}OnInnerSliderBlur(){this.m_bInnerSliderHasFocus=!1,this.m_fStartValue!=this.m_fLatestUserValue&&this.Complete()}ResetToDefault(){if(!this.CanResetToDefault||this.m_eDragMode!=Et.None)return;let e;this.m_fLatestUserValue=this.props.resetValue,this.props.onChange&&this.props.onChange(this.props.resetValue,4),this.m_bInnerSliderHasFocus?e=this.props.resetValue>this.m_fLatestUserValue:(e=this.props.resetValue>this.props.value,this.props.onChangeComplete&&this.props.onChangeComplete(this.props.resetValue,4)),He.LT.PlayNavSound(e?He.qr.SliderUp:He.qr.SliderDown)}OnContextMenu(e){if(null!=this.props.resetValue){const t=i.createElement(ct.xV,null,i.createElement(ct.Zo,{disabled:!this.CanResetToDefault,onSelected:this.ResetToDefault},(0,c.Xx)("#ResetToDefault")));(0,le.yV)(t,e)}}render(){var e,t;const n=null===(e=this.props.notchTicksVisible)||void 0===e||e,r=null===(t=this.props.focusable)||void 0===t||t,a=this.normalizedDefaultValue,s=this.normalizedSliderOrigin,d=null!=a,u={};this.CanResetToDefault&&(u[Ue.eV.SECONDARY]=(0,c.Xx)("#ResetToDefault"));let m=ht().SliderHandle,h=ht().SliderHandleContainer;return"verticalline"==this.props.handleType?(m=ht().VerticalLineSliderHandle,h=ht().VerticalLineSliderHandleContainer):"leftparen"!=this.props.handleType&&"rightparen"!=this.props.handleType||(m=(0,l.Z)(ht().ParenSliderHandle,"leftparen"==this.props.handleType?ht().Left:ht().Right),h=(0,l.Z)(ht().ParenSliderHandleContainer,"leftparen"==this.props.handleType?ht().Left:ht().Right)),i.createElement(_t.eh,{noFocusRing:!0,className:(0,l.Z)(ht().SliderControlPanelGroup,"SliderControlPanelGroup"),navRef:this.props.navRef,onMouseDown:e=>this.OnMouseDown(e.nativeEvent),onTouchStart:e=>this.OnTouchStart(e.nativeEvent),onOKActionDescription:this.props.disabled?null:(0,c.Xx)("#Slider_AdjustSlider"),focusable:r,childFocusDisabled:this.props.disabled||!r,onContextMenu:this.OnContextMenu,onOKButton:this.props.disabled?()=>He.LT.PlayNavSound(He.qr.FailedNav):null,onSecondaryButton:this.CanResetToDefault?this.ResetToDefault:void 0,onSecondaryActionDescription:this.CanResetToDefault?(0,c.Xx)("#ResetToDefault"):void 0,actionDescriptionMap:u},i.createElement(o.Ks,{className:(0,l.Z)(ht().SliderControlAndNotches,this.props.disabled&&ht().Disabled,d&&ht().WithDefaultValue),focusable:this.isKeyNavTarget,noFocusRing:!0,onFocus:this.OnInnerSliderFocus,onBlur:this.OnInnerSliderBlur,style:{"--normalized-slider-value":this.normalizedClampedValue,"--normalized-slider-default-value":a,"--normalized-slider-origin":s},ref:(0,z.dn)(this.m_refSlider,this.props.innerRef),navRef:this.m_navRefSlider,onGamepadDirection:this.OnGamepadDirection,onOKButton:this.BlurInnerSlider,onOKActionDescription:null,onCancelButton:this.BlurInnerSlider,onCancelActionDescription:(0,c.Xx)("#ActionButtonLabelDone")},i.createElement("div",{className:ht().SliderControl},i.createElement("div",{style:this.props.trackStyleOverride,className:(0,l.Z)(ht().SliderTrack,null!=this.props.notchCount&&n&&ht().SliderHasNotches,{[ht().SliderTrackDark]:"dark"===this.props.trackTone})}),d&&i.createElement("div",{className:ht().DefaultValueTickContainer},i.createElement("div",{className:ht().DefaultValueTick},i.createElement(Xe.$nC,{direction:"down"}))),this.validRange&&null!=this.props.value&&!isNaN(this.props.value)&&this.showHandle&&i.createElement("div",{className:h},i.createElement("div",{className:m,ref:this.m_refHandle},"leftparen"==this.props.handleType&&i.createElement(Xe.Tvf,null),"rightparen"==this.props.handleType&&i.createElement(Xe.RCC,null)))),i.createElement(bt,{notchCount:this.props.notchCount,notchLabels:this.props.notchLabels,sliderValue:this.normalizedClampedValue,notchTicksVisible:n})))}}function bt(e){let{sliderValue:t,notchCount:n,notchLabels:r,notchTicksVisible:o}=e,s=null!=r?r:[];if(!n)return null;let c=!1,d=[];for(let e=0;et.notchIndex==e));r&&(c=!0),d.push(i.createElement(wt,{key:e,notchIndex:e,sliderValue:t,notchLabel:r,notchCount:n,notchTicksVisible:o}))}return i.createElement(a.s,{className:(0,l.Z)(ht().SliderNotchContainer,c&&ht().HasNotchLabels)},d)}function wt(e){var t;const n=e.notchIndex<=(e.notchCount-1)*e.sliderValue,r=2==e.notchCount&&!e.notchTicksVisible,o=r&&0==e.notchIndex,a=r&&1==e.notchIndex;return i.createElement("div",{className:(0,l.Z)(ht().SliderNotch,r&&ht().AlignToEnds)},e.notchTicksVisible&&i.createElement("div",{className:(0,l.Z)(ht().SliderNotchTick,n&&ht().TickActive)}),e.notchLabel&&i.createElement("div",{className:(0,l.Z)(ht().SliderNotchLabel,o&&ht().AlignToLeft,a&&ht().AlignToRight)},null===(t=e.notchLabel)||void 0===t?void 0:t.label))}(0,r.gn)([z.ak],Dt.prototype,"RecomputeSliderBounds",null),(0,r.gn)([z.ak],Dt.prototype,"SetDragMode",null),(0,r.gn)([z.ak],Dt.prototype,"OnGamepadDirection",null),(0,r.gn)([z.ak],Dt.prototype,"UpdateSliderValueForPosition",null),(0,r.gn)([z.ak],Dt.prototype,"OnWindowMouseMove",null),(0,r.gn)([z.ak],Dt.prototype,"OnWindowMouseUp",null),(0,r.gn)([z.ak],Dt.prototype,"OnMouseDown",null),(0,r.gn)([z.ak],Dt.prototype,"OnTouchStart",null),(0,r.gn)([z.ak],Dt.prototype,"OnWindowTouchMove",null),(0,r.gn)([z.ak],Dt.prototype,"OnWindowTouchEnd",null),(0,r.gn)([z.ak],Dt.prototype,"Complete",null),(0,r.gn)([z.ak],Dt.prototype,"BlurInnerSlider",null),(0,r.gn)([z.ak],Dt.prototype,"OnInnerSliderFocus",null),(0,r.gn)([z.ak],Dt.prototype,"OnInnerSliderBlur",null),(0,r.gn)([z.ak],Dt.prototype,"ResetToDefault",null),(0,r.gn)([z.ak],Dt.prototype,"OnContextMenu",null);i.forwardRef(((e,t)=>{const{className:n}=e,o=(0,r._T)(e,["className"]);return i.createElement(a.s,{className:(0,l.Z)(ht().SliderControlWithIcon,n)},e.icon&&i.createElement(a.s,{onTouchStart:t=>e.onIconTouch&&e.onIconTouch(t),onClick:e.onIconClick,focusable:!1,className:(0,l.Z)(ht().Icon,"GamepadSliderIcon")},e.icon),i.createElement(Dt,Object.assign({},o,{ref:t})))}));i.forwardRef(((e,t)=>{const{label:n,labelIndex:r,xOffset:o,onResize:a,OnMouseDown:s,OnTouchStart:l}=e;i.useEffect((()=>{a(r)}),[a,r]);const c=i.useCallback((e=>{a(r)}),[a,r]),d=(0,z.yU)(c),u=(0,z.BE)(d,t);return i.createElement("div",{className:ht().CompoundSliderSubSliderLabel,ref:u,onMouseDown:s,onTouchStart:l,style:{transform:`translateX(${o}px)`}},i.createElement("div",{className:ht().CompoundSliderSubSliderLabelInternal},n))}));const yt=i.forwardRef((function(e,t){const{value:n,onChange:r,disabled:a,navRef:s}=e;return i.createElement(o.Ks,{noFocusRing:!0,className:(0,l.Z)(rt().Toggle,{[rt().Disabled]:!!a,[rt().On]:!!n}),onClick:()=>{if(!a&&r){const e=!n;r(e),He.LT.PlayNavSound(e?He.qr.ToggleOn:He.qr.ToggleOff)}},ref:t,navRef:s},i.createElement("div",{className:rt().ToggleRail}),i.createElement("div",{className:rt().ToggleSwitch}))}));class It extends V{OnToggleChange(e){this.props.disabled||e===this.checked||this.Toggle()}render(){const e=!!this.props.disabled,{actionDescriptions:t,gamepadEvents:n}=(0,dt.CO)(this.props);return i.createElement(ot,Object.assign({className:this.props.className,disabled:e,label:this.props.label,icon:this.props.icon,description:this.props.description,padding:this.props.padding,bottomSeparator:this.props.bottomSeparator,highlightOnFocus:this.props.highlightOnFocus,inlineWrap:"keep-inline",onContextMenu:this.props.onContextMenu,actionDescriptionMap:t},n),i.createElement(yt,{onChange:this.OnToggleChange,value:this.checked,disabled:e,navRef:this.props.navRef}))}}(0,r.gn)([z.ak],It.prototype,"OnToggleChange",null);n(22612);var Rt,Mt=n(25887),Tt=n.n(Mt),At=n(32873),Lt=n(22171);function Bt(e){const{childrenKey:t,childrenClasses:n,children:r,directionClass:o,animate:a=!0}=e,s=(0,l.Z)(Tt().TransitionGroup,o);return i.createElement(At.Z,{className:s,appear:!1,enter:a,exit:a},i.createElement(kt,{key:t,childrenClasses:n},r))}function kt(e){const{sizeClass:t,children:n,childrenClasses:o}=e,s=(0,r._T)(e,["sizeClass","children","childrenClasses"]),[c,d,u,m]=function(){let e=i.useRef(),t=i.useRef();i.useLayoutEffect((()=>{let n=e.current;if(!n||t.current)return;t.current={element:n,activeProps:new Set,bExiting:!1,fnDone:null};let r=t.current,i=e=>{e.target==n&&r.activeProps.add(e.propertyName)};n.addEventListener("transitionrun",i,!1);let o=e=>{e.target==n&&(r.activeProps.delete(e.propertyName),r.fnDone&&0==r.activeProps.size&&r.bExiting&&r.fnDone())};n.addEventListener("transitionend",o,!1),n.addEventListener("transitioncancel",o,!1)}),[]);let n=i.useCallback((e=>{t.current?t.current.fnDone=e:e()}),[t]),r=i.useCallback((()=>{t.current&&(t.current.bExiting=!1)}),[t]),o=i.useCallback((()=>{t.current&&(t.current.bExiting=!0)}),[t]);return[e,n,r,o]}(),h=i.useRef(!0),p=i.useCallback((()=>h.current),[h]),_=i.useCallback((()=>{h.current=!0,u()}),[u]),g=i.useCallback((()=>{h.current=!1,m()}),[m]),f=e.childrenClasses,v={enter:f.enterStart,enterActive:f.enterEnd,exit:f.exitStart,exitActive:f.exitEnd};return c.current&&!c.current.ownerDocument.defaultView?null:i.createElement(Lt.Z,Object.assign({nodeRef:c,classNames:v,in:!0,timeout:1e4,addEndListener:d,onEntering:_,onExiting:g},s),i.createElement("div",{ref:c,className:(0,l.Z)(Tt().ContentWrapper,t,f.base)},i.createElement(a.s,{className:t,fnCanTakeFocus:p},e.children)))}function Ot(e,t){return{base:t,enterStart:e.Enter,enterEnd:e.EnterActive,exitStart:e.Exit,exitEnd:e.ExitActive}}!function(e){e[e.None=0]="None",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.Up=3]="Up",e[e.Down=4]="Down"}(Rt||(Rt={}));var Ft=n(91429),Pt=n.n(Ft);const xt=i.createContext(null);function Nt(e){const t=i.useContext(xt),{title:n,icon:o,active:s}=e,l=(0,r._T)(e,["title","icon","active"]);return i.createElement(a.s,Object.assign({preferredFocus:s,navRef:s?t:null,noFocusRing:!0,onActivate:l.onClick,onFocus:l.onClick},l),o&&i.createElement("div",{className:Pt().PageListItem_Icon},o),i.createElement("div",{className:Pt().PageListItem_Title},n))}function Vt(e){return i.createElement("div",{className:Pt().Separator})}i.forwardRef((function(e,t){const n=i.useRef();i.useEffect((()=>{var e;null===(e=n.current)||void 0===e||e.TakeFocus()}),[e.page]);const r=Boolean(e.showTitle);return i.createElement(xt.Provider,{value:n},i.createElement(Qe,Object.assign({},e,{stylesheet:Pt(),showTitle:r,renderPageListItem:Nt,renderPageListSeparator:Vt,renderPageAnimation:Gt})))}));function Gt(e){let t=Rt.None;"up"==e.direction?t=Rt.Up:"down"==e.direction&&(t=Rt.Down);let n=(r=Pt(),(o=t)==Rt.Left?r.Left:o==Rt.Right?r.Right:o==Rt.Up?r.Up:o==Rt.Down?r.Down:"");var r,o;return i.createElement(Bt,{childrenKey:e.activePage.identifier,childrenClasses:Ot(Pt(),Pt().ContentTransition),directionClass:n,animate:t!=Rt.None},e.children)}},39884:(e,t,n)=>{"use strict";n.d(t,{T:()=>o});var r=n(33940),i=n(89526);function o(e){const{component:t,fallback:n,componentRef:o}=e,a=(0,r._T)(e,["component","fallback","componentRef"]),[[s,l]]=i.useState([t,n]),c=null!=s?s:l;return i.createElement(c,Object.assign(Object.assign({},a),{ref:o}))}},17547:(e,t,n)=>{"use strict";n.d(t,{SV:()=>a});var r=n(33940),i=n(89526),o=n(4306);class a extends i.Component{constructor(e){super(e),this.state={},this.state.lastErrorKey=e.errorKey}static InstallErrorReportingStore(e){this.sm_ErrorReportingStore=e}componentDidCatch(e,t){const n=a.sm_ErrorReportingStore;n?n.ReportError(e).then((e=>e&&this.setState({identifierHash:e.identifierHash}))):console.warn("No ErrorReportingStore - use ErrorReportingStore().Init() to configure error reporting to server"),this.setState({error:{error:e,info:t},lastErrorKey:this.props.errorKey})}Reset(){this.setState({error:null})}render(){const{children:e,fallback:t,errorKey:n}=this.props,{error:r,identifierHash:o,lastErrorKey:c}=this.state;return r&&n==c?void 0!==t?"function"==typeof t?t(r.error):t:a.sm_ErrorReportingStore&&a.sm_ErrorReportingStore.reporting_enabled?i.createElement(l,{error:r,identifierHash:o,store:a.sm_ErrorReportingStore,onRefresh:this.Reset}):i.createElement(s,{error:r,onDismiss:this.Reset}):e||null}}(0,r.gn)([o.ak],a.prototype,"Reset",null);const s=({error:e,onDismiss:t})=>{let n=e.error?e.error.stack:"Stack missing",r=e.info?e.info.componentStack:"",o=e.error&&e.error.message||"unknown error";return i.createElement(c,null,i.createElement(d,null,'Error: "',o,'"'),"   ",i.createElement("span",{style:{textDecoration:"underline",cursor:"pointer"},onClick:t},"(x) Dismiss"),i.createElement("br",null),i.createElement(u,null,n),i.createElement(u,null,"The error occurred while rendering:",r))},l=e=>{const{error:t,onRefresh:n,identifierHash:r,store:o}=e,a=t.error&&t.error.message||"unknown error",s=`${o.product}_${o.version}_${r}`;return i.createElement(c,null,i.createElement(d,null,"Something went wrong while displaying this content. ",i.createElement("span",{style:{textDecoration:"underline",cursor:"pointer"},onClick:n},"Refresh")),i.createElement(u,null,"Error Reference: ",s),i.createElement(u,null,a))},c=({children:e})=>i.createElement("div",{style:{overflow:"auto",marginLeft:"15px",color:"white",fontSize:"16px",userSelect:"auto",backgroundColor:"black"},className:"ErrorBoundary"},e),d=({children:e})=>i.createElement("h1",{style:{fontSize:"20px",display:"inline-block",marginTop:"15px",userSelect:"auto"}},e),u=({children:e})=>i.createElement("pre",{style:{marginTop:"15px",opacity:.7,userSelect:"auto"}},e)},87338:(e,t,n)=>{"use strict";n.d(t,{u:()=>r});const r=n(89526).createContext({bCanUseLink:!1})},16826:(e,t,n)=>{"use strict";n.d(t,{$nC:()=>a,Hz5:()=>c,RCC:()=>m,Tvf:()=>u,aeH:()=>o,dQJ:()=>d,tkI:()=>l,vVQ:()=>s});var r=n(33940),i=n(89526);n(86283),n(19634);function o(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M0 11C0 9.89543 0.895431 9 2 9H34C35.1046 9 36 9.89543 36 11V24C36 25.6569 34.6569 27 33 27H3C1.34315 27 0 25.6569 0 24V11ZM33 16C33 16.5523 32.5523 17 32 17C31.4477 17 31 16.5523 31 16C31 15.4477 31.4477 15 32 15C32.5523 15 33 15.4477 33 16ZM32 13C32.5523 13 33 12.5523 33 12C33 11.4477 32.5523 11 32 11C31.4477 11 31 11.4477 31 12C31 12.5523 31.4477 13 32 13ZM35 14C35 14.5523 34.5523 15 34 15C33.4477 15 33 14.5523 33 14C33 13.4477 33.4477 13 34 13C34.5523 13 35 13.4477 35 14ZM30 15C30.5523 15 31 14.5523 31 14C31 13.4477 30.5523 13 30 13C29.4477 13 29 13.4477 29 14C29 14.5523 29.4477 15 30 15ZM6 14C6 15.1046 5.10457 16 4 16C2.89543 16 2 15.1046 2 14C2 12.8954 2.89543 12 4 12C5.10457 12 6 12.8954 6 14ZM2.5 21C2.22386 21 2 21.2239 2 21.5V24.5C2 24.7761 2.22386 25 2.5 25H5.5C5.77614 25 6 24.7761 6 24.5V21.5C6 21.2239 5.77614 21 5.5 21H2.5ZM30 21.5C30 21.2239 30.2239 21 30.5 21H33.5C33.7761 21 34 21.2239 34 21.5V24.5C34 24.7761 33.7761 25 33.5 25H30.5C30.2239 25 30 24.7761 30 24.5V21.5ZM28 11H8V25H28V11Z"}))}function a(e){const{direction:t}=e,n=(0,r._T)(e,["direction"]);switch(t){case"up":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M17.98 10.23L3.20996 25H32.75L17.98 10.23Z",fill:"currentColor"}));case"down":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M17.98 26.54L3.20996 11.77H32.75L17.98 26.54Z",fill:"currentColor"}));case"left":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M9.82497 18.385L24.595 3.61499L24.595 33.155L9.82497 18.385Z",fill:"currentColor"}));case"right":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M26.135 18.385L11.365 33.155L11.365 3.61503L26.135 18.385Z",fill:"currentColor"}))}}function s(e){const{direction:t}=e;(0,r._T)(e,["direction"]);switch(t){case"up":case"down":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fill:"currentColor",d:"M31 15.6394L18.0204 3L5 15.6394L8.60376 19.1432L18.0204 10.0076L27.4166 19.1432L31 15.6394ZM27.3962 33L18.0204 23.8644L8.62412 33L5 29.4962L18.0204 16.8568L31 29.4962L27.3962 33Z"}));case"left":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{d:"M14.23 30.75L1.45996 18L14.23 5.20999L17.77 8.74999L8.53996 18L17.77 27.23L14.23 30.75ZM31.77 27.21L22.54 18L31.77 8.76999L28.23 5.20999L15.46 18L28.23 30.75L31.77 27.21Z",fill:"currentColor"}));case"right":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{d:"M19 30.75L31.77 18L19 5.20999L15.46 8.74999L24.69 18L15.46 27.23L19 30.75ZM1.46002 27.21L10.69 18L1.46002 8.76999L5.00002 5.20999L17.77 18L5.00002 30.75L1.46002 27.21Z",fill:"currentColor"}))}}function l(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.66645 5.52796C12.1332 3.87973 15.0333 3 18 3C19.9698 3 21.9204 3.38799 23.7403 4.14181C25.5601 4.89563 27.2137 6.00052 28.6066 7.3934C29.9995 8.78628 31.1044 10.4399 31.8582 12.2597C32.612 14.0796 33 16.0302 33 18C33 20.9667 32.1203 23.8668 30.472 26.3336C28.8238 28.8003 26.4811 30.7229 23.7403 31.8582C20.9994 32.9935 17.9834 33.2906 15.0737 32.7118C12.1639 32.133 9.49119 30.7044 7.3934 28.6066C5.29562 26.5088 3.86701 23.8361 3.28823 20.9264C2.70945 18.0166 3.0065 15.0006 4.14181 12.2597C5.27713 9.51886 7.19972 7.17618 9.66645 5.52796ZM9.5056 13.3333C9.17595 13.8266 9.00001 14.4067 9.00001 15C9.00001 15.7956 9.31608 16.5587 9.87869 17.1213C10.4413 17.6839 11.2044 18 12 18C12.5934 18 13.1734 17.8241 13.6667 17.4944C14.1601 17.1648 14.5446 16.6962 14.7716 16.1481C14.9987 15.5999 15.0581 14.9967 14.9424 14.4147C14.8266 13.8328 14.5409 13.2982 14.1213 12.8787C13.7018 12.4591 13.1672 12.1734 12.5853 12.0576C12.0033 11.9419 11.4001 12.0013 10.852 12.2284C10.3038 12.4554 9.83524 12.8399 9.5056 13.3333ZM22.3333 17.4944C22.8266 17.8241 23.4067 18 24 18C24.7957 18 25.5587 17.6839 26.1213 17.1213C26.6839 16.5587 27 15.7956 27 15C27 14.4067 26.8241 13.8266 26.4944 13.3333C26.1648 12.8399 25.6962 12.4554 25.1481 12.2284C24.5999 12.0013 23.9967 11.9419 23.4147 12.0576C22.8328 12.1734 22.2982 12.4591 21.8787 12.8787C21.4591 13.2982 21.1734 13.8328 21.0576 14.4147C20.9419 14.9967 21.0013 15.5999 21.2284 16.1481C21.4554 16.6962 21.8399 17.1648 22.3333 17.4944ZM23 22C23 23.3261 22.4732 24.5979 21.5355 25.5355C20.5979 26.4732 19.3261 27 18 27C16.6739 27 15.4021 26.4732 14.4645 25.5355C13.5268 24.5979 13 23.3261 13 22H23Z",fill:"currentColor"}))}function c(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.73 28.34C15.6223 29.3235 18.732 29.4785 21.7078 28.7876C24.6836 28.0966 27.4069 26.5873 29.57 24.43L36 18L29.57 11.57C28 10 26.5 9 23.94 7.94C20.9843 6.77796 17.7541 6.50244 14.6444 7.14712C11.5346 7.7918 8.68012 9.32875 6.43 11.57L0 18L6.43 24.43C8.10419 26.1042 10.2596 27.5 12.73 28.34ZM18 25C21.866 25 25 21.866 25 18C25 14.134 21.866 11 18 11C14.134 11 11 14.134 11 18C11 21.866 14.134 25 18 25Z",fill:"currentColor"}))}function d(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{d:"M29.57 11.57L24.82 16.32C24.9485 16.8705 25.0089 17.4347 25 18C25 19.8565 24.2625 21.637 22.9497 22.9497C21.637 24.2625 19.8565 25 18 25C17.423 24.9983 16.8486 24.9244 16.29 24.78L12.73 28.34C15.6223 29.3235 18.732 29.4785 21.7078 28.7876C24.6836 28.0966 27.4069 26.5873 29.57 24.43L36 18L29.57 11.57Z",fill:"currentColor"}),i.createElement("path",{d:"M28.94 2.94L23.94 7.94C20.9843 6.77797 17.7541 6.50244 14.6444 7.14712C11.5346 7.79181 8.68012 9.32876 6.43 11.57L0 18L6.43 24.43C6.6 24.6 6.79 24.75 6.97 24.91L3.44 28.44L5.56 30.56L31.06 5.06L28.94 2.94ZM11 18C11.0002 16.8706 11.2736 15.7581 11.7969 14.7573C12.3203 13.7565 13.078 12.8971 14.0054 12.2527C14.9328 11.6082 16.0024 11.1977 17.1229 11.0561C18.2434 10.9146 19.3815 11.0463 20.44 11.44L11.44 20.44C11.1493 19.6593 11.0003 18.833 11 18Z",fill:"currentColor"}))}function u(e){return i.createElement("svg",{width:"5",height:"19",viewBox:"0 0 5 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M5 0H3C1.34315 0 0 1.34315 0 3V16C0 17.6569 1.34315 19 3 19H5V0Z",fill:"white"}))}function m(e){return i.createElement("svg",{width:"5",height:"19",viewBox:"0 0 5 19",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M0 0H2C3.65685 0 5 1.34315 5 3V16C5 17.6569 3.65685 19 2 19H0V0Z",fill:"white"}))}},68493:(e,t,n)=>{"use strict";n.d(t,{t:()=>S,U:()=>E});var r=n(33940),i=n(89526),o=n(73070),a=n(17547),s=n(37494),l=n(73961),c=n(32765);function d(e){const{ModalManager:t}=e,[n,r]=i.useState(void 0),[o,a]=i.useState(!0),s=i.useRef(0),l=i.useCallback((()=>{a(!0)}),[]);i.useEffect((()=>t.RegisterMeasureModalCallback(l).Unregister),[t,l]),i.useLayoutEffect((()=>{n||(r(t.TakeMeasureModalRequest()),a(!1))}),[t,n,o]);const c=i.useCallback((e=>{s.current++,r((t=>t===e?void 0:t))}),[]);return n?i.createElement(u,{key:s.current,onMeasureComplete:c,request:n}):null}function u(e){const[t,n]=i.useState(),r=(0,o.Wy)().ownerWindow;return i.useLayoutEffect((()=>{const e=r.document.body,t=r.document.createElement("div");return t.style.position="absolute",t.style.visibility="hidden",e.appendChild(t),n(t),()=>{e.removeChild(t)}}),[r]),t?l.createPortal(i.createElement(m,Object.assign({},e,{elContainer:t})),t):null}function m(e){const{elContainer:t,onMeasureComplete:n,request:o}=e;return i.useEffect((()=>{let e=!1;const i=t=>{e||(o.fnResults(t),n(o),e=!0)};return function(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){t&&(yield t);let n=document;c.De.IN_STEAMUI&&n.fonts&&(yield n.fonts.ready);const r=e.getBoundingClientRect();return{height:Math.ceil(r.height),width:Math.ceil(r.width)}}))}(t,o.promiseContentReady).then(i),()=>i(void 0)}),[t,n,o]),i.createElement(a.SV,null,o.rctToMeasure)}var h=n(19304),p=n(4306),_=n(84168),g=n(52321),f=n(67122);function v(e){i.useEffect((()=>{if(e)return document.body.classList.add(f.BodyNoScrollDialog),()=>document.body.classList.remove(f.BodyNoScrollDialog)}),[e])}function C(e,t){return(0,p.xK)((n=>{if(!n||!t)return;const r=n.ownerDocument.defaultView;return g.Zp.RegisterModalManager(e,r)}),[e])}function S(e){let{ModalManager:t,bRegisterModalManager:n=!0,DialogWrapper:a,style:s}=e,l=(0,r._T)(e,["ModalManager","bRegisterModalManager","DialogWrapper","style"]);const c=t.modals,u=c&&!!c.length,m=t.active_modal;v(u),function(e){const t=(0,o.Wy)().ownerWindow,n=(0,p.NW)(),r=i.useCallback((()=>{var e;(null===(e=null==t?void 0:t.SteamClient)||void 0===e?void 0:e.Window)&&t.SteamClient.Window.BringToFront()}),[t]);i.useEffect((()=>e.RegisterOverlay(n)),[e,n]),i.useEffect((()=>e.RegisterOnModalShownCallback(r).Unregister),[e,r])}(t);const g=C(t,n);let f=null;return c&&c.length?f=c.map((e=>e instanceof _.kv?i.createElement(b,{key:e.key,modal:e,active:e==m,Component:null!=a?a:w}):e instanceof _.QA?i.createElement(D,{key:e.key,modal:e,active:e==m}):void 0)):s=Object.assign(Object.assign({},s),{display:"none"}),i.createElement(i.Fragment,null,i.createElement("div",Object.assign({},l,{style:s,ref:g,className:(0,h.Z)(l.className,"FullModalOverlay")}),i.createElement("div",{className:"ModalOverlayContent ModalOverlayBackground"}),f),i.createElement(d,{ModalManager:t}),i.createElement(y,{ModalManager:t}))}function E(e){const{ModalManager:t,bRegisterModalManager:n=!0}=e,r=C(t,n);return i.createElement(i.Fragment,null,i.createElement("div",{style:{display:"none"},ref:r}),i.createElement(d,{ModalManager:t}),i.createElement(y,{ModalManager:t}))}function D(e){const{modal:t,active:n}=e;return i.useEffect((()=>n?(t.SetActive(n),()=>t.SetActive(!1)):void 0),[t,n]),i.createElement(a.SV,null,i.createElement("div",{className:(0,h.Z)("ModalOverlayContent",n?"active":"inactive"),ref:t.RefModalElement}))}function b(e){const{modal:t,active:n,Component:r}=e,o=(0,p.NW)();return(0,p.Qg)(t.ModalUpdatedCallback,o),i.createElement(a.SV,null,i.createElement(r,{className:(0,h.Z)("ModalOverlayContent",n?"active":"inactive"),active:n,modalKey:t.key},t.element))}const w=i.forwardRef((function(e,t){const{className:n,active:r,children:o}=e,a=i.useRef();i.useEffect((()=>{const e=a.current;if(e&&r){const t=e.firstChild;t&&t.focus&&t.focus()}}),[r]);const s=(0,p.BE)(a,t);return i.createElement("div",{ref:s,className:n,tabIndex:-1},o)}));function y(e){const{ModalManager:t}=e,n=(0,p.NW)();return(0,p.Qg)(t.LegacyPopupModalCountChangedCallbacks,n),i.createElement(i.Fragment,null,t.legacy_popup_modals.map((e=>i.createElement(s.l6,{key:e.key,Modal:e}))))}},2647:(e,t,n)=>{"use strict";n.d(t,{On:()=>S,Pv:()=>R,uH:()=>O,RG:()=>k,JX:()=>F,BL:()=>s.BL,e1:()=>g,D2:()=>E,Yy:()=>l});var r=n(89526),i=n(57605),o=n(73961),a=n(51594),s=n(52321);function l(e){const{active:t,children:n}=e,i=(0,a.$C)()||(0,s.BL)(window),l=(0,a.eR)(),[c,d]=r.useState(),[u,m]=r.useState(!1),h=r.useRef();if(r.useLayoutEffect((()=>{if(t){const e=i.ShowPortalModal(),t=e.OnElementReadyCallbacks.Register(d),n=e.OnModalActiveCallbacks.Register(m);return h.current=e.key,()=>{d(null),m(!1),e.Close(),t.Unregister(),n.Unregister()}}}),[i,t]),!c||!t)return null;let p=n;return l&&(p=r.createElement(l,{active:u,modalKey:h.current},n)),o.createPortal(p,c)}var c=n(16383),d=n(17547),u=n(701),m=n(60161),h=n(39884);const p=(0,c.Yt)("ModalPresentationContext",(()=>r.createContext({}))),_=()=>r.useContext(p);function g(e){const t=_();return r.createElement(h.T,Object.assign({component:t.ModalPosition,fallback:f},e))}function f(e){let t,n={};e.onEscKeypress&&(n.tabIndex=0,n.onKeyDown=t=>{27==t.keyCode&&e.onEscKeypress()},n.onMouseDown=t=>{t.currentTarget!==t.target||e.bDisableBackgroundDismiss||e.onEscKeypress()},t=e=>{e&&(m.ni(e,e.ownerDocument.activeElement)||e.focus())});let i=["ModalPosition"];e.className&&i.push(e.className),e.bDestructiveWarning&&i.push("Destructive");const o=e.renderContent||(e=>r.createElement("div",Object.assign({},e))),a=r.createElement(r.Fragment,null,!e.hideTopBar&&r.createElement("div",{className:"ModalPosition_TopBar"}),e.onEscKeypress&&!e.bHideCloseIcon&&r.createElement("div",{className:"ModalPosition_Dismiss"},r.createElement("div",{className:"closeButton",onClick:e.onEscKeypress},r.createElement(u.pVO,null))),r.createElement(d.SV,null,e.children));return r.createElement("div",Object.assign({className:i.join(" ")},n,{ref:t}),o({className:"ModalPosition_Content",children:a}))}n(86777),n(69159),n(92990);var v=n(4306),C=(n(73070),n(32765));const S=({active:e,onDismiss:t,className:n,modalClassName:o,children:a})=>r.createElement(l,{active:e},r.createElement(g,{onEscKeypress:t,className:o},r.createElement(i.VY,{className:n},a)));function E(e){const{className:t,children:n}=e;return r.createElement(l,{active:!0},r.createElement("div",{className:t},n))}n(68493);var D=n(44026),b=n(17589),w=n(90699),y=n(83145),I=n(67122);function R(e){const{children:t,navID:n,closeModal:i}=e,o=r.createRef(),a=(0,y.L)(),s=e=>(e.stopPropagation(),e.preventDefault(),!0);return(0,C.id)()&&!C.De.IN_STEAMUI?r.createElement(D.Fe,{navID:n,NavigationManager:a,navTreeRef:o,onCancelButton:i,className:I.GamepadOnlyModalWrapper},r.createElement(b.O,null,r.createElement(w.s,{className:I.GamepadOnlyPanelWrapper,onGamepadDirection:s,focusableIfNoChildren:!0},t))):r.createElement(r.Fragment,null,t)}var M=n(33940),T=n(88464),A=n(14826),L=n(23801),B=n(19304);const k=(0,T.Pi)((e=>{const{onCancel:t,closeModal:n,bOKDisabled:o,onOK:a}=e,s=(0,C.id)();(0,L.X)(n||t,`Either closeModal or onCancel should be passed to GenericDialog. Classes: ${e.className} ${e.modalClassName}`);const l=r.useCallback((()=>{t&&t()||n&&n()}),[t,n]),c=r.useCallback((()=>(0,M.mG)(void 0,void 0,void 0,(function*(){o||(a&&(yield a()),n&&n())}))),[o,a,n]);return r.createElement(g,{onEscKeypress:l,className:e.modalClassName,bDestructiveWarning:e.bDestructiveWarning,bDisableBackgroundDismiss:e.bDisableBackgroundDismiss,bHideCloseIcon:e.bHideCloseIcon},r.createElement(i.oX,{classNameContent:(0,B.Z)("GenericConfirmDialog",e.bAllowFullSize&&"DialogContentFullSize",e.className),onSubmit:c,bCenterVertically:!s},e.children))}));let O=class extends r.Component{Cancel(){this.props.onCancel&&this.props.onCancel(),this.props.closeModal&&this.props.closeModal()}render(){const e=this.props,{strTitle:t,strDescription:n,strOKButtonText:o,strCancelButtonText:a,strMiddleButtonText:s,onMiddleButton:l,bAlertDialog:c,children:d}=e,u=(0,M._T)(e,["strTitle","strDescription","strOKButtonText","strCancelButtonText","strMiddleButtonText","onMiddleButton","bAlertDialog","children"]),m=o||(0,A.Xx)("#Button_Close");let h=r.createElement(i.o9,{bOKDisabled:this.props.bOKDisabled,bCancelDisabled:this.props.bCancelDisabled,strOKText:o,onCancel:this.Cancel,strCancelText:a});return c?h=r.createElement(i.KM,null,m):l&&(h=r.createElement(i.$0,{bOKDisabled:this.props.bOKDisabled,bCancelDisabled:this.props.bCancelDisabled,strOKText:o,onCancel:this.Cancel,strCancelText:a,onUpdate:()=>{l(),this.props.closeModal&&this.props.closeModal()},strUpdateText:s,bUpdateDisabled:this.props.bMiddleDisabled})),r.createElement(k,Object.assign({},u),r.createElement(i.h4,null," ",t||r.createElement(r.Fragment,null," ")," "),r.createElement(i.V5,{onCancelButton:this.Cancel},r.createElement(i.Ac,null,n,d),r.createElement(i.$_,null,h)))}};(0,M.gn)([v.ak],O.prototype,"Cancel",null),O=(0,M.gn)([T.Pi],O);let F=class extends r.Component{render(){const e=Object.assign({strTitle:(0,A.Xx)("#Error_FailureNotice"),strDescription:(0,A.Xx)("#Error_GenericFailureDescription"),bAlertDialog:!0,bDestructiveWarning:!0,onOK:()=>{},onCancel:()=>{}},this.props);return r.createElement(O,Object.assign({},e))}};F=(0,M.gn)([T.Pi],F)},37494:(e,t,n)=>{"use strict";n.d(t,{l6:()=>m,lc:()=>h});var r=n(89526),i=n(73961),o=n(73070),a=n(86777),s=n(69159),l=n(84168),c=n(51594),d=n(92990),u=n(32765);n(2647);function m(e){const{Modal:t}=e,{name:n,modalProps:l,options:m}=t,h=(0,o.Wy)().ownerWindow,{popup:p,element:_}=(0,a.B)(n,{title:l.strTitle,html_class:"client_chat_frame fullheight ModalDialogPopup LegacyPopup "+(l.className||""),body_class:"fullheight ModalDialogBody",popup_class:"fullheight popup_chat_frame",owner_window:void 0,replace_existing_popup:!0,target_browser:l.browserContext,availscreenwidth:h.screen.availWidth,availscreenheight:h.screen.availHeight,bModal:l.bHideMainWindowForPopouts},{updateParamsBeforeShow:e=>function(e,t,n,r){var i,o;let a,s,l,c=t.popupWidth||500,d=t.popupHeight||400;if(u.De.IN_CLIENT&&(null===(o=null===(i=null==r?void 0:r.SteamClient)||void 0===i?void 0:i.Browser)||void 0===o?void 0:o.GetBrowserID))l=r.SteamClient.Browser.GetBrowserID();else{let e=r.screen;a=(e.availWidth-c)/2,s=(e.availHeight-d)/2;let t=e;void 0!==t.availLeft&&void 0!==t.availTop&&(a+=t.availLeft,s+=t.availTop)}return Object.assign(Object.assign({},e),{dimensions:{width:c,height:d,left:a,top:s},center_on_window:n.bCenterOnWindow?r:void 0,window_opener_id:l})}(e,l,m,h),onClose:()=>l.fnOnClose&&l.fnOnClose()}),g=null==m?void 0:m.bHideActions,f="number"==typeof(null==m?void 0:m.nDragAreaHeight)?{height:m.nDragAreaHeight}:void 0;return _?i.createPortal(r.createElement(o.Rt,{ownerWindow:p},r.createElement("div",{className:"PopupFullWindow",onContextMenu:s.T},r.createElement(d.T,{hideMinMax:!0,popup:p,hideActions:g,style:f}),r.createElement(c.Y0,{browserInfo:l.browserContext,bCenterPopupsOnWindow:m.bCenterOnWindow},t.element))),_):null}class h extends l.kv{constructor(e,t,n,r){super(t),this.m_strName=e,this.m_modalProps=n,this.m_options=r}get name(){return this.m_strName}get modalProps(){return this.m_modalProps}get options(){return this.m_options}}},84168:(e,t,n)=>{"use strict";n.d(t,{QA:()=>l,kv:()=>s});var r=n(33940),i=n(26464),o=n(85246);class a{constructor(){this.key="Modal_"+a.sm_lastKey++}}a.sm_lastKey=0;class s extends a{constructor(e){super(),this.ModalUpdatedCallback=new o.pB,this.element=e}UpdateModal(e){this.element=e,this.ModalUpdatedCallback.Dispatch()}}class l extends a{constructor(){super(),this.m_OnElementReadyCallbacks=new o.pB,this.m_OnActiveModalCallbacks=new o.pB}get OnElementReadyCallbacks(){return this.m_OnElementReadyCallbacks}get OnModalActiveCallbacks(){return this.m_OnActiveModalCallbacks}RefModalElement(e){this.m_OnElementReadyCallbacks.Dispatch(e)}SetActive(e){this.m_OnActiveModalCallbacks.Dispatch(e)}}(0,r.gn)([i.a],l.prototype,"RefModalElement",null)},51594:(e,t,n)=>{"use strict";n.d(t,{Y0:()=>I,Yu:()=>T,eR:()=>M,$C:()=>R});var r=n(33940),i=n(89526),o=n(73961),a=n(74082),s=n(68493),l=n(52321),c=n(40103),d=n(30837),u=n(73070),m=n(86777),h=n(69159),p=n(93765),_=n.n(p),g=n(17547),f=n(60161),v=n(4306);function C(e){const{manager:t,ownerWindow:n,browserInfo:r,bSuppressMouseOverlay:a}=e,s=(0,v.NW)(),l=n.document.body;(0,v.Qg)(t.OnMenusChanged,s);const c=!a&&t.BShouldRenderMouseOverlay(),d=t.GetAllMenus();return i.createElement(i.Fragment,null,c&&o.createPortal(i.createElement(h.Vc,null),l),d.map((e=>i.createElement(g.SV,{key:e.key},i.createElement(S,{instance:e,elRoot:l,browserInfo:r})))))}function S(e){var t;const{instance:n,elRoot:r,browserInfo:o,children:a}=e,s=R(),l=i.useRef(void 0);if(void 0===l.current)if(r){const e=r.ownerDocument.defaultView;l.current=(n.options.bForcePopup||e.innerWidth<400||s.BOnlyPopups())&&!!(null===(t=e.SteamClient)||void 0===t?void 0:t.Window)}else l.current=!0;const c=i.useMemo((()=>({instance:n,styles:_(),presentation:0})),[n]),d=a||n.ReactElement;return i.createElement(h.Yr.Provider,{value:c},l.current?i.createElement(D,{instance:n,browserInfo:o,children:d}):i.createElement(E,{instance:n,elRoot:r,children:d}))}function E(e){const{instance:t,elRoot:n,children:r}=e;return o.createPortal(i.createElement(h.Wn,Object.assign({},t.position),r),n)}function D(e){const{instance:t,browserInfo:n,children:r}=e,a=i.useRef(),s=(0,u.Wy)().ownerWindow,l=s.SteamClient.Browser.GetBrowserID(),c=i.useCallback((e=>{const{options:n,position:r}=t,i=r.element;if(n.bScreenCoordinates)e.dimensions={left:r.clientX,top:r.clientY,width:2,height:1};else{let t=f.sH(s,i.getBoundingClientRect());e.dimensions={left:t.right,top:t.top,width:2,height:1},e.availscreenwidth=s.screen.availWidth,e.availscreenheight=s.screen.availHeight}return e}),[s,t]),{popupObj:d,element:p}=(0,m.B)("contextmenu_"+t.key,{title:t.options.title||"Menu",html_class:_().ContextMenuPopup+" client_chat_frame",body_class:"ContextMenuPopupBody",replace_existing_popup:!1,target_browser:n,window_opener_id:l,bHideOnClose:!0,eCreationFlags:(t.options.bStandalone?u.eL.StandaloneContextMenu:u.eL.PopupContextMenu)|(t.options.bCreateHidden?u.eL.Hidden:0)|(t.options.bAlwaysOnTop?u.eL.AlwaysOnTop:0)},{updateParamsBeforeShow:c});return(0,i.useEffect)((()=>{d&&(t.visible?(a.current&&a.current.PositionMenu(),t.options.bRetainOnHide?d.window.SteamClient.Window.BringToFront():d.window.SteamClient.Window.SetForegroundWindow(),t.TakeFocus()):t.options.bRetainOnHide&&window.setTimeout((()=>{d.window.SteamClient.Window.HideWindow()}),30))}),[d,t,t.visible]),T(d.window),i.useLayoutEffect((()=>{t.SetPopup(d)}),[t,d]),p?o.createPortal(i.createElement(h.Wn,Object.assign({ref:a},t.position,{parentWin:s,popup:d}),r),p):null}const b=i.createContext(null);function w(e){const{ActiveMenuComponent:t,refContextMenuManager:n,browserInfo:r,bRegisterMenuManager:o=!0,children:a}=e,s=(0,u.Wy)(),l=(null==s?void 0:s.ownerWindow)||window,m=i.useRef();m.current||(m.current=new d.u),i.useLayoutEffect((()=>{if(o)return c.Oo.SetMenuManager(l,m.current),()=>c.Oo.SetMenuManager(l,void 0)}),[l,o]),i.useLayoutEffect((()=>((0,v.k$)(n,m.current),()=>(0,v.k$)(n,void 0))),[n]);const h=t||C;return i.createElement(b.Provider,{value:m.current},i.createElement(h,{manager:m.current,ownerWindow:l,browserInfo:r}),a)}const y=i.createContext({}),I=i.memo((function(e){const{children:t,bRenderOverlayAtRoot:n,refModalManager:c,DialogWrapper:d,ContextMenuComponent:u,refContextMenuManager:m,browserInfo:h,bUsePopups:p,bOnlyPopups:_,bCenterPopupsOnWindow:f,bRegisterManagersWithWindow:v=!0}=e,C=(0,r._T)(e,["children","bRenderOverlayAtRoot","refModalManager","DialogWrapper","ContextMenuComponent","refContextMenuManager","browserInfo","bUsePopups","bOnlyPopups","bCenterPopupsOnWindow","bRegisterManagersWithWindow"]),S=i.useRef();S.current||(S.current=new l.pG);let E=i.createElement(s.t,Object.assign({},C,{DialogWrapper:d,ModalManager:S.current,bRegisterModalManager:v}));e.bOnlyPopups?E=i.createElement(s.U,{ModalManager:S.current,bRegisterModalManager:v}):e.bRenderOverlayAtRoot&&(E=o.createPortal(E,document.body)),i.useEffect((()=>((0,a.k$)(c,S.current),()=>(0,a.k$)(c,null))),[c]),i.useEffect((()=>{void 0!==p&&S.current.SetUsePopups(p),void 0!==f&&S.current.SetCenterPopupsOnWindow(f),void 0!==_&&S.current.SetOnlyPopups(_)}),[p,f,_]);const D=i.useMemo((()=>({ModalManager:S.current,DialogWrapper:d})),[d]);return i.createElement(y.Provider,{value:D},i.createElement(w,{ActiveMenuComponent:u,refContextMenuManager:m,browserInfo:h,bRegisterMenuManager:v},i.createElement(g.SV,null,E),e.children))}));function R(){return i.useContext(y).ModalManager}function M(){return i.useContext(y).DialogWrapper}function T(e){const t=R();i.useEffect((()=>{if(e)return l.Zp.RegisterModalManager(t,e)}),[e,t])}},52321:(e,t,n)=>{"use strict";n.d(t,{BL:()=>u,Zp:()=>d,pG:()=>l});n(89526);var r=n(16383),i=n(37494),o=n(23801),a=n(85246),s=(n(4306),n(84168));n(51594);class l{constructor(){this.m_bUsePopups=!0,this.m_bOnlyPopups=!1,this.m_bCenterPopupsOnWindow=!1,this.m_rgModals=[],this.m_OnModalCountChangedCallbacks=new a.pB,this.m_OnModalShownCallbacks=new a.pB,this.m_OnModalHiddenCallbacks=new a.pB,this.m_cMountedOverlays=0,this.m_rgMeasureModalRequests=[],this.m_OnMeasureModal=new a.pB,this.m_rgLegacyPopupModals=[],this.m_OnLegacyPopupModalCountChanged=new a.pB}get ModalCountChangedCallbacks(){return this.m_OnModalCountChangedCallbacks}get LegacyPopupModalCountChangedCallbacks(){return this.m_OnLegacyPopupModalCountChanged}RegisterOnModalShownCallback(e){return this.m_OnModalShownCallbacks.Register(e)}RegisterOnModalHiddenCallback(e){return this.m_OnModalHiddenCallbacks.Register(e)}RegisterMeasureModalCallback(e){return this.m_OnMeasureModal.Register(e)}TakeMeasureModalRequest(){return this.m_rgMeasureModalRequests.length?this.m_rgMeasureModalRequests.shift():void 0}RegisterOverlay(e){(0,o.X)(0==this.m_cMountedOverlays,"Duplicate modal DialogOverlay; modals will appear in both"),this.m_cMountedOverlays++;const t=this.m_OnModalCountChangedCallbacks.Register(e);return()=>{this.m_cMountedOverlays--,t.Unregister()}}OnModalCountChanged(e){"show"==e&&0==this.m_cMountedOverlays&&window.setTimeout((()=>{(0,o.X)(this.m_cMountedOverlays>0,"Modal was shown but ModalManager has no associated DialogOverlay")}),50),this.m_OnModalCountChangedCallbacks.Dispatch(this.m_rgModals.length),"show"==e?this.m_OnModalShownCallbacks.Dispatch(this.m_rgModals.length):"hide"==e&&this.m_OnModalHiddenCallbacks.Dispatch(this.m_rgModals.length)}get modals(){return this.m_rgModals}get active_modal(){return this.m_rgModals.length?this.m_rgModals[this.m_rgModals.length-1]:void 0}ShowModal(e){return this.ShowModalInternal(e)}RemoveModal(e){let t=this.m_rgModals.indexOf(e);-1!=t&&this.m_rgModals.splice(t,1),this.OnModalCountChanged("hide")}ShowModalInternal(e){(0,o.X)(!this.m_bOnlyPopups,"Attempting to show modal in popup-only modal manager; will not display.");const t=new s.kv(e);this.m_rgModals.push(t);const n={Close:()=>{this.RemoveModal(t)},Update:e=>{t.UpdateModal(e)}};return this.OnModalCountChanged("show"),n}ShowPortalModal(){(0,o.X)(!this.m_bOnlyPopups,"Attempting to show modal in popup-only modal manager; will not display.");const e=new s.QA;return this.m_rgModals.push(e),this.OnModalCountChanged("show"),{key:e.key,Close:()=>{this.RemoveModal(e)},OnElementReadyCallbacks:e.OnElementReadyCallbacks,OnModalActiveCallbacks:e.OnModalActiveCallbacks}}SetUsePopups(e){this.m_bUsePopups=e}BUsePopups(){return this.m_bUsePopups||this.m_bOnlyPopups}SetOnlyPopups(e){this.m_bOnlyPopups=e}BOnlyPopups(){return this.m_bOnlyPopups}SetCenterPopupsOnWindow(e){this.m_bCenterPopupsOnWindow=e}BCenterPopupsOnWindow(){return this.m_bCenterPopupsOnWindow}RequestModalMeasure(e,t,n){this.m_rgMeasureModalRequests.push({rctToMeasure:e,fnResults:t,promiseContentReady:n}),this.m_OnMeasureModal.Dispatch()}get legacy_popup_modals(){return this.m_rgLegacyPopupModals}ShowLegacyPopupModal(e,t,n,r){const o=()=>{let e=this.m_rgLegacyPopupModals.indexOf(a);-1!=e&&this.m_rgLegacyPopupModals.splice(e,1),this.m_OnLegacyPopupModalCountChanged.Dispatch(this.m_rgLegacyPopupModals.length),n.fnOnClose&&n.fnOnClose()},a=new i.lc(e,t,Object.assign(Object.assign({},n),{fnOnClose:o}),Object.assign({bCenterOnWindow:this.m_bCenterPopupsOnWindow},r));return this.m_rgLegacyPopupModals.push(a),this.m_OnLegacyPopupModalCountChanged.Dispatch(this.m_rgLegacyPopupModals.length),{Close:o,Update:e=>{a.UpdateModal(e)}}}}class c{constructor(){this.m_mapModalManager=new WeakMap}GetModalManager(e){let t=this.m_mapModalManager.get(e);return t||(console.assert(!1,`Early access to modal manager, creating one for ${e.document.title}`),t=new l,this.m_mapModalManager.set(e,t)),t}RegisterModalManager(e,t){(0,o.X)(!this.m_mapModalManager.has(t)||t==window,`Stomping CModalManager for ${t.document.title}!`);const n=this.m_mapModalManager.get(t);return this.m_mapModalManager.set(t,e),()=>{n?this.m_mapModalManager.set(t,n):this.m_mapModalManager.delete(t)}}UnregisterModalManager(e){this.m_mapModalManager.delete(e)}}const d=(0,r.Yt)("ModalManagerFactory",(()=>new c));function u(e){return d.GetModalManager(e)}},57742:(e,t,n)=>{"use strict";n.d(t,{AM:()=>d,BR:()=>u,e1:()=>o.e1,x1:()=>c});var r=n(33940),i=n(89526),o=n(2647),a=n(23801),s=n(14826),l=n(32765);function c(e,t,n){return(0,r.mG)(this,void 0,void 0,(function*(){const l=(0,o.BL)(t),c=(null==n?void 0:n.bForcePopOut)||h(l);(0,a.X)(!(c&&(null==n?void 0:n.bNeverPopOut)),"Conflicting popout options; will ignore bNeverPopOut");const d=!c&&!0===(null==n?void 0:n.bNeverPopOut),p=h(l)||!d&&m(l,t),_=c&&(null==n?void 0:n.popupWidth)&&(null==n?void 0:n.popupHeight);let g;if(p&&!_){const t=i.cloneElement(e,{closeModal:()=>{}});g=yield function(e,t,n){return(0,r.mG)(this,void 0,void 0,(function*(){return new Promise(((r,i)=>{e.RequestModalMeasure(t,r,n)}))}))}(l,t,null==n?void 0:n.promiseRenderComplete)}const f=g&&g.height/t.innerHeight<.9&&g.width/t.innerWidth<.8;if(d||!c&&f)return u(e,t);{const r={strTitle:(null==n?void 0:n.strTitle)||(0,s.Xx)("#Dialog_DefaultWindowTitle"),fnOnClose:null==n?void 0:n.fnOnClose,popupWidth:(null==n?void 0:n.popupWidth)||(null==g?void 0:g.width),popupHeight:(null==n?void 0:n.popupHeight)||(null==g?void 0:g.height),bHideMainWindowForPopouts:null==n?void 0:n.bHideMainWindowForPopouts,className:null==n?void 0:n.className},i={bHideActions:null==n?void 0:n.bHideActionIcons},o=(null==n?void 0:n.browserContext)||t.browserInfo;return u(e,t,r.strTitle,r,o,i)}}))}function d(e,t,n){return(0,r.mG)(this,void 0,void 0,(function*(){return c(e,t,Object.assign({bHideMainWindowForPopouts:!0},n))}))}function u(e,t,n,r,a,s,l){let c,d;const u=e.props.closeModal,p=()=>{d&&d.Close(),u&&u(),(null==r?void 0:r.fnOnClose)&&r.fnOnClose()},_=()=>{c&&c.Close(),p()},g=i.cloneElement(e,{closeModal:_});if(m(l=l||(0,o.BL)(t),t)&&r&&n){if(r.bHideMainWindowForPopouts&&!h(l)){const e=i.createElement(o.e1,{className:"Hidden",onEscKeypress:!g.props.bDisableBackgroundDismiss&&_},i.createElement("div",null));d=l.ShowModal(e)}const e=Object.assign(Object.assign({},r),{fnOnClose:p,browserContext:a});c=l.ShowLegacyPopupModal(n,g,e,s)}else c=l.ShowModal(g);return c}function m(e,t){return e=e||(0,o.BL)(t||window),l.De.USE_POPUPS&&e.BUsePopups()}function h(e){return e.BOnlyPopups&&e.BOnlyPopups()}},701:(e,t,n)=>{"use strict";n.d(t,{$06:()=>q,$gZ:()=>u,BKy:()=>x,BNo:()=>Se,Bh5:()=>he,Cts:()=>ye,Ehc:()=>k,GhU:()=>b,IF0:()=>le,IWH:()=>X,JrY:()=>R,KJh:()=>Ce,KKY:()=>Ne,Lao:()=>U,LjF:()=>Re,Lk$:()=>re,MrB:()=>Q,NP6:()=>P,P7E:()=>f,P9w:()=>j,Q1v:()=>De,SK8:()=>de,SUY:()=>p,SjW:()=>we,Ucz:()=>Y,Uos:()=>B,V7n:()=>H,VR:()=>J,Vgm:()=>oe,WWB:()=>fe,X:()=>C,XBH:()=>Z,YVI:()=>xe,YVR:()=>W,YqJ:()=>N,YtI:()=>h,ZJH:()=>pe,Zrf:()=>d,_GE:()=>ae,c7E:()=>Fe,dCe:()=>Ue,dLw:()=>ge,doA:()=>Me,dzL:()=>I,faS:()=>M,ffh:()=>D,g0p:()=>Ie,gR:()=>V,j7C:()=>Pe,k4K:()=>g,k6n:()=>y,kL2:()=>T,kqV:()=>Ee,ktE:()=>be,lBf:()=>c,lsH:()=>K,mBz:()=>Oe,mKE:()=>A,mKt:()=>ue,miF:()=>ke,nkn:()=>L,opd:()=>Te,pVO:()=>S,pkz:()=>E,r6F:()=>G,ret:()=>m,shV:()=>w,sqQ:()=>Ae,tEX:()=>$,tLe:()=>ne,thP:()=>F,tkI:()=>_,u$$:()=>se,uZu:()=>me,ui7:()=>z,vJ$:()=>_e,vT2:()=>ee,vyu:()=>Ve,wn$:()=>ce,wr9:()=>te,wx$:()=>O,x0L:()=>Be,xg:()=>ve,yRy:()=>v,yTr:()=>Le,yVt:()=>ie,z5E:()=>Ge});var r=n(33940),i=n(89526),o=n(19304),a=n(59743),s=n.n(a),l=n(32765);function c(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 15 23",fill:"none"},e),i.createElement("g",{clipPath:"url(#clip0_3155_4178)"},i.createElement("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M6.9955 11.5L15 3.4955L11.5045 -1.52793e-07L0.00450275 11.5L11.5045 23L15 19.5045L6.9955 11.5Z"})),i.createElement("defs",null,i.createElement("clipPath",{id:"clip0_3155_4178"},i.createElement("rect",{fill:"currentColor",width:"15",height:"23"}))))}function d(e){const t=(0,o.Z)("SVGIcon_Button","SVGIcon_Settings",e.className);return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:t,x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"-305.5 396.5 256 256",enableBackground:"new -305.5 396.5 256 256"},i.createElement("path",{d:"M-232.755,589.942l3.103,2.408c5.78,4.492,11.973,8.18,18.409,10.959l3.581,1.547l2.276,33.783 c0.089,1.33,1.385,2.54,2.715,2.54h48.62c1.355,0,2.745-1.273,2.852-2.621l2.74-33.284l3.602-1.496 c6.406-2.656,12.646-6.262,18.554-10.707l3.137-2.366l30.578,15.009c1.155,0.571,2.924,0.017,3.563-1.087l24.303-42.1 c0.674-1.173,0.265-3.014-0.852-3.785l-27.872-19.309l0.469-3.832c0.495-4.032,0.725-7.395,0.725-10.57 c0-3.129-0.227-6.5-0.687-10.307l-0.469-3.896l28.699-19.253c1.112-0.741,1.509-2.473,0.84-3.627l-24.3-42.104 c-0.657-1.139-2.502-1.727-3.7-1.155l-31.208,14.748l-3.091-2.341c-5.571-4.224-11.466-7.688-17.522-10.306l-3.58-1.548 l-2.34-34.887c-0.089-1.33-1.381-2.536-2.715-2.536h-48.617c-1.355,0-2.74,1.274-2.851,2.626l-2.834,34.371l-3.593,1.501 c-6.082,2.535-12.028,5.924-17.667,10.071l-3.124,2.302l-31.392-15.413c-1.168-0.575-2.924-0.025-3.559,1.074l-24.309,42.107 c-0.678,1.172-0.264,3.014,0.848,3.781l28.068,19.444l-0.524,3.883c-0.592,4.378-0.865,8.018-0.865,11.462 c0,2.988,0.179,6.065,0.55,9.403l0.431,3.853l-28.528,19.125c-1.108,0.742-1.509,2.468-0.84,3.632l24.308,42.1 c0.656,1.142,2.489,1.726,3.7,1.154L-232.755,589.942z M-177.498,560.051c-19.311,0-35.02-15.709-35.02-35.02 s15.709-35.02,35.02-35.02s35.02,15.709,35.02,35.02S-158.188,560.051-177.498,560.051z",fill:"currentColor"}))}function u(){return i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_DownArrowContextMenu","data-name":"Layer 1",viewBox:"0 0 128 128",x:"0px",y:"0px"},i.createElement("polygon",{points:"50 59.49 13.21 22.89 4.74 31.39 50 76.41 95.26 31.39 86.79 22.89 50 59.49"}))}function m(e){return i.createElement("svg",{style:{transform:`rotate(${e.angle}deg)`},version:"1.1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"24.833px",height:"21.917px",viewBox:"0 0 24.833 21.917"},i.createElement("polygon",{points:"12.5,14.873 3.302,5.723 1.185,7.848 12.5,19.103 23.814,7.848 21.697,5.723 "}))}function h(e){let t="SVGIcon_Button SVGIcon_MagnifyingGlass";return e.className&&(t+=` ${e.className}`),i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:t,version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100"},i.createElement("g",{transform:"translate(0,-952.36218)"},i.createElement("path",{className:"ColorSelector",d:"m 40.99855,964.36216 c -15.9798,0 -28.9986,13.01864 -28.9986,28.99862 0,15.97992 13.0188,28.99862 28.9986,28.99862 6.9189,0 13.2881,-2.4349 18.2803,-6.4997 l 23.5927,23.6239 c 1.1714,1.1714 3.0784,1.1715 4.2498,0 1.1716,-1.1715 1.1716,-3.0783 0,-4.2498 l -23.6239,-23.5926 c 4.0649,-4.9923 6.4997,-11.3615 6.4997,-18.28042 0,-15.97998 -13.0187,-28.99862 -28.9986,-28.99862 z m 0,5.99972 c 12.7374,0 22.9989,10.26145 22.9989,22.9989 0,12.73732 -10.2615,22.99892 -22.9989,22.99892 -12.7374,0 -22.9989,-10.2616 -22.9989,-22.99892 0,-12.73745 10.2615,-22.9989 22.9989,-22.9989 z",fill:"currentColor",fillOpacity:"1",stroke:"none",visibility:"visible",display:"inline",overflow:"visible"})))}function p(){return i.createElement("svg",{className:"SVGIcon_Button SVGIcon_Clock",version:"1.1",x:"0px",y:"0px",width:"20px",height:"20px",viewBox:"0 0 20 20"},i.createElement("path",{d:"M15.999 15c-.15 0-.303-.034-.446-.105l-4-2A1.001 1.001 0 0111 12V5a1 1 0 012 0v6.382l3.447 1.724A1 1 0 0115.999 15zM12 24C5.383 24 0 18.617 0 12S5.383 0 12 0s12 5.383 12 12-5.383 12-12 12zm0-22C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2z"}))}function _(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Emoticon",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("circle",{fill:"none",stroke:"#ffffff",strokeWidth:"12",strokeMiterlimit:"10",cx:"128",cy:"128",r:"107.5"}),i.createElement("path",{fill:"none",stroke:"#ffffff",strokeWidth:"12",strokeLinecap:"round",strokeMiterlimit:"10",d:"M74.484,145.945 c0,0,12.996,37.533,53.514,37.533c38.084,0,53.499-37.533,53.499-37.533"}),i.createElement("line",{fill:"none",stroke:"#ffffff",strokeWidth:"12",strokeLinecap:"round",strokeMiterlimit:"10",x1:"94.5",y1:"97.5",x2:"94.5",y2:"109.5"}),i.createElement("line",{fill:"none",stroke:"#ffffff",strokeWidth:"12",strokeLinecap:"round",strokeMiterlimit:"10",x1:"160.5",y1:"97.5",x2:"160.5",y2:"109.5"}))}function g(e){return(0,l.id)()?i.createElement("svg",Object.assign({width:"24",height:"24",viewBox:"0 0 36 36",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Submit"},e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.16683 8.982C4.10732 8.3908 3.83847 7.42693 4.15486 7.17995C4.46877 6.93489 4.7797 6.90487 5.90123 7.31306L31.1931 17.2282C32.2693 17.6503 32.2686 18.335 31.1931 18.7564L5.90123 28.6715C4.77972 29.1235 4.46864 29.0497 4.15487 28.8049C3.83836 28.5579 4.0953 27.5939 4.15484 27.0028L4.7797 21.2151C4.89862 20.0374 5.92644 18.9801 7.0706 18.854L15.467 18.4429C24.1686 17.9924 24.1686 17.9924 15.467 17.5419L7.0706 17.1313C5.92423 17.0053 4.89825 15.9476 4.7797 14.7706L4.16683 8.982Z",fill:"currentColor"})):i.createElement("svg",{fill:"#FFFFFF",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Submit",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100"},i.createElement("g",{transform:"translate(0,-952.36218)"},i.createElement("path",{d:"m 92.115057,974.14842 a 2.0001999,2.0001999 0 0 0 -1.96764,2.02965 l 0.0376,31.19553 -77.475501,0 16.161909,-15.73013 a 2.0002746,2.0002746 0 1 0 -2.790355,-2.8667 L 6.3913393,1007.9405 a 2.0001999,2.0001999 0 0 0 -0.0011,2.8646 l 19.6896957,19.2036 a 2.0002671,2.0002671 0 1 0 2.792551,-2.8646 l -16.170767,-15.771 79.153048,0 a 2.0001999,2.0001999 0 0 0 1.72959,-0.5437 2.0001999,2.0001999 0 0 0 0.0598,-0.058 2.0001999,2.0001999 0 0 0 0.54259,-1.7218 l -0.0388,-32.87638 a 2.0001999,2.0001999 0 0 0 -2.03297,-2.02522 z",fill:"#FFFFFF",fillOpacity:"1",fillRule:"evenodd",stroke:"none",visibility:"visible",display:"inline",overflow:"visible"})))}function f(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"100px",height:"91.582px",viewBox:"0 0 100 91.582",enableBackground:"new 0 0 100 91.582"},i.createElement("g",null,i.createElement("path",{clipPath:"url(#SVGID_2_)",d:"M88.853,29.724H62.271V11.351C62.262,5.18,57.26,0.179,51.089,0.169H11.255\r\n\t\t\t\tC5.085,0.179,0.085,5.18,0.074,11.351v24.908c-0.001,2.207,0.657,4.36,1.888,6.19c3.942,7.586,22.118,18.799,22.314,18.916\r\n\t\t\t\tc0.389,0.229,0.83,0.354,1.281,0.361c1.351,0.01,2.455-1.074,2.468-2.426c0.003-0.329-0.062-0.654-0.187-0.958\r\n\t\t\t\tc-1.319-3.565-2.341-7.233-3.053-10.968h13.135v18.389C37.93,71.9,42.882,76.882,49.02,76.928H75.29\r\n\t\t\t\tc-0.715,3.724-1.737,7.379-3.054,10.936c-0.517,1.248,0.076,2.678,1.323,3.196c0.303,0.125,0.63,0.188,0.959,0.186\r\n\t\t\t\tc0.451-0.006,0.894-0.13,1.279-0.361c0.197-0.115,18.373-11.329,22.314-18.914c1.235-1.834,1.894-3.997,1.888-6.207V40.906\r\n\t\t\t\tC99.99,34.746,95.01,29.751,88.853,29.724 M32.797,42.449H21.831c-0.721,0.01-1.4,0.327-1.873,0.869\r\n\t\t\t\tc-0.464,0.544-0.669,1.265-0.558,1.973c0,0.228,0.59,3.79,1.641,8.028c-5.517-3.842-12.773-9.425-14.776-13.136\r\n\t\t\t\tc-0.067-0.162-0.149-0.314-0.247-0.46c-0.738-1.033-1.13-2.276-1.116-3.546V11.351c0.008-3.463,2.825-6.264,6.288-6.255h0.065\r\n\t\t\t\th39.833c3.45,0.007,6.246,2.804,6.255,6.255v18.373H49.02c-3.223,0.005-6.286,1.399-8.406,3.825\r\n\t\t\t\tc-1.744-0.054-3.464-0.427-5.074-1.101c2.588-3.257,4.169-7.2,4.548-11.345h1.33c1.359,0,2.463-1.103,2.463-2.463\r\n\t\t\t\tc0-1.361-1.104-2.461-2.463-2.461h-7.784v-4.384c0-1.36-1.102-2.464-2.461-2.464c-1.361,0-2.463,1.104-2.463,2.464v4.384h-7.668\r\n\t\t\t\tc-1.361,0-2.462,1.1-2.462,2.461c0,1.36,1.102,2.463,2.462,2.463H35.13c-0.348,3.137-1.604,6.104-3.613,8.538\r\n\t\t\t\tc-1.439-1.598-2.553-3.46-3.284-5.482c-0.489-1.271-1.916-1.903-3.185-1.414c-1.27,0.489-1.902,1.917-1.412,3.185\r\n\t\t\t\tc0.892,2.395,2.192,4.619,3.841,6.57c-2.017,0.812-4.178,1.208-6.354,1.165c-1.359,0-2.463,1.102-2.463,2.461\r\n\t\t\t\tc0,1.362,1.104,2.465,2.463,2.465c3.647,0.07,7.244-0.868,10.393-2.71c2.032,1.239,4.293,2.049,6.649,2.38\r\n\t\t\t\tc-0.218,0.859-0.327,1.741-0.327,2.627v1.641L32.797,42.449z M95.19,65.763c0.013,1.271-0.379,2.514-1.117,3.547\r\n\t\t\t\tc-0.097,0.138-0.181,0.287-0.246,0.443c-1.938,3.678-9.211,9.277-14.776,13.135c1.099-4.236,1.64-7.799,1.64-8.03\r\n\t\t\t\tc0.111-0.704-0.091-1.425-0.558-1.969c-0.462-0.548-1.138-0.871-1.854-0.887H49.02c-3.447,0-6.246-2.791-6.255-6.239V40.906\r\n\t\t\t\tc0.009-3.452,2.805-6.249,6.255-6.257h39.833c3.449,0.008,6.246,2.805,6.256,6.257L95.19,65.763z M77.834,56.635L77.834,56.635\r\n\t\t\t\tl-6.564-16.42c-0.037-0.092-0.081-0.18-0.133-0.262l-0.099-0.165c-0.047-0.078-0.102-0.15-0.164-0.214l-0.132-0.164l-0.182-0.147\r\n\t\t\t\tl-0.195-0.099c-0.056-0.043-0.116-0.076-0.182-0.098l-0.246-0.132c-0.06-0.009-0.121-0.009-0.18,0l-0.248-0.082h-0.245h-0.231\r\n\t\t\t\th-0.261h-0.214l-0.279,0.082c-0.055-0.007-0.109-0.007-0.164,0l-0.246,0.132l-0.247,0.098c-0.064,0.044-0.124,0.095-0.18,0.147\r\n\t\t\t\tl-0.182,0.148l-0.149,0.166c-0.056,0.066-0.113,0.138-0.161,0.211v0.166l-0.149,0.263l-6.567,16.418l-3.282,8.21\r\n\t\t\t\tc-0.546,1.246,0.026,2.697,1.272,3.24c0.036,0.016,0.072,0.029,0.105,0.042c0.29,0.127,0.604,0.189,0.919,0.182\r\n\t\t\t\tc1.005-0.006,1.905-0.616,2.283-1.544l2.657-6.665h9.854l2.66,6.665c0.383,0.931,1.291,1.54,2.298,1.544\r\n\t\t\t\tc0.31,0.003,0.619-0.059,0.904-0.182c1.269-0.485,1.906-1.907,1.422-3.18c-0.014-0.034-0.028-0.069-0.044-0.103L77.834,56.635z\r\n\t\t\t\tM66.062,55.123l2.939-7.323l2.923,7.323H66.062z"})))}function v(){return i.createElement("svg",{fill:"#FFFFFF",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Popout",viewBox:"0 0 8 8",x:"0px",y:"0px"},i.createElement("path",{d:"M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z"}))}function C(e){return i.createElement("svg",Object.assign({fill:"#FFFFFF",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_X",version:"1.1",x:"0px",y:"0px",viewBox:"-165 95 100 100"},e),i.createElement("g",null,i.createElement("polygon",{points:"-74.9,117.2 -102.2,145 -74.9,172.8 -89.1,186.8 -116.2,159.3 -143.2,186.8 -157.5,172.8 -130.2,145 -157.5,117.2 -143.2,103.2 -116.2,130.7 -89.1,103.2"})))}function S(e){const t=e.color||"#FFFFFF";return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_X_Line",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("line",{fill:"none",stroke:t,strokeWidth:"45",strokeMiterlimit:"10",x1:"212",y1:"212",x2:"44",y2:"44"}),i.createElement("line",{fill:"none",stroke:t,strokeWidth:"45",strokeMiterlimit:"10",x1:"44",y1:"212",x2:"212",y2:"44"}))}function E(){return i.createElement("svg",{version:"1.1",id:"Layer_5",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Paperclip",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{fill:"none",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M167.768,62.647 l-0.012,123.052c0,24.729-19.334,44.856-43.096,44.866c-23.765-0.006-43.099-20.134-43.096-44.872L81.557,48.851 c0-15.345,14.483-27.827,29.83-27.83c15.342,0.003,27.827,12.488,27.833,27.833l-0.002,139.245 c0.003,6.376-8.546,12.925-14.925,12.925c0,0-13.929-0.166-13.929-12.928l0.003-124.839"}))}function D(e){const{muted:t,className:n}=e;return i.createElement("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",className:(0,o.Z)("SVGIcon_Button","SVGIcon_Volume",n),x:"0px",y:"0px",width:"256px",height:"255.999px",viewBox:"0 0 256 255.999"},i.createElement("g",{className:"Speaker"},i.createElement("path",{d:"M93.785,52.265c-0.946,0-2.357,0.63-3.304,1.577L40.284,98.022c-0.947,0.789-2.831,1.578-4.093,1.578H9.367 C8.104,99.6,7,100.706,7,101.967v52.069c0,1.264,1.104,2.367,2.367,2.367H36.19c1.262,0,3.146,0.632,4.093,1.578l50.197,44.181 c0.947,0.789,2.516,1.578,3.304,1.578s1.578-1.104,1.578-2.367V54.631C95.363,53.369,94.731,52.265,93.785,52.265z"})),!t&&i.createElement("g",{className:"SoundWaves"},i.createElement("path",{className:"SoundWavesHighest",d:"M193.826,30.402c24.959,24.958,40.349,59.403,40.349,97.604c0,38.199-15.388,72.645-40.349,97.603l9.916,9.916 c28.067-28.067,44.263-64.673,44.263-107.521c0-42.847-16.196-79.455-44.263-107.521"}),i.createElement("path",{className:"SoundWavesHigh",d:"M175.737,47.628l-8.924,8.924c18.271,18.27,29.536,43.484,29.536,71.448s-11.264,53.178-29.536,71.448l8.924,8.924 c20.546-20.546,33.234-49.008,33.234-80.374c0-31.366-12.688-59.829-33.234-80.374V47.628z"}),i.createElement("path",{className:"SoundWavesMed",d:"M148.913,74.454l-8.925,8.925c11.488,11.488,18.491,27.236,18.491,44.624c0,17.388-7.054,33.281-18.491,44.575l8.875,8.975 c13.811-13.635,22.239-32.753,22.239-53.55c0-20.797-8.432-39.793-22.189-53.55V74.454z"}),i.createElement("path",{className:"SoundWavesLow",d:"M121.989,101.229l-8.778,9.073c4.641,4.516,7.397,10.706,7.397,17.702c0,6.995-2.755,13.186-7.397,17.702l8.778,9.073 c7.035-6.844,11.243-16.413,11.243-26.775C133.232,117.643,129.024,108.075,121.989,101.229z"})),i.createElement("g",{className:"SoundX"},i.createElement("line",{fill:"none",strokeWidth:t?10:0,stroke:"#fff",strokeMiterlimit:"10",x1:"137",y1:"170.667",x2:"223.167",y2:"84.5"}),i.createElement("line",{fill:"none",strokeWidth:t?10:0,stroke:"#fff",strokeMiterlimit:"10",x1:"137",y1:"84.5",x2:"223.167",y2:"170.667"})))}function b(){return i.createElement("svg",{width:"50px",height:"25px",viewBox:"0 0 50 25"},i.createElement("path",{d:"M46 0H4C1.8 0 0 1.8 0 4v17c0 2.2 1.8 4 4 4h42c2.2 0 4-1.8 4-4V4c0-2.2-1.8-4-4-4zM21 18.916V5.084L32.805 12 21 18.916z"}))}function w(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Play",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{className:"playTriangle",d:"M65.321,33.521c-11.274-6.615-20.342-1.471-20.342,11.52V210.96c0,12.989,9.068,18.135,20.342,11.521l137.244-82.348 c11.274-6.618,11.274-17.646,0-24.509L65.321,33.521z"}))}function y(){return i.createElement("svg",{width:"23",height:"23",viewBox:"0 0 23 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M15.3252 10.8948L9.73258 7.16634C9.24837 6.85161 8.6189 7.19055 8.6189 7.77161V15.2284C8.6189 15.8095 9.27258 16.1484 9.73258 15.8337L15.3252 12.1053C15.761 11.8148 15.761 11.1853 15.3252 10.8948Z",fill:"#C3D3D8"}),i.createElement("path",{d:"M11.5 0C5.15684 0 0 5.15684 0 11.5C0 17.8432 5.15684 23 11.5 23C17.8432 23 23 17.8432 23 11.5C23 5.15684 17.8432 0 11.5 0ZM11.5 21.2084C6.14947 21.2084 1.79158 16.8505 1.79158 11.5C1.79158 6.14947 6.14947 1.79158 11.5 1.79158C16.8505 1.79158 21.2084 6.14947 21.2084 11.5C21.2084 16.8505 16.8505 21.2084 11.5 21.2084Z",fill:"#C3D3D8"}))}function I(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Pause",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M44.979,219.364c0,3.3,2.7,6,6,6h49.753c3.3,0,6-2.7,6-6V36.5c0-3.3-2.7-6-6-6H50.979c-3.3,0-6,2.7-6,6V219.364z"}),i.createElement("path",{d:"M149.267,219.364c0,3.3,2.7,6,6,6h49.753c3.3,0,6-2.7,6-6V36.5c0-3.3-2.7-6-6-6h-49.753c-3.3,0-6,2.7-6,6V219.364z"}))}function R(e){var t;return i.createElement("svg",Object.assign({version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Check",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256",strokeWidth:"24",stroke:null!==(t=e.color)&&void 0!==t?t:"#fff",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10"},e),i.createElement("polyline",{fill:"none",points:"49.5,147.75 95,210.75 206.5,45.25 "}))}function M(){return i.createElement("svg",{className:"SVGIcon_Button SVGIcon_Calendar",width:"25",height:"24",viewBox:"0 0 25 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.97014 2.77093H4.44345V3.97865C4.44345 5.04817 5.31099 5.91572 6.38052 5.91572C7.45004 5.91572 8.31699 5.04817 8.31699 3.97865V2.77093H16.6836V3.97865C16.6836 5.04817 17.5511 5.91572 18.6207 5.91572C19.6902 5.91572 20.5571 5.04817 20.5571 3.97865V2.77093H23.0293C24.1136 2.77093 25 3.65738 25 4.74167V21.4991C25 22.5834 24.1136 23.4698 23.0293 23.4698H1.97073C0.886445 23.4698 0 22.5834 0 21.4991V4.74167C0 3.65738 0.886445 2.77093 1.97073 2.77093H1.97014ZM23.5005 8.23961V21.4991C23.5005 21.7578 23.2879 21.9704 23.0293 21.9704H1.97073C1.71206 21.9704 1.49946 21.7583 1.49946 21.4991V8.23961H23.5005V8.23961Z",fill:"#717A81"}),i.createElement("path",{d:"M5.29335 1.08724C5.29335 0.486629 5.77998 0 6.38059 0C6.98061 0 7.46724 0.486629 7.46724 1.08724V3.97867C7.46724 4.57928 6.98061 5.06591 6.38059 5.06591C5.77998 5.06591 5.29335 4.57928 5.29335 3.97867V1.08724V1.08724Z",fill:"#717A81"}),i.createElement("path",{d:"M17.5329 1.08724C17.5329 0.486629 18.0195 0 18.6201 0C19.2201 0 19.7068 0.486629 19.7068 1.08724V3.97867C19.7068 4.57928 19.2201 5.06591 18.6201 5.06591C18.0195 5.06591 17.5329 4.57928 17.5329 3.97867V1.08724V1.08724Z",fill:"#717A81"}))}function T(){return i.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{d:"M1.91995 1.20001C1.5223 1.20001 1.19995 1.52236 1.19995 1.92001V22.08C1.19995 22.4776 1.52232 22.8 1.91995 22.8H22.08C22.4776 22.8 22.7999 22.4776 22.7999 22.08C22.7999 21.6824 22.4776 21.36 22.08 21.36H2.63995V1.92001C2.63995 1.52236 2.31758 1.20001 1.91995 1.20001ZM16.32 6.72001C15.8854 6.71929 15.5464 7.12373 15.5625 7.47751C15.5821 7.85454 15.9429 8.17971 16.32 8.16001H18.3525L11.97 14.16L9.67495 12.2475C9.52982 12.0749 9.29995 11.9772 9.07495 11.9925C8.91446 12.004 8.75853 12.0713 8.63995 12.18L3.83995 16.5C3.54514 16.7473 3.50834 17.2483 3.76495 17.535C4.02158 17.8217 4.52167 17.8383 4.79995 17.5725L9.14246 13.665L11.4525 15.5925C11.7066 15.887 12.2125 15.9125 12.495 15.645L19.4399 9.12001V11.28C19.4347 11.6604 19.7795 12.0075 20.16 12.0075C20.5404 12.0075 20.8853 11.6604 20.8799 11.28V7.44001C20.8799 7.06303 20.5369 6.72005 20.16 6.72001H16.32Z",fill:"#C3D3D8"}))}function A(e){let t=e.highlightColor||"#00ccff",n=e.color||"#2d73ff";const[r]=(0,i.useState)(Math.random().toString());return i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_DialogCheck",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("defs",null,i.createElement("linearGradient",{id:`${r}_linear`,x1:"0%",y1:"0%",x2:"100%",y2:"100%"},i.createElement("stop",{offset:"0%",stopColor:t}),i.createElement("stop",{offset:"100%",stopColor:n})),i.createElement("filter",{id:`${r}_f1`,x:"0",y:"0",width:"200%",height:"200%"},i.createElement("feOffset",{result:"offOut",in:"SourceAlpha",dx:"20",dy:"20"}),i.createElement("feGaussianBlur",{result:"blurOut",in:"offOut",stdDeviation:"10"}),i.createElement("feBlend",{in:"SourceGraphic",in2:"blurOut",mode:"normal"}))),i.createElement("path",{fill:"none",stroke:`url(#${r}_linear)`,strokeWidth:"24",strokeLinecap:"round",strokeLinejoin:"miter",strokeMiterlimit:"10",d:"M206.5,45.25L95,210.75l-45.5-63",strokeDasharray:"365.19 365.19",strokeDashoffset:"0.00"}),i.createElement("path",{fill:"none",opacity:".2",filter:`url(#${r}_f1)`,stroke:`url(#${r}_linear)`,strokeWidth:"24",strokeLinecap:"round",strokeLinejoin:"miter",strokeMiterlimit:"10",d:"M206.5,45.25L95,210.75l-45.5-63",strokeDasharray:"365.19 365.19",strokeDashoffset:"0.00"}))}function L(){return i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Video",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{className:"videoPlayButton",d:"M165.399,124.063L109.118,92.06c-1.399-0.797-3.118-0.787-4.508,0.026c-1.39,0.805-2.25,2.295-2.25,3.905v64.008 c0,1.609,0.86,3.1,2.25,3.913c0.705,0.412,1.491,0.613,2.277,0.613c0.768,0,1.546-0.191,2.241-0.596l56.283-32.003 c1.416-0.806,2.285-2.306,2.285-3.934C167.694,126.368,166.816,124.869,165.399,124.063z"}),i.createElement("path",{d:"M238.069,40.646H214.25h-28.82h-28.82h-28.458h-0.36H99.333H70.536H41.727h-23.82c-3.184,0-5.773,2.59-5.773,5.772v23.856 v120.441v18.867c0,3.184,2.589,5.771,5.773,5.771h2.415h21.394h28.82h28.82h28.459h0.361h28.457h28.82h28.82h23.82 c3.184,0,5.773-2.589,5.773-5.771v-18.867V70.274V46.418C243.844,43.223,241.254,40.646,238.069,40.646z M191.215,47.181h17.273 V64.5h-17.273V47.181L191.215,47.181z M162.396,47.181h17.272V64.5h-17.272V47.181z M133.938,47.181h16.912V64.5h-16.912V47.181z\tM105.128,47.181h16.912V64.5h-16.912V47.181z M76.309,47.181h17.273V64.5H76.309V47.181z M47.488,47.181h17.273V64.5H47.488V47.181 z M18.681,47.181h17.273V64.5H18.681V47.181z M35.954,208.811H18.681v-17.319h17.273V208.811z M64.763,208.811H47.489v-17.319 h17.273V208.811L64.763,208.811z M93.583,208.811H76.31v-17.319h17.273V208.811z M122.041,208.811h-16.912v-17.319h16.912V208.811z M150.849,208.811h-16.912v-17.319h16.912V208.811z M179.668,208.811h-17.272v-17.319h17.272V208.811z M208.488,208.811h-17.273 v-17.319h17.273V208.811z M237.297,208.811h-17.273v-17.319h17.273V208.811L237.297,208.811z M237.297,184.943H214.25h-28.819 h-28.82h-28.458h-0.361H99.333H70.537H41.728H18.682V71.047h23.046h28.82h28.82h28.458h0.36h28.458h28.82h28.82h23.045v113.896 H237.297z M237.297,64.5h-17.273V47.181h17.273V64.5L237.297,64.5z"}))}function B(e){return(0,l.id)()?i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Bell",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M32 24V26H4V24L8 19V12C8 9.34784 9.05357 6.8043 10.9289 4.92893C12.8043 3.05357 15.3478 2 18 2C20.6522 2 23.1957 3.05357 25.0711 4.92893C26.9464 6.8043 28 9.34784 28 12V19L32 24ZM18 34C19.2396 33.9986 20.4483 33.6133 21.46 32.897C22.4718 32.1807 23.2368 31.1687 23.65 30H12.35C12.7632 31.1687 13.5282 32.1807 14.54 32.897C15.5517 33.6133 16.7604 33.9986 18 34Z",fill:"currentColor"})):i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Bell",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M107.785,33.965c-34.875,8.972-60.644,40.618-60.644,78.308v53.903c0,4.965-4.035,8.99-8.975,8.99 c-9.929,0-17.978,8.066-17.978,17.971c0,9.924,8.059,17.969,18.013,17.969h179.598c9.948,0,18.014-8.066,18.014-17.969 c0-9.926-8.087-17.971-17.979-17.971c-4.956,0-8.975-3.993-8.975-8.99v-53.903c0-37.676-25.763-69.333-60.644-78.308v-9.281 c0-11.193-9.052-20.219-20.215-20.219c-11.143,0-20.215,9.052-20.215,20.219V33.965L107.785,33.965z M96.554,220.09h62.891 c0,17.366-14.079,31.445-31.445,31.445C110.633,251.535,96.554,237.458,96.554,220.09z"}))}function k(e){return i.createElement("svg",{style:{transform:`rotate(${e.angle}deg)`},version:"1.1",id:"arrowBase",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Arrow",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polyline",{fill:"none",stroke:"#ffffff",strokeWidth:"10",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",points:"128,247.688 128,8.313 181.061,61.674 "}),i.createElement("polyline",{fill:"none",stroke:"#ffffff",strokeWidth:"10",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",points:"128,247.688 128,8.313 74.939,61.674 "}))}function O(e){const{direction:t}=e,n=(0,r._T)(e,["direction"]);switch(t){case"up":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"36px",height:"36px",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M26.23 17.31L20.5 11.58V33.54H15.5V11.58L9.76998 17.31L6.22998 13.77L18 2.00001L29.77 13.77L26.23 17.31Z",fill:"currentColor"}));case"down":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"36px",height:"36px",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M26.23 18.23L20.5 23.96V2H15.5V23.96L9.76998 18.23L6.22998 21.77L18 33.54L29.77 21.77L26.23 18.23Z",fill:"currentColor"}));case"left":return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:"36px",height:"36px",viewBox:"0 0 36 36",fill:"none"},n),i.createElement("path",{d:"M17.54 9.53998L11.81 15.27L33.77 15.27V20.27H11.81L17.54 26L14 29.54L2.23002 17.77L14 5.99998L17.54 9.53998Z",fill:"currentColor"}));case"right":return i.createElement("svg",Object.assign({viewBox:"0 0 36 36",width:"36px",height:"36px",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n),i.createElement("path",{d:"M18.46 9.54004L24.19 15.27L2.22998 15.27L2.22998 20.27H24.19L18.46 26L22 29.54L33.77 17.77L22 6.00004L18.46 9.54004Z",fill:"currentColor"}))}}function F(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",width:"50px",height:"100px",viewBox:"0 0 50 100"},i.createElement("polygon",{fill:"#ffffff",points:"0,0.093 0,25.702 24.323,50.026 0,74.349 0,99.955 49.929,50.026 "}))}function P(e){return i.createElement("svg",{style:{transform:`rotate(${e.angle}deg)`},version:"1.1",id:"arrowBase",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_DoubleArrow",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polyline",{className:"Arrow1",fill:"none",stroke:"#ffffff",strokeWidth:"23",strokeLinecap:"round",strokeMiterlimit:"10",points:"135.65,21.667 30.081,127.235 137.18,234.333 "}),!e.singlearrow&&i.createElement("polyline",{className:"Arrow2",fill:"none",stroke:"#ffffff",strokeWidth:"23",strokeLinecap:"round",strokeMiterlimit:"10",points:"224.389,21.667 118.821,127.235 225.92,234.333 "}))}function x(e){const{angle:t}=e,n=(0,r._T)(e,["angle"]);return i.createElement("svg",Object.assign({style:{transform:`rotate(${e.angle}deg)`},xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"none"},n),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M16.0855 15.5837L8.88892 8.38708L12.0316 5.24438L22.3709 15.5837L12.0316 25.923L8.88892 22.7803L16.0855 15.5837Z"}))}function N(){return i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Maximize",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("rect",{x:"24",y:"42.167",fill:"none",stroke:"rgb(120, 138, 146)",strokeWidth:"18",strokeMiterlimit:"10",width:"208",height:"171.667"}),i.createElement("line",{fill:"none",stroke:"rgb(120, 138, 146)",strokeWidth:"42",strokeMiterlimit:"10",x1:"24",y1:"54.01",x2:"232",y2:"54.01"}))}function V(){return i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Minimize",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("line",{fill:"none",stroke:"rgb(120, 138, 146)",strokeWidth:"18",strokeMiterlimit:"10",x1:"24",y1:"209.01",x2:"232",y2:"209.01"}))}function G(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Restore",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polyline",{fill:"none",stroke:"rgb(120, 138, 146)",strokeWidth:"12",strokeMiterlimit:"10",points:"83,90.861 83,42.167 232,42.167 232,165.14 173,165.14 "}),i.createElement("rect",{x:"24",y:"90.861",fill:"none",stroke:"rgb(120, 138, 146)",strokeWidth:"18",strokeMiterlimit:"10",width:"149",height:"122.973"}))}function U(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Reload",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{fill:"none",stroke:"#ffffff",strokeWidth:"30",strokeLinecap:"round",strokeMiterlimit:"10",d:"M229.809,147.639 c-9.178,47.863-51.27,84.027-101.809,84.027c-57.253,0-103.667-46.412-103.667-103.666S70.747,24.334,128,24.334 c34.107,0,64.368,16.472,83.261,41.895"}),i.createElement("polygon",{points:"147.639,108.361 245.755,10.166 245.834,108.361 "}))}function H(e){return i.createElement("svg",{style:{transform:`rotate(${e.angle}deg)`},version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_FlatArrow",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polygon",{points:"13.913,141 128,59 242.087,141 ",fill:"#ffffff"}))}function W(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_DoNotDisturb",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("circle",{fill:"none",stroke:"#ffffff",strokeWidth:"24",strokeMiterlimit:"10",cx:"128",cy:"128",r:"101.5"}),i.createElement("line",{fill:"none",stroke:"#ffffff",strokeWidth:"24",strokeMiterlimit:"10",x1:"73",y1:"128",x2:"183",y2:"128"}))}function j(e){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",style:{transform:`scaleX(${e.bFlipHorizontal?-1:1})`},className:"SVGIcon_Button SVGIcon_MediaControls",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{className:"Arrow",d:"M77.003,54.763h32.784c3.794,0,9.113,2.181,11.814,4.848l63.604,62.773c2.703,2.667,2.727,7.054,0.05,9.748 l-63.705,64.206c-2.674,2.693-7.968,4.898-11.763,4.898H77.003"}),i.createElement("polyline",{className:"preArrowBox",opacity:e.bHidePreArrow?"0":"1",points:"6.833,54.763 46.71,54.763 46.71,201.236 6.833,201.236 \t"}),i.createElement("polyline",{className:"jumpAheadBox",opacity:e.bShowJumpAheadBox?"1":"0",points:"6.833,54.764 86.386,54.764 86.386,201.236 6.833,201.236 \t"}),i.createElement("polyline",{className:"postArrowBox",opacity:e.bHidePostArrow?"0":"1",points:"209.29,54.763 249.167,54.763 249.167,201.236 209.29,201.236 \t"}))}function z(e){const t=(0,o.Z)("SVGIcon_Button","SVGIcon_SteamLogo",e&&e.className);return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",fill:"#FFFFFF",className:t,x:"0px",y:"0px",viewBox:"0 0 256 256"},i.createElement("path",{fill:"#currentColor",d:"M127.374,5.355c-64.404,0-117.167,49.661-122.18,112.77l65.712,27.171 c5.567-3.808,12.293-6.032,19.53-6.032c0.649,0,1.294,0.017,1.934,0.051l29.226-42.354c0-0.202-0.005-0.399-0.005-0.598 c0-25.496,20.74-46.241,46.237-46.241c25.498,0,46.238,20.745,46.238,46.241c0,25.494-20.74,46.242-46.238,46.242 c-0.352,0-0.698-0.011-1.047-0.021l-41.68,29.741c0.022,0.546,0.041,1.095,0.041,1.644c0,19.141-15.569,34.707-34.706,34.707 c-16.796,0-30.843-11.99-34.026-27.869l-46.993-19.43c14.55,51.464,61.831,89.189,117.957,89.189 c67.713,0,122.604-54.893,122.604-122.604C249.979,60.244,195.086,5.355,127.374,5.355"}),i.createElement("path",{fill:"#currentColor",d:"M82.026,191.387l-15.061-6.22c2.67,5.56,7.285,10.208,13.418,12.767 c13.25,5.521,28.531-0.771,34.054-14.027c2.674-6.416,2.694-13.5,0.04-19.93c-2.646-6.431-7.64-11.451-14.063-14.129 c-6.371-2.647-13.196-2.552-19.198-0.291l15.561,6.437c9.776,4.073,14.396,15.299,10.324,25.071 C103.031,190.841,91.801,195.464,82.026,191.387"}),i.createElement("path",{fill:"#currentColor",d:"M198.639,96.359c0-16.987-13.82-30.809-30.809-30.809c-16.987,0-30.813,13.821-30.813,30.809 c0,16.988,13.824,30.806,30.813,30.806S198.639,113.347,198.639,96.359 M144.736,96.306c0-12.783,10.363-23.142,23.145-23.142 c12.783,0,23.145,10.359,23.145,23.142c0,12.783-10.36,23.142-23.145,23.142C155.1,119.447,144.736,109.089,144.736,96.306"}))}function K(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Viewers",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{className:"frontGuy",fill:"#666666",d:"M181.732,53.151c-17.255,0-31.321,13.316-31.321,32.634v25.132 c0,18.005,24.006,21.006,24.382,21.381c-10.691,2.813-30.947,8.252-40.888,15.566c-8.252,6.003-11.44,18.005-13.128,22.882 c-0.75,2.063-1.688,5.064-1.688,7.127c0,0,0,9.94,0,19.881s12.941,16.505,18.005,16.505h89.65c4.877,0,18.006-5.627,18.006-16.505 s0-19.881,0-19.881c0-2.251-0.938-5.627-1.688-7.689c-4.313-10.878-4.688-16.316-13.315-22.319 c-9.941-6.939-30.009-12.19-40.512-15.004c0.374-0.563,24.193-4.127,24.193-22.131V85.785 C213.053,66.467,198.986,53.151,181.732,53.151L181.732,53.151z"}),i.createElement("path",{className:"backGuy",fill:"rgb(144, 153, 161)",d:"M84.204,34.396c-20.068,0-36.385,15.38-36.385,38.074v29.258c0,20.818,27.945,24.382,28.32,24.944 c-12.378,3.189-36.01,9.565-47.638,18.006c-9.753,7.127-13.504,21.006-15.379,26.632c-0.75,2.251-1.876,6.002-1.876,8.253 c0,0,0,11.44,0,23.257c0,11.815,15.004,19.13,20.819,19.13h104.279c5.814,0,20.818-6.564,20.818-19.13c0-12.566,0-23.257,0-23.257 c0-2.438-1.125-6.564-2.063-8.815c-5.063-12.566-5.438-18.942-15.566-26.069c-11.628-8.065-34.885-14.067-47.076-17.443 c0.375-0.563,28.133-4.876,28.133-25.695V72.469C120.59,49.775,104.272,34.396,84.204,34.396L84.204,34.396z"}))}function X(){return i.createElement("svg",{version:"1.1",id:"Layer_5",className:"SVGIcon_Button SVGIcon_ChatBubble",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 64 64"},i.createElement("g",null,i.createElement("path",{d:"M33,5C18.7,5,7.1,16.6,7.1,30.9c0,5.2,1.5,10.1,4.2,14.1c-0.6,3.7-4.5,10.5-6.2,13.5c-1.3,2.2,11.4-3.8,16.3-4.5c3.5,1.8,7.5,2.8,11.7,2.8c14.3,0,25.9-11.6,25.9-25.9S47.3,5,33,5z"})))}function Z(){return i.createElement("svg",{version:"1.1",id:"Layer_5",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 64 64"},i.createElement("g",null,i.createElement("path",{d:"M40.6,32.7l15.1-15.1c2.6-2.6,2.6-6.7,0-9.3c-2.6-2.6-6.7-2.6-9.3,0L31.3,23.4L16.2,8.3c-2.6-2.6-6.7-2.6-9.3,0c-2.6,2.6-2.6,6.7,0,9.3L22,32.7L6.9,47.8c-2.6,2.6-2.6,6.7,0,9.3c1.3,1.3,3,1.9,4.7,1.9s3.4-0.6,4.7-1.9L31.3,42l15.1,15.1c1.3,1.3,3,1.9,4.7,1.9s3.4-0.6,4.7-1.9c2.6-2.6,2.6-6.7,0-9.3L40.6,32.7z"})))}function $(){return i.createElement("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_STVTimelineGrabber",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("g",{className:"leftarrow",opacity:"0"},i.createElement("polygon",{points:"127.817,4.403 4,128 127.817,251.598"})),i.createElement("g",{className:"rightarrow",opacity:"0"},i.createElement("polygon",{points:"127.816,4.403 251.633,128 127.816,251.598"})),i.createElement("g",{className:"grabber"},i.createElement("polygon",{points:"145.692,22.132 145.692,234.361 127.817,251.598 110.307,234.361 110.307,22.132 127.817,4.403"})))}function q(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_STVTimelineMarker",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polygon",{className:"pointer",points:"128,154.979 46.374,230.548 46.374,253.333 209.626,253.333 209.626,230.548 \t"}),i.createElement("rect",{className:"line",x:"116.271",y:"3.168",width:"23.459",height:"137.332"}))}function Y(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_BigPicture",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{fill:"currentColor",d:"M213.771,68.659c-4.108-7.066-46.007-7.231-49.293-7.231H128H91.522c-3.286,0-45.186,0.165-49.293,7.231 c-19.555,29.248-27.385,100.263-27.276,104.01c0.238,8.294,2.11,24.583,16.595,35.162c9.201,6.72,22.183,8.709,29.083,3.614 c4.989-3.682,11.995-19.224,19.061-32.204c7.064-12.981,9.202-11.174,12.98-12.159c3.78-0.986,36.066-0.74,36.066-0.74 s30.809-0.247,34.588,0.74c3.777,0.985,5.915-0.822,12.98,12.159c7.064,12.98,14.07,28.522,19.061,32.204 c6.9,5.095,19.882,3.106,29.083-3.614c14.485-10.58,16.356-26.868,16.595-35.162C241.154,168.922,233.325,97.906,213.771,68.659z M67.251,128.14c-14.974,0-27.112-12.137-27.112-27.111c0-14.975,12.137-27.112,27.112-27.112 c14.973,0,27.111,12.137,27.111,27.112C94.362,116.003,82.224,128.14,67.251,128.14z M188.749,128.14 c-14.974,0-27.111-12.137-27.111-27.111c0-14.975,12.138-27.112,27.111-27.112c14.973,0,27.111,12.137,27.111,27.112 C215.86,116.003,203.722,128.14,188.749,128.14z"}))}function Q(e){const{className:t}=e;return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:(0,o.Z)("SVGIcon_Button","SVGIcon_MobilePhone",t),x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M165.693,45.186H91.368c-7.963,0-14.41,6.447-14.41,14.41V210.9c0,7.964,6.447,14.41,14.41,14.41h74.134 c7.965,0,14.41-6.447,14.41-14.41V59.596C180.102,51.633,173.657,45.186,165.693,45.186z M113.172,57.509h30.717 c1.707,0,3.223,1.327,3.223,3.224c0,1.896-1.328,3.223-3.223,3.223h-30.717c-1.707,0-3.223-1.328-3.223-3.223 C109.949,58.837,111.465,57.509,113.172,57.509z M128.529,213.554c-4.551,0-8.152-3.603-8.152-8.153c0-4.55,3.604-8.152,8.152-8.152 s8.151,3.603,8.151,8.152C136.682,209.761,133.081,213.554,128.529,213.554z M169.105,186.819h-81.15V74.384h81.15V186.819 L169.105,186.819z"}))}function J(e){return i.createElement("svg",Object.assign({width:"36",height:"36",viewBox:"0 0 36 36",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button"},e),i.createElement("path",{d:"M11.45 26.5H7.625L1 9H5.025L9.625 22.325L14.1 9H18.125L11.45 26.5Z",fill:"white"}),i.createElement("path",{d:"M34.552 26.5H30.477L26.952 20.6H26.527H23.927V26.5H20.252V9H26.802C29.202 9 30.9686 9.48333 32.102 10.45C33.2353 11.4 33.802 12.7333 33.802 14.45C33.802 15.8 33.502 16.925 32.902 17.825C32.3186 18.725 31.4936 19.4083 30.427 19.875L34.552 26.5ZM23.927 12.125V17.45H26.802C27.7686 17.45 28.5186 17.2083 29.052 16.725C29.602 16.225 29.877 15.5417 29.877 14.675C29.877 13.825 29.6103 13.1917 29.077 12.775C28.5603 12.3417 27.727 12.125 26.577 12.125H23.927Z",fill:"white"}))}function ee(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_LargeMobilePhone",x:"0px",y:"0px",width:"128px",height:"255px",viewBox:"0 0 128 255"},i.createElement("rect",{className:"screen",x:"7.756",y:"5.518",fill:"#292D33",width:"112.144",height:"234.357"}),i.createElement("path",{className:"frame",fill:"#3C414B",d:"M40.334,15.72h47.237c3.957,0,7.164-3.259,7.164-7.28c0-1.113,0.889-2.017,1.984-2.017h9.746 c7.417,0,13.432,6.108,13.432,13.646v206.156c0,7.538-6.015,13.647-13.431,13.647H21.459c-7.417,0-13.429-6.109-13.429-13.647 V20.071c0-7.536,6.013-13.646,13.429-13.646h9.728c1.096,0,1.983,0.903,1.983,2.017C33.17,12.461,36.377,15.72,40.334,15.72 M107.057,0.001H20.87c-9.922,0-17.965,8.174-17.965,18.256v217.505c0,10.082,8.043,18.256,17.965,18.256h86.188 c9.923,0,17.966-8.174,17.966-18.256V18.257C125.022,8.175,116.979,0.001,107.057,0.001"}),i.createElement("path",{fill:"#3C414B",d:"M0.826,33.349C0.369,33.349,0,33.725,0,34.189v7.616c0,0.464,0.37,0.84,0.826,0.84s0.827-0.376,0.827-0.84 v-7.617C1.653,33.725,1.283,33.349,0.826,33.349"}),i.createElement("path",{fill:"#3C414B",d:"M0.826,51.56C0.369,51.56,0,51.936,0,52.4v16.8c0,0.465,0.37,0.841,0.826,0.841s0.827-0.376,0.827-0.841 V52.4C1.653,51.936,1.283,51.56,0.826,51.56"}),i.createElement("path",{fill:"#3C414B",d:"M0.826,75.304C0.369,75.304,0,75.68,0,76.144v15.904c0,0.464,0.37,0.84,0.826,0.84s0.827-0.376,0.827-0.84 V76.144C1.653,75.68,1.283,75.304,0.826,75.304"}),i.createElement("path",{fill:"#3C414B",d:"M127.617,58.056c-0.457,0-0.827,0.376-0.827,0.84v27.328c0,0.464,0.37,0.84,0.827,0.84 c0.456,0,0.826-0.376,0.826-0.84V58.896C128.443,58.432,128.073,58.056,127.617,58.056"}))}function te(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Envelope",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polygon",{fill:"#3C414B",points:"3.167,48.809 127.22,128 252.833,48.809 "}),i.createElement("polygon",{fill:"#3C414B",points:"252.833,203.68 252.833,55.439 185.151,99.131 "}),i.createElement("polygon",{fill:"#3C414B",points:"247.958,207.191 180.47,101.472 128.001,134.24 75.142,101.472 7.849,207.191 "}),i.createElement("polygon",{fill:"#3C414B",points:"3.167,203.682 3.167,55.441 70.851,99.132 "}))}function ne(){return i.createElement("svg",{version:"1.1",id:"Layer_3",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Twitter",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M250.151,128.021c0,67.418-54.604,122.022-122.022,122.022S6.107,195.439,6.107,128.021C6.107,60.604,60.712,6,128.129,6 S250.151,60.604,250.151,128.021z M105.799,192.389c54.117,0,83.707-44.842,83.707-83.707c0-1.282,0-2.563-0.062-3.783 c5.736-4.148,10.739-9.335,14.705-15.252c-5.247,2.318-10.922,3.905-16.901,4.637c6.103-3.661,10.738-9.396,12.936-16.29 c-5.675,3.355-11.959,5.796-18.67,7.138c-5.369-5.734-12.995-9.273-21.477-9.273c-16.228,0-29.406,13.179-29.406,29.407 c0,2.318,0.243,4.576,0.793,6.711c-24.466-1.22-46.125-12.934-60.646-30.75c-2.501,4.332-3.965,9.396-3.965,14.765 c0,10.189,5.186,19.218,13.117,24.465c-4.819-0.122-9.334-1.464-13.3-3.661c0,0.122,0,0.244,0,0.366 c0,14.275,10.128,26.113,23.611,28.857c-2.44,0.672-5.064,1.039-7.748,1.039c-1.892,0-3.723-0.184-5.553-0.551 c3.722,11.714,14.581,20.195,27.455,20.44c-10.067,7.868-22.757,12.566-36.546,12.566c-2.379,0-4.697-0.122-7.016-0.427 C73.707,187.507,89.204,192.389,105.799,192.389"}))}function re(){return i.createElement("svg",{version:"1.1",id:"Layer_3",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_TwitchTV",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M28.176,8.026L11.763,49.97v171.427h58.358v31.003h32.826l31.003-31.003h47.414l63.829-63.829V8.026H28.176z M223.311,146.625l-36.474,36.474h-58.359l-31.002,31.003v-31.003H48.237V29.91h175.074V146.625z M186.837,71.855v63.829h-21.885 V71.855H186.837z M128.478,71.855v63.829h-21.883V71.855H128.478z"}))}function ie(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_CSGO",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M236.979,138.059c0.548,0.078,6.91,0.101,7.772,0.032 c1.215-0.095,1.396,0.068,1.388,0.708c-0.01,0.397,0.012,3.039-2.365,7.32c-3.301,5.948-12.079,10.436-12.55,10.672 c-0.47,0.233-0.53,0.484-0.136,0.75c0.434,0.295,8.068,1.454,9.084,1.611c1.017,0.154,0.637,1.001,0.637,1.001 s-0.704,2.621-2.895,5.36c-2.189,2.738-9.311,6.123-8.583,6.123c0.731,0,7.187,0.159,6.181,1.422 c-3.019,3.786-13.603,9.528-18.43,13.813c-13.388,11.885-13.217,12.864-15.52,15.09c-0.983-3.298-3.02-12.658-3.02-12.658 l-6.105-11.467c4.413,0.18,6.364,0.081,8.952,0.081c9.214,0,17.525-2.185,22.234-5.841l2.371-1.843l-2.911-0.728 c-2.131-0.528-7.121-1.782-11.896-2.979c2.184-0.104,10.803-1.299,14.413-5.339c0.136-0.151,0.276-0.321,0.406-0.494l1.245-1.664 l-2.404-0.735c-2.607-0.799-5.948-1.682-8.517-2.335c3.173-1.572,7.585-3.942,10.048-6.088c4.83-4.203,7.226-9.709,7.322-9.943 l0.9-2.098l-10.772,0.318c1.503-1.483,3.218-3.197,3.939-3.991c1.43-1.571,4.053-6.221,4.198-9.896l0.072-1.787l-1.763,0.288 c-1.979,0.322-5.301,1.279-8.179,2.173c2.025-2.193,4.296-4.767,5.46-6.484c2.687-3.964,2.76-8.371,2.597-12.916l-0.104-2.881 l-2.261,1.79c-2.559,2.028-7.595,5.031-11.097,7.047c1.538-3.644,3.54-8.752,3.813-11.276c0.5-4.681-0.248-10.196-0.248-10.196 l-10.76,9.394c0.885-1.953,1.684-4.013,2.117-5.832c1.735-7.29,0.055-17.892-0.021-18.338l-0.452-2.807l-7.777,7.739 c0.722-3.535,1.465-8.253,1.23-11.789c-0.426-6.321-2.278-10.517-2.359-10.694l-1.01-2.251l-6.465,8.577 c0.231-4.285,0.27-10.24-0.948-13.547c-1.934-5.262-3.651-8.007-3.723-8.121l-1.232-1.958l-3.057,4.85 c0.018-2.967-0.11-6.475-0.69-8.68c-1.202-4.543-2.825-6.396-3.002-6.592l-1.325-1.433l-1.623,2.705 c-0.278-3.19-1.112-7.084-3.343-9.478l-0.814-0.872l-1.012,0.623c-0.327,0.201-0.714,0.497-1.104,0.823 c-0.154-1.135-0.365-2.451-0.639-3.691c0.563-4.733,1.186-10.03,1.206-10.452c0.027-0.547,0.274-0.767,1.017-0.391 c0.898,0.452,3.156,2.064,5.187,6.133c2.036,4.067,3.132,11.324,3.117,12.044c-0.009,0.383,0.291,0.757,0.438,0.151 c0.145-0.607,0.478-7.591,0.623-8.312c0.081-0.383,0.199-0.484,0.737-0.212c0.496,0.249,2.959,2.181,4.899,6.463 c1.179,2.599,1.634,11.946,1.574,12.653c-0.106,1.278,0.313,0.891,0.339,0.883c-0.009,0.013-0.025,0.04-0.03,0.049 c0.03-0.041,0.036-0.049,0.03-0.049c0.573-0.841,4.21-8.99,4.519-9.377c0.313-0.39,0.521-0.395,0.835,0.002 c0.262,0.33,2.095,1.717,4.049,10.088c1.902,8.135,1.949,11.542,1.848,12.682c-0.08,0.86,0.339,0.993,0.731,0.524 c0.389-0.47,5.104-9.201,5.497-9.515c0.389-0.313,0.613-0.309,0.927,0.161c0.312,0.469,2.718,4.762,3.684,11.448 c0.861,5.947,0.608,13.599,0.375,14.381c-0.235,0.782-0.135,1.077,0.493,0.53c0.623-0.548,10.299-8.412,11.004-9.038 c0.703-0.627,1.18-0.65,1.34-0.046c0.172,0.654,0.822,8.654,0.275,15.225c-0.549,6.571-2.626,12.752-2.94,13.145 c-0.312,0.391,0.087,0.712,0.478,0.555c0.394-0.157,11.902-10.018,12.645-10.402c0.711-0.367,1.043,0.005,1.105,0.507 c0.068,0.544,0.966,3.098-0.419,11.269c-0.959,5.65-3.54,11.876-3.855,12.033c-0.313,0.157-0.077,0.336,0.234,0.259 c0.315-0.079,8.324-3.488,8.872-3.567c0.546-0.079,0.671,0.339,0.514,0.808c-0.158,0.469-0.458,6.273-2.534,11.639 c-2.603,6.732-6.056,11.001-6.056,11.001s-0.252,0.519,0.217,0.519s9.266-0.186,9.813-0.263c0.547-0.079,0.627,0.156,0.547,0.704 c-0.077,0.547,0.858,9.116-8.624,14.601C236.524,137.734,236.432,137.979,236.979,138.059z M174.473,24.823 c1.981,3.34,2.018,9.248,1.836,11.469l-0.52,6.238l5.25-8.744c0.395,0.843,0.85,2.003,1.25,3.524 c1.02,3.877,0.422,13.082,0.417,13.173l-0.384,5.752l6.435-10.212c0.628,1.27,1.45,3.097,2.32,5.459 c1.466,3.983,0.772,13.806,0.381,17.257l-0.602,5.308l9.568-12.69c0.493,1.707,1.058,4.21,1.259,7.227 c0.39,5.821-2.272,15.731-2.299,15.83l-1.428,5.26l11.125-11.068c0.377,3.586,0.772,9.774-0.304,14.302 c-1.2,5.057-5.778,12.588-5.823,12.664l-1.806,3.992l16.878-14.09c-0.116,1.366-0.262,2.944-0.423,4.435 c-0.312,2.935-3.954,11.389-5.335,14.399l-1.827,4.002l3.856-2.115c0.381-0.208,8.027-4.41,12.979-7.778 c-0.039,3.484-0.537,6.042-2.139,8.4c-2.189,3.234-9.05,10.198-9.118,10.268l-4.352,4.408l5.861-2.004 c0.08-0.025,6.868-2.34,11.188-3.41c-0.675,2.445-2.208,5.125-3.11,6.118c-1.319,1.449-6.429,6.429-6.48,6.482l-2.682,2.614 l13.475-0.404c-1.06,1.837-2.89,4.549-5.457,6.783c-3.727,3.244-12.956,7.341-13.048,7.383l-3.952,1.746l4.201,1.008 c0.062,0.015,5.637,1.354,10.266,2.67c-3.412,2.191-9.291,3.081-10.948,3.138c-2.06,0.072-11.075,0.125-11.075,0.125l-11.51,0.069 l11.162,2.804c0,0,12.587,3.164,19.486,4.894c-4.398,2.216-10.717,3.493-17.657,3.493c-3.102,0-10.335-0.284-15.048-0.483 c4.064,6.069,7.041,11.004,7.992,13.681c2.813,7.915,6.777,28.269,6.889,48.907c0.039,6.572-1.081,11.649-9.022,11.649 c-0.288,0-0.597-0.038-0.908-0.092c-1.846,0.339-4.351,0.595-5.438-0.095c-1.805-1.149-3.163-2.627-3.544-3.957 c-0.383-1.334-1.146-9.374-3.106-20.675c-1.92-11.046-4.038-19.431-4.237-19.525c-1.535-0.731-9.358-18.45-9.358-18.45 l-37.23-47.615c0,0-20.737,23.917-37.455,47.8c-0.867,1.235-5.994,11.251-9.275,17.989c-0.212,0.437-0.181,0.475-0.281,0.808 c-0.604,2.015-2.396,9.525-4.039,18.994c-1.962,11.301-2.725,19.341-3.105,20.675c-0.384,1.33-1.74,2.808-3.546,3.957 c-1.085,0.689-3.592,0.434-5.437,0.095c-0.313,0.054-0.621,0.092-0.909,0.092c-7.941,0-9.061-5.077-9.024-11.649 c0.114-20.639,4.078-40.992,6.892-48.907c0.95-2.677,3.926-7.611,7.993-13.681c-4.714,0.199-11.946,0.483-15.051,0.483 c-6.939,0-13.26-1.277-17.653-3.493c6.896-1.729,19.486-4.894,19.486-4.894l11.159-2.804l-11.508-0.069 c0,0-9.019-0.053-11.076-0.125c-1.66-0.057-7.537-0.946-10.949-3.138c4.629-1.315,10.202-2.655,10.264-2.67l4.201-1.008l-3.95-1.746 c-0.094-0.042-9.324-4.139-13.049-7.383c-2.566-2.234-4.397-4.946-5.458-6.783l13.477,0.404l-2.684-2.614 c-0.05-0.054-5.16-5.033-6.48-6.482c-0.9-0.993-2.436-3.673-3.108-6.118c4.319,1.069,11.108,3.384,11.188,3.41l5.861,2.004 l-4.352-4.408c-0.069-0.069-6.928-7.033-9.12-10.268c-1.601-2.358-2.099-4.916-2.139-8.4c4.953,3.368,12.601,7.57,12.98,7.778 l3.858,2.115l-1.829-4.002c-1.379-3.011-5.022-11.465-5.334-14.399c-0.161-1.491-0.305-3.068-0.421-4.435l16.877,14.09l-1.806-3.992 c-0.046-0.076-4.622-7.607-5.821-12.664c-1.078-4.528-0.682-10.716-0.307-14.302L58.57,89.672l-1.426-5.26 c-0.025-0.098-2.688-10.008-2.3-15.83c0.203-3.017,0.767-5.52,1.26-7.227l9.566,12.69l-0.601-5.308 c-0.391-3.451-1.083-13.274,0.381-17.257c0.871-2.362,1.693-4.189,2.32-5.459l6.435,10.212l-0.382-5.752 c-0.006-0.091-0.604-9.295,0.416-13.173c0.401-1.521,0.854-2.681,1.251-3.524l5.249,8.744l-0.52-6.238 c-0.181-2.221-0.144-8.129,1.836-11.469c0.596,0.522,1.248,1.148,1.67,1.575l2.215,2.245l0.276-3.142 c0.162-1.838,0.783-7.003,1.703-8.813c1.342-2.635,4.69-3.91,7.104-4.505c-6.691,13.614-36.889,77.59-36.889,122.937 c0,23.658,16.206,23.931,16.368,23.931c4.881,0,6.947-7.914,6.947-11.063V133.45c0-2.744,1.148-2.744,1.835-2.744 c5.807,0,10.48,3.196,13.855,6.69c8.813-11.615,15.81-20.526,15.81-20.526s0.16-0.182,0.248-0.345 c-1.03-2.443-7.165-16.995-7.165-16.995l1.708-43.717c0,0-0.278-3.797,1.044-6.052c1.314-2.245,4.247-3.175,4.247-3.175 l13.307,41.443c0,0-4.107,0.866-4.107,5.585c0,2.982,2.658,4.99,6.227,5.013c3.572-0.022,6.227-2.031,6.227-5.013 c0-4.719-4.109-5.585-4.109-5.585l13.311-41.443c0,0,2.93,0.93,4.245,3.175c1.322,2.255,1.043,6.052,1.043,6.052l1.709,43.717 l-7.309,17.34c0,0,6.997,8.911,15.809,20.526c3.375-3.494,8.048-6.69,13.855-6.69c0.687,0,1.833,0,1.833,2.744v14.538 c0,3.148,2.068,11.063,6.95,11.063c0.159,0,16.367-0.272,16.367-23.931c0-45.347-30.197-109.322-36.888-122.937 c2.412,0.595,5.761,1.87,7.104,4.505c0.92,1.809,1.541,6.975,1.705,8.813l0.275,3.142l2.213-2.245 C173.226,25.972,173.875,25.345,174.473,24.823z M176.157,181.396c-1.644-2.189-41.07-55.856-41.07-55.856l-6.723,8.809 l-0.946-1.233l-0.829-1.082l-5.053-6.594l-0.095,0.101c0,0-39.427,53.667-41.07,55.856c-1.643,2.191-4.777,6.708-6.058,9.322 c-1.279,2.614-8.946,39.306-8.946,42.592c0,2.005,0.041,8.618,0.071,13.47c1.536,0.2,3.411,0.761,4.357,0.125 c1.624-1.093,2.363-2.323,2.491-3.372c0.128-1.048,1.367-12.969,2.69-20.812c1.779-10.547,4.571-19.005,4.415-18.97 c3.213-6.672,8.966-17.938,9.887-19.252c17.808-25.439,38.994-49.947,38.994-49.947s21.166,24.502,38.978,49.947 c0.921,1.313,6.672,12.58,9.888,19.252c-0.158-0.035,2.635,8.423,4.414,18.97c1.322,7.843,2.562,19.764,2.688,20.812 c0.131,1.049,0.87,2.279,2.493,3.372c0.944,0.636,2.818,0.075,4.355-0.125c0.032-4.852,0.073-11.465,0.073-13.47 c0-3.286-7.667-39.978-8.948-42.592C180.936,188.104,177.801,183.588,176.157,181.396z M82.538,21.517l-1.014-0.623l-0.813,0.872 c-2.231,2.394-3.063,6.287-3.342,9.478l-1.624-2.705l-1.323,1.433c-0.179,0.197-1.801,2.049-3.004,6.592 c-0.581,2.205-0.709,5.712-0.689,8.68l-3.057-4.85l-1.234,1.958c-0.072,0.114-1.787,2.859-3.722,8.121 c-1.22,3.307-1.179,9.262-0.949,13.547l-6.463-8.577l-1.012,2.251c-0.08,0.177-1.934,4.373-2.359,10.694 c-0.234,3.536,0.51,8.253,1.231,11.789l-7.778-7.739l-0.453,2.807c-0.073,0.446-1.754,11.048-0.02,18.338 c0.433,1.819,1.231,3.879,2.117,5.832l-10.759-9.394c0,0-0.749,5.515-0.248,10.196c0.271,2.523,2.272,7.632,3.813,11.276 c-3.503-2.016-8.539-5.019-11.099-7.047l-2.259-1.79l-0.106,2.881c-0.162,4.545-0.087,8.952,2.6,12.916 c1.161,1.717,3.433,4.291,5.459,6.484c-2.877-0.894-6.201-1.851-8.179-2.173l-1.763-0.288l0.071,1.787 c0.148,3.675,2.771,8.324,4.198,9.896c0.723,0.794,2.436,2.508,3.941,3.991L21.93,137.83l0.896,2.098 c0.1,0.234,2.493,5.74,7.324,9.943c2.464,2.146,6.876,4.516,10.047,6.088c-2.57,0.653-5.908,1.536-8.518,2.335l-2.402,0.735 l1.246,1.664c0.13,0.173,0.27,0.343,0.407,0.494c3.608,4.04,12.229,5.234,14.412,5.339c-4.774,1.197-9.767,2.451-11.896,2.979 l-2.911,0.728l2.371,1.843c4.708,3.656,13.02,5.841,22.233,5.841c2.588,0,4.539,0.099,8.954-0.081l-6.105,11.467 c0,0-2.038,9.36-3.02,12.658c-2.304-2.226-2.133-3.205-15.52-15.09c-4.829-4.284-15.411-10.026-18.429-13.813 c-1.005-1.263,5.449-1.422,6.179-1.422c0.73,0-6.393-3.385-8.582-6.123c-2.191-2.739-2.895-5.36-2.895-5.36s-0.38-0.847,0.637-1.001 c1.018-0.157,8.65-1.316,9.084-1.611c0.395-0.266,0.332-0.517-0.137-0.75c-0.469-0.236-9.248-4.724-12.548-10.672 c-2.375-4.281-2.357-6.923-2.364-7.32c-0.01-0.64,0.17-0.803,1.385-0.708c0.862,0.068,7.226,0.046,7.774-0.032 c0.546-0.08,0.453-0.324,0.019-0.576c-9.483-5.484-8.546-14.054-8.624-14.601c-0.079-0.548,0-0.783,0.548-0.704 c0.546,0.077,9.342,0.263,9.812,0.263c0.469,0,0.218-0.519,0.218-0.519s-3.452-4.27-6.056-11.001 c-2.077-5.366-2.377-11.169-2.533-11.639c-0.157-0.469-0.034-0.887,0.514-0.808c0.549,0.079,8.558,3.488,8.87,3.567 c0.313,0.077,0.548-0.103,0.235-0.259c-0.314-0.157-2.896-6.383-3.855-12.033c-1.384-8.17-0.488-10.725-0.42-11.269 c0.063-0.502,0.397-0.874,1.105-0.507c0.743,0.385,12.255,10.245,12.646,10.402c0.391,0.157,0.79-0.164,0.477-0.555 c-0.313-0.392-2.392-6.574-2.938-13.145c-0.548-6.571,0.1-14.571,0.274-15.225c0.161-0.604,0.635-0.581,1.339,0.046 c0.704,0.626,10.381,8.489,11.006,9.038c0.625,0.547,0.727,0.252,0.492-0.53c-0.235-0.782-0.484-8.435,0.375-14.381 c0.965-6.686,3.372-10.979,3.685-11.448s0.536-0.474,0.927-0.161c0.391,0.313,5.106,9.045,5.497,9.515 c0.391,0.469,0.809,0.336,0.732-0.524c-0.104-1.14-0.057-4.547,1.845-12.682c1.956-8.371,3.789-9.758,4.052-10.088 c0.313-0.396,0.521-0.392,0.833-0.002c0.309,0.387,3.945,8.536,4.519,9.377c-0.005,0,0,0.008,0.031,0.049 c-0.007-0.009-0.022-0.036-0.031-0.049c0.025,0.008,0.446,0.395,0.34-0.883c-0.058-0.707,0.396-10.055,1.574-12.653 c1.941-4.282,4.404-6.214,4.899-6.463c0.54-0.272,0.658-0.171,0.737,0.212c0.146,0.721,0.478,7.705,0.625,8.312 c0.146,0.606,0.444,0.232,0.437-0.151c-0.015-0.72,1.081-7.977,3.115-12.044c2.033-4.069,4.292-5.681,5.188-6.133 c0.742-0.376,0.989-0.156,1.018,0.391c0.022,0.422,0.645,5.719,1.206,10.452c-0.272,1.24-0.484,2.556-0.639,3.691 C83.251,22.014,82.866,21.718,82.538,21.517z M127.35,141.814c-1.158,12.032-4.978,23.045-6.326,29.486 c-1.643,7.849-4.788,18.061-6.793,20.931c-4.433,6.343-18.036,18.547-20.403,19.732c-1.094,0.547-6.376-4.115-6.56-4.846 c-0.182-0.728,2.883-3.993,2.154-3.627c-0.731,0.364-4.104,0.906-5.06,0.87c-0.753-0.026,0.633-2.728,0.633-2.728 s-1.484,2.217-3.021,2.947c-0.03,0.015,9.433-18.119,9.433-18.119S127.52,140.043,127.35,141.814z M119.7,169.39l3.104-10.647 l-1.869-0.559l-3.152,10.656L119.7,169.39z M114.072,167.242l4.687-10.051l-1.764-0.838l-4.735,10.055L114.072,167.242z M126.961,159.319l-0.82,11.06l-1.991-0.139l0.867-11.079L126.961,159.319z M131.727,170.391l-1.986,0.167l-0.828-11.078 l1.944-0.144L131.727,170.391z M164.422,186.462c0,0,9.463,18.134,9.434,18.119c-1.54-0.73-3.021-2.947-3.021-2.947 s1.384,2.701,0.633,2.728c-0.957,0.036-4.33-0.506-5.06-0.87c-0.731-0.366,2.334,2.899,2.153,3.627 c-0.185,0.73-5.467,5.393-6.56,4.846c-2.368-1.186-15.973-13.39-20.404-19.732c-2.007-2.87-5.149-13.082-6.792-20.931 c-1.349-6.441-4.621-17.127-5.778-29.16C128.854,140.373,164.422,186.462,164.422,186.462z M142.029,167.242l1.813-0.834 l-4.735-10.055l-1.762,0.838L142.029,167.242z M136.402,169.39l1.917-0.55l-3.152-10.656l-1.868,0.559L136.402,169.39z"}))}function oe(){return i.createElement("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_ClosedCaption",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{className:"CCBox",fill:"none",stroke:"#000000",strokeWidth:"10",strokeMiterlimit:"10",d:"M238,210c0,6.627-5.373,12-12,12H30 c-6.627,0-12-5.373-12-12V46c0-6.627,5.373-12,12-12h196c6.627,0,12,5.373,12,12V210z"}),i.createElement("path",{className:"C1",d:"M90.505,173.207c11.431,0,22.338-4.276,30.72-12.036c2.6-2.407,2.753-6.47,0.347-9.068c-2.41-2.604-6.47-2.757-9.072-0.349 c-5.998,5.559-13.811,8.62-21.995,8.62c-17.852,0-32.373-14.524-32.373-32.372c0-17.849,14.521-32.373,32.373-32.373 c8.177,0,15.981,3.055,21.979,8.603c2.603,2.407,6.662,2.25,9.072-0.353c2.407-2.602,2.249-6.662-0.353-9.068 c-8.375-7.751-19.276-12.019-30.694-12.019c-24.931,0-45.209,20.281-45.209,45.209C45.3,152.93,65.574,173.207,90.505,173.207z"}),i.createElement("path",{className:"C1",d:"M177.926,173.207c11.431,0,22.338-4.276,30.721-12.036c2.6-2.407,2.754-6.47,0.347-9.068 c-2.41-2.604-6.47-2.757-9.072-0.349c-5.998,5.559-13.812,8.62-21.995,8.62c-17.852,0-32.372-14.524-32.372-32.372 c0-17.849,14.521-32.373,32.372-32.373c8.178,0,15.981,3.055,21.979,8.603c2.604,2.407,6.663,2.25,9.072-0.353 c2.407-2.602,2.25-6.662-0.353-9.068c-8.375-7.751-19.277-12.019-30.694-12.019c-24.932,0-45.209,20.281-45.209,45.209 C132.721,152.93,152.996,173.207,177.926,173.207z"}))}function ae(){return i.createElement("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Hidden",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M62.499,172.263 c-32.755-16.197-47.415-39.509-47.415-39.509"}),i.createElement("path",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M177.948,85.392 c48.213,14.998,68.451,47.362,68.451,47.362s-36.393,54.737-115.689,54.737c-17.938,0-33.591-2.671-47.096-6.832"}),i.createElement("path",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M15.084,132.754 c0,0,32.933-56.576,115.674-54.785c8.505,0.185,16.486,0.913,23.96,2.072"}),i.createElement("path",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M93.981,141.131 c-0.475-2.385-0.725-4.852-0.725-7.377c0-20.711,16.789-37.5,37.5-37.5c2.42,0,4.787,0.229,7.08,0.668"}),i.createElement("path",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",d:"M156.528,106.512 c7.223,6.836,11.729,16.513,11.729,27.242c0,20.711-16.789,37.5-37.5,37.5c-10.609,0-20.189-4.405-27.012-11.487"}),i.createElement("line",{fill:"none",stroke:"#FFFFFF",strokeWidth:"10",strokeLinecap:"round",strokeMiterlimit:"10",x1:"53.007",y1:"210.504",x2:"208.507",y2:"55.004"}))}function se(e){return i.createElement("svg",Object.assign({width:"25",height:"15",viewBox:"0 0 25 15",fill:"black",xmlns:"http://www.w3.org/2000/svg"},e),i.createElement("path",{d:"M20.4983 14.9998H5.50068C4.77794 15.0049 4.05853 14.901 3.36635 14.6914C2.73245 14.5017 2.13941 14.1939 1.6178 13.7838C1.09666 13.3667 0.67927 12.8325 0.398748 12.2237C0.118225 11.615 -0.0177451 10.9486 0.00185477 10.2775C-0.0054678 9.70509 0.0977818 9.13666 0.305747 8.60408C0.498657 8.12872 0.785143 7.69778 1.14794 7.33745C1.81398 6.67001 2.78944 6.15547 4.04731 5.80829C4.10841 4.25269 4.75842 2.77984 5.86348 1.69365C6.96903 0.60364 8.45437 -0.00449463 9.99987 2.50132e-05C11.0001 0.00807229 11.9825 0.267715 12.8582 0.7555C13.7339 1.24329 14.4753 1.9437 15.0152 2.79335C15.4947 2.6343 15.994 2.54414 16.4984 2.52541C17.9193 2.52443 19.2832 3.08972 20.2932 4.09833C21.3094 5.10022 21.9038 6.45906 21.9527 7.89189C22.9609 8.23234 23.6526 8.60787 24.1302 9.07289C24.7185 9.65279 25.0339 10.4583 24.9971 11.2875C25.0059 11.8527 24.8841 12.4122 24.6414 12.9216C24.4147 13.3796 24.0837 13.7769 23.6754 14.0808C22.8776 14.6823 21.7794 14.9998 20.4983 14.9998ZM10.6373 8.62986L9.91893 9.35485L12.1391 11.6L12.4984 11.9464L12.8573 11.6L15.0793 9.35506L14.361 8.63007L12.9987 10.005V5.55515H11.9997V10.005L10.6373 8.62986Z",fill:"currentColor"}))}function le(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_PlayTime",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polyline",{fill:"none",stroke:"#000000",strokeWidth:"16",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",points:"85.5,149.167 128,128 128,55.167 "}),i.createElement("path",{fill:"none",stroke:"#000000",strokeWidth:"16",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",d:"M128,17.5c61.027,0,110.5,49.473,110.5,110.5S189.027,238.5,128,238.5S17.5,189.027,17.5,128"}),i.createElement("circle",{stroke:"#000000",strokeWidth:"7",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",cx:"26.448",cy:"85.833",r:"5.5"}),i.createElement("circle",{stroke:"#000000",strokeWidth:"7",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",cx:"50.167",cy:"50.5",r:"5.5"}),i.createElement("circle",{stroke:"#000000",strokeWidth:"7",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",cx:"86",cy:"26.667",r:"5.5"}))}function ce(){return i.createElement("svg",{version:"1.1",id:"Layer_3",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Filter",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M236.445,23.522c-1.085-2.35-3.438-3.855-6.025-3.855H25.58c-2.586,0-4.936,1.501-6.024,3.855 c-1.08,2.349-0.698,5.112,0.983,7.083l80.328,94.039v104.181c0,2.74,1.682,5.194,4.237,6.188c0.778,0.3,1.588,0.445,2.392,0.445 c1.832,0,3.626-0.762,4.91-2.17l41.012-45.13c1.111-1.219,1.724-2.811,1.724-4.459v-59.054l80.325-94.04 C237.144,28.634,237.526,25.867,236.445,23.522z"}))}function de(){return i.createElement("svg",{version:"1.1",id:"Layer_4",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Home",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("polygon",{points:"42.054,228.271 113.669,228.271 113.669,170.973 142.324,170.973 142.324,228.271 213.946,228.271 213.946,142.324 242.595,142.324 128,27.729 13.405,142.324 42.054,142.324 "}))}function ue(){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_Patch",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M171.176,136.219c-5.516-5.516-14.166-5.948-20.223-1.406L92.125,75.984l-8.002-29.738c-0.324-1.406-1.73-3.027-3.028-3.785 L46.49,24.186c-1.298-0.648-3.136-0.433-4.218,0.648L25.295,41.813c-0.974,0.973-1.298,2.92-0.649,4.217l18.276,34.605 c0.648,1.297,2.379,2.596,3.785,3.027l29.739,8.003l58.828,58.828c-4.542,6.056-4.109,14.707,1.405,20.222l56.882,56.882 c6.056,6.056,15.896,6.056,21.845,0l12.544-12.544c6.056-6.056,6.056-15.788,0-21.845L171.176,136.219z"}),i.createElement("path",{d:"M153.116,122.16c2.271-0.648,4.65-0.973,7.138-0.973c0.865,0,1.622,0,2.486,0.107l26.928-26.927 c12.328,2.92,25.846-0.324,35.361-9.948c9.517-9.625,12.869-23.034,9.949-35.254l-20.33,20.33l-21.845-5.84l-5.84-21.952 l20.331-20.33c-12.221-2.92-25.738,0.324-35.254,9.948c-9.625,9.625-12.869,23.143-9.949,35.362L129.866,98.91L153.116,122.16z"}),i.createElement("path",{d:"M99.371,129.406l-32.226,32.226c-12.328-2.92-25.845,0.324-35.362,9.948c-9.517,9.625-12.869,23.034-9.949,35.254 l20.331-20.33l21.953,5.84l5.839,21.952l-20.331,20.33c12.22,2.92,25.737-0.324,35.254-9.949 c9.625-9.624,12.869-23.142,9.949-35.361l27.035-27.035c-0.325-3.136,0-6.38,0.865-9.517L99.371,129.406z"}))}function me(){return i.createElement("svg",{version:"1.1",id:"base",xmlns:"http://www.w3.org/2000/svg",className:"SVGIcon_Button SVGIcon_AppleLogo",x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 256 256"},i.createElement("path",{d:"M138.365,26.557c16.139-21.272,38.578-21.376,38.578-21.376s3.336,19.999-12.696,39.266 c-17.12,20.572-36.58,17.206-36.58,17.206S124.012,45.473,138.365,26.557z"}),i.createElement("path",{d:"M129.719,75.662c8.305,0,23.713-11.413,43.771-11.413c34.527,0,48.109,24.566,48.109,24.566s-26.565,13.583-26.565,46.54 c0,37.179,33.093,49.991,33.093,49.991s-23.134,65.112-54.38,65.112c-14.353,0-25.509-9.672-40.631-9.672 c-15.41,0-30.702,10.032-40.662,10.032c-28.533,0-64.581-61.765-64.581-111.414c0-48.849,30.512-74.474,59.13-74.474 C105.61,64.933,120.047,75.662,129.719,75.662z"}))}function he(){return i.createElement("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",className:"SVGIcon_Button SVGIcon_WindowsLogo",width:"100%",height:"100%",viewBox:"0 0 128 128",enableBackground:"new 0 0 128 128"},i.createElement("rect",{fill:"#FFFFFF",width:"60.834",height:"60.835"}),i.createElement("rect",{x:"67.165",fill:"#FFFFFF",width:"60.835",height:"60.835"}),i.createElement("rect",{y:"67.164",fill:"#FFFFFF",width:"60.834",height:"60.836"}),i.createElement("rect",{x:"67.165",y:"67.164",fill:"#FFFFFF",width:"60.835",height:"60.836"}))}function pe(){return i.createElement("svg",{version:"1.1",id:"Layer_3_copy",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 256 256"},i.createElement("g",{id:"Layer_3_copy"},i.createElement("g",{id:"g4768_1_",transform:"translate(-6.9308024,-10)"},i.createElement("g",{id:"g4763_1_"})),i.createElement("path",{d:"M206.3,36.6c-19.4,0-35.8,14.1-40.3,33H24.8c-6,0-10.8,4.8-10.8,10.8s4.8,10.8,10.8,10.8h141.3\r\n\t\t\t\tc4.7,18.6,20.9,32.4,40.2,32.4c22.9,0,41.5-19.5,41.5-43.5C247.9,56.2,229.2,36.6,206.3,36.6z M206.3,109.7\r\n\t\t\t\tc-15.2,0-27.5-13.2-27.5-29.5c0-16.3,12.4-29.5,27.5-29.5s27.5,13.2,27.5,29.5C233.9,96.4,221.5,109.7,206.3,109.7z"}),i.createElement("path",{d:"M230.4,157.3H107.9c-4.6-14.6-18.3-25.2-34.3-25.2s-29.7,10.6-34.3,25.2H24.8c-6,0-10.8,4.8-10.8,10.8\r\n\t\t\t\tS18.9,179,24.8,179h14.3c4.6,14.6,18.3,25.2,34.3,25.2s29.7-10.6,34.3-25.2h122.5c6,0,10.8-4.8,10.8-10.8S236.4,157.3,230.4,157.3z\r\n\t\t\t\tM73.5,189.8c-8,0-14.9-4.3-18.7-10.8l0,0c-0.7-1.2-1.3-2.4-1.7-3.7c0,0,0-0.1,0-0.1c-0.1-0.4-0.2-0.8-0.4-1.2c0-0.1,0-0.1,0-0.2\r\n\t\t\t\tc-0.2-0.8-0.4-1.7-0.5-2.6c0-0.1,0-0.2,0-0.3c0-0.3-0.1-0.7-0.1-1c0-0.1,0-0.2,0-0.4c0-0.4,0-0.9,0-1.3s0-0.9,0-1.3\r\n\t\t\t\tc0-0.1,0-0.2,0-0.4c0-0.3,0.1-0.7,0.1-1c0-0.1,0-0.2,0-0.3c0.1-0.9,0.3-1.8,0.5-2.6c0-0.1,0-0.1,0-0.2c0.1-0.4,0.2-0.8,0.4-1.2\r\n\t\t\t\tc0,0,0-0.1,0-0.1c0.5-1.3,1-2.6,1.7-3.7c3.7-6.4,10.7-10.8,18.7-10.8c8,0,14.9,4.3,18.7,10.8c0.7,1.2,1.3,2.4,1.7,3.7\r\n\t\t\t\tc0,0,0,0.1,0,0.1c0.1,0.4,0.3,0.8,0.4,1.2c0,0.1,0,0.1,0,0.2c0.2,0.8,0.4,1.7,0.5,2.6c0,0.1,0,0.2,0,0.3c0,0.3,0.1,0.7,0.1,1\r\n\t\t\t\tc0,0.1,0,0.2,0,0.4c0,0.4,0,0.9,0,1.3s0,0.9,0,1.3c0,0.1,0,0.2,0,0.4c0,0.3-0.1,0.7-0.1,1c0,0.1,0,0.2,0,0.3\r\n\t\t\t\tc-0.1,0.9-0.3,1.8-0.5,2.6c0,0.1,0,0.1,0,0.2c-0.1,0.4-0.2,0.8-0.4,1.2c0,0,0,0.1,0,0.1c-0.5,1.3-1,2.6-1.7,3.7l0,0\r\n\t\t\t\tC88.5,185.4,81.5,189.8,73.5,189.8z"})))}function _e(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 256 256"},i.createElement("circle",{cx:"126",cy:"134",r:"20.6"}),i.createElement("circle",{cx:"189.4",cy:"134",r:"20.6"}),i.createElement("circle",{cx:"62.6",cy:"134",r:"20.6"}))}function ge(){return i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 18",version:"1.1",x:"0px",y:"0px",fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:"1.41421"},i.createElement("path",{d:"M12.621,2.491c-0.021,0.019 -0.042,0.039 -0.063,0.06l-5.125,5.201c-0.579,0.587 -0.575,1.527 -0.001,2.109l0.691,0.702c0.576,0.584 1.505,0.582 2.079,-0.001l5.126,-5.201c0.021,-0.021 0.04,-0.042 0.059,-0.063l1.573,1.595c0.573,0.582 1.04,0.386 1.04,-0.439l0,-5.957c0,-0.276 -0.219,-0.497 -0.49,-0.497l-5.87,0c-0.82,0 -1.008,0.473 -0.434,1.056l1.415,1.435Zm-9.618,-2.491c-1.665,0 -3.003,1.344 -3.003,3.003l0,11.994c0,1.665 1.344,3.003 3.003,3.003l11.994,0c1.665,0 3.003,-1.344 3.003,-3.003l0,-7.746l0,4.249l-3,-2.488l0,4.492c0,0.826 -0.671,1.496 -1.496,1.496l-9.008,0c-0.826,0 -1.496,-0.671 -1.496,-1.496l0,-9.008c0,-0.826 0.671,-1.496 1.496,-1.496l4.504,0l-2.5,-3l4.249,0l-7.746,0Z"}))}function fe(){return i.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",x:"0px",y:"0px"},i.createElement("path",{d:"M50,7A43,43,0,1,1,7,50,43,43,0,0,1,50,7m0-7a50,50,0,1,0,50,50A50,50,0,0,0,50,0h0Z",fill:"currentColor"}),i.createElement("path",{d:"M50.79,25a45.51,45.51,0,0,1,5.29.87c5.33,1.51,8.5,5.77,8.9,11.43a10.4,10.4,0,0,1-4.21,9.5c-1.42,1.1-2.91,2.1-4.34,3.18a7.06,7.06,0,0,0-3.18,6.3,4,4,0,0,1-2.88,4,4.42,4.42,0,0,1-5.18-1.55,4.19,4.19,0,0,1-.59-2.07A13.89,13.89,0,0,1,50.3,45,41.55,41.55,0,0,0,54.83,41,5,5,0,0,0,56,38.19c0.23-2.83-1.59-4.65-4.52-4.84-3.54-.23-6.52.69-8.6,3.82a4.19,4.19,0,0,1-4.35,2c-3-.5-4.29-2.94-3.06-5.75a12.84,12.84,0,0,1,6.25-6.2A21.71,21.71,0,0,1,50.79,25Z",fill:"currentColor"}),i.createElement("path",{d:"M53.78,69.88C53.8,73.09,52,75,48.85,75s-5.25-1.84-5.26-4.53c0-3.73,1.67-5.59,5-5.69C51.3,64.7,54.12,66.36,53.78,69.88Z",fill:"currentColor"}))}function ve(e,t){return(0,l.id)()?i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 36 36",fill:"none"},e),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2 4V16V20L7 16H24V4H2ZM12 20V32H29L34 36V32V20H12Z",fill:"currentColor"})):i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:e.className,x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 409.6 409.6"},i.createElement("path",{d:"M109.9,96.2H302c16.3,0,29.6,13,29.6,29v101.4c0,16-13.2,29-29.6,29h-90.1l-57.6,57.9L138,255.6h-28.1\r\n\t\t\t\tc-16.3,0-29.6-13-29.6-29V125.2C80.4,109.2,93.6,96.2,109.9,96.2z"}))}function Ce(e){return i.createElement("svg",{version:"1.1",id:"Layer_2",xmlns:"http://www.w3.org/2000/svg",className:e.className,x:"0px",y:"0px",width:"256px",height:"256px",viewBox:"0 0 409.6 409.6"},i.createElement("path",{d:"M225.1,328.8c-12.6,0-15.3-1.9-29.5-5.3c-18.7-4.8-35.3-6.3-51-5.3c-3.5,0.5-7.1,0.5-10.6,1l-7.6,1\r\n\t\t\t\tc-2.5,0.5-4.5-1-5.6-3.4c-12.6-36.2-16.6-74.7-11.6-117.6c0-2.4,2-3.9,4.5-4.3l4.5-0.5c3.5-0.5,6.6-1,10.1-1c5-0.5,9.6-2.9,13.1-7.2\r\n\t\t\t\tl0.5-1c0.5-0.5,1-1.4,1.5-2.4c9.1-14.5,22.2-25.6,36.8-37.6c7.6-6.3,14.1-12.5,20.2-18.3c6.6-7.2,10.1-16.4,10.6-27\r\n\t\t\t\tc0-9.6,5.6-15.4,16.1-16.4c13.6-1,22.7,3.9,27.8,15.9c7.6,16.4-4.4,33.3-13.9,50.6c-2,3.9-4.5,7.2-7.1,10.6c-1,1.4-2,2.9-3,4.3\r\n\t\t\t\tl-3.5,4.8c-1.5,1.9-3,3.9-4.5,6.3c4,0,7.6,0,11.6,0c11.1-0.5,34.6-0.5,46.7,1.4c7.6,1,13.6,4.8,17.7,10.1c3.5,4.8,4.5,11.1,3,17.8\r\n\t\t\t\tc-0.5,2.9-2,5.8-5,9.2c-1.5,1.9-14.4,3.9-16.5,5.3h10.9c2.5,1.9,5,3.9,7.1,6.3c4,4.3,5.6,9.2,5,14.9c-0.5,5.3-3,10.6-7.6,14\r\n\t\t\t\tc-2.5,1.9-16,3.9-18.5,5.3c5,5.3,18,12.1,16.5,19.3c-2,9.6-7.6,15.4-18.2,17.8c2.5,3.9,3,8.7,1.5,13.5c-0.5,2.4-1.5,4.3-2.5,6.3\r\n\t\t\t\tc-2.5,5.3-6.6,8.2-13.1,9.6C253.2,327.8,233.7,328.8,225.1,328.8z"}))}function Se(e){return i.createElement("svg",{className:e.className,height:"100px",width:"100px",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100",enableBackground:"new 0 0 100 100",fill:"currentColor"},i.createElement("g",{display:"none"},i.createElement("rect",{x:"-660.877",y:"-37.172",display:"inline",width:"1370.931",height:"1263.231"})),i.createElement("g",null,i.createElement("path",{d:"M34.367,31.803c0.49,0.443,1.228,0.404,1.698-0.06c3.869-3.823,8.894-6.045,14.425-6.337 c11.044-0.495,20.558,7.281,22.518,17.866c0.133,0.717-0.429,1.379-1.157,1.413l-4.83,0.223c-1.092,0.05-1.578,1.397-0.769,2.133 l13.999,12.733c0.502,0.456,1.279,0.419,1.734-0.084L94.68,45.676c0.733-0.809,0.123-2.1-0.967-2.048l-6.486,0.309 c-1.82-18.94-18.238-33.327-37.455-32.439c-9.122,0.484-17.619,4.28-23.984,10.844c-0.48,0.495-0.439,1.299,0.072,1.762 L34.367,31.803z"}),i.createElement("path",{d:"M6.229,53.869h6.11c0.622,0,1.132,0.468,1.207,1.085c1.029,8.437,4.787,16.288,10.854,22.357 c7.249,7.217,16.85,11.23,27.047,11.23c9.778,0.07,19.009-3.568,26.131-10.258c0.502-0.471,0.502-1.276,0.015-1.763l-9.587-9.587 c-4.379,4.389-10.288,6.838-16.559,6.838c-6.224,0-12.068-2.506-16.541-6.934c-3.179-3.179-5.282-7.178-6.168-11.481 c-0.154-0.746,0.447-1.436,1.209-1.436h5.183c1.092,0,1.639-1.319,0.869-2.092L21.572,37.352c-0.478-0.48-1.255-0.481-1.734-0.003 L5.363,51.773C4.589,52.545,5.135,53.869,6.229,53.869z"})))}function Ee(e){const{className:t}=e;(0,r._T)(e,["className"]);return i.createElement("svg",{className:(0,o.Z)(t,"SVGIcon_Button"),width:"59px",height:"59px",viewBox:"0 0 59 59",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M57.9907 30.2382L57.9932 30.1318L23.3635 58.4652L23.159 58.2152L23.0596 58.295C9.86456 55.3567 0 43.5804 0 29.5C0 13.2076 13.2076 0 29.5 0C45.7683 0 58.9609 13.1684 59 29.4275L57.9907 30.2382ZM57.9886 28.6833C52.956 26.4605 41.9077 24.7254 31.9404 33.2687C22.1502 41.6604 21.6264 52.0873 22.7598 57.1984C10.2728 54.1704 1 42.9181 1 29.5C1 13.7599 13.7599 1 29.5 1C44.967 1 57.5563 13.3209 57.9886 28.6833ZM57.2445 29.4523L23.7148 56.8857C22.676 52.0493 23.1845 42.0909 32.5912 34.028C41.9759 25.984 52.3311 27.4183 57.2445 29.4523Z",fill:""}))}function De(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(t,"SVGIcon_Button"),width:"60px",height:"52px",viewBox:"0 0 60 52",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0.5 5.5C0.5 2.46243 2.96243 0 6 0H54C57.0376 0 59.5 2.46243 59.5 5.5V35C59.5 38.0376 57.0376 40.5 54 40.5H52.5C51.6716 40.5 51 41.1716 51 42V50.0858C51 51.4221 49.3843 52.0914 48.4393 51.1464L37.7929 40.5H6C2.96243 40.5 0.5 38.0376 0.5 35V5.5ZM6 1C3.51472 1 1.5 3.01472 1.5 5.5V35C1.5 37.4853 3.51472 39.5 6 39.5H38H38.2071L38.3536 39.6464L49.1464 50.4393C49.4614 50.7543 50 50.5312 50 50.0858V42C50 40.6193 51.1193 39.5 52.5 39.5H54C56.4853 39.5 58.5 37.4853 58.5 35V5.5C58.5 3.01472 56.4853 1 54 1H6ZM30 32C36.6274 32 42 26.6274 42 20C42 13.3726 36.6274 8 30 8C23.3726 8 18 13.3726 18 20C18 26.6274 23.3726 32 30 32ZM30 33C37.1797 33 43 27.1797 43 20C43 12.8203 37.1797 7 30 7C22.8203 7 17 12.8203 17 20C17 27.1797 22.8203 33 30 33ZM26.5 18C27.3284 18 28 17.3284 28 16.5C28 15.6716 27.3284 15 26.5 15C25.6716 15 25 15.6716 25 16.5C25 17.3284 25.6716 18 26.5 18ZM35 16.5C35 17.3284 34.3284 18 33.5 18C32.6716 18 32 17.3284 32 16.5C32 15.6716 32.6716 15 33.5 15C34.3284 15 35 15.6716 35 16.5ZM24.5 22C24.5 24.4853 26.5147 26.5 29 26.5H31C33.4853 26.5 35.5 24.4853 35.5 22H34.5C34.5 23.933 32.933 25.5 31 25.5H29C27.067 25.5 25.5 23.933 25.5 22H24.5Z",fill:""}))}function be(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(t,"SVGIcon_Button"),width:"60px",height:"52px",viewBox:"0 0 60 52",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 0C2.96243 0 0.5 2.46243 0.5 5.5V35C0.5 38.0376 2.96243 40.5 6 40.5H37.7929L48.4393 51.1464C49.3843 52.0914 51 51.4221 51 50.0858V42C51 41.1716 51.6716 40.5 52.5 40.5H54C57.0376 40.5 59.5 38.0376 59.5 35V5.5C59.5 2.46243 57.0376 0 54 0H6ZM1.5 5.5C1.5 3.01472 3.51472 1 6 1H54C56.4853 1 58.5 3.01472 58.5 5.5V35C58.5 37.4853 56.4853 39.5 54 39.5H52.5C51.1193 39.5 50 40.6193 50 42V50.0858C50 50.5312 49.4614 50.7543 49.1464 50.4393L38.3536 39.6464L38.2071 39.5H38H6C3.51472 39.5 1.5 37.4853 1.5 35V5.5ZM16 8.88154L17.8736 13.9448C18.0761 14.4922 18.5078 14.9239 19.0552 15.1264L24.1185 17L19.0552 18.8736C18.5078 19.0761 18.0761 19.5078 17.8736 20.0552L16 25.1185L14.1264 20.0552C13.9239 19.5078 13.4922 19.0761 12.9448 18.8736L7.88154 17L12.9448 15.1264C13.4922 14.9239 13.9239 14.4922 14.1264 13.9448L16 8.88154ZM15.0621 8.53451C15.3843 7.66389 16.6157 7.66389 16.9379 8.5345L18.8114 13.5978C18.9127 13.8715 19.1285 14.0873 19.4022 14.1886L24.4655 16.0621C25.3361 16.3843 25.3361 17.6157 24.4655 17.9379L19.4022 19.8114C19.1285 19.9127 18.9127 20.1285 18.8114 20.4022L16.9379 25.4655C16.6157 26.3361 15.3843 26.3361 15.0621 25.4655L13.1886 20.4022C13.0873 20.1285 12.8715 19.9127 12.5978 19.8114L7.53451 17.9379C6.66389 17.6157 6.66389 16.3843 7.5345 16.0621L12.5978 14.1886C12.8715 14.0873 13.0873 13.8715 13.1886 13.5978L15.0621 8.53451ZM32.8736 23.9448L31 18.8815L29.1264 23.9448C28.9239 24.4922 28.4922 24.9239 27.9448 25.1264L22.8815 27L27.9448 28.8736C28.4922 29.0761 28.9239 29.5078 29.1264 30.0552L31 35.1185L32.8736 30.0552C33.0761 29.5078 33.5078 29.0761 34.0552 28.8736L39.1185 27L34.0552 25.1264C33.5078 24.9239 33.0761 24.4922 32.8736 23.9448ZM31.9379 18.5345C31.6157 17.6639 30.3843 17.6639 30.0621 18.5345L28.1886 23.5978C28.0873 23.8715 27.8715 24.0873 27.5978 24.1886L22.5345 26.0621C21.6639 26.3843 21.6639 27.6157 22.5345 27.9379L27.5978 29.8114C27.8715 29.9127 28.0873 30.1285 28.1886 30.4022L30.0621 35.4655C30.3843 36.3361 31.6157 36.3361 31.9379 35.4655L33.8114 30.4022C33.9127 30.1285 34.1285 29.9127 34.4022 29.8114L39.4655 27.9379C40.3361 27.6157 40.3361 26.3843 39.4655 26.0621L34.4022 24.1886C34.1285 24.0873 33.9127 23.8715 33.8114 23.5978L31.9379 18.5345ZM43 4.88154L44.8736 9.9448C45.0761 10.4922 45.5078 10.9239 46.0552 11.1264L51.1185 13L46.0552 14.8736C45.5078 15.0761 45.0761 15.5078 44.8736 16.0552L43 21.1185L41.1264 16.0552C40.9239 15.5078 40.4922 15.0761 39.9448 14.8736L34.8815 13L39.9448 11.1264C40.4922 10.9239 40.9239 10.4922 41.1264 9.9448L43 4.88154ZM42.0621 4.53451C42.3843 3.66389 43.6157 3.66389 43.9379 4.5345L45.8114 9.59776C45.9127 9.87148 46.1285 10.0873 46.4022 10.1886L51.4655 12.0621C52.3361 12.3843 52.3361 13.6157 51.4655 13.9379L46.4022 15.8114C46.1285 15.9127 45.9127 16.1285 45.8114 16.4022L43.9379 21.4655C43.6157 22.3361 42.3843 22.3361 42.0621 21.4655L40.1886 16.4022C40.0873 16.1285 39.8715 15.9127 39.5978 15.8114L34.5345 13.9379C33.6639 13.6157 33.6639 12.3843 34.5345 12.0621L39.5978 10.1886C39.8715 10.0873 40.0873 9.87148 40.1886 9.59776L42.0621 4.53451Z",fill:""}))}function we(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(t,"SVGIcon_Button"),width:"78px",height:"59px",viewBox:"0 0 78 59",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3 2H75C75.5523 2 76 2.44772 76 3V25.6362L68.5063 32.7893L55.6643 18.4365L54.9851 17.6774L54.2386 18.3705L47.6334 24.504L33.3138 11.2072L32.6449 10.5861L31.9655 11.1958L17.0936 24.5423L12.5854 20.7277L11.9914 20.2251L11.3582 20.6773L2 27.3618V3C2 2.44772 2.44772 2 3 2ZM2 44.3885V55.898C2 56.4502 2.44772 56.898 3 56.898H75C75.5523 56.898 76 56.4502 76 55.898V44.4179L70.3673 42.7281C69.6315 42.5074 68.8478 42.5032 68.1097 42.716L62.7717 44.2552C61.5774 44.5995 60.3057 44.5645 59.1323 44.1549L55.3406 42.8316C54.5367 42.5511 53.6643 42.5343 52.8502 42.7838L48.1375 44.2284C46.9576 44.5901 45.6948 44.5791 44.5213 44.197L40.1648 42.7783C39.397 42.5283 38.5714 42.5165 37.7968 42.7446L32.6112 44.271C31.4845 44.6027 30.2852 44.5963 29.162 44.2528L24.2385 42.7469C23.483 42.5158 22.6759 42.5137 21.9192 42.7407L16.9269 44.2384C15.7429 44.5936 14.4782 44.5744 13.3055 44.1835L9.22505 42.8234C8.40398 42.5497 7.5163 42.5497 6.69523 42.8234L2 44.3885ZM2 42.2803L6.06277 40.926C7.29438 40.5155 8.62591 40.5155 9.85751 40.926L13.9379 42.2862C14.7197 42.5468 15.5629 42.5595 16.3522 42.3227L21.3445 40.8251C22.4796 40.4845 23.6902 40.4878 24.8235 40.8344L29.747 42.3403C30.4957 42.5693 31.2953 42.5735 32.0464 42.3524L37.232 40.826C38.394 40.4839 39.6323 40.5016 40.7841 40.8766L45.1406 42.2953C45.9229 42.55 46.7647 42.5573 47.5514 42.3162L52.2641 40.8716C53.4852 40.4974 54.7938 40.5225 55.9996 40.9433L59.7913 42.2667C60.5736 42.5397 61.4214 42.563 62.2176 42.3335L67.5556 40.7943C68.6627 40.4751 69.8383 40.4814 70.942 40.8125L76 42.3299V28.4011L69.1402 34.9491L68.3931 35.6622L67.7044 34.8925L54.8531 20.5292L44.4567 30.183L43.0958 28.7174L46.1637 25.8686L32.6219 13.294L18.6349 25.8464L22.9324 29.4828L21.6405 31.0095L16.467 26.632L11.8875 22.7571L2 29.8196V42.2803ZM0 3C0 1.34315 1.34315 0 3 0H75C76.6569 0 78 1.34315 78 3V55.898C78 57.5548 76.6569 58.898 75 58.898H3C1.34315 58.898 0 57.5548 0 55.898V3ZM17.6094 13.1832C18.414 11.5742 18.9328 10.7593 19.4551 10.3118C19.8967 9.93322 20.4163 9.75659 21.4905 9.75659C22.0428 9.75659 22.4905 9.30888 22.4905 8.75659C22.4905 8.20431 22.0428 7.75659 21.4905 7.75659C20.177 7.75659 19.1047 7.97793 18.1535 8.79321C17.4662 9.38227 16.9009 10.2384 16.3059 11.3474C13.8336 10.1236 11.0561 10.2073 9.15781 11.0209C8.65018 11.2384 8.41503 11.8263 8.63259 12.334C8.85014 12.8416 9.43802 13.0767 9.94565 12.8592C11.5101 12.1887 14.0696 12.1744 16.1604 13.568L17.1028 14.1963L17.6094 13.1832ZM62.8781 15.5106C64.8505 15.5106 66.4495 13.9116 66.4495 11.9392C66.4495 9.96674 64.8505 8.36776 62.8781 8.36776C60.9056 8.36776 59.3066 9.96674 59.3066 11.9392C59.3066 13.9116 60.9056 15.5106 62.8781 15.5106ZM62.8781 17.5106C65.9551 17.5106 68.4495 15.0162 68.4495 11.9392C68.4495 8.86217 65.9551 6.36776 62.8781 6.36776C59.8011 6.36776 57.3066 8.86217 57.3066 11.9392C57.3066 15.0162 59.8011 17.5106 62.8781 17.5106Z",fill:""}))}function ye(e){const{className:t}=e;(0,r._T)(e,["className"]);return i.createElement("svg",{className:(0,o.Z)(t,"SVGIcon_Button"),width:"46px",height:"62px",viewBox:"0 0 46 62",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M24.425 1.87316L27.6636 5.16235C28.5084 6.02034 29.6947 6.45213 30.8934 6.33789L35.4885 5.89995C36.6002 5.794 37.5833 6.61889 37.672 7.73207L38.0386 12.3335C38.1343 13.5337 38.7655 14.6271 39.7571 15.31L43.5587 17.9282C44.4784 18.5616 44.7013 19.8255 44.0537 20.7352L41.3768 24.4958C40.6786 25.4767 40.4594 26.72 40.78 27.8806L42.0092 32.3299C42.3066 33.4063 41.6649 34.5176 40.5841 34.7983L36.1163 35.9584C34.9508 36.261 33.9837 37.0725 33.4833 38.1677L31.565 42.3662C31.101 43.3819 29.895 43.8208 28.8867 43.341L24.7184 41.3579C23.6311 40.8405 22.3687 40.8405 21.2814 41.3579L17.1131 43.341C16.1047 43.8208 14.8988 43.3819 14.4347 42.3662L12.5164 38.1677C12.0161 37.0725 11.0489 36.261 9.88351 35.9584L5.41569 34.7983C4.33483 34.5176 3.69318 33.4063 3.99056 32.3299L5.21979 27.8806C5.54043 26.72 5.32121 25.4767 4.62295 24.4958L1.9461 20.7352C1.29852 19.8255 1.52136 18.5617 2.44105 17.9282L6.24264 15.31C7.23429 14.6271 7.86553 13.5337 7.96117 12.3335L8.32782 7.73206C8.41652 6.61889 9.39959 5.794 10.5112 5.89995L15.1064 6.33789C16.305 6.45213 17.4914 6.02034 18.3362 5.16235L21.5748 1.87316C22.3582 1.07744 23.6415 1.07744 24.425 1.87316ZM20.8622 1.17156C22.0374 -0.0220298 23.9624 -0.0220289 25.1376 1.17156L28.3762 4.46075C29.0098 5.10424 29.8995 5.42808 30.7985 5.34241L35.3937 4.90446C37.0612 4.74554 38.5358 5.98288 38.6688 7.65264L39.0355 12.254C39.1072 13.1542 39.5806 13.9742 40.3243 14.4865L44.1259 17.1047C45.5055 18.0548 45.8397 19.9505 44.8684 21.3151L42.1915 25.0757C41.6678 25.8114 41.5034 26.7438 41.7439 27.6143L42.9731 32.0636C43.4192 33.6782 42.4567 35.3452 40.8354 35.7662L36.3676 36.9263C36.0989 36.9961 35.8442 37.1019 35.6095 37.2389L42.0805 56.2205C42.5334 57.5492 41.0763 58.7164 39.8785 57.9845L34.3458 54.6034C34.0661 54.4324 33.7003 54.5724 33.6061 54.8863L31.865 60.6901C31.4472 62.0828 29.4909 62.126 29.012 60.7531L22.9999 43.5185L16.9878 60.7531C16.5089 62.126 14.5526 62.0828 14.1348 60.6901L12.3936 54.8863C12.2994 54.5724 11.9337 54.4324 11.654 54.6034L6.12127 57.9845C4.9235 58.7164 3.46639 57.5492 3.91933 56.2205L10.3903 37.2389C10.1556 37.1019 9.90091 36.9961 9.63218 36.9263L5.16437 35.7662C3.54308 35.3452 2.5806 33.6782 3.02667 32.0636L4.2559 27.6143C4.49638 26.7439 4.33196 25.8114 3.80827 25.0757L1.13142 21.3151C0.160044 19.9505 0.494311 18.0548 1.87384 17.1047L5.67543 14.4865C6.41917 13.9742 6.8926 13.1542 6.96433 12.254L7.33098 7.65263C7.46402 5.98288 8.93863 4.74554 10.6061 4.90446L15.2013 5.34241C16.1003 5.42808 16.99 5.10424 17.6236 4.46075L20.8622 1.17156ZM34.3929 38.5833C34.4993 38.3504 34.6338 38.1347 34.7919 37.9398L41.1339 56.5432C41.2849 56.9861 40.7992 57.3752 40.4 57.1312L34.8672 53.7501C34.0281 53.2373 32.9309 53.6571 32.6483 54.599L30.9072 60.4027C30.7679 60.867 30.1158 60.8814 29.9562 60.4238L23.5356 42.0181C23.7936 42.0649 24.047 42.1458 24.2888 42.2609L28.457 44.244C29.9696 44.9637 31.7785 44.3053 32.4746 42.7818L34.3929 38.5833ZM22.9999 42.0004L22.9156 41.9711C22.9718 41.9695 23.028 41.9695 23.0841 41.9711L22.9999 42.0004ZM11.2079 37.9398L4.86584 56.5432C4.71486 56.9861 5.20057 57.3752 5.59982 57.1312L11.1326 53.7501C11.9716 53.2373 13.0689 53.6571 13.3515 54.599L15.0926 60.4027C15.2319 60.867 15.884 60.8814 16.0436 60.4238L22.4642 42.0181C22.2061 42.0649 21.9528 42.1458 21.711 42.2609L17.5428 44.244C16.0302 44.9637 14.2213 44.3053 13.5252 42.7818L11.6069 38.5833C11.5005 38.3504 11.366 38.1347 11.2079 37.9398ZM33.9999 23.0004C33.9999 29.0756 29.075 34.0005 22.9999 34.0005C16.9248 34.0005 11.9999 29.0756 11.9999 23.0004C11.9999 16.9253 16.9248 12.0004 22.9999 12.0004C29.075 12.0004 33.9999 16.9253 33.9999 23.0004ZM34.9999 23.0004C34.9999 29.6279 29.6273 35.0005 22.9999 35.0005C16.3725 35.0005 10.9999 29.6279 10.9999 23.0004C10.9999 16.373 16.3725 11.0004 22.9999 11.0004C29.6273 11.0004 34.9999 16.373 34.9999 23.0004Z"}))}function Ie(e){return i.createElement("svg",Object.assign({width:"29",height:"26",viewBox:"0 0 29 26",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),i.createElement("path",{d:"M18.6753 0C13.7187 0 9.58825 3.59513 8.90967 8.25443C9.11619 8.22567 9.32272 8.19691 9.55875 8.19691C11.1224 8.19691 12.5681 9.00221 13.3647 10.2965L18.7934 19.1836C24.163 19.0974 28.5 14.8407 28.5 9.57744C28.5295 4.31416 24.104 0 18.6753 0ZM22.7468 10.6704H18.6753C18.0558 10.6704 17.5837 10.1814 17.5837 9.6062V4.63053C17.5837 4.02655 18.0853 3.56637 18.6753 3.56637C19.2949 3.56637 19.767 4.05531 19.767 4.63053V8.54204H22.7468C23.3664 8.54204 23.8385 9.03098 23.8385 9.6062C23.868 10.2102 23.3664 10.6704 22.7468 10.6704Z",fill:"#E1E7EA"}),i.createElement("path",{d:"M11.3288 11.5332C10.5322 10.2389 8.58496 10.2389 7.78836 11.5332L0.796018 22.9801C-0.0300818 24.3031 0.973039 26 2.56623 26H16.5804C18.1736 26 19.1472 24.3031 18.3506 22.9801L11.3288 11.5332ZM9.47007 14.1217C10.1191 14.0642 10.6797 14.5243 10.7092 15.1571C10.7092 15.2146 10.7092 15.3009 10.7092 15.3584L10.3257 19.6438C10.2962 20.0465 9.91262 20.3628 9.49957 20.3341C9.11602 20.3053 8.82099 20.0177 8.79148 19.6438L8.40794 15.3584C8.34893 14.7257 8.82099 14.1792 9.47007 14.1217ZM9.55858 23.6704C8.87999 23.6704 8.31943 23.1239 8.31943 22.4624C8.31943 21.8009 8.87999 21.2544 9.55858 21.2544C10.2372 21.2544 10.7977 21.8009 10.7977 22.4624C10.7977 23.1239 10.2372 23.6704 9.55858 23.6704Z",fill:"#E1E7EA"}))}function Re(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(t,"SVGIcon_Button"),width:"1em",height:"1em",viewBox:"0 0 148 148",fill:"none"},n),i.createElement("path",{d:"M151.309 62.585L87.852.305 25.31 63.348l12.204 12.365 50.338-49.458 63.457 61.059V62.585z",fill:"#189AD3"}),i.createElement("path",{d:"M151.309 62.585L87.852.305 25.31 63.348l12.204 12.365 50.338-49.458 63.457 61.059V62.585z",fill:"url(#prefix__paint0_linear)"}),i.createElement("path",{d:"M151.309 62.585L87.852.305 25.31 63.348l12.204 12.365 50.338-49.458 63.457 61.059V62.585z",fill:"url(#prefix__paint1_linear)"}),i.createElement("path",{d:"M88.31 0H63.444L.294 63.501l62.236 62.891 13.424-12.823L25.31 63.501 88.31 0z",fill:"#B1AEAE"}),i.createElement("path",{d:"M88.31 0H63.444L.294 63.501l62.236 62.891 13.424-12.823L25.31 63.501 88.31 0z",fill:"url(#prefix__paint2_linear)"}),i.createElement("path",{d:"M88.31 0H63.444L.294 63.501l62.236 62.891 13.424-12.823L25.31 63.501 88.31 0z",fill:"url(#prefix__paint3_linear)"}),i.createElement("path",{d:"M87.547 26.255L75.954 38.162l50.033 49.152-63.457 63.501h25.017l63.914-63.501-63.914-61.059z",fill:"#B1AEAE"}),i.createElement("path",{d:"M87.547 26.255L75.954 38.162l50.033 49.152-63.457 63.501h25.017l63.914-63.501-63.914-61.059z",fill:"url(#prefix__paint4_linear)"}),i.createElement("path",{d:"M87.547 26.255L75.954 38.162l50.033 49.152-63.457 63.501h25.017l63.914-63.501-63.914-61.059z",fill:"url(#prefix__paint5_linear)"}),i.createElement("path",{d:"M.904 88.23V63.5l61.931 62.585 51.406-50.22 11.746 11.448-63.152 63.196L.904 88.23z",fill:"#1351CB"}),i.createElement("path",{d:"M.904 88.23V63.5l61.931 62.585 51.406-50.22 11.746 11.448-63.152 63.196L.904 88.23z",fill:"url(#prefix__paint6_linear)"}),i.createElement("path",{d:"M.904 88.23V63.5l61.931 62.585 51.406-50.22 11.746 11.448-63.152 63.196L.904 88.23z",fill:"url(#prefix__paint7_linear)"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"prefix__paint0_linear",x1:88.309,y1:.305,x2:39.697,y2:70.698,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{offset:.458,stopColor:"#2682D7"}),i.createElement("stop",{offset:.88,stopColor:"#13538E"}),i.createElement("stop",{offset:1,stopColor:"#0F2C64"})),i.createElement("linearGradient",{id:"prefix__paint1_linear",x1:151.461,y1:63.725,x2:113.241,y2:31.243,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{offset:.005,stopColor:"#114B82"}),i.createElement("stop",{offset:.672,stopColor:"#1974C7"}),i.createElement("stop",{offset:1,stopColor:"#166588",stopOpacity:0})),i.createElement("linearGradient",{id:"prefix__paint2_linear",x1:72.598,y1:0,x2:151.522,y2:89.161,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#9D99A9"}),i.createElement("stop",{offset:.484,stopColor:"#DFDEE1"}),i.createElement("stop",{offset:.734,stopColor:"#6D6B74"}),i.createElement("stop",{offset:1,stopColor:"#22202D"})),i.createElement("linearGradient",{id:"prefix__paint3_linear",x1:65.886,y1:141.046,x2:80.542,y2:158.743,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{offset:.531,stopColor:"#7B7474",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#535661"})),i.createElement("linearGradient",{id:"prefix__paint4_linear",x1:72.598,y1:0,x2:151.522,y2:89.161,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#9D99A9"}),i.createElement("stop",{offset:.484,stopColor:"#DFDEE1"}),i.createElement("stop",{offset:.734,stopColor:"#6D6B74"}),i.createElement("stop",{offset:1,stopColor:"#22202D"})),i.createElement("linearGradient",{id:"prefix__paint5_linear",x1:65.886,y1:141.046,x2:80.542,y2:158.743,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{offset:.531,stopColor:"#7B7474",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#535661"})),i.createElement("linearGradient",{id:"prefix__paint6_linear",x1:.904,y1:81.208,x2:80.116,y2:82.127,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#234BB3"}),i.createElement("stop",{offset:.068,stopColor:"#032939"}),i.createElement("stop",{offset:.547,stopColor:"#45556D",stopOpacity:.737}),i.createElement("stop",{offset:1,stopColor:"#fff",stopOpacity:0})),i.createElement("linearGradient",{id:"prefix__paint7_linear",x1:126.031,y1:88.506,x2:75.005,y2:136.736,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{offset:.089,stopColor:"#0D66A6"}),i.createElement("stop",{offset:.402,stopColor:"#6699D5"}),i.createElement("stop",{offset:1,stopColor:"#fff",stopOpacity:0}))))}function Me(e){const{className:t}=e;(0,r._T)(e,["className"]);return i.createElement("svg",{className:t,width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.createElement("circle",{cx:"16",cy:"16",r:"16",fill:"#BDCCDB"}),i.createElement("circle",{cx:"16",cy:"16",r:"16",fill:"url(#paint0_linear)"}),i.createElement("circle",{cx:"16",cy:"16",r:"14.2745",fill:"#98A8B7"}),i.createElement("circle",{cx:"16",cy:"16",r:"14.2745",fill:"url(#paint1_linear)"}),i.createElement("circle",{cx:"16",cy:"16",r:"14.2745",stroke:"#7A92A9"}),i.createElement("circle",{cx:"16",cy:"16",r:"11.1309",fill:"#BDCCDB"}),i.createElement("circle",{cx:"16",cy:"16",r:"11.1309",fill:"url(#paint2_linear)"}),i.createElement("circle",{cx:"16",cy:"16",r:"10.2107",fill:"#5792C8"}),i.createElement("circle",{cx:"16",cy:"16",r:"10.2107",fill:"url(#paint3_linear)"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M20.6016 17.9523C22.8425 17.9523 24.6591 16.1357 24.6591 13.8948C24.6591 11.6539 22.8425 9.83727 20.6016 9.83727C18.3607 9.83727 16.5441 11.6539 16.5441 13.8948C16.5441 13.9609 16.5457 14.0266 16.5488 14.0919L14.0477 17.6314C14.0205 17.6306 13.9933 17.6303 13.966 17.6303C13.2606 17.6303 12.6127 17.8767 12.1038 18.2882L6.33398 15.9235C6.33398 17.4638 6.62381 19.1438 6.97803 19.5302C7.16531 19.7345 9.1256 20.4564 11.0502 21.127C11.3013 22.5093 12.5112 23.5574 13.966 23.5574C15.6027 23.5574 16.9296 22.2306 16.9296 20.5939C16.9296 20.5326 16.9277 20.4717 16.924 20.4113L20.2613 17.9382C20.3735 17.9475 20.487 17.9523 20.6016 17.9523ZM12.1995 21.5232C12.5338 22.1572 13.1994 22.5894 13.966 22.5894C15.0681 22.5894 15.9615 21.696 15.9615 20.5939C15.9615 19.4917 15.0681 18.5983 13.966 18.5983C13.7007 18.5983 13.4475 18.65 13.216 18.744L14.1914 19.1438L14.1886 19.1617C14.8832 19.2688 15.4151 19.8692 15.4151 20.5939C15.4151 21.3942 14.7663 22.043 13.966 22.043C13.8901 22.043 13.8157 22.0371 13.743 22.0259L13.7405 22.042L13.6136 21.9998C13.5414 21.9818 13.4713 21.9583 13.4038 21.9299C13.0402 21.8084 12.6309 21.6704 12.1995 21.5232ZM20.6016 16.5998C22.0956 16.5998 23.3066 15.3887 23.3066 13.8948C23.3066 12.4008 22.0956 11.1898 20.6016 11.1898C19.1077 11.1898 17.8966 12.4008 17.8966 13.8948C17.8966 15.3887 19.1077 16.5998 20.6016 16.5998ZM22.4 13.8948C22.4 14.888 21.5948 15.6932 20.6016 15.6932C19.6083 15.6932 18.8032 14.888 18.8032 13.8948C18.8032 12.9015 19.6083 12.0964 20.6016 12.0964C21.5948 12.0964 22.4 12.9015 22.4 13.8948Z",fill:"#BDCCDB"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M20.6016 17.9523C22.8425 17.9523 24.6591 16.1357 24.6591 13.8948C24.6591 11.6539 22.8425 9.83727 20.6016 9.83727C18.3607 9.83727 16.5441 11.6539 16.5441 13.8948C16.5441 13.9609 16.5457 14.0266 16.5488 14.0919L14.0477 17.6314C14.0205 17.6306 13.9933 17.6303 13.966 17.6303C13.2606 17.6303 12.6127 17.8767 12.1038 18.2882L6.33398 15.9235C6.33398 17.4638 6.62381 19.1438 6.97803 19.5302C7.16531 19.7345 9.1256 20.4564 11.0502 21.127C11.3013 22.5093 12.5112 23.5574 13.966 23.5574C15.6027 23.5574 16.9296 22.2306 16.9296 20.5939C16.9296 20.5326 16.9277 20.4717 16.924 20.4113L20.2613 17.9382C20.3735 17.9475 20.487 17.9523 20.6016 17.9523ZM12.1995 21.5232C12.5338 22.1572 13.1994 22.5894 13.966 22.5894C15.0681 22.5894 15.9615 21.696 15.9615 20.5939C15.9615 19.4917 15.0681 18.5983 13.966 18.5983C13.7007 18.5983 13.4475 18.65 13.216 18.744L14.1914 19.1438L14.1886 19.1617C14.8832 19.2688 15.4151 19.8692 15.4151 20.5939C15.4151 21.3942 14.7663 22.043 13.966 22.043C13.8901 22.043 13.8157 22.0371 13.743 22.0259L13.7405 22.042L13.6136 21.9998C13.5414 21.9818 13.4713 21.9583 13.4038 21.9299C13.0402 21.8084 12.6309 21.6704 12.1995 21.5232ZM20.6016 16.5998C22.0956 16.5998 23.3066 15.3887 23.3066 13.8948C23.3066 12.4008 22.0956 11.1898 20.6016 11.1898C19.1077 11.1898 17.8966 12.4008 17.8966 13.8948C17.8966 15.3887 19.1077 16.5998 20.6016 16.5998ZM22.4 13.8948C22.4 14.888 21.5948 15.6932 20.6016 15.6932C19.6083 15.6932 18.8032 14.888 18.8032 13.8948C18.8032 12.9015 19.6083 12.0964 20.6016 12.0964C21.5948 12.0964 22.4 12.9015 22.4 13.8948Z",fill:"url(#paint4_linear)"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"paint0_linear",x1:"8.4375",y1:"1.75",x2:"23.1875",y2:"22.9375",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"white",stopOpacity:"0.54"}),i.createElement("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})),i.createElement("linearGradient",{id:"paint1_linear",x1:"9",y1:"3.125",x2:"22.4375",y2:"24.625",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"white",stopOpacity:"0.25"}),i.createElement("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})),i.createElement("linearGradient",{id:"paint2_linear",x1:"10.3125",y1:"6.375",x2:"19.6875",y2:"23.125",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"white",stopOpacity:"0.65"}),i.createElement("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})),i.createElement("linearGradient",{id:"paint3_linear",x1:"10",y1:"8",x2:"20.5",y2:"26.2107",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#72A5D3"}),i.createElement("stop",{offset:"1",stopColor:"#4F7294"})),i.createElement("linearGradient",{id:"paint4_linear",x1:"12.1875",y1:"13.5625",x2:"18.5625",y2:"23.5574",gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"white",stopOpacity:"0.44"}),i.createElement("stop",{offset:"1",stopColor:"white",stopOpacity:"0"}))))}function Te(){return i.createElement("svg",{height:"100px",width:"100px",fill:"#000000",x:"0px",y:"0px",viewBox:"0 0 101 101",enableBackground:"new 0 0 101 101",xmlns:"http://www.w3.org/2000/svg",version:"1.1"},i.createElement("g",null,i.createElement("path",{d:"M16.929,30.115 M84.446,84.262c0-37.271-30.323-67.613-67.587-67.613l0,0l0.069,13.467 c29.777,0.039,53.995,24.256,54.051,54.042L84.446,84.262z"}),i.createElement("path",{d:"M16.843,53.089 M61.472,84.262c0-24.616-20.026-44.639-44.628-44.639l0,0v13.466c17.182,0,31.161,13.984,31.161,31.173 H61.472z"}),i.createElement("circle",{cx:"26.695",cy:"74.305",r:"9.812"})))}function Ae(e){return i.createElement("svg",Object.assign({},e,{height:"24px",width:"24px",viewBox:"0 0 24 24",x:"0px",y:"0px"}),i.createElement("path",{fill:"white",d:"M3.3,0.5v23h17.5v-23H3.3z M10.2,9.6l-3-2.2h3.7L12,3.9l1.2,3.6H17l-3,2.2l1.2,3.6L12,11l-3,2.2L10.2,9.6z M17.3,16.1 M17.4,18H6.6v-1.2h10.7L17.4,18L17.4,18z M17.3,19.9"}))}function Le(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 32 32",enableBackground:"new 0 0 32 32"},i.createElement("path",{fill:"white",d:"M24.68,19.53l6.9-5.69c0.98-0.81,0.47-2.39-0.81-2.46l-8.89-0.54c-0.54-0.03-1.01-0.37-1.21-0.88L17.4,1.61\r\n\t\t\tc-0.47-1.18-2.12-1.18-2.59,0l-3.27,8.32c-0.2,0.51-0.67,0.84-1.21,0.88l-8.92,0.54c-1.28,0.07-1.78,1.65-0.81,2.46l6.9,5.66\r\n\t\t\tc0.4,0.34,0.61,0.91,0.47,1.41l-2.26,8.65c-0.3,1.21,1.01,2.19,2.09,1.52l7.51-4.81c0.47-0.3,1.04-0.3,1.48,0l7.54,4.81\r\n\t\t\tc1.08,0.67,2.39-0.3,2.09-1.52l-2.26-8.62C24.07,20.4,24.24,19.86,24.68,19.53z"}))}function Be(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 32 32",enableBackground:"new 0 0 32 32"},i.createElement("g",null,i.createElement("path",{fill:"white",d:"M28.4,1.49H3.79c-1.99,0-3.6,1.61-3.6,3.6v14.88c0,1.99,1.61,3.6,3.6,3.6h2.37c0,1.61-0.38,3.7-1.51,5.88\r\n\t\t\tc-0.28,0.57-0.19,1.33,0.19,1.8c0.28,0.38,0.76,0.47,1.14,0.47c0.19,0,0.38,0,0.57-0.09c4.07-1.61,7.57-5.59,9.47-8.05h12.4\r\n\t\t\tc1.99,0,3.6-1.61,3.6-3.6V5.1C31.91,3.11,30.3,1.49,28.4,1.49z M8.23,14.97c-1.33,0-2.37-1.04-2.37-2.37s1.04-2.37,2.37-2.37\r\n\t\t\ts2.37,1.04,2.37,2.37S9.56,14.97,8.23,14.97z M15.99,14.97c-1.33,0-2.37-1.04-2.37-2.37s1.04-2.37,2.37-2.37\r\n\t\t\tc1.33,0,2.37,1.04,2.37,2.37S17.32,14.97,15.99,14.97z M23.85,14.97c-1.33,0-2.37-1.04-2.37-2.37s1.04-2.37,2.37-2.37\r\n\t\t\tc1.33,0,2.37,1.04,2.37,2.37S25.18,14.97,23.85,14.97z"})))}function ke(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 32 32",enableBackground:"new 0 0 32 32"},i.createElement("g",null,i.createElement("path",{fill:"white",d:"M23.32,28.28C23,25.55,20.68,23.52,18,23.52h-3.78c-2.73,0-5,2.03-5.33,4.76L8.56,30.8h15.09L23.32,28.28z"}),i.createElement("path",{fill:"white",d:"M16.08,22.15c2.82,0,5.1-2.28,5.1-5.1c0-2.82-2.28-5.1-5.1-5.1s-5.1,2.28-5.1,5.1\r\n\t\t\tC10.98,19.86,13.27,22.15,16.08,22.15z"}),i.createElement("g",null,i.createElement("path",{fill:"white",d:"M24.09,10.21c-0.94-1.22-2.18-2.23-3.57-2.9c-1.39-0.68-2.94-1.02-4.48-1.01l-0.02,0L16,6.3\r\n\t\t\t\tc-0.03,0-0.05,0-0.08,0c-1.52,0-3.04,0.35-4.4,1.01c-1.39,0.68-2.62,1.68-3.57,2.9c-0.94,1.22-1.6,2.67-1.91,4.18\r\n\t\t\t\tc-0.3,1.51-0.25,3.1,0.15,4.59c0.14,0.55,0.62,0.92,1.18,0.92c0.01,0,0.02,0,0.04,0h0.27l0.03-0.01c0.32-0.08,0.59-0.29,0.76-0.57\r\n\t\t\t\tl0.07-0.1c0.14-0.21,0.18-0.46,0.11-0.7L8.6,18.38c-0.18-0.62-0.27-1.27-0.29-1.92c0-4.24,3.45-7.68,7.69-7.68h0.04\r\n\t\t\t\tc4.24,0,7.69,3.45,7.69,7.68c-0.02,0.65-0.11,1.3-0.29,1.92l-0.04,0.15c-0.07,0.24-0.03,0.49,0.11,0.7l0.07,0.1\r\n\t\t\t\tc0.17,0.28,0.44,0.49,0.76,0.57l0.03,0.01l0.26,0c0.01,0,0.02,0,0.04,0c0.56,0,1.04-0.37,1.18-0.92c0.4-1.49,0.46-3.08,0.15-4.59\r\n\t\t\t\tC25.69,12.88,25.04,11.44,24.09,10.21z"}),i.createElement("path",{fill:"white",d:"M16.02,0.68c-8.83,0-15.99,7.16-16,15.99h0.01c-0.02,2.68,0.74,5.31,2.18,7.57l0,0.01l0.01,0.01\r\n\t\t\t\tc0.37,0.43,1,0.51,1.47,0.19c0.47-0.32,0.62-0.94,0.36-1.44l0,0l0,0c-1.19-1.89-1.81-4.09-1.79-6.32v0v0\r\n\t\t\t\tc0-7.6,6.16-13.76,13.76-13.76c7.6,0,13.76,6.16,13.76,13.76v0v0c0.03,2.24-0.59,4.43-1.79,6.32l0,0l0,0\r\n\t\t\t\tc-0.26,0.5-0.11,1.12,0.36,1.44c0.47,0.32,1.1,0.24,1.47-0.19l0.01-0.01l0-0.01c1.45-2.26,2.2-4.89,2.18-7.57h0.01\r\n\t\t\t\tC32.02,7.84,24.86,0.68,16.02,0.68"}))))}function Oe(e){return i.createElement("svg",Object.assign({},e,{height:"100px",width:"100px",fill:"#000000",xmlns:"http://www.w3.org/2000/svg",version:"1.1",viewBox:"0 0 32 32",x:"0px",y:"0px"}),i.createElement("path",{d:"M26.286 0c-3.142 0-5.714 2.572-5.714 5.714 0 0.512 0.074 1.006 0.202 1.479l-10.573 5.287c-1.049-1.332-2.67-2.194-4.487-2.194-3.142 0-5.714 2.572-5.714 5.714s2.572 5.714 5.714 5.714c1.815 0 3.437-0.862 4.486-2.193l10.574 5.287c-0.127 0.473-0.202 0.966-0.202 1.478 0 3.142 2.572 5.714 5.714 5.714s5.714-2.572 5.714-5.714c0-3.142-2.572-5.714-5.714-5.714-1.817 0-3.438 0.862-4.487 2.194l-10.573-5.287c0.128-0.473 0.202-0.967 0.202-1.479s-0.074-1.005-0.202-1.478l10.574-5.287c1.049 1.331 2.67 2.193 4.486 2.193 3.142 0 5.714-2.572 5.714-5.714s-2.572-5.714-5.714-5.714zM26.286 2.286c1.907 0 3.429 1.522 3.429 3.429s-1.522 3.429-3.429 3.429c-1.907 0-3.429-1.522-3.429-3.429s1.522-3.429 3.429-3.429zM5.714 12.571c1.907 0 3.429 1.522 3.429 3.429s-1.522 3.429-3.429 3.429c-1.907 0-3.429-1.522-3.429-3.429s1.522-3.429 3.429-3.429zM26.286 22.857c1.907 0 3.429 1.522 3.429 3.429s-1.522 3.429-3.429 3.429c-1.907 0-3.429-1.522-3.429-3.429s1.522-3.429 3.429-3.429z"}))}function Fe(){return i.createElement("svg",{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 44 44",enableBackground:"new 0 0 44 44"},i.createElement("g",null,i.createElement("path",{d:"M2 5.90007C2 5.90007 4.92505 2 11.7502 2C18.5753 2 21.5003 5.90007 21.5003 5.90007V33.2005C21.5003 33.2005 18.5753 31.2505 11.7502 31.2505C4.92505 31.2505 2 33.2005 2 33.2005V5.90007Z",stroke:"#fefeef",fill:"none",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"}),i.createElement("path",{d:"M21.4998 5.90007C21.4998 5.90007 24.4248 2 31.2499 2C38.075 2 41.0001 5.90007 41.0001 5.90007V33.2005C41.0001 33.2005 38.075 31.2505 31.2499 31.2505C24.4248 31.2505 21.4998 33.2005 21.4998 33.2005V5.90007Z",stroke:"#fefeef",fill:"none",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"})))}function Pe(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(s().SteamDeckCompatLogo,t)},n,{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i.createElement("path",{opacity:"0.84",fillRule:"evenodd",clipRule:"evenodd",d:"M7.77715 4.30197C10.9241 4.30197 13.4752 6.85305 13.4752 9.99997C13.4752 13.1469 10.9241 15.698 7.77715 15.698V18.8889C12.6864 18.8889 16.666 14.9092 16.666 9.99997C16.666 5.09078 12.6864 1.11108 7.77715 1.11108V4.30197ZM7.77756 13.8889C9.92533 13.8889 11.6664 12.1477 11.6664 9.99997C11.6664 7.8522 9.92533 6.11108 7.77756 6.11108C5.62979 6.11108 3.88867 7.8522 3.88867 9.99997C3.88867 12.1477 5.62979 13.8889 7.77756 13.8889Z",fill:"white"}))}function xe(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(s().SteamDeckCompatIcon,s().SteamDeckCompatVerified,t)},n,{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 19C14.9706 19 19 14.9706 19 10C19 5.02944 14.9706 1 10 1C5.02944 1 1 5.02944 1 10C1 14.9706 5.02944 19 10 19ZM8.33342 11.9222L14.4945 5.76667L16.4556 7.72779L8.33342 15.8556L3.26675 10.7833L5.22786 8.82223L8.33342 11.9222Z",fill:"currentColor"}))}function Ne(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(s().SteamDeckCompatIcon,s().SteamDeckCompatPlayable,t)},n,{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10 19C14.9706 19 19 14.9706 19 10C19 5.02944 14.9706 1 10 1C5.02944 1 1 5.02944 1 10C1 14.9706 5.02944 19 10 19ZM8.61079 9.44444V15H11.3886V9.44444H8.61079ZM9.07372 8.05245C9.34781 8.23558 9.67004 8.33333 9.99967 8.33333C10.4417 8.33333 10.8656 8.15774 11.1782 7.84518C11.4907 7.53262 11.6663 7.10869 11.6663 6.66667C11.6663 6.33703 11.5686 6.0148 11.3855 5.74072C11.2023 5.46663 10.942 5.25301 10.6375 5.12687C10.3329 5.00072 9.99783 4.96771 9.67452 5.03202C9.35122 5.09633 9.05425 5.25507 8.82116 5.48815C8.58808 5.72124 8.42934 6.01821 8.36503 6.34152C8.30072 6.66482 8.33373 6.99993 8.45988 7.30447C8.58602 7.60902 8.79964 7.86931 9.07372 8.05245Z",fill:"currentColor"}))}function Ve(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(s().SteamDeckCompatIcon,s().SteamDeckCompatUnsupported,t)},n,{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.1931 15.6064C13.0246 16.4816 11.5733 17 10.001 17C6.13498 17 3.00098 13.866 3.00098 10C3.00098 8.42766 3.51938 6.97641 4.39459 5.80783L14.1931 15.6064ZM15.6074 14.1922C16.4826 13.0236 17.001 11.5723 17.001 10C17.001 6.13401 13.867 3 10.001 3C8.42864 3 6.97739 3.5184 5.80881 4.39362L15.6074 14.1922ZM19.001 10C19.001 14.9706 14.9715 19 10.001 19C5.03041 19 1.00098 14.9706 1.00098 10C1.00098 5.02944 5.03041 1 10.001 1C14.9715 1 19.001 5.02944 19.001 10Z",fill:"currentColor"}))}function Ge(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("svg",Object.assign({className:(0,o.Z)(s().SteamDeckCompatIcon,s().SteamDeckCompatUnknown,t)},n,{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),i.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.3972 11.2461L18.8767 11.4932C18.9578 11.0075 19 10.5087 19 10C19 9.49131 18.9578 8.99248 18.8767 8.50682L17.3972 8.75386C17.4647 9.15821 17.5 9.57442 17.5 10C17.5 10.4256 17.4647 10.8418 17.3972 11.2461ZM17.0295 7.3783L18.4348 6.8539C18.0814 5.90668 17.5729 5.03501 16.9403 4.26971L15.7842 5.22538C16.3119 5.86387 16.7354 6.59021 17.0295 7.3783ZM14.7746 4.21582L15.7303 3.05967C14.965 2.42708 14.0933 1.91864 13.1461 1.56519L12.6217 2.97054C13.4098 3.26461 14.1361 3.68805 14.7746 4.21582ZM11.2461 2.60281L11.4932 1.1233C11.0075 1.0422 10.5087 1 10 1C9.49131 1 8.99248 1.0422 8.50682 1.1233L8.75386 2.60281C9.15821 2.5353 9.57442 2.5 10 2.5C10.4256 2.5 10.8418 2.5353 11.2461 2.60281ZM7.3783 2.97054L6.8539 1.56519C5.90668 1.91864 5.03501 2.42708 4.26971 3.05967L5.22538 4.21582C5.86387 3.68805 6.59021 3.26461 7.3783 2.97054ZM4.21582 5.22538L3.05967 4.26971C2.42708 5.03501 1.91864 5.90668 1.56519 6.8539L2.97054 7.3783C3.26461 6.59022 3.68805 5.86387 4.21582 5.22538ZM1 10C1 9.49131 1.0422 8.99248 1.1233 8.50682L2.60281 8.75386C2.5353 9.15821 2.5 9.57442 2.5 10C2.5 10.4256 2.5353 10.8418 2.60281 11.2461L1.1233 11.4932C1.0422 11.0075 1 10.5087 1 10ZM2.97054 12.6217L1.56519 13.1461C1.91864 14.0933 2.42708 14.965 3.05967 15.7303L4.21582 14.7746C3.68805 14.1361 3.26461 13.4098 2.97054 12.6217ZM5.22538 15.7842L4.26971 16.9403C5.03501 17.5729 5.90668 18.0814 6.8539 18.4348L7.3783 17.0295C6.59022 16.7354 5.86387 16.3119 5.22538 15.7842ZM8.75386 17.3972L8.50682 18.8767C8.99248 18.9578 9.49131 19 10 19C10.5087 19 11.0075 18.9578 11.4932 18.8767L11.2461 17.3972C10.8418 17.4647 10.4256 17.5 10 17.5C9.57442 17.5 9.15821 17.4647 8.75386 17.3972ZM12.6217 17.0295L13.1461 18.4348C14.0933 18.0814 14.965 17.5729 15.7303 16.9403L14.7746 15.7842C14.1361 16.3119 13.4098 16.7354 12.6217 17.0295ZM15.7842 14.7746L16.9403 15.7303C17.5729 14.965 18.0814 14.0933 18.4348 13.1461L17.0295 12.6217C16.7354 13.4098 16.3119 14.1361 15.7842 14.7746ZM9.2425 14.7702C9.46679 14.92 9.73048 15 10.0002 15C10.362 15 10.7089 14.8563 10.9646 14.6006C11.2204 14.3448 11.3641 13.998 11.3641 13.6363C11.3641 13.3666 11.2841 13.1029 11.1343 12.8787C10.9844 12.6544 10.7714 12.4796 10.5222 12.3764C10.2729 12.2732 9.99872 12.2462 9.73415 12.2988C9.46958 12.3514 9.22656 12.4813 9.03582 12.672C8.84508 12.8628 8.71518 13.1057 8.66255 13.3703C8.60993 13.6348 8.63694 13.909 8.74016 14.1582C8.84339 14.4074 9.01821 14.6203 9.2425 14.7702ZM11.0981 10.3552C11.1722 10.2348 11.2765 10.1358 11.4005 10.068C11.8099 9.82315 12.1479 9.47526 12.3808 9.05903C12.6137 8.64279 12.7333 8.17276 12.7278 7.69584C12.7223 7.21892 12.5918 6.75179 12.3493 6.34105C12.1069 5.93031 11.7609 5.59033 11.346 5.35502C10.9311 5.11972 10.4617 4.99732 9.98466 5.00004C9.50764 5.00277 9.03969 5.13052 8.62748 5.37054C8.21527 5.61057 7.87321 5.95448 7.63545 6.36796C7.39769 6.78144 7.27253 7.25004 7.27246 7.72699H9.23191C9.23191 7.6261 9.25178 7.52621 9.29039 7.43301C9.32901 7.3398 9.3856 7.25511 9.45694 7.18378C9.52829 7.11244 9.61299 7.05586 9.70621 7.01725C9.79942 6.97865 9.89933 6.95878 10.0002 6.95878C10.1659 6.96387 10.3255 7.02207 10.4556 7.12479C10.5856 7.22751 10.6792 7.3693 10.7225 7.52925C10.7658 7.6892 10.7565 7.85883 10.6961 8.01311C10.6356 8.16739 10.5271 8.29816 10.3867 8.3861C9.97322 8.62846 9.63003 8.97429 9.39088 9.38955C9.15173 9.80482 9.02487 10.2752 9.02278 10.7544V11.3635H10.9777V10.7544C10.9825 10.6131 11.024 10.4755 11.0981 10.3552Z",fill:"currentColor"}))}function Ue(e){return i.createElement("svg",Object.assign({width:"26",height:"26",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 26 26",fill:"none"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M17.5133 4.65595C15.8046 6.36468 17.0366 9.2803 19.4284 9.28035C20.446 9.28035 21.0261 8.76331 21.2519 8.56209C21.2963 8.5225 21.327 8.49513 21.3447 8.48633C22.4018 7.42917 22.4024 5.71423 21.3441 4.65595C20.2817 3.59714 18.5699 3.59936 17.5133 4.65595ZM18.5553 7.44735C17.4045 6.30173 19.1522 4.54882 20.301 5.69597V5.69586C20.7836 6.18159 20.783 6.96269 20.301 7.44422C19.8189 7.92684 19.0348 7.92415 18.5553 7.44735ZM0.583974 13.873L14.455 0L24.4165 1.583L26 11.5449L12.1289 25.416C11.7368 25.805 11.2252 26 10.7156 26C10.2065 26 9.69489 25.805 9.30552 25.416L0.583974 16.6976C0.194954 16.305 0 15.7933 0 15.2843C0 14.7742 0.194948 14.2625 0.583974 13.873ZM9.26632 17.5853L8.88665 17.965C8.62416 18.2274 8.43667 18.5227 8.32418 18.8509C8.21403 19.1766 8.19645 19.5106 8.27145 19.8528C8.34879 20.1926 8.53979 20.5148 8.84446 20.8195C9.14445 21.1195 9.46318 21.307 9.80066 21.382C10.1428 21.457 10.4756 21.4382 10.7991 21.3257C11.1272 21.2132 11.4225 21.0257 11.6849 20.7633L12.0646 20.3836C12.3271 20.1211 12.5146 19.8281 12.6271 19.5047C12.7419 19.179 12.7618 18.8473 12.6868 18.5099C12.6142 18.17 12.4255 17.8478 12.1209 17.5431C11.8209 17.2431 11.4986 17.0545 11.1541 16.9771C10.8143 16.8998 10.4791 16.9162 10.1487 17.0263C9.82293 17.1365 9.5288 17.3228 9.26632 17.5853ZM9.6038 18.6821L9.98347 18.3024C10.2014 18.0845 10.4487 17.9427 10.7252 17.8771C11.0065 17.8115 11.2701 17.9017 11.5162 18.1478C11.7693 18.4009 11.8584 18.6634 11.7834 18.9352C11.7107 19.2047 11.5654 19.4485 11.3475 19.6664L10.9678 20.0461C10.7498 20.2641 10.5026 20.4082 10.226 20.4785C9.95417 20.5488 9.6952 20.4609 9.44912 20.2148C9.19601 19.9617 9.10344 19.6981 9.1714 19.4239C9.24171 19.1473 9.38584 18.9001 9.6038 18.6821ZM9.80066 9.87944L9.421 10.2591C9.15851 10.5216 8.97102 10.8169 8.85853 11.145C8.74837 11.4708 8.7308 11.8047 8.80579 12.1469C8.88313 12.4867 9.07414 12.809 9.37881 13.1136C9.6788 13.4136 9.99753 13.6011 10.335 13.6761C10.6772 13.7511 11.01 13.7324 11.3334 13.6199C11.6615 13.5074 11.9568 13.3199 12.2193 13.0574L12.599 12.6777C12.8614 12.4152 13.0489 12.1223 13.1614 11.7989C13.2763 11.4731 13.2962 11.1415 13.2212 10.804C13.1485 10.4642 12.9599 10.1419 12.6552 9.83725C12.3552 9.53727 12.033 9.34861 11.6885 9.27127C11.3486 9.19393 11.0135 9.21033 10.683 9.32048C10.3573 9.43063 10.0632 9.61695 9.80066 9.87944ZM10.1381 10.9763L10.5178 10.5966C10.7358 10.3786 10.983 10.2368 11.2596 10.1712C11.5408 10.1056 11.8045 10.1958 12.0506 10.4419C12.3037 10.695 12.3927 10.9575 12.3177 11.2294C12.2451 11.4989 12.0998 11.7426 11.8818 11.9606L11.5021 12.3403C11.2842 12.5582 11.0369 12.7023 10.7604 12.7726C10.4885 12.843 10.2295 12.7551 9.98347 12.509C9.73036 12.2559 9.63778 11.9922 9.70575 11.718C9.77606 11.4415 9.92019 11.1942 10.1381 10.9763ZM16.3675 13.7464L4.21814 15.9963L5.01966 16.7978L17.169 14.5479L16.3675 13.7464Z"}))}},92990:(e,t,n)=>{"use strict";n.d(t,{T:()=>l});var r=n(33940),i=n(89526),o=n(34433),a=n(701),s=n(4306);class l extends i.Component{constructor(e){super(e),this.state={maximized:void 0}}BIsMaximized(){let e=this.props.popup.screen.availWidth-this.props.popup.innerWidth,t=this.props.popup.screen.availHeight-this.props.popup.innerHeight;return 0===e&&0===t}componentDidMount(){this.UpdateMaximizeState(),this.props.popup.addEventListener("resize",this.UpdateMaximizeState)}componentWillUnmount(){var e;null===(e=this.props.popup)||void 0===e||e.removeEventListener("resize",this.UpdateMaximizeState)}UpdateMaximizeState(){if((0,o.w3)(this.props.popup,"Window.IsWindowMaximized"))this.props.popup.SteamClient.Window.IsWindowMaximized((e=>{e!=this.state.maximized&&this.setState({maximized:e})}));else{let e=this.BIsMaximized();e!=this.state.maximized&&this.setState({maximized:e})}}render(){var e;let t=this.props.popup,n="title-area-icon";this.state.maximized?n+=" restoreButton":n+=" maximizeButton";let r="TitleBar title-area";return this.props.className&&(r=r+" "+this.props.className),i.createElement("div",{className:r,style:this.props.style},i.createElement("div",{className:"title-area-highlight"}),i.createElement("div",{className:"title-area-children"},this.props.children),!this.props.hideActions&&i.createElement("div",{className:"title-bar-actions"},!this.props.hideClose&&i.createElement("div",{className:"title-area-icon closeButton",onClick:null!==(e=this.props.onClose)&&void 0!==e?e:()=>{t&&((0,o.w3)(t,"Window.Close")?t.SteamClient.Window.Close():t.close())}},i.createElement(a.pVO,null)),!this.props.hideMinMax&&i.createElement("div",{className:n,onClick:()=>{t.SteamClient.Window.ToggleMaximize()}},this.state.maximized&&i.createElement(a.r6F,null),!this.state.maximized&&i.createElement(a.YqJ,null)),!this.props.hideMinMax&&i.createElement("div",{className:"title-area-icon minimizeButton",onClick:()=>{t.SteamClient.Window.Minimize()}},i.createElement(a.gR,null)),this.props.extraActions))}}(0,r.gn)([s.ak],l.prototype,"UpdateMaximizeState",null)},84343:(e,t,n)=>{"use strict";n.d(t,{HP:()=>m,gz:()=>p});var r=n(33940),i=n(89526),o=n(73961),a=n(44026),s=n(69206),l=n(19304),c=n(14826),d=n(50500),u=n.n(d);function m(e){var t;const{divProps:n,tooltipProps:r}=h(e);return i.createElement(a.Ks,Object.assign({noFocusRing:!0,focusable:null!==(t=e.bNavStop)&&void 0!==t?t:!!n.onClick},n),i.createElement(_,Object.assign({},r)),e.children)}function h(e){const{toolTipContent:t,nDelayShowMS:n=300,bDisabled:o,direction:a,nBodyAlignment:s,nBodyDistance:l,nAllowOffscreenPx:c,nMaxLateralMoveOnScreen:d,strTooltipClassname:u,bNavStop:m,children:h}=e,p=(0,r._T)(e,["toolTipContent","nDelayShowMS","bDisabled","direction","nBodyAlignment","nBodyDistance","nAllowOffscreenPx","nMaxLateralMoveOnScreen","strTooltipClassname","bNavStop","children"]),_={direction:a,nBodyAlignment:s,nBodyDistance:l,nAllowOffscreenPx:c,nMaxLateralMoveOnScreen:d,className:u},[g,f]=i.useState(!1),[v,C]=i.useState(),S=i.useCallback((e=>{f(!0),C(e.currentTarget)}),[]),E=i.useCallback((()=>{f(!1)}),[]),D={active:g&&!o,target:v,nDelayShowMS:n,hoverPositionProps:_,children:t};return{divProps:Object.assign(Object.assign({},p),{onMouseEnter:S,onMouseLeave:E}),tooltipProps:D}}function p(e){const{className:t}=e,n=(0,r._T)(e,["className"]);return i.createElement("div",Object.assign({className:(0,l.Z)(u().ToolTipCustom,t)},n))}function _(e){const{active:t,target:n,nDelayShowMS:r=300,hoverPositionProps:a,children:l}=e,[d,m]=i.useState(t);if(i.useLayoutEffect((()=>{if(t){if(r){const e=window.setTimeout((()=>m(!0)),r);return()=>window.clearTimeout(e)}m(!0)}else m(!1)}),[t]),!d)return null;let h=l;return"function"==typeof l?h=l():"string"==typeof l&&(h=i.createElement("div",{className:u().TextToolTip},(0,c.Xx)(l))),h?o.createPortal(i.createElement(s.T,Object.assign({target:n},a),h),n.ownerDocument.body):null}},75962:(e,t,n)=>{"use strict";n.d(t,{M2:()=>f,Qc:()=>C,R6:()=>m,Sb:()=>v,ns:()=>h});var r=n(33940),i=n(50265),o=n(89526),a=n(40103),s=n(19304),l=n(60161),c=n(14826),d=n(32765),u=n(69159);function m(e,t){let n;n="currentTarget"in e?e.currentTarget.ownerDocument.defaultView:e,0==t.indexOf("steam://")?n.location.href=t:n.open(t,null,"menubar,location,resizable,scrollbars,status,noopener")}function h(e){let{bDisableContextMenu:t,onContextMenu:n,bForceExternal:i,href:a,bUseLinkFilter:s,getPIDFromEvent:l}=e,c=(0,r._T)(e,["bDisableContextMenu","onContextMenu","bForceExternal","href","bUseLinkFilter","getPIDFromEvent"]);return t||n||(n=_),s&&a&&(a=(d.De.IN_CLIENT?"steam://openurl_external/":"")+d.De.COMMUNITY_BASE_URL+"linkfilter/?url="+a),l||(l=()=>0),o.createElement("a",Object.assign({},c,{href:a,onClick:e=>{e.preventDefault(),g(window,a,{bForceExternal:!!i,bUseLinkFilter:!!s,unPID:l(e)})},onContextMenu:n,rel:s?"noopener noreferrer":void 0}),e.children)}function p(e){const{strURL:t,unPID:n}=e;return o.createElement(o.Fragment,null,o.createElement(u.Zo,{onSelected:()=>{l.J$(t)}},(0,c.Xx)("#ContextMenu_CopyLinkURL")),o.createElement(u.Zo,{onSelected:e=>{g(e,t,{unPID:n})}},(0,c.Xx)("#ContextMenu_OpenLinkInNewWindow")))}function _(e,t){let n=e.currentTarget;return(0,a.yV)(o.createElement(u.xV,null,o.createElement(p,{strURL:n.href,unPID:t})),e)}function g(e,t,n={}){const{bForceExternal:r,unPID:i,bUseLinkFilter:o}=n;let a;a="currentTarget"in e?e.currentTarget.ownerDocument.defaultView:e,"undefined"!=typeof SteamClient&&void 0!==SteamClient.WebChat?SteamClient.WebChat.OpenURLInClient(t,i||0,!!r):0==t.indexOf("steam://")&&0!=t.indexOf("steam://remoteplay/connect")?a.location.href=t:a.open(t,null,"menubar,location,resizable,scrollbars,status,noopener"+(o?",noreferrer":""))}const f=e=>o.createElement(o.Fragment,null,Boolean(e.condition)?e.wrap(e.children):e.children);function v(e){return o.forwardRef(((t,n)=>o.createElement("div",Object.assign({},t,{className:(0,s.Z)(e,t.className),ref:n}))))}function C(e){if("string"!=typeof e)return NaN;const t=!e.includes("ms")&&e.includes("s");let n=Number.parseFloat(e);return t&&(n*=1e3),n}(0,r.gn)([i.LO],class{constructor(e){this.promise=e}set promise(e){this.m_Promise=e,this.m_Value=void 0,null==e||e.then((t=>{this.m_Promise===e&&(this.m_Value=t)}))}get promise(){return this.m_Promise}get value(){return this.m_Value}}.prototype,"m_Value",void 0)},89855:(e,t,n)=>{"use strict";n.d(t,{TP:()=>r,UA:()=>a,iD:()=>s,kN:()=>i});const r={x:"y",y:"x"};function i(){return{x:0,y:0}}function o(e,t){return e.x*t.x+e.y*t.y}function a(e,t){return{x:t.x-e.x,y:t.y-e.y}}function s(e,t){const n=a(e,t);return Math.sqrt(o(n,n))}},60729:(e,t,n)=>{"use strict";n.d(t,{Rq:()=>i,jg:()=>a,sw:()=>o});var r=n(60161);class i{constructor(e,t){this.m_bActive=!1,this.m_fnBoundAnimationFunc=void 0,this.m_window=e,this.m_options=Object.assign({timing:"sine"},t)}Start(){let e;switch(this.m_msStart=performance.now(),this.m_msEnd=this.m_msStart+this.m_options.msDuration,this.m_options.timing){case"linear":e=function(e){return e};break;case"cubic-in-out":e=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1};break;default:e=function(e){return.5-Math.cos(e*Math.PI)/2}}this.m_bActive=!0,this.m_fnBoundAnimationFunc=this.OnInterval.bind(this,e),this.m_window.requestAnimationFrame(this.m_fnBoundAnimationFunc)}BIsActive(){return this.m_bActive}End(){if(this.m_bActive){try{this.Update(1)}catch(e){}this.ClearInterval(),this.FireOnComplete()}}FireOnComplete(){this.m_options.onComplete&&this.m_options.onComplete()}Cancel(){this.m_bActive=!1}OnInterval(e){if(!this.m_bActive)return;let t=performance.now()-this.m_msStart;if(t>=this.m_options.msDuration)return void this.End();let n=t/this.m_options.msDuration;try{this.Update(e(n))}catch(e){}this.m_window.requestAnimationFrame(this.m_fnBoundAnimationFunc)}ClearInterval(){this.m_bActive=!1}}class o extends i{constructor(e,t,n){super(e,t),this.m_fnCallback=n}Update(e){this.m_fnCallback(e)}}class a extends i{constructor(e,t,n){super("ownerDocument"in e?r.kR(e):e,n),this.m_props={},this.m_object=e,this.m_propTargets=t}Start(){this.m_props={};for(let e in this.m_propTargets){let t=parseFloat(this.m_object[e])||0,n=this.m_propTargets[e];t!=n&&(this.m_props[e]={start:t,end:n})}super.Start()}Update(e){for(let t in this.m_props){let n=this.m_props[t],r=n.start+(n.end-n.start)*e;this.m_object[t]=r}}}},11837:(e,t,n)=>{"use strict";function r(e,t){if((null==e?void 0:e.length)>1){let n=t>0?Math.min(t,e.length):e.length;for(;0!==n;){let t=Math.floor(Math.random()*n);n-=1;let r=e[n];e[n]=e[t],e[t]=r}}}function i(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;if(e.length!=t.length)return!1;for(let n=0;nt==e))}function a(e,t){let n=e.findIndex(t);return n>=0&&(e.splice(n,1),!0)}function s(e,t,n){let r=0,i=e.length-1;for(;r<=i;){let o=Math.floor((r+i)/2),a=n(e[o],t);if(a<0)r=o+1;else if(a>0)i=o-1;else{if(i==o)return o;if(o==r)return i>o&&n(t,e[o+1])<0?o:o+1;r=o}}return i}function l(e,t,n){return e||console.error("array should be defined for us to fill in the missing indexes"),e.lengthl,LQ:()=>r,Qf:()=>a,Zf:()=>o,sL:()=>s,wc:()=>i})},23801:(e,t,n)=>{"use strict";function r(e,t,...n){console.assert?0==n.length?console.assert(!!e,t):console.assert(!!e,t,...n):e||console.warn(t,...n)}n.d(t,{X:()=>r})},26464:(e,t,n)=>{"use strict";function r(e,t,n){return{get(){let e=n.value.bind(this);return this.hasOwnProperty(t)||Object.defineProperty(this,t,{value:e}),e}}}n.d(t,{a:()=>r})},85246:(e,t,n)=>{"use strict";n.d(t,{Ar:()=>c,G_:()=>d,Hf:()=>m,bX:()=>u,pB:()=>a,vq:()=>l});var r=n(33940),i=n(11837),o=n(26464);class a{constructor(){this.m_vecCallbacks=[]}Register(e){this.m_vecCallbacks.push(e);return{Unregister:()=>{i.Zf(this.m_vecCallbacks,e)}}}Dispatch(...e){for(const t of Array.from(this.m_vecCallbacks))t(...e)}ClearAllCallbacks(){this.m_vecCallbacks=[]}CountRegistered(){return this.m_vecCallbacks.length}}class s{constructor(e){this.m_callbacks=new a,this.m_currentValue=e}Set(e){this.m_currentValue=e,this.m_callbacks.Dispatch(e)}get Value(){return this.m_currentValue}Subscribe(e){return{Unsubscribe:this.m_callbacks.Register(e).Unregister}}}function l(e){return new s(e)}class c{Schedule(e,t){this.IsScheduled()&&this.Cancel(),this.m_fnCallback=t,this.m_schTimer=window.setTimeout(this.ScheduledInternal,e)}IsScheduled(){return void 0!==this.m_schTimer}Cancel(){this.m_schTimer&&(clearTimeout(this.m_schTimer),this.m_schTimer=void 0)}ScheduledInternal(){this.m_schTimer=void 0;let e=this.m_fnCallback;this.m_fnCallback=void 0,e()}}(0,r.gn)([o.a],c.prototype,"ScheduledInternal",null);class d{constructor(){this.m_rgListeners=[]}AddEventListener(e,t,n){e.addEventListener(t,n),this.m_rgListeners.push({element:e,type:t,listener:n})}Unregister(){for(let e of this.m_rgListeners)e.element.removeEventListener(e.type,e.listener);this.m_rgListeners=[]}}function u(e){return(0,r.mG)(this,void 0,void 0,(function*(){let t=[];const n=Object.keys(e);n.forEach((n=>t.push(e[n])));return(yield Promise.all(t)).reduce(((e,t,r)=>(e[n[r]]=t,e)),{})}))}class m{constructor(){this.m_vecCallbacks=[]}Push(e){this.m_vecCallbacks.push(e)}PushArrayRemove(e,t){this.m_vecCallbacks.push((()=>i.Zf(e,t)))}Unregister(){for(let e of this.m_vecCallbacks)e();this.m_vecCallbacks=[]}GetUnregisterFunc(){return this.Unregister}}(0,r.gn)([o.a],m.prototype,"Unregister",null)},19304:(e,t,n)=>{"use strict";function r(...e){return e.reduce(((e,t)=>t?"string"==typeof t?e?`${e} ${t}`:t:"object"==typeof t?e?`${e} ${i(t)}`:i(t):e:e),"")}function i(e){return Object.keys(e).reduce(((t,n)=>e[n]?t?`${t} ${n}`:n:t),"")}n.d(t,{Z:()=>r})},87361:(e,t,n)=>{"use strict";function r(e){if(!o()||!window.document.cookie)return null;let t=document.cookie.match("(^|; )"+e+"=([^;]*)");return t&&t[2]?decodeURIComponent(t[2]):null}function i(e,t,n,r){if(!o())return;r||(r="/");let i="";if(void 0!==n&&n){let e=new Date;e.setTime(e.getTime()+864e5*n),i="; expires="+e.toUTCString()}document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+i+";path="+r}function o(){return!!window.document}n.d(t,{I1:()=>i,bG:()=>r,t$:()=>o})},37377:(e,t,n)=>{"use strict";function r(e){return function(t,n,r){const i=r.value;r.value=function(...t){let r=this[n+"_DebounceProperties"];void 0===r&&(r=this[n+"_DebounceProperties"]={hTimer:void 0,nPending:0}),void 0===r.hTimer?(i.apply(this,t),r.hTimer=window.setInterval((()=>{r.nPending>0?(i.apply(this,t),r.nPending=0):(window.clearInterval(r.hTimer),r.hTimer=void 0)}),e)):r.nPending+=1}}}n.d(t,{D:()=>r})},60161:(e,t,n)=>{"use strict";function r(e){return null!=e&&void 0!==e.focus}function i(e,t){for(;t;){if(t.parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&(t=t.parentNode.host),t==e)return!0;t=t.parentElement}return!1}function o(e,t){let n=0,r=0;return t.righte.right&&(n=t.left-e.right),t.bottome.bottom&&(r=t.top-e.bottom),Math.sqrt(n*n+r*r)}function a(e,t){return{top:e.screenTop+t.top,bottom:e.screenTop+t.bottom,left:e.screenLeft+t.left,right:e.screenLeft+t.right}}function s(e){let t;return e&&r(e.currentTarget)&&(t=e.currentTarget.ownerDocument.defaultView),t}function l(e){let t;return e&&(t=e.ownerDocument.defaultView),t}function c(e){const t="steam://openurl/";e.startsWith(t)&&(e=e.slice(t.length)),function(e){let t=window.document;try{t=window.top.document}catch(e){}let n=t.createElement("textarea");n.textContent=e,n.style.position="fixed",t.body.appendChild(n),n.select();try{t.execCommand("copy")}catch(e){console.warn("Copy to clipboard failed.",e)}finally{t.body.removeChild(n)}}(e)}function d(e){let t=e.ownerDocument;return t.fullscreen||t.webkitIsFullScreen||t.mozFullScreen||t.msFullscreenElement}function u(e,t){let n=e;n.requestFullscreen?n.requestFullscreen():n.webkitRequestFullscreen?n.webkitRequestFullscreen():t&&t.webkitSetPresentationMode?t.webkitSetPresentationMode("fullscreen"):n.mozRequestFullScreen?n.mozRequestFullScreen():n.msRequestFullscreen&&n.msRequestFullscreen()}function m(e){let t=e.ownerDocument;t.cancelFullscreen?t.cancelFullscreen():t.webkitCancelFullScreen?t.webkitCancelFullScreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen()}function h(e){return"INPUT"===e.nodeName}function p(e){return"TEXTAREA"===e.nodeName}function _(e,t){switch(e){case"TEXTAREA":return!0;case"INPUT":switch(t){case"date":case"datetime-local":case"datetime":case"email":case"month":case"number":case"password":case"search":case"tel":case"text":case"time":case"url":case"week":return!0;default:return!1}default:return!1}}function g(e){"loading"==document.readyState?document.addEventListener("DOMContentLoaded",e):e()}n.d(t,{Dj:()=>g,Et:()=>v,Eu:()=>w,GB:()=>r,J$:()=>c,Jk:()=>C,Lh:()=>f,Mv:()=>E,RA:()=>s,RD:()=>u,U0:()=>S,V2:()=>D,_J:()=>_,__:()=>p,b$:()=>b,dw:()=>o,h9:()=>d,kR:()=>l,mQ:()=>m,ni:()=>i,sH:()=>a,uk:()=>h});function f(e,t){const n=e;return n.lastModifiedDate=new Date,n.name=t||Date.now().toString(),e}function v(e,t){let n=e.parentElement;for(;n;){if(!t||"x"==t){let e=window.getComputedStyle(n);if("scroll"==e.overflowX||"auto"==e.overflowX||"fixed"==e.position)break}if(!t||"y"==t){let e=window.getComputedStyle(n);if("scroll"==e.overflowY||"auto"==e.overflowY||"fixed"==e.position)break}n=n.parentElement}return n}function C(e,t){for(;e;){if(t(e))return e;e=e.parentElement}}function S(e,t){if(!("ownerDocument"in e))return!0;const n=e.ownerDocument.defaultView.getComputedStyle(e),r="x"===t?n.overflowX:n.overflowY;return"auto"===r||"scroll"===r}function E(){return function(e){const t={};return e.querySelectorAll('link[rel="stylesheet"]').forEach((e=>{t[e.href]=e})),t}(document)}function D(e,t){b(e.document,t,!0)}function b(e,t,n){const r=Object.assign({},t),i=e.getElementsByTagName("head")[0],o=i.getElementsByTagName("link"),a=o.length;for(let e=0;e{"use strict";n.d(t,{$1:()=>c.$1,CE:()=>E,LJ:()=>d,LZ:()=>v,Mh:()=>c.Mh,Np:()=>c.Np,XG:()=>c.XG,Xx:()=>u,Yt:()=>b,eH:()=>D,is:()=>S,jr:()=>c.jr,kQ:()=>m,kb:()=>g,m9:()=>c.m9,vX:()=>c.vX,x$:()=>p,yW:()=>c.yW,yu:()=>h});var r=n(89526),i=n(46132),o=n(86283),a=n(32765),s=n(11837),l=n(85246),c=n(72120);class d{constructor(){this.m_mapTokens=new Map,this.m_mapFallbackTokens=new Map,this.m_cbkTokensChanged=new l.pB}static InstallErrorReportingStore(e){this.sm_ErrorReportingStore=e}static GetLanguageFallback(e){return"sc_schinese"===e?"schinese":"english"}static GetELanguageFallback(e){return 29===e?6:0}static IsELanguageValidInRealm(e,t){return t===(29===e?o.IN.k_ESteamRealmChina:o.IN.k_ESteamRealmGlobal)}static GetLanguageListForRealms(e){const t=new Array;for(let n=0;n<30;n++)for(const r of e)if(this.IsELanguageValidInRealm(n,r)){t.push(n);break}return t}InitFromObjects(e,t,n,r,i){i||this.m_mapTokens.clear();const o=Object.assign(Object.assign({},n||{}),e),a=Object.assign(Object.assign({},r||{}),t||{});this.AddTokens(o,a),this.m_cbkTokensChanged.Dispatch()}InitDirect(e,t){this.m_mapTokens.clear(),this.m_mapFallbackTokens.clear(),this.AddTokens(e,t),this.m_cbkTokensChanged.Dispatch()}AddTokens(e,t){Object.keys(e).forEach((t=>{this.m_mapTokens.set(t,e[t])})),t&&Object.keys(t).forEach((e=>{this.m_mapTokens.has(e)||this.m_mapTokens.set(e,t[e]),this.m_mapFallbackTokens.set(e,t[e])}))}GetTokensChangedCallbackList(){return this.m_cbkTokensChanged}GetPreferredLocales(){return this.m_rgLocalesToUse?this.m_rgLocalesToUse:navigator&&navigator.languages?navigator.languages:["en-US"]}GetELanguageFallbackOrder(e=null){let t=new Array;if(t.push((0,i.jM)(a.De.LANGUAGE)),(a.De.SUPPORTED_LANGUAGES||[]).forEach((e=>{e.value!=a.De.LANGUAGE&&t.push((0,i.jM)(e.value))})),e){d.GetLanguageListForRealms(e).forEach((e=>{-1==t.indexOf(e)&&t.push(e)}))}return t}SetPreferredLocales(e){this.m_rgLocalesToUse=e}BLooksLikeToken(e){return e&&e.length>0&&"#"==e.charAt(0)}LocalizeIfToken(e,t){return this.BLooksLikeToken(e)?this.LocalizeString(e,t):e}LocalizeString(e,t){if(!this.BLooksLikeToken(e))return;let n=this.m_mapTokens.get(e.substring(1));if(void 0!==n)return n;!t&&d.sm_ErrorReportingStore&&d.sm_ErrorReportingStore.ReportError(new Error(`Unable to find localization token '${e}' for language '${a.De.LANGUAGE}', ${this.m_mapTokens.size} tokens in map`),{bIncludeMessageInIdentifier:!0})}LocalizeStringFromFallback(e){if(!e||0==e.length||"#"!=e.charAt(0))return;let t=this.m_mapFallbackTokens.get(e.substring(1));return void 0!==t?t:void 0}}function u(e,...t){let n=b.LocalizeString(e);return void 0===n?e:f(n,...t)}function m(e,...t){let n=b.LocalizeString(e);if(void 0===n)return e;let i,o=[],a=/(.*?)%(\d+)\$s/g,s=0;for(;i=a.exec(n);){s+=i[0].length,o.push(i[1]);let e=parseInt(i[2]);e>=1&&e<=t.length&&o.push(t[e-1])}return o.push(n.substr(s)),r.createElement(r.Fragment,null,...o)}function h(e,...t){let n=b.LocalizeIfToken(e);return void 0===n?e:_(n,...t)}function p(e,t,...n){let r;return r=u(1===t||"1"===t?e:e+"_Plural",t),void 0===r?e:_(r,...n)}function _(e,...t){let n,i=[],o=/(.*?)<(\d+)>(.*)<\/(\2)>/g,a=0;for(;n=o.exec(e);){a+=n[0].length,i.push(n[1]);let e=parseInt(n[2]),o=n[3]||"",s=(e>=1&&e<=t.length?t[e-1]:null)?r.cloneElement(t[e-1],{},[o]):o;i.push(s)}return i.push(e.substr(a)),r.createElement(r.Fragment,null,...i)}function g(e,t,...n){return 1===t||"1"===t?u(e,t,...n):u(e+"_Plural",t,...n)}function f(e,...t){return 0==t.length?e:e=e.replace(/%(?:(\d+)\$)?s/g,(function(e,n){if(n<=t.length&&n>=1){let e=t[n-1];return String(null==e?"":e)}return e}))}class v{static Set(e,t,n){if(e.length<=t){if(t>=30)return e;e=(0,s.LG)(e,t+1,null)}return e[t]=n,e}static Get(e,t){return e&&e.length>t&&e[t]||""}static GetWithFallback(e,t){if(e){return v.Get(e,t)||v.Get(e,d.GetELanguageFallback(t))}return null}}const C={english:"en",german:"de",french:"fr",italian:"it",korean:"ko",latam:"es-419",spanish:"es",schinese:"zh-cn",tchinese:"zh-tw",russian:"ru",thai:"th",japanese:"ja",brazilian:"pt-br",portuguese:"pt",polish:"pl",danish:"da",dutch:"nl",finnish:"fi",norwegian:"no",swedish:"sv",hungarian:"hu",czech:"cs",romanian:"ro",turkish:"tr",arabic:"ar",bulgarian:"bg",greek:"el",ukrainian:"uk",vietnamese:"vi",sc_schinese:"zh-cn",koreana:"ko"},S={"en-US":0,"de-DE":1,"fr-FR":2,"it-IT":3,"ko-KR":4,"es-ES":5,"zh-CH":6,"zh-CN":7,"ru-RU":8,"th-TH":9,"ja-JP":10,"pt-PT":11,"pl-PL":12,"da-DK":13,"nl-NL":14,"fi-FI":15,"nb-NO":16,"sv-SE":17,"hu-HU":18,"cs-CZ":19,"ro-RO":20,"tr-TR":21,"pt-BR":22,"bg-BG":23,"el-GR":24,"ar-SA":25,"uk-UA":26,"es-419":27,"vi-VN":28};function E(){return C[a.De.LANGUAGE]||null}function D(e){let t,n=new Promise((e=>t=e)),r=Array(e.length),i=e.length;return e.map(((e,n)=>{Promise.resolve(e).then((e=>{r[n]=e,i--,0==i&&t(r)})).catch((e=>{console.error("Failed to load localiation file: "+e),r[n]={},i--,0==i&&t(r)}))})),n}const b=new d;window.LocalizationManager=b},72120:(e,t,n)=>{"use strict";n.d(t,{$1:()=>l,Kb:()=>A,LO:()=>T,Mh:()=>y,Np:()=>M,Sc:()=>h,Ti:()=>d,U$:()=>r,XG:()=>w,_X:()=>I,jr:()=>f,kI:()=>R,m9:()=>g,o9:()=>u,vX:()=>c,yW:()=>s});var r,i=n(39818),o=n(14826),a=n(25508);function s(e,t,n){let i;if("boolean"==typeof t){i={eSuffix:t?r.None:r.Ago,bForceSingleUnits:n,bHighGranularity:!1}}else i=Object.assign({eSuffix:r.Ago,bForceSingleUnits:!1,bHighGranularity:!1},t);let s="#TimeInterval_";i.eSuffix==r.Ago?s="#TimeSince_":i.eSuffix==r.Remaining&&(s="#TimeRemaining_");let l=e=>Math.floor(e);if(i.bAllowDecimal&&(l=e=>Math.round(10*e)/10),e>=2*a._H.PerYear)return(0,o.Xx)(s+"XYears",l(e/a._H.PerYear));if(e>=a._H.PerYear)return(e-=a._H.PerYear)>=2*a._H.PerMonth&&!i.bForceSingleUnits?(0,o.Xx)(s+"1YearXMonths",l(e/a._H.PerMonth)):(0,o.Xx)(s+"1Year");if(e>=2*a._H.PerMonth)return(0,o.Xx)(s+"XMonths",l(e/a._H.PerMonth));if(e>=2*a._H.PerWeek)return(0,o.Xx)(s+"XWeeks",l(e/a._H.PerWeek));if(e>=a._H.PerWeek)return(0,o.Xx)(s+"1Week",l(e/a._H.PerWeek));if(e>=2*a._H.PerDay)return(0,o.Xx)(s+"XDays",l(e/a._H.PerDay));if(e>=a._H.PerDay)return(e-=a._H.PerDay)>=2*a._H.PerHour&&!i.bForceSingleUnits?(0,o.Xx)(s+"1DayXHours",l(e/a._H.PerHour)):(0,o.Xx)(s+"1Day");if(e>=2*a._H.PerHour)return(0,o.Xx)(s+"XHours",l(e/a._H.PerHour));if(e>=a._H.PerHour)return(e-=a._H.PerHour)>=2*a._H.PerMinute&&!i.bForceSingleUnits?(0,o.Xx)(s+"1HourXMinutes",l(e/a._H.PerMinute)):(0,o.Xx)(s+"1Hour");if(e>=2*a._H.PerMinute){const t=Math.floor(e/a._H.PerMinute),n=e%a._H.PerMinute;return i.bHighGranularity&&0!=n?1==n?(0,o.Xx)(s+"XMinutes1Second",t):(0,o.Xx)(s+"XMinutesXSeconds",t,n):(0,o.Xx)(s+"XMinutes",l(e/a._H.PerMinute))}if(e>=a._H.PerMinute){const t=e%a._H.PerMinute;return i.bHighGranularity&&0!=t?1==t?(0,o.Xx)(s+"1Minute1Second"):(0,o.Xx)(s+"1MinuteXSeconds",t):(0,o.Xx)(s+"1Minute")}return i.bHighGranularity?1==e?(0,o.Xx)(s+"1Second"):(0,o.Xx)(s+"XSeconds",e):(0,o.Xx)(s+"LessThanAMinute")}function l(e,t,n){let r;r=void 0===t||!0===t||!1===t?{weekday:n?"long":"short",year:t?void 0:"numeric"}:t;let i=new Date(1e3*e);const a=Object.assign({weekday:"short",month:"long",day:"numeric",year:"numeric"},r);return i.toLocaleDateString(o.Yt.GetPreferredLocales(),a)}function c(e,t){let n,r=new Date(1e3*e);if(!t){const e=r.setHours(0,0,0,0);let t=p.get(e);if(t)return t}const i=Object.assign({year:"numeric",month:"short",day:"numeric"},t);return n=r.toLocaleDateString(o.Yt.GetPreferredLocales(),i),n}function d(e){return T(new Date(1e3*e))}function u(e){return M(new Date(1e3*e))}!function(e){e[e.None=0]="None",e[e.Ago=1]="Ago",e[e.Remaining=2]="Remaining"}(r||(r={}));const m=new Map;function h(e,t,n){const r=new Date(1e3*e),i=o.Yt.GetPreferredLocales(),a=(null==t?void 0:t.bForce24HourClock)||function(e){let t=m.get(e);if(!0===t||!1===t)return t;const n=new Date;return n.setHours(15),t=n.toLocaleTimeString(e,{hour:"numeric"})==n.toLocaleTimeString(e,{hour:"numeric",hour12:!1}),m.set(e,t),t}(i[0]),s=Object.assign(Object.assign({},a?{hour:"numeric",minute:"2-digit",hourCycle:"h23"}:{hour:"numeric",minute:"2-digit"}),n);return r.toLocaleTimeString(i,s)}const p=new Map,_=new Map;function g(e,t,n=!0,r=!0){const a=new Date,s=new Date(1e3*e);if(s.getFullYear()!=a.getFullYear())return c(e);r&&i.zO((new Date).setHours(24,0,0,0)-a.getTime());const l=new Date;if(l.setHours(0,0,0,0),n)if(s>=l){if(l.setDate(l.getDate()+1),s=l)return(0,o.Xx)("#Time_Yesterday");const d={month:t?"long":"short",day:"numeric"},u=s.setHours(0,0,0,0)+d.month;let m=_.get(u);return m||(m=s.toLocaleDateString(o.Yt.GetPreferredLocales(),d),_.set(u,m),m)}function f(e,t){const n=new Date(1e3*e),r=new Date,s=Object.assign({bGranularFutureTime:!1,bGranularTodayTimeOnly:!1,bGranularToday:!1,bGranularYesterday:!1,bGranularWeek:!1,bGranularPast:!1,bAbbreviateDayOfWeek:!1,bForce24HourClock:!1},t);if(n>r){if(!s.bGranularFutureTime)return i.zO(n.getTime()-r.getTime()),n.getFullYear()==r.getFullYear()?I(n):T(n);i.zO((new Date).setHours(24,0,0,0)-r.getTime());let e=new Date;return e.setHours(0,0,0,0),e.setDate(e.getDate()+1),n=c)return s.bGranularToday?s.bGranularTodayTimeOnly?h(e,{bForce24HourClock:s.bForce24HourClock}):(0,o.Xx)("#Time_Today_At",h(e,{bForce24HourClock:s.bForce24HourClock})):(0,o.Xx)("#Time_Today");if(c.setDate(r.getDate()-1),n>=c)return s.bGranularYesterday?(0,o.Xx)("#Time_Yesterday_At",h(e,{bForce24HourClock:s.bForce24HourClock})):(0,o.Xx)("#Time_Yesterday");c.setDate(r.getDate()-6);const d=new Date(c);if(s.bGranularWeek&&n>=d)return w(n,!1,!s.bAbbreviateDayOfWeek);if(s.bGranularPast)return(0,o.Xx)("#Time_Past_At",l(e,n.getFullYear()==r.getFullYear(),!s.bAbbreviateDayOfWeek),h(e,{bForce24HourClock:s.bForce24HourClock}));if(n>=d)return(0,o.Xx)("#TimeSince_ThisWeek");if(n.getMonth()==r.getMonth()&&n.getFullYear()==r.getFullYear()){const e=Math.floor((d.valueOf()-n.valueOf())/(1e3*a._H.PerWeek))+1;return 1==e?(0,o.Xx)("#TimeSince_1Week"):(0,o.Xx)("#TimeSince_XWeeks",e)}return n.getFullYear()==r.getFullYear()?I(n):T(n)}const v=new Map,C=new Map,S=new Map,E=new Map,D=new Map,b=new Map;function w(e,t=!1,n=!0){const r={weekday:n?"long":"short",day:"numeric",month:t?"long":"short"},i=e.setHours(0,0,0,0)+r.weekday+r.month;let a=D.get(i);return a||(a=e.toLocaleDateString(o.Yt.GetPreferredLocales(),r),D.set(i,a),a)}function y(e){let t=v.get(e.getDay());return t||(t=e.toLocaleDateString(o.Yt.GetPreferredLocales(),{weekday:"long"}),v.set(e.getDay(),t),t)}function I(e){let t=C.get(e.getMonth());return t||(t=e.toLocaleDateString(o.Yt.GetPreferredLocales(),{month:"long"}),C.set(e.getMonth(),t),t)}function R(e){let t=b.get(e.getMonth());return t||(t=e.toLocaleDateString(o.Yt.GetPreferredLocales(),{month:"short"}),b.set(e.getMonth(),t),t)}function M(e){let t=S.get(e.getFullYear());return t||(t=e.toLocaleDateString(o.Yt.GetPreferredLocales(),{year:"numeric"}),S.set(e.getFullYear(),t),t)}function T(e){const t=e.getMonth()+12*e.getFullYear();let n=E.get(t);return n||(n=e.toLocaleDateString(o.Yt.GetPreferredLocales(),{month:"long",year:"numeric"}),E.set(t,n),n)}function A(e){switch(e.getUTCMonth()){case 0:case 1:case 2:return(0,o.Xx)("#Time_QuarterOfYear_Q1",e.getUTCFullYear());case 3:case 4:case 5:return(0,o.Xx)("#Time_QuarterOfYear_Q2",e.getUTCFullYear());case 6:case 7:case 8:return(0,o.Xx)("#Time_QuarterOfYear_Q3",e.getUTCFullYear());default:return(0,o.Xx)("#Time_QuarterOfYear_Q4",e.getUTCFullYear())}}},88443:(e,t,n)=>{"use strict";n.d(t,{AV:()=>o,X_:()=>a,l:()=>i});var r=n(14826);function i(e,t,n,i){let o=t;o="number"==typeof o?{nDigitsAfterDecimal:t,bUseBinary1K:n||void 0===n,bValueIsInBytes:!i,bValueIsRate:i,nMinimumDigitsAfterDecimal:0}:Object.assign({nDigitsAfterDecimal:2,bUseBinary1K:!0,bValueIsInBytes:!0,bValueIsRate:!1,nMinimumDigitsAfterDecimal:0},o);const a=o.bUseBinary1K?1024:1e3,s=a*a,l=s*a,c=l*a;let d,u="";e>c?(d=e/c,u="Tera"):e>l?(d=e/l,u="Giga"):e>s?(d=e/s,u="Mega"):e>a?(d=e/a,u="Kilo"):d=e;const m="#"+u+(o.bValueIsInBytes?"bytes":"bits")+(o.bValueIsRate?"_PerSecond":"");return(0,r.Xx)(m,d.toLocaleString(r.Yt.GetPreferredLocales(),{minimumFractionDigits:o.nMinimumDigitsAfterDecimal,maximumFractionDigits:o.nDigitsAfterDecimal}))}function o(e){return e?e.toLocaleString(r.Yt.GetPreferredLocales()):""+e}function a(e){return e>1e9?Math.trunc(e/1e9).toString()+"B":e>1e6?Math.trunc(e/1e6).toString()+"M":e>1e3?Math.trunc(e/1e3).toString()+"K":e.toString()}},50454:(e,t,n)=>{"use strict";n.d(t,{s:()=>c});var r=n(33940),i=n(26464),o=n(65406),a=n(85246);const s=["ActionDescription","Backstack","BrowserBackstack","GroupMemberStore","Chat","ChatRoom","ChatRoomGroup","ChatHistory","CompositionState","AppOverviewImplObservable","ReducedValue","FocusNavigation","FocusNavigationMovement","GamepadEvents","VirtualKeyboard","LibraryUIStore/BasicUIStore","SystemNetworkStore","SteamClient","AudioPlaybackManager","LaunchStates","Haptics","ControllerConfigurator","FriendsUI/RemotePlay","SalePage","VR"];var l;!function(e){e[e.Debug=0]="Debug",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(l||(l={}));class c{constructor(e,t){this.m_fnIdGenerator=null,this.m_sName=e,this.m_fnIdGenerator=t,d.Get().RegisterLogName(e)}Debug(...e){this.Log(l.Debug,...e)}Info(...e){this.Log(l.Info,...e)}Warning(...e){this.Log(l.Warning,...e)}Error(...e){this.Log(l.Error,...e)}Assert(e,...t){e||this.Log(l.Error,"Assertion failed:",...t)}IsDebugEnabled(){return d.Get().IsDebugLogEnabled(this.m_sName)}Log(e,...t){var n,r;if(e==l.Debug&&!d.Get().IsDebugLogEnabled(this.m_sName))return;let i=this.m_sName;const o=null!==(r=null===(n=this.m_fnIdGenerator)||void 0===n?void 0:n.call(this))&&void 0!==r?r:null;null!=o&&(i+=" ("+o+")");u(e,d.Get().IncludeBacktraceInLog,i,this.m_sName,...t)}}(0,r.gn)([i.a],c.prototype,"Debug",null),(0,r.gn)([i.a],c.prototype,"Info",null),(0,r.gn)([i.a],c.prototype,"Warning",null),(0,r.gn)([i.a],c.prototype,"Error",null),(0,r.gn)([i.a],c.prototype,"Assert",null);class d{constructor(){this.m_Storage=null,this.m_rgLogNames=null,this.m_setEnabledDebugLogs=new Set,this.m_bIncludeBacktraceInLog=!1,this.m_SettingsChangedCallback=new a.pB,this.m_bLoading=!1,this.m_Storage=new o.Z,this.m_rgLogNames=s.slice(),this.LoadSettings()}LogAsLogManager(...e){u(l.Info,this.IncludeBacktraceInLog,"LogManager","LogManager",...e)}LoadSettings(){return(0,r.mG)(this,void 0,void 0,(function*(){this.m_bLoading=!0,this.m_bIncludeBacktraceInLog=!!(yield this.m_Storage.GetObject(d.k_IncludeBacktraceInLog_StorageKey));const e=yield this.m_Storage.GetObject(d.k_EnabledLogNames_StorageKey);Array.isArray(e)&&(this.m_setEnabledDebugLogs=new Set(e),this.LogAsLogManager("Loaded debug enabled log names. Will print log messages for:",Array.from(this.m_setEnabledDebugLogs))),this.m_bLoading=!1,this.m_SettingsChangedCallback.Dispatch()}))}SaveSettings(){return(0,r.mG)(this,void 0,void 0,(function*(){yield this.m_Storage.StoreObject(d.k_EnabledLogNames_StorageKey,Array.from(this.m_setEnabledDebugLogs)),yield this.m_Storage.StoreObject(d.k_IncludeBacktraceInLog_StorageKey,this.m_bIncludeBacktraceInLog),this.LogAsLogManager("Saved enabled debug log names. Will print log messages for:",Array.from(this.m_setEnabledDebugLogs))}))}static Get(){return null==d.s_Singleton&&(d.s_Singleton=new d),d.s_Singleton}get Loading(){return this.m_bLoading}get LogNames(){return this.m_rgLogNames}RegisterLogName(e){this.m_rgLogNames.includes(e)||this.m_rgLogNames.push(e)}IsLogName(e){return this.m_rgLogNames.includes(e)}IsDebugLogEnabled(e){return this.m_setEnabledDebugLogs.has(e)}ToggleDebugLogEnabled(e){return(0,r.mG)(this,void 0,void 0,(function*(){this.SetDebugLogEnabled(e,!this.IsDebugLogEnabled(e))}))}SetDebugLogEnabled(e,t){return(0,r.mG)(this,void 0,void 0,(function*(){t?this.m_setEnabledDebugLogs.add(e):this.m_setEnabledDebugLogs.delete(e),this.m_SettingsChangedCallback.Dispatch(),yield this.SaveSettings()}))}SetAllDebugLogsEnabled(e){return(0,r.mG)(this,void 0,void 0,(function*(){this.m_setEnabledDebugLogs=new Set(e?s:[]),this.m_SettingsChangedCallback.Dispatch(),yield this.SaveSettings()}))}RegisterForSettingsChanges(e){return this.m_SettingsChangedCallback.Register(e)}get IncludeBacktraceInLog(){return this.m_bIncludeBacktraceInLog}SetIncludeBacktraceInLog(e){return(0,r.mG)(this,void 0,void 0,(function*(){this.m_bIncludeBacktraceInLog=e,this.m_SettingsChangedCallback.Dispatch(),yield this.SaveSettings()}))}}function u(e,t,n,r,...i){const o=function(e){let t=0;for(let n=0;n>0&255,t>>8&255,t>>16&255]}(r).map(((e,t)=>Math.round(Math.max(0,Math.min(255,255*(.8*(e/255-.5)+.15)))))),a=(299*(s=o)[0]+587*s[1]+114*s[2])/1e3>=128;var s;let c=n;t&&(c=function(e){switch(e){case l.Debug:return String.fromCodePoint(128027);case l.Info:return String.fromCodePoint(8505);case l.Warning:return String.fromCodePoint(9888);case l.Error:return String.fromCodePoint(128165)}}(e)+" "+c);const d=i.length>=1&&"string"==typeof i[0]&&i[0].includes("%c"),u=d&&i.shift(),m=[`%c${c}%c:${d?" %c"+u:""}`,`color: ${a?"black":"white"}; background: rgb(${o.join(",")}); padding: 0 1ch`,"color: transparent; margin-right: -1ch",...d?[""]:[],...i];if(t)console.groupCollapsed(...m),console.trace("Callstack"),console.groupEnd();else switch(e){case l.Debug:case l.Info:console.log(...m);break;case l.Warning:console.warn(...m);break;case l.Error:console.error(...m)}}d.k_EnabledLogNames_StorageKey="EnabledWebLogs",d.k_IncludeBacktraceInLog_StorageKey="IncludeBacktraceInLog",d.s_Singleton=null;const m=()=>d.Get().LogNames.slice().sort(),h=(e,t)=>{d.Get().IsLogName(e)?d.Get().SetDebugLogEnabled(e,t):console.warn(`No log named "${e}", available logs:`,m())};window.DebugLogEnable=(...e)=>e.forEach((e=>h(e,!0))),window.DebugLogDisable=(...e)=>e.forEach((e=>h(e,!1))),window.DebugLogEnableAll=()=>d.Get().SetAllDebugLogsEnabled(!0),window.DebugLogDisableAll=()=>d.Get().SetAllDebugLogsEnabled(!1),window.DebugLogEnableBacktrace=()=>d.Get().SetIncludeBacktraceInLog(!0),window.DebugLogDisableBacktrace=()=>d.Get().SetIncludeBacktraceInLog(!1),window.DebugLogNames=m,window.EnableSteamConsole=(e=!0)=>d.Get().SetDebugLogEnabled("SteamClient",e)},36041:(e,t,n)=>{"use strict";function r(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}function i(e,t,n){return null==e||isNaN(e)?e:Math.max(t,Math.min(n,e))}function o(e,t,n,r,i){return r+(i-r)*(e-t)/(n-t)}function a(e,t,n,r,o){return i(r+(o-r)*(e-t)/(n-t),Math.min(r,o),Math.max(r,o))}n.d(t,{LO:()=>r,Lh:()=>i,bU:()=>a,r4:()=>o})},4306:(e,t,n)=>{"use strict";n.d(t,{KM:()=>r.KM,Gt:()=>d,it:()=>c,dn:()=>i.dn,ak:()=>u.a,B8:()=>r.B8,k$:()=>i.k$,Qg:()=>r.Qg,NW:()=>r.NW,JI:()=>r.JI,kD:()=>r.kD,BE:()=>i.BE,ww:()=>i.ww,xK:()=>i.xK,yU:()=>l,e1:()=>r.e1});var r=n(30252),i=n(74082),o=n(89526),a=n(23801);function s(e,t){return(0,i.xK)((n=>{if(!n)return;const r=t(n.ownerDocument.defaultView,(t=>{e(t[0])}));return r.observe(n),()=>r.unobserve(n)}),[e,t])}function l(e){return s(e,o.useCallback(((e,t)=>e.ResizeObserver?new e.ResizeObserver(t):((0,a.X)(!1,"ResizeObserver is not available"),{observe:()=>{},unobserve:()=>{},disconnect:()=>{}})),[]))}function c(e,...t){const n=new e.ownerDocument.defaultView.ResizeObserver(...t);return n.observe(e),n}function d(e,...t){const n=new e.ownerDocument.defaultView.IntersectionObserver(...t);return n.observe(e),n}var u=n(26464)},86900:(e,t,n)=>{"use strict";n.d(t,{R:()=>o});var r=n(89526),i=n(5615);n(84084),n(17547);function o(e){const t=r.useRef(a),n=function(e,t,...n){console.log(`React-Query ${e}`,t,...n)};(0,i.setLogger)({log:(e,...t)=>n("LOG",e,...t),warn:(e,...t)=>n("WARN",e,...t),error:(e,...t)=>n("ERROR",e,...t)});let o=e.children;return e.debug,r.createElement(i.QueryClientProvider,{client:t.current},o)}const a=new i.QueryClient({defaultOptions:{queries:{staleTime:1/0}}})},30252:(e,t,n)=>{"use strict";n.d(t,{B8:()=>i,JI:()=>s,KM:()=>a,NW:()=>o,Qg:()=>l,e1:()=>c,kD:()=>d});var r=n(89526);function i(e,t,n){return[e,t,n]}function o(){const[,e]=r.useState(0);return r.useCallback((()=>e((e=>e+1))),[])}function a(e){let t=1;for(;null!=e&&"HTML"!=e.tagName;){const n=getComputedStyle(e);if(n.zoom){const e=Number.parseFloat(n.zoom);isNaN(e)||(t*=e)}e=e.parentElement}return t}function s(e,t,n,i){r.useEffect((()=>{if(e&&n)return e.addEventListener(t,n,i),()=>e.removeEventListener(t,n)}),[e,t,n])}function l(e,t){r.useLayoutEffect((()=>{if(!t||!e)return;let n=e.Register(t);return()=>n.Unregister()}),[e,t])}function c(e){const[t,n]=r.useState(null==e?void 0:e.Value);return r.useEffect((()=>{if(null==e)return()=>{};const r=e.Subscribe(n);return t!==e.Value&&n(e.Value),null==r?void 0:r.Unsubscribe}),[e]),t}function d(e){const t=r.useRef();return r.useCallback((()=>(t.current&&t.current.factory==e||(t.current={value:e(),factory:e}),t.current.value)),[e])}},74082:(e,t,n)=>{"use strict";n.d(t,{BE:()=>o,dn:()=>a,k$:()=>i,ww:()=>l,xK:()=>s});var r=n(89526);function i(e,t){null!=e&&("function"==typeof e?e(t):"current"in e&&(e.current=t))}function o(...e){return r.useCallback((t=>{for(const n of e)i(n,t)}),e)}function a(...e){if(e&&0!==e.length)return 1===e.length?e[0]:t=>e.forEach((e=>{e&&("function"==typeof e?e(t):e.current=t)}))}function s(e,t){const n=r.useRef();return r.useCallback((t=>{n.current&&n.current(),n.current=e(t)}),t)}function l(e){const t=r.useRef(null);return{refWithValue:t,refForElement:o(e,t)}}},45820:(e,t,n)=>{"use strict";n.d(t,{i4:()=>o,lJ:()=>a});var r=n(89526),i=n(59934);function o(e,t){var n;const o=`${e}_HistoryValue`,a=(0,i.k6)(),s=(0,i.TH)(),l=null!==(n=s.state&&s.state[o])&&void 0!==n?n:t,c=r.useCallback((e=>{a.replace(a.location.pathname,Object.assign(Object.assign({},a.location.state),{[o]:e}))}),[a,o]);return[l,c]}function a(e,t,n){var o;const a=`${e}_HistoryValue`,s=(0,i.k6)(),l=(0,i.TH)(),c=null!==(o=l.state&&l.state[a])&&void 0!==o?o:n,d=r.useRef(!1),u=r.useRef(),m=r.useRef(),h=r.useCallback((e=>{if(d.current&&(u.current=e,!m.current)){const e=s.location.pathname;m.current=window.setTimeout((()=>{s.location.pathname!=e||s.location.state&&s.location.state[a]==u.current||s.replace(s.location.pathname,Object.assign(Object.assign({},s.location.state||{}),{[a]:u.current})),m.current=void 0}),t)}}),[s,a,t]);return r.useEffect((()=>{d.current=!0}),[]),[c,h]}},81349:(e,t,n)=>{"use strict";function r(e,t){return et?1:0}function i(e,t){let n=e.toString(),r="";for(let e=0;e0?`${s}${r}:${i(o,2)}:${i(a,2)}`:`${s}${o}:${i(a,2)}`}function a(e){if(!e)return"";if(DOMParser){return(new DOMParser).parseFromString(e,"text/html").documentElement.textContent}return e}function s(e,t=""){return e.replace(/\bhttps?:\/\/\S+/gi,t)}function l(e,t,n=!0){let r=e.trim();if(r=r.replace(n?/\s+/g:/[ \t]+/g," "),r.length>t){r=r.substring(0,t);let e=r.replace(/^(.*([.!?])) .*$/,"$1"),i=e.length;(i<.6*t||i==t)&&(e=r.replace(/ [^ ]*$/,"...")),r=n?e.replace(/(\r\n|\n|\r)/gm,""):e}return r}function c(e){let t,n,r=0;if(0===e.length)return r;for(t=0;tm,HA:()=>a,I8:()=>o,JD:()=>c,W5:()=>s,Xf:()=>d,eT:()=>r,nh:()=>u,oU:()=>l})},25508:(e,t,n)=>{"use strict";n.d(t,{U8:()=>o,_H:()=>r,_R:()=>s,pd:()=>a,yK:()=>i});const r={PerYear:31536e3,PerMonth:2628e3,PerWeek:604800,PerDay:86400,PerHour:3600,PerMinute:60};function i(e,t){return e.getFullYear()==t.getFullYear()&&e.getMonth()==t.getMonth()&&e.getDate()==t.getDate()}function o(e,t){return e.getFullYear()==t.getFullYear()}function a(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),0,0,0)}function s(e){return new Promise((t=>setTimeout(t,e)))}},32765:(e,t,n)=>{"use strict";n.d(t,{De:()=>s.De,E_:()=>c,Ek:()=>l.Ek,JA:()=>s.JA,Kc:()=>g,L7:()=>s.L7,Wj:()=>s.Wj,Zv:()=>f,dk:()=>s.dk,fI:()=>u,h4:()=>h,id:()=>m,ip:()=>l.ip,kQ:()=>l.kQ,x:()=>p,y9:()=>l.y9});var r=n(33940),i=n(89526),o=n(86283),a=n(23801),s=n(44973),l=n(59954);const c=i.createContext({}),d=()=>{let e=i.useContext(c);return(0,a.X)(void 0!==e.IN_GAMEPADUI,"Trying to use ConfigContext without a provider! Add ConfigContextRoot to application."),e};function u(e){const{IN_GAMEPADUI:t,IN_DESKTOPUI:n,IN_VR:r,children:o}=e,a=i.useMemo((()=>({IN_GAMEPADUI:null!=t?t:s.De.IN_GAMEPADUI,IN_DESKTOPUI:null!=n&&n,IN_VR:null!=r&&r})),[t,n,r]);return i.createElement(c.Provider,{value:a},o)}function m(){const e=d();return null==e?void 0:e.IN_GAMEPADUI}function h(){return s.De.EREALM===o.IN.k_ESteamRealmChina}function p(e,t,n){return(0,r.mG)(this,void 0,void 0,(function*(){if(n.config){const n=(yield e.get(t+"ajaxgetconfig")).data;n&&(delete n.SESSIONID,Object.assign(s.De,n))}if(n.userConfig){const n=(yield e.get(t+"ajaxgetuserconfig",{withCredentials:!0})).data;n&&Object.assign(s.L7,n)}}))}function _(e,t){return 0!=t.length&&e.startsWith(t)}function g(){if(!window||!window.location||!window.location.href)return console.warn("Unable to determine base url!"),"unknown";const e=window.location.href;return _(e,s.De.STORE_BASE_URL)?s.De.STORE_BASE_URL:_(e,s.De.COMMUNITY_BASE_URL)?s.De.COMMUNITY_BASE_URL:_(e,s.De.CHAT_BASE_URL)?s.De.CHAT_BASE_URL:_(e,s.De.PARTNER_BASE_URL)?s.De.PARTNER_BASE_URL:_(e,s.De.HELP_BASE_URL)?s.De.HELP_BASE_URL:_(e,s.De.STEAMTV_BASE_URL)?s.De.STEAMTV_BASE_URL:_(e,s.De.STATS_BASE_URL)?s.De.STATS_BASE_URL:_(e,s.De.INTERNAL_STATS_BASE_URL)?s.De.INTERNAL_STATS_BASE_URL:_(e,s.De.STORE_CHECKOUT_BASE_URL)?s.De.STORE_CHECKOUT_BASE_URL:_(e,"https://steamloopback.host")?"https://steamloopback.host":""}function f(){const e=window.location.href;return _(e,s.De.STORE_BASE_URL)||_(e,s.De.STORE_CHECKOUT_BASE_URL)?"store":_(e,s.De.COMMUNITY_BASE_URL)?"community":_(e,s.De.PARTNER_BASE_URL)?"partnerweb":_(e,s.De.HELP_BASE_URL)?"help":_(e,s.De.STEAMTV_BASE_URL)?"steamtv":_(e,s.De.STATS_BASE_URL)||_(e,s.De.INTERNAL_STATS_BASE_URL)?"stats":""}},44973:(e,t,n)=>{"use strict";n.d(t,{De:()=>i,JA:()=>s,L7:()=>o,Wj:()=>l,dk:()=>a});var r=n(59954);const i={EUNIVERSE:0,WEB_UNIVERSE:"",LANGUAGE:"english",SUPPORTED_LANGUAGES:[],COUNTRY:"",AVATAR_BASE_URL:"",MEDIA_CDN_COMMUNITY_URL:"",MEDIA_CDN_URL:"",CLAN_CDN_ASSET_URL:"",COMMUNITY_CDN_URL:"",COMMUNITY_CDN_ASSET_URL:"",BASE_URL_SHARED_CDN:"",STORE_CDN_URL:"",PUBLIC_SHARED_URL:"",COMMUNITY_BASE_URL:"",CHAT_BASE_URL:"",STORE_BASE_URL:"",STORE_CHECKOUT_BASE_URL:"",LOGIN_BASE_URL:"",SUPPORT_BASE_URL:"",STORE_ICON_BASE_URL:"",IMG_URL:"",STEAMTV_BASE_URL:"",HELP_BASE_URL:"",PARTNER_BASE_URL:"",STATS_BASE_URL:"",INTERNAL_STATS_BASE_URL:"",BASE_URL_STORE_CDN_ASSETS:"",IN_CLIENT:!1,USE_POPUPS:!1,IN_MOBILE:!1,IN_MOBILE_WEBVIEW:!1,IN_TENFOOT:!1,PLATFORM:"",SNR:"",LAUNCHER_TYPE:0,EREALM:0,IN_CHROMEOS:!1,TESLA:!1,LOCAL_HOSTNAME:"",WEBAPI_BASE_URL:"",TOKEN_URL:"",BUILD_TIMESTAMP:0,PAGE_TIMESTAMP:0,FROM_WEB:!1,WEBSITE_ID:"Unknown",get SESSIONID(){return(0,r.c9)()},FRIENDSUI_BETA:!1,STEAM_TV:!1,DEV_MODE:!1,IN_STEAMUI:!1,IN_GAMEPADUI:!1,IN_STEAMUI_SHARED_CONTEXT:!1,DECK_DISPLAY_MODE:!1,ON_DECK:!1,ON_STEAMOS:!1,IN_GAMESCOPE:!1,IN_LOGIN:!1,IN_LOGIN_REFRESH:!1,USE_LONGEST_LOC_STRING:!1,SILENT_STARTUP:!1};i.FOO=!1;const o={logged_in:!1,steamid:"",accountid:0,account_name:"",token:void 0,token_use_id:void 0,webapi_token:"",authwgtoken:"",is_support:!1,is_limited:!1,is_partner_member:!1,short_url:"",country_code:""},a={steamid:"",clanid:0,listid:0},s={CLANSTEAMID:"",CLANACCOUNTID:0,APPID:0,VANITY_ID:"",IS_CREATOR_HOME:!1,IS_CURATOR:!1,IS_OGG:!1,CAN_UPLOAD_IMAGES:!1,APP_NAME:"",HEADER_IMAGE:"",HAS_ADULT_CONTENT:!1,HAS_ADULT_CONTENT_SEX:!1,HAS_ADULT_CONTENT_VIOLENCE:!1,IS_VALVE_GROUP:!1,IS_ALLOWED_SC:!1},l={ANNOUNCEMENT_GID:"",TAKEOVER_ANNOUNCEMENT_GID:""}},59954:(e,t,n)=>{"use strict";n.d(t,{Ek:()=>d,c9:()=>l,ip:()=>m,kQ:()=>u,y9:()=>_});var r=n(36041),i=n(87361),o=n(44973);const a="webui_config";let s;function l(){if(!(0,i.t$)())return s||(s=c()),s;let e=(0,i.bG)("sessionid");return e||(e=c()),e}function c(){let e=function(){let e="";for(let t=0;t<24;t++)e+=(0,r.LO)(0,35).toString(36);return e}();return(0,i.I1)("sessionid",e,0),e}function d(e=a){const t={},n=u("config",e);n&&(delete n.SESSIONID,Object.assign(o.De,n),t.config=!0);const r=u("userinfo",e);r&&(Object.assign(o.L7,r),t.userConfig=!0,o.L7.is_support&&_()&&(o.L7.is_support=!1));const i=u("broadcast",e);i&&(Object.assign(o.dk,i),t.broadcastConfig=!0);const s=u("community",e);s&&(Object.assign(o.JA,s),t.communityConfig=!0);const l=u("event",e);return l&&(Object.assign(o.Wj,l),t.eventConfig=!0),t}function u(e,t=a){return h(e,t,!0)}function m(e,t=a){return h(e,t,!1)}function h(e,t=a,n){let r;if(r="string"==typeof t?!{NODE_ENV:"production",STEAM_BUILD:"buildbot"}.MOBILE_BUILD&&document.getElementById(t):t,r)try{if(r.hasAttribute("data-"+e)){return JSON.parse(r.getAttribute("data-"+e))}return null}catch(e){console.error("Failed to parse config",e)}else n&&console.error("Missing config element #",t)}const p="presentation_mode";function _(){let e=null;return(0,i.t$)()&&(e=(0,i.bG)(p)),Boolean(e&&1===Number.parseInt(e))}},34726:(e,t,n)=>{"use strict";"VALVE_PUBLIC_PATH"in window?n.p=window.VALVE_PUBLIC_PATH:console.error("VALVE_PUBLIC_PATH not defined; check for a call to CHTMLHelpers::WebpackConfigScriptlet"),console.assert(123===Array.from(new Set([123]))[0],"Should not include prototypejs.")},96927:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d,l:()=>u});var r=n(32765);const i={},o={LoyaltyEquippedProfile:e=>`/points/profile/${e}`},a={LoyaltySteamBadge:()=>"/points/shop/c/steambadge",LoyaltyProfileCustomizations:()=>"/points/shop/profileshowcases"},s={LoyaltyItemBundles:()=>"/points/shop/c/itembundles",LoyaltyItemBundle:e=>`/points/shop/bundle/${e}`},l={SteamCharts:()=>"/charts/"},c={YearInReview:(e,t)=>`/:prefix(yearinreview|replay)${e?"/"+e:"/"}${t?"/"+t:""}`},d=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({Home:()=>"/",Login:()=>"/login",OAuthLogin:()=>"/oauth/loginform",AppStorePage:()=>"/app/:appid(\\d+)/:gamename?",PackageStorePage:()=>"/sub/:subid(\\d+)/:packagename?",BundleStorePage:()=>"/bundle/:bundleid(\\d+)/:bundlename?",SaleLandingPage:()=>"/:prefix(sale|deckverified)/:salePageName",RemotePlay:()=>"/remoteplay_hub/",VRHardware:()=>"/vrhardware/",RemotePlayTogether:()=>"/together/",SteamDeck:()=>"/steamdeck/",SteamDeckDock:()=>"/steamdeckdock/",CreatorSaleLandingPage:()=>"/:prefix(curator|publisher|pub|dev|developer|franchise)/:creatorPageName/sale/:salePageName?",SubscriptionPlanLandingPage:()=>"/subscriptions/:salePageName",CuratorHomePage:()=>["/:prefix(publisher|pub|dev|developer|franchise|subscriptions|curator)/:curatorPageName","/:prefix(dlc)/:appid(\\d+)/:curatorPageName"],CuratorListPage:()=>["/:prefix(publisher|pub|dev|developer|franchise|subscriptions|curator)/:curatorPageName/:infix(list)?/:listid(\\d+)?","/:prefix(dlc)/:appid(\\d+)/:curatorPageName/:infix(list)?/:listid(\\d+)?"],CuratorAdminPage:()=>"/:prefix(publisher|pub|dev|developer|franchise|subscriptions|curator)/:curatorVanity/admin"},{NewsHub:()=>"/:prefix(news|newshub|events)",NewsHubApp:(e,t)=>`/:prefix(news|newshub|events)/app/${e}/${t}`,NewsHubGroup:(e,t)=>`/:prefix(news|newshub|events)/group/${e}/${t}`,NewsHubCollection:(e,t)=>`/:prefix(news|newshub|events)/collection/${e}/${t}`,NewsHubSale:(e,t)=>`/:prefix(news|newshub|events)/sale/${e}/${t}`,NewsHubContentHub:(e,t,n)=>`/:prefix(news|newshub|events)/${e}/${t}/${n}`,EventViewByApp:(e,t,n)=>`/:prefix(news|newshub|events)/app/${e}/:viewtype(view|inline)/${t}/${n}`,EventViewByGroup:(e,t,n)=>`/:prefix(news|newshub|events)/group/${e}/:viewtype(view|inline)/${t}/${n}`,OldAnnouncementViewByApp:(e,t,n)=>`/:prefix(news|newshub|events)/app/${e}/:viewtype(old_view|old_inline)/${t}/${n}`,OldAnnouncementViewByGroup:(e,t,n)=>`/:prefix(news|newshub|events)/group/${e}/:viewtype(old_view|old_inline)/${t}/${n}`}),{EventAdmin:()=>"/events_admin",EventModeration:()=>"/events_admin/(moderate)?/:appid(\\d+)?/",EventBackfill:()=>"/events_admin/backfill/"}),{EventModeration:()=>"/events_admin/:infix(moderate)?/:appid(\\d+)?/",EventBackfill:()=>"/events_admin/backfill/",EventGameFestivalDebug:()=>"/events_admin/gamefestival/:clanacountid(\\d+)/:claneventgid(\\d+)",EventRSSModeration:()=>"/events_admin/rss_admin/",InteractiveRecommender:()=>"/recommender/:steamid(\\d+)?/",LabsSandbox:()=>"/labs/sandbox",LabsHome:()=>"/labs",AccountPreferences:()=>"/account/"}),l),{Loyalty:()=>"/points",LoyaltyStore:()=>"/points/shop",LoyaltyGetPoints:()=>"/points/getpoints",LoyaltyHowItWorks:()=>"/points/howitworks",LoyaltyStickers:()=>"/points/shop/c/stickers",LoyaltyEmoticons:()=>"/points/shop/c/emoticons",LoyaltyChatEffects:()=>"/points/shop/c/chateffects",LoyaltyBackgrounds:()=>"/points/shop/c/backgrounds",LoyaltyProfile:()=>"/points/shop/c/profile",LoyaltyAvatar:()=>"/points/shop/c/avatar",LoyaltyByGame:()=>"/points/shop/c/games",LoyaltyGiveawayRules:()=>"/points/giveawayrules",LoyaltyEvents:e=>`/points/shop/event/${e}`}),{LoyaltySteamDeck:()=>"/points/shop/c/steamdeck"}),{LoyaltyKeyboard:()=>"/points/shop/c/keyboard"}),{LoyaltyStartupMovie:()=>"/points/shop/c/startupmovie"}),i),a),s),{LoyaltyProfileBundles:()=>"/points/shop/c/profilebundles",LoyaltyArtistProfiles:()=>"/points/shop/c/artistprofiles"}),o),{ContentHubHome:()=>"/:prefix(tags|category|genre|videos|weekly|vr|software|macos|linux|freetoplay|earlyaccess|pccafe|demos|specials|remoteplay_phone|remoteplay_tablet|remoteplay_tv|remoteplay_together|games|adultonly|soundtracks|greatondeck|controller|dlcforyou)"}),{Categories:()=>"/categories/"}),{SummerSale2021Story:()=>"/forgeyourfate"}),{MarketingMessages:()=>"/marketingmessages/"}),c),{DiagData:()=>"/:anything*/diagdata"});function u(){let e=document.createElement("a");e.href=r.De.STORE_BASE_URL;let t=e.pathname;return t.endsWith("/")||(t+="/"),t}},94185:(e,t,n)=>{"use strict";var r=n(33940),i=(n(34726),n(76583),n(73961)),o=n(89526),a=n(52868),s=n.n(a),l=n(32765),c=n(14826);n(46132);var d=n(96927),u=n(54978),m=n.n(u),h=n(565),p=n(59934),_=n(86283);class g extends o.Component{render(){if("dev"!==l.De.WEB_UNIVERSE)return null;let e=document.getElementById(this.props.strConfigID);if(!e)return null;let t=new Array;return e.getAttributeNames().forEach((n=>{n.toLocaleLowerCase().startsWith("data-")&&(t.push(o.createElement("h1",{key:"header-"+n},n)),t.push(o.createElement(f,{key:"body-"+n,data:JSON.parse(e.getAttribute(n))})))})),o.createElement("div",null,t)}}class f extends o.Component{render(){return o.createElement("div",null,o.createElement("pre",null,JSON.stringify(this.props.data,null,2)))}}var v=n(87338),C=n(51594),S=n(60161),E=n(11837),D=n(30252);function b({config:e,isDynamic:t}){const n=t?y:w;return o.createElement(o.Fragment,null,Object.keys(e||{}).map((t=>o.createElement(n,{key:t,featureName:t,render:e[t]}))))}function w(e){const{featureName:t,render:n}=e,r=o.useMemo((()=>Array.from(document.querySelectorAll(`[data-featuretarget=${t}]`))),[t]);return r.length?o.createElement(o.Fragment,null,r.map(((e,r)=>o.createElement(I,{key:r,featureName:t,elem:e,render:n})))):null}function y(e){const{featureName:t,render:n}=e,r=(0,D.NW)(),i=o.useRef([]),a=o.useRef(0);return o.useEffect((()=>{const e=`[data-featuretarget=${t}]`;i.current=[],a.current=0;const n=e=>i.current.push({key:a.current++,elem:e}),o=e=>E.Qf(i.current,(t=>t.elem==e));document.querySelectorAll(e).forEach(n),i.current.length&&r();const s=new MutationObserver((t=>{let i=!1;for(const r of t)S.Eu(r,(t=>{R(t,e).forEach((e=>{n(e),i=!0}))}),(t=>{R(t,e).forEach((e=>{o(e),i=!0}))}));i&&r()}));return s.observe(document,{childList:!0,subtree:!0}),()=>s.disconnect()}),[t,r]),o.createElement(o.Fragment,null,i.current.map((({key:e,elem:r})=>o.createElement(I,{key:e,elem:r,featureName:t,render:n}))))}function I(e){const{featureName:t,elem:n,render:r}=e,a=o.useMemo((()=>function(e,t){if(!e)return{};try{const t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))throw new Error;return t}catch(n){return console.error(`There was a problem parsing props for feature target "${t}"`,n),console.log(`Problematic string: >>>${e}<<<`),{}}}(n.getAttribute("data-props"),t)),[n,t]);return(0,i.createPortal)(r(a),n)}function R(e,t){return e.matches(t)?[e]:e.querySelectorAll(t)}var M=n(50265),T=n(701),A=n(36041),L=n(86137),B=n.n(L),k=n(24141),O=n(85246),F=n(4306);class P{constructor(){this.m_elVideo=null,this.m_player=null,this.m_listeners=new O.G_,this.m_bPaused=!1,this.m_bUserInputNeeded=!1,this.m_nPlaybackTime=0,this.m_nVideoStartTime=0,this.m_nVideoDuration=0}IsPaused(){return this.m_bPaused}GetUserInputNeeded(){return this.m_bUserInputNeeded}GetPlaybackTime(){return this.m_nPlaybackTime}GetTimelineDuration(){return this.m_nVideoDuration}Start(e,t){this.Stop(),this.m_elVideo=e,this.m_listeners.AddEventListener(this.m_elVideo,"playing",this.OnVideoPlaying),this.m_listeners.AddEventListener(this.m_elVideo,"pause",this.OnVideoPause),this.m_listeners.AddEventListener(this.m_elVideo,"timeupdate",this.OnVideoTimeUpdate),this.m_listeners.AddEventListener(this.m_elVideo,"ended",this.OnVideoEnd),this.m_listeners.AddEventListener(this.m_elVideo,"valve-bufferupdate",this.OnVideoTimeUpdate),this.m_listeners.AddEventListener(this.m_elVideo,"valve-downloadfailed",this.OnDownloadFailed),this.m_listeners.AddEventListener(this.m_elVideo,"valve-userinputneeded",this.OnUserInputNeeded),this.m_player=new k.C2(this.m_elVideo,!1),this.SetMute(!0),this.m_player.PlayMPD(t,null,null)}Stop(){this.m_listeners.Unregister(),this.m_player&&this.m_player.Close(),this.m_elVideo=null,this.m_player=null,this.m_bPaused=!1,this.m_bUserInputNeeded=!1,this.m_nPlaybackTime=0,this.m_nVideoStartTime=0,this.m_nVideoDuration=0}IsInitialized(){return!!this.m_player}OnVideoPlaying(){this.m_bPaused=!1,console.log("video playing")}OnVideoPause(){this.m_bPaused=!0,console.log("video paused")}OnVideoTimeUpdate(){this.m_nVideoStartTime=this.m_player.GetAvailableVideoStartTime(),this.m_nVideoDuration=this.m_player.GetBufferedLiveEdgeTime()-this.m_nVideoStartTime,this.m_nPlaybackTime=this.m_player.GetCurrentPlayTime()-this.m_nVideoStartTime}OnVideoEnd(){console.log("video ended")}OnDownloadFailed(){console.log("video download failed")}OnUserInputNeeded(){this.m_bUserInputNeeded=!0}UserInputRecieved(){this.IsInitialized()&&(this.m_bUserInputNeeded=!1,this.m_player.SeekAndPlay(0))}SetVolume(e){this.IsInitialized()&&this.m_player.SetVolume(e)}SetMute(e){this.IsInitialized()&&this.m_player.SetMuted(e)}TogglePlayPause(){this.IsInitialized()&&(this.m_player.IsPaused()?this.Play():this.Pause())}Play(){this.IsInitialized()&&this.m_player.Play()}Pause(){this.IsInitialized()&&this.m_player.Pause()}Seek(e){this.m_player.Seek(this.m_nVideoStartTime+e)}}(0,r.gn)([M.LO],P.prototype,"m_bPaused",void 0),(0,r.gn)([M.LO],P.prototype,"m_bUserInputNeeded",void 0),(0,r.gn)([M.LO],P.prototype,"m_nPlaybackTime",void 0),(0,r.gn)([M.LO],P.prototype,"m_nVideoStartTime",void 0),(0,r.gn)([M.LO],P.prototype,"m_nVideoDuration",void 0),(0,r.gn)([F.ak],P.prototype,"OnVideoPlaying",null),(0,r.gn)([F.ak],P.prototype,"OnVideoPause",null),(0,r.gn)([F.ak],P.prototype,"OnVideoTimeUpdate",null),(0,r.gn)([F.ak],P.prototype,"OnVideoEnd",null),(0,r.gn)([F.ak],P.prototype,"OnDownloadFailed",null),(0,r.gn)([F.ak],P.prototype,"OnUserInputNeeded",null),(0,r.gn)([F.ak],P.prototype,"UserInputRecieved",null);var x=n(25125),N=n(19304),V=n(81349);const G=parseInt(B().nTimelineHoverEdgePadding);function U(e){let{manifest:t,forcePause:n}=e,[r,i]=function(e){let t=o.useRef(new P);return[(0,F.xK)((n=>{if(n)return t.current.Start(n,e),()=>t.current.Stop()}),[t,e]),t.current]}(t);!function(e,t){let n=o.useRef(!1),r=o.useRef(!1);if(n.current==t)return;t?(r.current=e.IsPaused(),e.Pause()):r.current||e.Play();n.current=t}(i,n);let a=(0,x.SZ)((()=>i.GetUserInputNeeded()));return o.createElement("div",{className:B().TrailerPlayer},o.createElement("video",{ref:r}),o.createElement(H,{player:i}),a&&o.createElement(Z,{player:i}))}function H(e){let{player:t}=e,n=o.useCallback((()=>{t.TogglePlayPause()}),[t]);return o.createElement("div",{className:B().PlayerControls,onClick:n},o.createElement("div",{className:B().LowerControls},o.createElement("div",{className:B().LoweControlTopRow},o.createElement(j,{player:t}),o.createElement(z,{player:t}),o.createElement(K,{player:t}),o.createElement(X,{player:t})),o.createElement(W,{player:t})))}function W(e){let{player:t}=e,[n,r]=function(e){return(0,x.SZ)((()=>[e.GetPlaybackTime(),e.GetTimelineDuration()]))}(t),i=function(e){return o.useCallback((t=>{let n=t.currentTarget.getBoundingClientRect(),r=(t.pageX-n.left)/(n.right-n.left);e.Seek(r*e.GetTimelineDuration()),t.preventDefault(),t.stopPropagation()}),[e])}(t),[a,s,l,c,d,u,m,h]=function(e){let t=o.useRef(null),[n,r]=o.useState(!1),[i,a]=o.useState({nTickOffset:0,nHoverOffset:0,nPlaybackSeconds:0}),s=o.useCallback((e=>{r(!0)}),[r]),l=o.useCallback((e=>{r(!1)}),[r]),c=o.useCallback((n=>{if(!t.current)return;let r=n.currentTarget.getBoundingClientRect(),i=n.pageX-r.left,o=i/(r.right-r.left),s=Math.round(e.GetTimelineDuration()*o),l=t.current.getBoundingClientRect(),c=r.right-r.left,d=l.right-l.left,u=A.Lh(i-d/2,0+G,c-d-G);a({nTickOffset:i,nHoverOffset:u,nPlaybackSeconds:s})}),[e,a]);return[t,s,l,c,n,i.nTickOffset,i.nHoverOffset,i.nPlaybackSeconds]}(t),p={left:u,display:d?"block":"none"},_={left:m,display:d?"block":"none"},g={width:`${A.r4(n,0,r,0,100).toFixed(1)}%`};return o.createElement("div",{className:B().Timeline,onClick:i,onMouseMove:c,onMouseEnter:s,onMouseLeave:l},o.createElement("div",{className:(0,N.Z)(B().Bar,B().Buffered)}),o.createElement("div",{className:(0,N.Z)(B().Bar,B().Played),style:g}),o.createElement("div",{className:(0,N.Z)(B().HoverTick),style:p}),o.createElement("div",{ref:a,className:(0,N.Z)(B().HoverTime),style:_},(0,V.I8)(h,!0)))}function j(e){return o.createElement("div",null)}function z(e){return o.createElement("div",null)}function K(e){return o.createElement("div",null)}function X(e){return o.createElement("div",null)}function Z(e){let{player:t}=e,n=o.useCallback((()=>{t.UserInputRecieved()}),[t]);return o.createElement("div",{className:B().UserInputNeeded,onClick:n},o.createElement(T.shV,null))}function $(e){let{id:t,manifest:n}=e,r=(0,x.SZ)((()=>!function(){Y||(Y=new q,window.GameHighlightTrailers=Y,window.dispatchEvent(new CustomEvent("valve_gamehighlighttrailers_ready")));return Y}().BPlayTrailer(t))),i=function(e){let t=o.useRef(!1);e||(t.current=!0);return t.current}(r);return i?o.createElement(U,{manifest:n,forcePause:r}):null}class q{constructor(){this.m_mapTrailerPlay=new Map}SetTrailerState(e,t){this.m_mapTrailerPlay.set(e,t)}BPlayTrailer(e){let t=this.m_mapTrailerPlay.get(e);return void 0!==t&&t}}(0,r.gn)([M.LO],q.prototype,"m_mapTrailerPlay",void 0);let Y=null;var Q=n(86900);function J(e){const t=(0,p.TH)();return t.pathname.includes("//")?(console.error(`Malformed path: "${t.pathname}"`),o.createElement(p.l_,{to:t.pathname.replace(/\/\//g,"/")})):e.redirect?o.createElement(p.l_,{push:!0,to:e.redirect||"/"}):null}function ee(e){return t=>{const[r,i]=(0,o.useState)(null);return r||(Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(2136)]).then(n.bind(n,38212)).then((n=>{i(o.createElement(n[e],t))})),null)}}const te=ee("Events"),ne=ee("DemoAndQuickPitch");var re=n(19094),ie=n(27070),oe=n(65406);const ae=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(3807),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(5331)]).then(n.bind(n,49747)))),se=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(7200),n.e(2675),n.e(6364),n.e(4134),n.e(7440),n.e(9682)]).then(n.bind(n,42591)))),le=o.lazy((()=>Promise.all([n.e(6499),n.e(7400),n.e(2675),n.e(6364),n.e(4134),n.e(990),n.e(7440),n.e(4994),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(7998),n.e(6571),n.e(8986)]).then(n.bind(n,37644)))),ce=o.lazy((()=>Promise.all([n.e(7400),n.e(2675),n.e(6108),n.e(6571),n.e(988)]).then(n.bind(n,30361)))),de=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(72),n.e(1979),n.e(4601)]).then(n.bind(n,78802)))),ue=o.lazy((()=>Promise.all([n.e(3388),n.e(2675),n.e(6364),n.e(2529),n.e(990),n.e(3943),n.e(2814)]).then(n.bind(n,4472)))),me=o.lazy((()=>Promise.all([n.e(6499),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(2420),n.e(40)]).then(n.bind(n,4795)))),he=o.lazy((()=>n.e(5821).then(n.bind(n,14491)))),pe=o.lazy((()=>Promise.all([n.e(477),n.e(1918)]).then(n.bind(n,39070)))),_e=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(9211),n.e(3207)]).then(n.bind(n,45334)))),ge=o.lazy((()=>Promise.all([n.e(2675),n.e(1614),n.e(1825)]).then(n.bind(n,74839)))),fe=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(2136)]).then(n.bind(n,8132)))),ve=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(3321),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(9788)]).then(n.bind(n,92067)))),Ce=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(3321),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(9788)]).then(n.bind(n,85329)))),Se=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(680)]).then(n.bind(n,11513)))),Ee=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(5378),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(3238),n.e(7998),n.e(2420),n.e(1979),n.e(9211),n.e(477),n.e(691),n.e(680)]).then(n.bind(n,53805)))),De=o.lazy((()=>Promise.all([n.e(6499),n.e(2675),n.e(6364),n.e(4134),n.e(4535)]).then(n.bind(n,86401)))),be=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6633),n.e(3238),n.e(556)]).then(n.bind(n,89350)))),we=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(9177),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6633),n.e(3238),n.e(556)]).then(n.bind(n,77091)))),ye=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(4158)]).then(n.bind(n,20080)))),Ie=o.lazy((()=>Promise.all([n.e(6499),n.e(3388),n.e(3184),n.e(5378),n.e(3807),n.e(3143),n.e(2675),n.e(6364),n.e(4134),n.e(2529),n.e(990),n.e(7440),n.e(1614),n.e(4994),n.e(4193),n.e(8460),n.e(3943),n.e(6108),n.e(6633),n.e(72),n.e(8489),n.e(8087)]).then(n.bind(n,92823))));class Re extends o.Component{componentDidMount(){const e=(0,c.CE)();e&&(document.documentElement.setAttribute("lang",e),c.Yt.SetPreferredLocales([e]))}render(){return o.createElement(h.VK,{basename:(0,d.l)()},o.createElement("div",{className:m().App},o.createElement(Ae,null,o.createElement(o.Suspense,{fallback:o.createElement("div",null)},o.createElement(p.rs,null,o.createElement(p.AW,{exact:!0,path:d.Z.DiagData(),render:e=>o.createElement(g,Object.assign({},e,{key:"diab_data_"+e.match.params.gid,strConfigID:"application_config"}))}),o.createElement(p.AW,{exact:!0,path:d.Z.Login()},o.createElement(b,{config:{login:e=>o.createElement(De,Object.assign({},e))}})),o.createElement(p.AW,{exact:!0,path:d.Z.OAuthLogin()},o.createElement(b,{config:{login:e=>o.createElement(De,Object.assign({},e))}})),o.createElement(p.AW,{exact:!0,path:d.Z.AppStorePage(),render:e=>{const{match:{params:{appid:t}}}=e;return o.createElement(b,{config:{"events-row":()=>o.createElement(te,{key:`appeventrow${t}`,appid:Number.parseInt(t)}),"review-award":()=>o.createElement(ce,{key:`appawardmodal${t}`}),"steamawardsvote-embed":()=>o.createElement(me,{key:`steamawardsvote_${t}`,appID:Number.parseInt(t)}),"broadcast-embed":()=>o.createElement(de,Object.assign({key:`appbroadcastcast_${t}`},e,{appid:Number.parseInt(t)})),"demo-and-quick-pitch":()=>o.createElement(ne,{key:`appdemoquickpitch_${t}`,appID:Number.parseInt(t)}),"deck-verified-results":()=>o.createElement(ge,{appID:Number.parseInt(t),results:(0,l.kQ)("deckcompatibility","application_config"),appName:(0,l.kQ)("appname","application_config")}),"gamehighlight-trailer":e=>o.createElement($,Object.assign({},e)),"discovery-queue-app-widget":()=>o.createElement(be,{key:`discoveryqueue${t}`,appID:Number.parseInt(t)})}})}}),o.createElement(p.AW,{exact:!0,path:d.Z.SaleLandingPage(),render:e=>{const{match:{params:{salePagename:t}}}=e;return o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:`sale_${t}`,promotionName:`sale_${t}`,language:(0,_.jM)(l.De.LANGUAGE)}),"broadcast-embed":()=>o.createElement(de,Object.assign({key:`broadcastsale_${t}`},e,{promotionName:t}))}})}}),o.createElement(p.AW,{path:d.Z.CuratorAdminPage(),component:ve}),o.createElement(p.AW,{exact:!0,path:d.Z.CreatorSaleLandingPage(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"salecreator_"+e.match.params.creatorPageName+"_"+e.match.params.salePageName,promotionName:"sale_"+e.match.params.salePageName,language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{exact:!0,path:d.Z.SubscriptionPlanLandingPage(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"subscription_plan_"+e.match.params.salePageName,promotionName:"sale_"+e.match.params.salePageName,language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{path:d.Z.RemotePlay(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"sale_remoteplaylanding",promotionName:"remoteplaylanding",language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{path:d.Z.RemotePlayTogether(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"sale_together",promotionName:"sale_together",language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{path:d.Z.VRHardware(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"sale_vrhardware",promotionName:"vrhardware",language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{path:d.Z.SteamDeck(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"sale_steamdeck",promotionName:"steamdeck",language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{path:d.Z.SteamDeckDock(),render:e=>o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"sale_steamdeckdock",promotionName:"steamdeckdock",language:(0,_.jM)(l.De.LANGUAGE)})}})}),o.createElement(p.AW,{exact:!0,path:d.Z.CuratorHomePage(),render:e=>o.createElement(b,{config:{"broadcast-embed":()=>o.createElement(de,Object.assign({key:"curatorbroadcast_"+l.dk.clanid+"_"+l.dk.listid},e,{clanid:l.dk.clanid,listid:l.dk.listid}))}})}),o.createElement(p.AW,{exact:!0,path:d.Z.CuratorListPage(),render:e=>o.createElement(b,{config:{"list-display":()=>o.createElement(_e,{key:"curator_list",listid:e.match.params.listid})}})}),o.createElement(p.AW,{exact:!0,path:d.Z.PackageStorePage(),render:e=>o.createElement(de,{key:"packagebroadcast_"+e.match.params.subid,subid:Number.parseInt(e.match.params.subid)})}),o.createElement(p.AW,{exact:!0,path:d.Z.BundleStorePage(),render:e=>o.createElement(de,{key:"bundlebroadcast_"+e.match.params.bundleid,bundleid:Number.parseInt(e.match.params.bundleid)})}),o.createElement(p.AW,{path:d.Z.NewsHub(),render:e=>o.createElement(fe,null)}),o.createElement(p.AW,{path:d.Z.EventAdmin(),render:e=>o.createElement(Ce,null)}),o.createElement(p.AW,{exact:!0,path:d.Z.InteractiveRecommender(),render:e=>o.createElement(se,null)}),o.createElement(p.AW,{path:d.Z.LabsSandbox(),render:e=>o.createElement(ue,null)}),o.createElement(p.AW,{path:d.Z.SteamCharts(),render:e=>o.createElement(ae,Object.assign({},e))}),o.createElement(p.AW,{path:d.Z.Loyalty(),render:()=>o.createElement(le,null)}),o.createElement(p.AW,{path:d.Z.ContentHubHome(),render:e=>{const{match:{params:{category:t}}}=e;return o.createElement(b,{config:{"sale-display":()=>o.createElement(Se,{key:"contenthub_"+t,promotionName:"contenthub_"+t,language:(0,_.jM)(l.De.LANGUAGE)})}})}}),o.createElement(p.AW,{path:d.Z.Categories(),render:e=>o.createElement(Ee,null)}),o.createElement(p.AW,{path:d.Z.AccountPreferences(),render:e=>o.createElement(he,Object.assign({},e))}),o.createElement(p.AW,{exact:!0,path:d.Z.SummerSale2021Story(),render:e=>o.createElement(pe,null)}),o.createElement(p.AW,{exact:!0,path:d.Z.LabsHome(),render:e=>o.createElement(b,{config:{"discovery-queue-button":()=>o.createElement(we,null)}})}),o.createElement(p.AW,{path:d.Z.MarketingMessages(),render:e=>o.createElement(ye,Object.assign({},e))}),o.createElement(p.AW,{path:d.Z.YearInReview(),render:e=>o.createElement(Ie,Object.assign({},e))}),o.createElement(p.AW,null,o.createElement(J,null)))))))}}function Me(){const e=function(e=!1){return e?(0,l.ip)("store_user_config","application_config"):(0,l.kQ)("store_user_config","application_config")}(!0);return new re.J(l.De.WEBAPI_BASE_URL,null==e?void 0:e.webapi_token)}function Te(e){const t=(0,F.kD)(Me),n=(0,F.kD)(o.useCallback((()=>new oe.Z),[]));return o.createElement(ie.Ub,{useActiveSteamInterface:t,useStorage:n},e.children)}function Ae(e){const{children:t}=e;return o.createElement(v.u.Provider,{value:{bCanUseLink:!0}},o.createElement(l.fI,null,o.createElement(Te,null,o.createElement(Q.R,null,o.createElement(C.Y0,{bRenderOverlayAtRoot:!0,bUsePopups:!1},t)))))}var Le=n(45464);n(1721);S.Dj((function(){return(0,r.mG)(this,void 0,void 0,(function*(){(0,l.Ek)("application_config").userConfig||(yield(0,l.x)(s(),l.De.STORE_BASE_URL+"actions/",{userConfig:!0})),(0,Le.Uh)().Init("Store",CLSTAMP,new re.J(l.De.WEBAPI_BASE_URL).GetServiceTransport()),yield function(e){return(0,r.mG)(this,void 0,void 0,(function*(){const t=c.LJ.GetLanguageFallback(e),r=e===t,[i,o,a,s,l,d,u,m]=yield(0,c.eH)([n(11580)(`./shared_${e}.json`),n(64788)(`./sales_${e}.json`),n(89705)(`./main_${e}.json`),n(78832)(`./marketing_${e}.json`),r?{}:n(64050)(`./shared_${t}.json`),r?{}:n(60623)(`./sales_${t}.json`),r?{}:n(29790)(`./main_${t}.json`),r?{}:n(44444)(`./marketing_${t}.json`)]);c.Yt.AddTokens(Object.assign(Object.assign(Object.assign(Object.assign({},o),i),a),s),Object.assign(Object.assign(Object.assign(Object.assign({},d),l),u),m))}))}(l.De.LANGUAGE),document.getElementById("application_root")?i.render(o.createElement(Re),document.getElementById("application_root")):console.error('No "application_root" was found to target')}))}))},78832:(e,t,n)=>{var r={"./marketing_brazilian.json":[24421,4458],"./marketing_bulgarian.json":[7545,8960],"./marketing_czech.json":[58229,3453],"./marketing_danish.json":[30114,2581],"./marketing_dutch.json":[95845,874],"./marketing_english.json":[5,4929],"./marketing_finnish.json":[76525,7942],"./marketing_french.json":[45185,4199],"./marketing_german.json":[60503,2824],"./marketing_greek.json":[67395,7871],"./marketing_hungarian.json":[21507,8994],"./marketing_italian.json":[14031,8001],"./marketing_japanese.json":[93191,7082],"./marketing_koreana.json":[80166,4171],"./marketing_latam.json":[83212,9899],"./marketing_norwegian.json":[65973,6169],"./marketing_polish.json":[5640,2448],"./marketing_portuguese.json":[46454,5257],"./marketing_romanian.json":[55238,8774],"./marketing_russian.json":[10557,903],"./marketing_sc_schinese.json":[34221,9919],"./marketing_schinese.json":[40517,4033],"./marketing_spanish.json":[73425,2601],"./marketing_swedish.json":[85214,6019],"./marketing_tchinese.json":[28747,9903],"./marketing_thai.json":[47822,4238],"./marketing_turkish.json":[28246,819],"./marketing_ukrainian.json":[80870,6035],"./marketing_vietnamese.json":[8467,6846]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=78832,e.exports=i},44444:(e,t,n)=>{var r={"./marketing_brazilian.json":[24421,4458],"./marketing_bulgarian.json":[7545,8960],"./marketing_czech.json":[58229,3453],"./marketing_danish.json":[30114,2581],"./marketing_dutch.json":[95845,874],"./marketing_english.json":[5,4929],"./marketing_finnish.json":[76525,7942],"./marketing_french.json":[45185,4199],"./marketing_german.json":[60503,2824],"./marketing_greek.json":[67395,7871],"./marketing_hungarian.json":[21507,8994],"./marketing_italian.json":[14031,8001],"./marketing_japanese.json":[93191,7082],"./marketing_koreana.json":[80166,4171],"./marketing_latam.json":[83212,9899],"./marketing_norwegian.json":[65973,6169],"./marketing_polish.json":[5640,2448],"./marketing_portuguese.json":[46454,5257],"./marketing_romanian.json":[55238,8774],"./marketing_russian.json":[10557,903],"./marketing_sc_schinese.json":[34221,9919],"./marketing_schinese.json":[40517,4033],"./marketing_spanish.json":[73425,2601],"./marketing_swedish.json":[85214,6019],"./marketing_tchinese.json":[28747,9903],"./marketing_thai.json":[47822,4238],"./marketing_turkish.json":[28246,819],"./marketing_ukrainian.json":[80870,6035],"./marketing_vietnamese.json":[8467,6846]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=44444,e.exports=i},64788:(e,t,n)=>{var r={"./sales_brazilian.json":[56195,4812],"./sales_bulgarian.json":[59784,3634],"./sales_czech.json":[33497,1722],"./sales_danish.json":[7401,4961],"./sales_dutch.json":[57409,101],"./sales_english.json":[12445,7952],"./sales_finnish.json":[87956,3313],"./sales_french.json":[98965,7724],"./sales_german.json":[43093,3685],"./sales_greek.json":[45906,4447],"./sales_hungarian.json":[6131,8993],"./sales_italian.json":[16260,6693],"./sales_japanese.json":[53461,7094],"./sales_koreana.json":[2335,584],"./sales_latam.json":[55341,4682],"./sales_norwegian.json":[90497,1164],"./sales_polish.json":[80600,4248],"./sales_portuguese.json":[57278,5414],"./sales_romanian.json":[30499,1012],"./sales_russian.json":[70338,61],"./sales_sc_schinese.json":[81081,6762],"./sales_schinese.json":[56194,1043],"./sales_spanish.json":[40545,3174],"./sales_swedish.json":[31725,5855],"./sales_tchinese.json":[43004,7181],"./sales_thai.json":[29505,4166],"./sales_turkish.json":[23981,8767],"./sales_ukrainian.json":[59125,7934],"./sales_vietnamese.json":[29509,77]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=64788,e.exports=i},60623:(e,t,n)=>{var r={"./sales_brazilian.json":[56195,4812],"./sales_bulgarian.json":[59784,3634],"./sales_czech.json":[33497,1722],"./sales_danish.json":[7401,4961],"./sales_dutch.json":[57409,101],"./sales_english.json":[12445,7952],"./sales_finnish.json":[87956,3313],"./sales_french.json":[98965,7724],"./sales_german.json":[43093,3685],"./sales_greek.json":[45906,4447],"./sales_hungarian.json":[6131,8993],"./sales_italian.json":[16260,6693],"./sales_japanese.json":[53461,7094],"./sales_koreana.json":[2335,584],"./sales_latam.json":[55341,4682],"./sales_norwegian.json":[90497,1164],"./sales_polish.json":[80600,4248],"./sales_portuguese.json":[57278,5414],"./sales_romanian.json":[30499,1012],"./sales_russian.json":[70338,61],"./sales_sc_schinese.json":[81081,6762],"./sales_schinese.json":[56194,1043],"./sales_spanish.json":[40545,3174],"./sales_swedish.json":[31725,5855],"./sales_tchinese.json":[43004,7181],"./sales_thai.json":[29505,4166],"./sales_turkish.json":[23981,8767],"./sales_ukrainian.json":[59125,7934],"./sales_vietnamese.json":[29509,77]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=60623,e.exports=i},11580:(e,t,n)=>{var r={"./shared_arabic.json":[95874,2431],"./shared_brazilian.json":[60338,8385],"./shared_bulgarian.json":[25454,1313],"./shared_czech.json":[44162,4189],"./shared_danish.json":[1519,9753],"./shared_dutch.json":[9437,5925],"./shared_english.json":[44965,7975],"./shared_finnish.json":[10966,3557],"./shared_french.json":[37025,3112],"./shared_german.json":[50515,6007],"./shared_greek.json":[93579,4297],"./shared_hungarian.json":[46965,5948],"./shared_italian.json":[42471,5933],"./shared_japanese.json":[36603,2844],"./shared_koreana.json":[40931,6542],"./shared_latam.json":[32620,2443],"./shared_norwegian.json":[22406,4108],"./shared_polish.json":[83343,3252],"./shared_portuguese.json":[17810,5849],"./shared_romanian.json":[166,4823],"./shared_russian.json":[66116,9062],"./shared_sc_schinese.json":[59598,2029],"./shared_schinese.json":[43124,2537],"./shared_spanish.json":[48770,6492],"./shared_swedish.json":[10731,5625],"./shared_tchinese.json":[57050,7602],"./shared_thai.json":[8799,1162],"./shared_turkish.json":[24416,5438],"./shared_ukrainian.json":[85038,7781],"./shared_vietnamese.json":[23240,4964]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=11580,e.exports=i},64050:(e,t,n)=>{var r={"./shared_arabic.json":[95874,2431],"./shared_brazilian.json":[60338,8385],"./shared_bulgarian.json":[25454,1313],"./shared_czech.json":[44162,4189],"./shared_danish.json":[1519,9753],"./shared_dutch.json":[9437,5925],"./shared_english.json":[44965,7975],"./shared_finnish.json":[10966,3557],"./shared_french.json":[37025,3112],"./shared_german.json":[50515,6007],"./shared_greek.json":[93579,4297],"./shared_hungarian.json":[46965,5948],"./shared_italian.json":[42471,5933],"./shared_japanese.json":[36603,2844],"./shared_koreana.json":[40931,6542],"./shared_latam.json":[32620,2443],"./shared_norwegian.json":[22406,4108],"./shared_polish.json":[83343,3252],"./shared_portuguese.json":[17810,5849],"./shared_romanian.json":[166,4823],"./shared_russian.json":[66116,9062],"./shared_sc_schinese.json":[59598,2029],"./shared_schinese.json":[43124,2537],"./shared_spanish.json":[48770,6492],"./shared_swedish.json":[10731,5625],"./shared_tchinese.json":[57050,7602],"./shared_thai.json":[8799,1162],"./shared_turkish.json":[24416,5438],"./shared_ukrainian.json":[85038,7781],"./shared_vietnamese.json":[23240,4964]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=64050,e.exports=i},89705:(e,t,n)=>{var r={"./main_brazilian.json":[69341,9431],"./main_bulgarian.json":[23206,3359],"./main_czech.json":[36549,647],"./main_danish.json":[77127,3323],"./main_dutch.json":[76209,698],"./main_english.json":[63336,6815],"./main_finnish.json":[61289,3768],"./main_french.json":[58512,1117],"./main_german.json":[44556,799],"./main_greek.json":[65805,9568],"./main_hungarian.json":[27137,8051],"./main_italian.json":[34936,8155],"./main_japanese.json":[4940,727],"./main_koreana.json":[15873,4722],"./main_latam.json":[42065,6087],"./main_norwegian.json":[33242,7951],"./main_polish.json":[82284,2767],"./main_portuguese.json":[93067,7236],"./main_romanian.json":[75623,3277],"./main_russian.json":[29413,4860],"./main_sc_schinese.json":[40475,7533],"./main_schinese.json":[70213,9980],"./main_spanish.json":[30430,6817],"./main_swedish.json":[24235,3185],"./main_tchinese.json":[98532,2942],"./main_thai.json":[84238,7890],"./main_turkish.json":[87821,9663],"./main_ukrainian.json":[26748,2848],"./main_vietnamese.json":[13835,8168]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=89705,e.exports=i},29790:(e,t,n)=>{var r={"./main_brazilian.json":[69341,9431],"./main_bulgarian.json":[23206,3359],"./main_czech.json":[36549,647],"./main_danish.json":[77127,3323],"./main_dutch.json":[76209,698],"./main_english.json":[63336,6815],"./main_finnish.json":[61289,3768],"./main_french.json":[58512,1117],"./main_german.json":[44556,799],"./main_greek.json":[65805,9568],"./main_hungarian.json":[27137,8051],"./main_italian.json":[34936,8155],"./main_japanese.json":[4940,727],"./main_koreana.json":[15873,4722],"./main_latam.json":[42065,6087],"./main_norwegian.json":[33242,7951],"./main_polish.json":[82284,2767],"./main_portuguese.json":[93067,7236],"./main_romanian.json":[75623,3277],"./main_russian.json":[29413,4860],"./main_sc_schinese.json":[40475,7533],"./main_schinese.json":[70213,9980],"./main_spanish.json":[30430,6817],"./main_swedish.json":[24235,3185],"./main_tchinese.json":[98532,2942],"./main_thai.json":[84238,7890],"./main_turkish.json":[87821,9663],"./main_ukrainian.json":[26748,2848],"./main_vietnamese.json":[13835,8168]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n.t(i,19)))}i.keys=()=>Object.keys(r),i.id=29790,e.exports=i}},e=>{e.O(0,[3250],(()=>{return t=94185,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/dynamicstore.js" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/dynamicstore.js" new file mode 100644 index 0000000..925d4d0 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/dynamicstore.js" @@ -0,0 +1,2804 @@ + +function GetElemSNR( $Elem ) +{ + var snr = $Elem.data( 'snr' ); + if ( typeof snr != 'undefined' ) + { + return snr; + } + + // look for links with snr parameter + var links = $Elem.is( 'a' ) ? $Elem : $Elem.find( 'a' ); + snr = null; + for ( var i = 0; i < links.length; ++i ) + { + var link = links[i]; + var navinfo = link.href.match( /[\?&]snr=([a-zA-Z0-9\-\_ ]+)/ ); + if ( navinfo ) + { + snr = navinfo[1]; + break; + } + } + + $Elem.data( 'snr', snr ); + return snr; +} + +// given an array of impressions as strings, this will handle joining them all together into a singular string, but enforcing that it doesn't +// go above the cookie size limit which can otherwise cause users to become stuck since the page requests will start failing +function JoinImpressionsUpToLimit( rgImpressions ) +{ + //cookies generally can go up to 4k bytes, but we can have problems when we start getting that close, so cut it off earlier + var nRemainingLen = 3200; + var result = ''; + for ( var i = 0; i < rgImpressions.length; i++ ) + { + var impression = String( rgImpressions[ i ] ); + var nImpressionLen = encodeURIComponent( impression + '|' ).length; + + //did we run out of room in our list? + if ( nRemainingLen < nImpressionLen ) + break; + + //add the separator if not the first entry + if ( result !== '' ) + result += '|'; + + //add our impression and remove that space from what is available + result += impression; + nRemainingLen -= nImpressionLen; + } + + return result; +} + +GDynamicStore = { + + m_bLoadComplete: false, + s_rgWishlist: {}, + s_rgOwnedPackages: {}, + s_rgOwnedApps: {}, + s_rgMasterSubApps: {}, + s_rgAutoGrantApps: {}, + s_rgPackagesInCart: {}, + s_rgAppsInCart: {}, + s_rgRecommendedTags: [], + + s_rgIgnoredApps: {}, + s_rgIgnoredPackages: {}, + + s_rgCurators: {}, + s_rgCurations: {}, + s_rgCreatorsFollowed: {}, + s_rgCreatorsIgnored: {}, + + s_preferences: {}, + s_rgExcludedTags: {}, + s_rgExcludedDescIDs: {}, + + s_rgPersonalizedBundleData: {}, + + s_rgfnOnReadyCallbacks: [], + + s_rgDisplayedApps: [], + s_rgDisplayedBundles: [], + + s_bUserOnMacOS: false, + s_bUserOnLinux: false, + s_bUserOnWindows: false, + + s_rgRecommendedApps: [], + + + s_ImpressionTracker: false, + s_bAllowAppImpressions: false, + + Init: function( accountid, bForceRefresh, strOS, preferences, strCC, optsIn ) + { + var opts = $J.extend( { bNoDefaultDescriptors: false }, optsIn || {} ); + var rgDesiredOSTypes = strOS ? strOS.split(',') : 'any'; + + for( var i=0; i < rgDesiredOSTypes.length; i++ ) + { + switch( rgDesiredOSTypes[i] ) + { + case 'mac': GDynamicStore.s_bUserOnMacOS = true; break; + case 'linux': GDynamicStore.s_bUserOnLinux = true; break; + default: + case 'win': GDynamicStore.s_bUserOnWindows = true; break; + } + } + + GDynamicStore.s_preferences = preferences || {}; + + var fnRunOnLoadCallbacks = function() { + GDynamicStore.m_bLoadComplete = true; + GDynamicStore.InitAppearHandler(); + + for ( var i = 0; i < GDynamicStore.s_rgfnOnReadyCallbacks.length; i++ ) + { + try { + GDynamicStore.s_rgfnOnReadyCallbacks[i](); + } + catch ( e ) + { + console.error( e ); + } + } + GDynamicStore.s_rgfnOnReadyCallbacks = null; + + GDynamicStore.DecorateDynamicItems(); + GDynamicStore.PopulateRecommendedTagList(); + }; + + try { + this.RemoveSNRFromURL(); + this.RemoveUTMFromURL(); + } catch ( e ) + { + } + + // Create a new monitor to track impressions + this.s_ImpressionTracker = new CAppearMonitor( + function( elElement ){ + + var fnTrack = function( el ) + { + + var $Elem = $J(el); + + if ( $Elem.data( 'trackedForImpressions' ) ) + { + return; + } + $Elem.data( 'trackedForImpressions', true ); + + // must have appids + var strAppIDs = $Elem.data('dsAppid'); + if ( !strAppIDs || strAppIDs.length == 0 ) + { + return; + } + + var snr = GetElemSNR( $Elem ); + if ( !snr ) + { + return; + } + + GDynamicStore.AddImpressionFromDynamicItem( $Elem ); + }; + + fnTrack( elElement ); + + // Also track sub-elements, which may exist inside our container. This is useful for nested clusters etc. + $J(elElement).find("*[data-ds-appid]").each(function(i, j){ + fnTrack(j); + + }); + + + } + ); + + if ( accountid ) + { + if ( bForceRefresh ) + GDynamicStore.InvalidateCache(); + + var url = 'https://store.steampowered.com/dynamicstore/userdata/?id=' + accountid + '&cc=' + strCC; + + var unUserdataVersion = WebStorage.GetLocal( 'unUserdataVersion' ); + if ( unUserdataVersion ) + url += '&v=' + parseInt( unUserdataVersion ); + + $J.get( url ).done( function( data ) { + var fnEnsureObject = function ( rgMaybeArray ) { + return ( !rgMaybeArray || ( typeof rgMaybeArray.length != 'undefined' && rgMaybeArray.length == 0 ) ) ? {} : rgMaybeArray; + }; + var fnConvertToMap = function ( rgData ) { + var out = {}; + if ( rgData && rgData.length ) + { + for ( var i = 0; i < rgData.length; i++ ) + out[ rgData[i] ] = true; + } + return out; + }; + GDynamicStore.s_rgWishlist = fnConvertToMap( data.rgWishlist ); + GDynamicStore.s_rgOwnedPackages = fnConvertToMap( data.rgOwnedPackages ); + GDynamicStore.s_rgOwnedApps = fnConvertToMap( data.rgOwnedApps ); + GDynamicStore.s_rgMasterSubApps = fnConvertToMap( data.rgMasterSubApps ); + GDynamicStore.s_rgAutoGrantApps = fnConvertToMap( data.rgAutoGrantApps ); + GDynamicStore.s_rgPackagesInCart = fnConvertToMap( data.rgPackagesInCart ); + GDynamicStore.s_rgAppsInCart = fnConvertToMap( data.rgAppsInCart ); + GDynamicStore.s_rgRecommendedTags = data.rgRecommendedTags || []; + GDynamicStore.s_rgIgnoredApps = data.rgIgnoredApps || {} + GDynamicStore.s_rgIgnoredPackages = data.rgIgnoredPackages || {}; + GDynamicStore.s_rgCurators = data.rgCurators || {}; + GDynamicStore.s_rgCurations = data.rgCurations || {}; + GDynamicStore.s_rgCreatorsFollowed = fnConvertToMap( data.rgCreatorsFollowed ); + GDynamicStore.s_rgCreatorsIgnored = fnConvertToMap( data.rgCreatorsIgnored ); + GDynamicStore.s_bAllowAppImpressions = data.bAllowAppImpressions || false; + + if ( data.rgExcludedTags && data.rgExcludedTags.length > 0 ) + { + for ( var i = i = 0; i < data.rgExcludedTags.length; ++i ) + { + var tag = data.rgExcludedTags[i]; + GDynamicStore.s_rgExcludedTags[tag.tagid] = tag.name; + } + } + if ( data.rgExcludedContentDescriptorIDs && data.rgExcludedContentDescriptorIDs.length > 0 && + !V_GetCookie( 'wants_mature_content') ) + { + for ( var i = i = 0; i < data.rgExcludedContentDescriptorIDs.length; ++i ) + { + var id = data.rgExcludedContentDescriptorIDs[i]; + GDynamicStore.s_rgExcludedDescIDs[id] = id; + } + } + + GDynamicStore.s_nRemainingCartDiscount = data.nRemainingCartDiscount ? data.nRemainingCartDiscount : 0; + GDynamicStore.s_nTotalCartDiscount = data.nTotalCartDiscount ? data.nTotalCartDiscount : 0; + GDynamicStore.s_rgRecommendedApps = data.rgRecommendedApps || []; + + GDynamicStore.s_nPromotionalDiscount = data.nPromotionalDiscount ? data.nPromotionalDiscount : 0; + GDynamicStore.s_nPromotionalDiscountMinCartAmount = data.nPromotionalDiscountMinCartAmount ? data.nPromotionalDiscountMinCartAmount : 0; + GDynamicStore.s_nPromotionalDiscountAvailableUseCount = data.nPromotionalDiscountAvailableUseCount ? data.nPromotionalDiscountAvailableUseCount : 0; + + }).always( function() { $J(fnRunOnLoadCallbacks); } ); + } + else + { + if ( !opts.bNoDefaultDescriptors ) + GDynamicStore.s_rgExcludedDescIDs[3] = 3; + + var url = 'https://store.steampowered.com/dynamicstore/saledata/?cc=' + strCC; + + $J.get( url ).done( function( data ) { + GDynamicStore.s_nPromotionalDiscount = data.nPromotionalDiscount ? data.nPromotionalDiscount : 0; + GDynamicStore.s_nPromotionalDiscountMinCartAmount = data.nPromotionalDiscountMinCartAmount ? data.nPromotionalDiscountMinCartAmount : 0; + GDynamicStore.s_nPromotionalDiscountAvailableUseCount = data.nPromotionalDiscountAvailableUseCount ? data.nPromotionalDiscountAvailableUseCount : 0; + GDynamicStore.s_bAllowAppImpressions = data.bAllowAppImpressions || false; + + }).always( function() { $J(fnRunOnLoadCallbacks); } ); + } + }, + + RemoveSNRFromURL: function() + { + if ( !window.history || !window.history.replaceState || !window.location.search ) + return; + + GDynamicStore.RemoveParamFromURL( 'snr' ); + GDynamicStore.RemoveParamFromURL( 'ser' ); + }, + + RemoveParamFromURL: function( strParamName ) + { + // find snr param + var strParamPrefix = '' + strParamName + '='; + var strSearch = window.location.search; + if ( strSearch.indexOf( '?' ) == 0 ) + strSearch = strSearch.slice( 1 ); + + var rgParams = strSearch.split( '&' ); + var iParam = -1; + for ( var i = 0; i < rgParams.length; i++ ) + { + var strParam = rgParams[i]; + if (strParam.indexOf( strParamPrefix ) == 0) + { + iParam = i; + break; + } + } + + if ( iParam < 0 ) + return; + + var strRemove = ''; + if ( rgParams.length == 1 || (rgParams.length == 2 && rgParams[1].length == 0) ) + { + // remove the entire search.. just SNR + strRemove = '?' + strSearch; + } + else if ( iParam == 0 ) + { + // first param of multiple. Remove snr and trailing & + strRemove = rgParams[iParam] + '&'; + } + else + { + // 2nd+ param of multiple. Remove snr and preceeding & + strRemove = '&' + rgParams[iParam]; + } + + if ( strRemove.length > 0 ) + { + var strNewURL = window.location.href.replace( strRemove, '' ); + window.history.replaceState( history.state, null, strNewURL ); + } + }, + + RemoveUTMFromURL: function() + { + if ( !window.history || !window.history.replaceState || !window.location.search ) + return; + + var strSearch = window.location.search; + if ( strSearch.indexOf( '?' ) == 0 ) + strSearch = strSearch.slice( 1 ); + + var rgParams = strSearch.split( '&' ); + var rgNewParams = []; + + for ( var i = 0; i < rgParams.length; ++i ) + { + var strParam = rgParams[i]; + if ( strParam.indexOf( 'utm_') == -1 ) + { + rgNewParams.push( strParam ); + } + } + + if ( rgParams.length != rgNewParams.length ) + { + var strNewURL = window.location.href.replace( window.location.search, '' ); + for ( var i = 0; i < rgNewParams.length; ++i ) + { + var strParam = rgNewParams[i]; + strNewURL += ( i == 0 ? '?' : '&' ) + strParam; + } + window.history.replaceState( history.state, null, strNewURL ); + } + }, + + // Fixup name portion of URL via history API, if support and if name portion is incorrect + FixupNamePortion: function() { + var rel = $J( "link[rel='canonical']" ); + if ( rel.length && window.history ) { + // have rel=canonical URL and access to history API. + // parse out href portion of navigated URL and see if it's OK + var detachedAnchor = document.createElement( 'a' ); + detachedAnchor.href = rel.attr( "href" ); + if ( window.location.pathname != detachedAnchor.pathname ) { + // URL portion does not match canonical URL; rewrite it, preserving query params and hash + window.history.replaceState( null, null, rel[0].href + window.location.search + window.location.hash ); + } + } + }, + + s_strAppearSelector: '[data-ds-appid], [data-ds-packageid]', + + InitAppearHandler: function() + { + $J(GDynamicStore.s_strAppearSelector).each(function(i, elTarget ){ + + var $Elem = $J(elTarget); + // these are handled manually, so don't add the impression here + if ( $Elem.hasClass( 'cluster_capsule' ) || $Elem.hasClass( 'carousel_cap') ) + { + return; + } + + GDynamicStore.s_ImpressionTracker.RegisterElement( elTarget ) + }); + + // find our horizontal scrollers and add tracking to them + + $J('.store_horizontal_autoslider' ).each(function(i, elTarget ){ + GDynamicStore.s_ImpressionTracker.RegisterScrollEvent( elTarget ); + }); + + GDynamicStore.s_ImpressionTracker.CheckVisibility(); + + }, + + s_oImpressionsTracked: {}, + AddImpressionFromDynamicItem: function( $Elem ) + { + if ( !GDynamicStore.s_bAllowAppImpressions ) + { + return; + } + + + if ( $Elem.hasClass( 'app_impression_tracked' ) ) + { + return; + } + $Elem.addClass( 'app_impression_tracked' ); + + var strImpressions = V_GetDecodedCookie( "app_impressions" ); + var rgImpressions = strImpressions && strImpressions.length != 0 ? strImpressions.split( "|" ) : []; + + // commas not allowed in cookie value + var strAppIDs = $Elem.data('dsAppid'); + if ( !strAppIDs ) + { + return; + } + + var rgAppIds; + if ( typeof strAppIDs == 'string' && ( strAppIDs.indexOf( ',' ) >= 0 || strAppIDs.indexOf( ':' ) >= 0 )) + { + rgAppIds = strAppIDs.split( /[,:]/ ); + } + else + { + rgAppIds = [ parseInt( strAppIDs ) ]; + } + + var snr = GetElemSNR( $Elem ); + if ( !snr ) + { + return; + } + + var rgAppIDsToReport = []; + for ( var i = 0; i < rgAppIds.length; i++ ) + { + var nAppID = rgAppIds[i]; + var strImpressionData = nAppID + '@' + snr; + + if ( !GDynamicStore.s_oImpressionsTracked[ strImpressionData ] ) + { + GDynamicStore.s_oImpressionsTracked[ strImpressionData ] = true; + + + + rgAppIDsToReport.push( nAppID ); + } + } + + if ( !rgAppIDsToReport.length ) + return; + + rgImpressions.push( rgAppIDsToReport.join( ':' ) + '@' + snr ); + V_SetCookie( "app_impressions", JoinImpressionsUpToLimit( rgImpressions ) ); + }, + + AddImpression: function( $Elem, appID, strLink ) + { + if ( $Elem.hasClass( 'app_impression_tracked' ) ) + { + return; + } + $Elem.addClass( 'app_impression_tracked' ); + + var navinfo = strLink.match( /[\?&]snr=([^&#]*)(&|$|#)/ ); + if ( navinfo ) + { + var snr = navinfo[1]; + + var strImpressions = V_GetCookie( "app_impressions" ); + var rgImpressions = strImpressions && strImpressions.length != 0 ? strImpressions.split( "|" ) : []; + var strImpressionData = appID + '@' + snr; + rgImpressions.push( strImpressionData ); + V_SetCookie( "app_impressions", JoinImpressionsUpToLimit( rgImpressions ) ); + } + }, + + MarkAppDisplayed: function( rgDisplayList, cItemsToMark ) + { + // jquery map takes care of arrays as well as array-ish + GDynamicStore.MarkAppIDsAsDisplayed( $J.map( rgDisplayList, function ( item ) { return item.appid; } ), cItemsToMark ); + }, + + MarkItemsAsDisplayed: function( rgItems, cItemsToMark ) + { + for ( var i = 0; i < rgItems.length; i++ ) + { + const item = rgItems[i]; + if ( item.appid ) + { + GDynamicStore.s_rgDisplayedApps.push( item.appid ); + + // if this appid is a demo, also mark the parent app as displayed + var rgAppData = GStoreItemData.rgAppData[ item.appid ]; + if ( rgAppData && rgAppData.demo_for_app ) + GDynamicStore.s_rgDisplayedApps.push( rgAppData.demo_for_app ); + } + + if ( item.bundleid ) + { + GDynamicStore.s_rgDisplayedBundles.push( item.bundleid ); + } + + if ( cItemsToMark !== undefined && --cItemsToMark == 0 ) + break; + } + }, + + MarkAppIDsAsDisplayed: function( rgAppIDs, cItemsToMark ) + { + for ( var i = 0; i < rgAppIDs.length; i++ ) + { + if ( rgAppIDs[i] ) + { + GDynamicStore.s_rgDisplayedApps.push( rgAppIDs[i] ); + + // if this appid is a demo, also mark the parent app as displayed + var rgAppData = GStoreItemData.rgAppData[ rgAppIDs[i] ]; + if ( rgAppData && rgAppData.demo_for_app ) + GDynamicStore.s_rgDisplayedApps.push( rgAppData.demo_for_app ); + + if ( cItemsToMark !== undefined && --cItemsToMark == 0 ) + break; + } + } + }, + + HandleClusterChange: function( cluster ) { + GDynamicStore.s_ImpressionTracker.CheckVisibility(); + var $ScrollingContainer = $J( cluster.elScrollArea ); + var capsules = $ScrollingContainer.find( '.cluster_capsule' ); + GDynamicStore.s_ImpressionTracker.TrackAppearanceIfVisible( capsules[cluster.nCurCap] ); + }, + + HandleCarouselChange: function( targetid, curPos, pageSize ) { + var $ScrollingContainer = $J( "#" + targetid ); + var capsules = $ScrollingContainer.find( '.recommendation_carousel_item' ); + var idx = (curPos * pageSize); + if ( capsules.length != 0 && idx < capsules.length ) + { + GDynamicStore.s_ImpressionTracker.TrackAppearanceIfVisible( capsules[idx] ); + } + }, + + OnReady: function( fnCallback ) + { + if ( GDynamicStore.m_bLoadComplete ) + fnCallback(); + else + GDynamicStore.s_rgfnOnReadyCallbacks.push( fnCallback ); + }, + + DecorateDynamicItems: function( $Selector, bForceRecalculate ) { + + if ( !GDynamicStore.m_bLoadComplete ) + { + GDynamicStore.OnReady( function() { GDynamicStore.DecorateDynamicItems( $Selector ) } ); + return; + } + + // locate elements with dynamic store data + var strSelector = '[data-ds-appid], [data-ds-packageid], [data-ds-bundleid]'; + + // update prices for cart + if ( GDynamicStore.s_nRemainingCartDiscount != 'undefined ') + { + UpdatePricesForAdditionalCartDiscount($Selector, GDynamicStore.s_nRemainingCartDiscount); + } + + var bBannerShown = false; + if ( GDynamicStore.s_nTotalCartDiscount != 'undefined ') + { + bBannerShown = UpdateStoreBannerForAdditionalCartDiscount( GDynamicStore.s_nTotalCartDiscount ); + } + + if ( !bBannerShown && GDynamicStore.s_nPromotionalDiscount != 'undefined' ) + { + bBannerShown = UpdateStoreBannerForPromotionalDiscount( GDynamicStore.s_nPromotionalDiscount, GDynamicStore.s_nPromotionalDiscountMinCartAmount, GDynamicStore.s_nPromotionalDiscountAvailableUseCount ); + } + + var $DynamicElements; + if ( $Selector ) + { + if ( $Selector.is( strSelector ) ) + { + $DynamicElements = $Selector; + } + else + { + $DynamicElements = $Selector.find( strSelector ); + } + } + else + { + $DynamicElements = $J(strSelector); + } + + $DynamicElements.each( function() { + var $El = $J(this); + + if ( bForceRecalculate ) + { + $El.removeClass( 'ds_flagged ds_owned ds_wishlist ds_incart' ).children( '.ds_flag' ).remove(); + } + else if ( $El.data('dsInstrumented') ) + { + return; + } + + $El.data('dsInstrumented', true); + + var bOwned = false; + var bWanted = false; + var bInCart = false; + var bIgnored = false; + + var unBundleID = $El.data('dsBundleid'); + var unPackageID = $El.data('dsPackageid'); + var strAppIDs = $El.data('dsAppid'); + var eSteamDeckCompatCategory = $El.data('dsSteamDeckCompatCategory'); + + if ( eSteamDeckCompatCategory !== undefined && !$El.data( 'dsSteamDeckCompatHandled' ) ) + { + $El.data('dsSteamDeckCompatHandled', true); + + var strClasses = 'ds_steam_deck_compat '; + switch( eSteamDeckCompatCategory ) + { + case 3: + strClasses += 'verified'; + break; + case 2: + strClasses += 'playable'; + break; + case 1: + strClasses += 'unsupported'; + break; + case 0: + default: + strClasses += 'unknown'; + break; + } + var elSteamDeckCompatCategory = $J( '
', { class: strClasses } ); + $El.append( elSteamDeckCompatCategory ); + } + + if ( unBundleID ) + { + var Bundle = GDynamicStore.GetPersonalizedBundleData( unBundleID, $El.data('dsBundleData') ); + if ( !Bundle ) // no data available + return; + + if ( Bundle.m_cUserItemsInBundle == 0 ) + { + bOwned = true; + } + else + { + // pull out all the appids and let the strAppIDs code below handle it + var rgAllAppIDsInBundle = []; + for( var iBundleItem = 0; iBundleItem < Bundle.m_rgBundleItems.length; iBundleItem++ ) + { + var BundleItem = Bundle.m_rgBundleItems[iBundleItem]; + for ( var iApp = 0; iApp < BundleItem.m_rgIncludedAppIDs.length; iApp++ ) + { + rgAllAppIDsInBundle.push( BundleItem.m_rgIncludedAppIDs[iApp] ); + } + } + strAppIDs = rgAllAppIDsInBundle.join(','); + } + + GDynamicStore.UpdateDynamicBundleElements( Bundle, $El ); + } + else if ( unPackageID ) + { + if ( GDynamicStore.s_rgPackagesInCart[unPackageID] ) + bInCart = true; + else if ( GDynamicStore.s_rgOwnedPackages[unPackageID] ) + bOwned = true; + else if ( unPackageID in GDynamicStore.s_rgIgnoredPackages ) + bIgnored = true; + } + + if ( strAppIDs && typeof strAppIDs == 'string' && strAppIDs.indexOf( ',' ) >= 0 ) + { + var rgAppIDs = strAppIDs.split( ',' ); + var bValid = false; + var bAllOwned = true, bAllWanted = true, bAllInCart = true; + for ( var i = 0; i < rgAppIDs.length; i++ ) + { + var unAppID = parseInt( rgAppIDs[i] ); + if ( !unAppID ) + continue; + + bValid = true; + if ( !GDynamicStore.s_rgOwnedApps[unAppID] ) + bAllOwned = false; + if ( !GDynamicStore.s_rgWishlist[unAppID] ) + bAllWanted = false; + if ( !GDynamicStore.s_rgAppsInCart[unAppID] ) + bAllInCart = false; + } + + if ( bValid ) + { + if ( bAllInCart ) + bInCart = bAllInCart; + else if ( bAllOwned ) + bOwned = bAllOwned; + else if ( bAllWanted ) + bWanted = bAllWanted; + + GDynamicStore.s_ImpressionTracker.RegisterElement( this ); + } + } + else if ( parseInt( strAppIDs ) ) + { + // simple case of single appid + var unAppID = parseInt( strAppIDs ); + if ( GDynamicStore.s_rgAppsInCart[unAppID] ) + bInCart = true; + else if ( GDynamicStore.s_rgOwnedApps[unAppID] ) + bOwned = true; + else if ( GDynamicStore.s_rgWishlist[unAppID] ) + bWanted = true; + else if ( unAppID in GDynamicStore.s_rgIgnoredApps ) + bIgnored = true; + + GDynamicStore.s_ImpressionTracker.RegisterElement( this ); + } + + var rgExcludedTagNames = GDynamicStore.GetExcludedTagsOverlap( $El ); + var rgExcludedContentDescriptorIDs = GDynamicStore.GetExcludedContentDescriptorOverlap( $El ); + var rgExcludedCreatorIDs = GDynamicStore.GetExcludedCreatorOverlap( $El ); + + if ( !$El.hasClass('ds_no_flags') ) + { + // owned and wishlist are mutually exclusive + if ( bOwned ) + { + $El.addClass( 'ds_flagged ds_owned' ); + $El.append( '
在库中  
'); + } + else if ( bWanted ) + { + $El.addClass( 'ds_flagged ds_wishlist' ); + $El.append( '
已在愿望单中  
'); + } + else if ( bIgnored ) + { + $El.addClass( 'ds_flagged ds_ignored' ); + $El.append( '
已忽略  
'); + } + + if ( bInCart ) + { + $El.addClass( 'ds_flagged ds_incart' ); + $El.append( '
在购物车中  
'); + } + + if ( $El.hasClass( 'ds_excluded_blur' ) ) + { + $El.addClass( 'ds_flagged' ); + $El.append( '
已按偏好排除  
' ); + } + else if ( rgExcludedContentDescriptorIDs.length != 0 ) + { + $El.addClass( 'ds_flagged ds_excluded_by_preferences' ); + $El.append( '
已按偏好排除  
' ); + } + else if ( rgExcludedTagNames.length != 0 ) + { + $El.addClass( 'ds_flagged ds_excluded_by_preferences' ); + $El.append( '
已排除标签:' + rgExcludedTagNames.join(", " ) + '
' ); + } + else if ( rgExcludedCreatorIDs.length != 0 ) + { + $El.addClass( 'ds_flagged ds_excluded_by_preferences' ); + $El.append( '
按已忽略的开发者/发行商/系列排除  
' ); + } + + if( g_AccountID && unAppID && $El.data('ds-options') !== 0 ) // Only add if we have an appid + { + var $elMenu = $J ( '
', { 'class': 'ds_options' } ).append($J('
')); + $El.append ( $elMenu ); + + $El.one( 'mouseenter', function() { + $elMenu.v_tooltip ( { + 'tooltipClass': 'ds_options_tooltip', + 'location': 'bottom left', + 'offsetY': -20, + 'useClickEvent': true, + 'useMouseEnterEvent': false, + func: GDynamicStore.CapsuleSettingsMenu + } ); + } ); + } + + } + }); + + + // make sure that the elements are registered as "appearing" if necessary + GDynamicStore.s_ImpressionTracker.CheckVisibility(); + }, + + CapsuleSettingsMenu: function( elSource ) + { + var $El = $J(this); + var $elSource = $J(elSource.parentNode); + $El.empty(); + + var strAppIDs = $elSource.data('dsAppid'); + + // AppID specific controls + if( strAppIDs ) + { + + var rgAppIds = []; + + if (strAppIDs && typeof strAppIDs == 'string' && strAppIDs.indexOf(',') >= 0) { + rgAppIds = strAppIDs.split(','); + } + else if (parseInt(strAppIDs)) { + rgAppIds = [parseInt(strAppIDs)]; + } + + var bIgnored = false; + var bOnWishlist = false; + var bFilteredByContentPreferences = false; + + for( var i = 0; i < rgAppIds.length; i++ ) + { + bIgnored |= GDynamicStore.BIsAppIgnored( rgAppIds[i] ); + bOnWishlist |= GDynamicStore.BIsAppOnWishlist( rgAppIds[i] ); + } + + + if (!bOnWishlist) + { + var fnClick = function ( event ) + { + event.preventDefault(); + + $elSource.addClass( 'ds_flagged ds_wishlist' ); + $elSource.append( '
已在愿望单中  
'); + + for( var i=0; i已在愿望单中  
'); + + } ); + + $El.trigger('mouseleave'); + + return false; + }; + var strText = "\u5df2\u5728\u613f\u671b\u5355\u4e2d"; + + + } + + var $elAddToWishlist = $J ( '
' ).click ( fnClick ).text ( strText ).addClass( 'option' ); + $El.append($elAddToWishlist); + + if (!bIgnored) + { + var fnClick = function () + { + $elSource.addClass('ds_ignored ds_flagged'); + $elSource.append( '
已忽略  
'); + for( var i=0; i' ).click ( fnClick ).text ( strText ).addClass( 'option' ); + $El.append($elNotInterested); + + + var $elPreferences = $J ( '' ).attr('href', 'https://store.steampowered.com/account/preferences' ).text ( "\u504f\u597d" ).addClass( 'option' ); + $El.append($elPreferences); + + + } + }, + + ModifyWishlist: function( $elSource, appid, bRemove, fnOnSuccess, fnOnFail ) + { + var url = 'https://store.steampowered.com/api/addtowishlist'; + GDynamicStore.s_rgWishlist[appid] = !bRemove; + + if( bRemove ) + url = 'https://store.steampowered.com/api/removefromwishlist'; + + + $J.post( url, { + sessionid: g_sessionID, + appid: appid, + snr: $elSource.data( 'snr' ) + }).done( function( data ) { + if( fnOnSuccess ) + fnOnSuccess( appid ); + GDynamicStore.InvalidateCache(); + }).fail( function() { + if( fnOnFail ) + fnOnFail( appid ); + GDynamicStore.s_rgWishlist[appid] = false; + }); + }, + + + ToggleClientsideFilter: function( elControl, strToggleClass, elResults, strFilterClass ) + { + $Control = $J(elControl); + $Results = $J(elResults); + + $Control.toggleClass( strToggleClass ); + + if ( $Control.hasClass( strToggleClass ) ) + { + $Results.addClass( strFilterClass ); + } + else + { + $Results.removeClass( strFilterClass ); + } + }, + + ModifyIgnoredApp: function( $elSource, appid, bRemove, fnOnSuccess, fnOnFail ) + { + if ( bRemove ) + { + delete GDynamicStore.s_rgIgnoredApps[appid]; + } + else + { + GDynamicStore.s_rgIgnoredApps[appid] = 0; + } + + + $J.post( 'https://store.steampowered.com/recommended/ignorerecommendation/', { + sessionid: g_sessionID, + appid: appid, + remove: bRemove ? 1 : 0, + snr: $elSource.data( 'snr' ) + }).done( function() { + if( fnOnSuccess ) + fnOnSuccess( appid ); + GDynamicStore.InvalidateCache(); + }).fail( function( jqXHR ) { + if( fnOnFail ) + fnOnFail( appid ); + delete GDynamicStore.s_rgIgnoredApps[appid]; + }); + }, + + ModifyIgnoredPackage: function( packageid, bRemove, fnOnSuccess, fnOnFail ) + { + if ( bRemove ) + { + delete GDynamicStore.s_rgIgnoredPackages[packageid]; + } + else + { + GDynamicStore.s_rgIgnoredPackages[packageid] = 0; + } + + $J.post( 'https://store.steampowered.com/recommended/ignorerecommendation/', { + sessionid: g_sessionID, + subid: packageid, + remove: bRemove + }).done( function() { + if( fnOnSuccess ) + fnOnSuccess( packageid ); + GDynamicStore.InvalidateCache(); + }).fail( function() { + if( fnOnFail ) + fnOnFail( packageid ); + delete GDynamicStore.s_rgIgnoredPackages[packageid]; + }); + }, + + GetPersonalizedBundleData: function( unBundleID, rgPageBundleData ) + { + if ( !GDynamicStore.s_rgPersonalizedBundleData[unBundleID] ) + { + if ( !GStoreItemData.rgPersonalizedBundleData[ unBundleID ] && rgPageBundleData && rgPageBundleData.m_rgItems ) + { + GStoreItemData.rgPersonalizedBundleData[ unBundleID ] = rgPageBundleData; + } + + var Bundle = GStoreItemData.rgPersonalizedBundleData[ unBundleID ]; + if ( !Bundle ) + return null; + + var BundleForUser = { + m_nDiscountPct: Bundle.m_nDiscountPct, + m_bMustPurchaseAsSet: Bundle.m_bMustPurchaseAsSet, + m_cTotalItemsInBundle: Bundle.m_rgItems.length, + m_bContainsDiscountedPackage: false, + m_cUserItemsInBundle: 0, + m_nPackageBasePriceInCents: 0, + m_nFinalPriceInCents: 0, + m_nFinalPriceInCentsWithBundleDiscount: 0, + m_rgBundleItems: [], + m_bIsCommercial: Bundle.m_bIsCommercial, + m_bRestrictGifting: Bundle.m_bRestrictGifting + }; + + for ( var i = 0; i < Bundle.m_rgItems.length; i++ ) + { + var BundleItem = Bundle.m_rgItems[i]; + if ( !BundleItem.m_nPackageID || GDynamicStore.s_rgOwnedPackages[ BundleItem.m_nPackageID ] ) + continue; + + if ( BundleItem.m_rgIncludedAppIDs.length ) + { + if ( GDynamicStore.BAreAllAppsOwned( BundleItem.m_rgIncludedAppIDs, { bExcludeMasterSub: true } ) ) + continue; + } + + BundleForUser.m_bContainsDiscountedPackage |= BundleItem.m_bPackageDiscounted; + BundleForUser.m_cUserItemsInBundle++; + BundleForUser.m_nPackageBasePriceInCents += BundleItem.m_nBasePriceInCents; + BundleForUser.m_nFinalPriceInCents += BundleItem.m_nFinalPriceInCents; + BundleForUser.m_nFinalPriceInCentsWithBundleDiscount += BundleItem.m_nFinalPriceWithBundleDiscount; + BundleForUser.m_rgBundleItems.push( BundleItem ); + } + + // fix the price + BundleForUser.m_nFinalPriceInCentsWithBundleDiscount = GStoreItemData.CalculateCurrencyAppropriatePrice( BundleForUser.m_nFinalPriceInCentsWithBundleDiscount ); + + GDynamicStore.s_rgPersonalizedBundleData[ unBundleID ] = BundleForUser; + } + + return GDynamicStore.s_rgPersonalizedBundleData[ unBundleID ]; + }, + + UpdateDynamicBundleElements: function( Bundle, $El ) + { + + var $CartBtn = $El.find('.btn_addtocart:not(.btn_packageinfo)' ).children(); + var $DiscountBlocks = $El.find('.discount_block'); + + if ( !Bundle.m_bIsCommercial && ( !Bundle.m_rgBundleItems.length || ( Bundle.m_bMustPurchaseAsSet && Bundle.m_cUserItemsInBundle < Bundle.m_cTotalItemsInBundle ) ) ) + { + var strTooltip = '该捆绑包无法在您的帐户上购买,因为您已经拥有所包含的全部物品。'; + + if ( Bundle.m_bMustPurchaseAsSet && !Bundle.m_bRestrictGifting ) + { + strTooltip = '该优惠仅在一次性购买所有的 %s 件物品时可用。您仍能将此捆绑包当作礼物购买,赠与好友。'.replace(/%s/, Bundle.m_cTotalItemsInBundle); + $CartBtn.find('span').text( '作为礼物购买' ); + } + else + { + // completely owned "complete the set" bundle + $DiscountBlocks.hide(); + $CartBtn.addClass('btn_disabled' ).attr( 'href', 'javascript:void(0)' ); + $CartBtn.parent().css( 'background', '#000000' ); + } + + $CartBtn.data('tooltip-text', strTooltip ); + + } + else if ( !Bundle.m_bMustPurchaseAsSet ) + { + var strFormattedFinalPrice = GStoreItemData.fnFormatCurrency( Bundle.m_nFinalPriceInCentsWithBundleDiscount ); + $DiscountBlocks.show(); + + $DiscountBlocks.find('.discount_original_price' ).text( GStoreItemData.fnFormatCurrency( Bundle.m_nPackageBasePriceInCents ) ); + if ( !Bundle.m_bContainsDiscountedPackage ) + { + $DiscountBlocks.addClass('no_discount'); + $DiscountBlocks.find('.discount_final_price' ).addClass('your_price' ).empty().append($J('
', {'class': 'your_price_label'} ).text('您的价格:'), $J('
' ).text( strFormattedFinalPrice ) ); + } + else + { + $DiscountBlocks.removeClass('no_discount'); + var nDiscountPct = Math.round( ( Bundle.m_nPackageBasePriceInCents - Bundle.m_nFinalPriceInCentsWithBundleDiscount ) / Bundle.m_nPackageBasePriceInCents * 100 ); + nDiscountPct = Math.min( nDiscountPct, 99 ); + $DiscountBlocks.find('.discount_pct' ).text( '-' + nDiscountPct + '%' ); + $DiscountBlocks.find('.discount_final_price' ).removeClass('your_price').text( strFormattedFinalPrice ); + } + + if ( Bundle.m_nFinalPriceInCentsWithBundleDiscount == 0 && Bundle.m_cUserItemsInBundle ) + { + // Complete the set bundle with only free items remaining + var $AddToAcctBtn = $El.find('.btn_addtoaccount' ); + if ( $AddToAcctBtn.length ) + { + $CartBtn.hide(); + $AddToAcctBtn.show(); + } + } + } + + var $Description = $El.find('.package_contents'); + if ( $Description.length && $El.hasClass('dynamic_bundle_description') && !Bundle.m_bMustPurchaseAsSet ) + GDynamicStore.BuildBundleDescription( Bundle, $Description ); + + if ( $El.is( '.package_totals_area' ) && !Bundle.m_bMustPurchaseAsSet ) + { + if ( !Bundle.m_rgBundleItems.length ) + { + $El.hide(); + } + else + { + $El.show(); + if ( Bundle.m_cUserItemsInBundle < Bundle.m_cTotalItemsInBundle ) + { + $El.find('.bundle_final_package_price_desc' ).text( '您尚未拥有的 %s 件物品的单价为:'.replace( '%s', Bundle.m_cUserItemsInBundle ) ); + } + $El.find('.bundle_final_package_price' ).text( GStoreItemData.fnFormatCurrency( Bundle.m_nFinalPriceInCents ) ); + $El.find('.bundle_final_price_with_discount' ).text( GStoreItemData.fnFormatCurrency( Bundle.m_nFinalPriceInCentsWithBundleDiscount ) ); + $El.find('.bundle_savings' ).text( GStoreItemData.fnFormatCurrency( Bundle.m_nFinalPriceInCents - Bundle.m_nFinalPriceInCentsWithBundleDiscount ) ); + } + } + }, + + BuildBundleDescription: function( Bundle, $Description ) + { + if ( Bundle.m_cUserItemsInBundle == 0 ) + { + // already own everything + $Description.html( '合集完成!此合集中的 %1$s/%2$s 件物品已存在于您的库中。'.replace( '%1$s', Bundle.m_cTotalItemsInBundle ).replace( '%2$s', Bundle.m_cTotalItemsInBundle ) ); + } + else if ( Bundle.m_cUserItemsInBundle < Bundle.m_cTotalItemsInBundle ) + { + // own some but not all. + $Description.html( '
该捆绑包中的 %1$s/%2$s 件物品已在您的库中。
'.replace( '%1$s', Bundle.m_cTotalItemsInBundle - Bundle.m_cUserItemsInBundle ).replace( '%2$s', Bundle.m_cTotalItemsInBundle ) ); + $Description.append( '
购买该捆绑包即可为您未拥有的 %2$s 件物品省 %1$s%%!
'.replace( '%1$s', Bundle.m_nDiscountPct ).replace( '%2$s', Bundle.m_cUserItemsInBundle ).replace( '%%', '%' ) ); + + // add "complete the set" flag + $Description.parents('.dynamic_bundle_description' ).append( $J('
', {'class': 'ds_flag ds_completetheset'} ).text('完成您的合集!') ); + } + else + { + $Description.html( '
购买此捆绑包,所有 %2$s 个项目立省 %1$s%%!
'.replace( '%1$s', Bundle.m_nDiscountPct ).replace( '%2$s', Bundle.m_cTotalItemsInBundle ).replace( '%%', '%' ) ); + } + + var rgItemsWithCaps = []; + for ( var iBundleItem = 0; iBundleItem < Bundle.m_rgBundleItems.length; iBundleItem++ ) + { + var unPackageID = Bundle.m_rgBundleItems[iBundleItem].m_nPackageID; + var PackageData = GStoreItemData.rgPackageData[ unPackageID]; + if ( PackageData && PackageData.tiny_capsule ) + { + rgItemsWithCaps.push( unPackageID ); + } + } + + if ( rgItemsWithCaps.length ) + { + // show no more than 9 items + rgItemsWithCaps = rgItemsWithCaps.slice( 0, 9 ); + + // if there's more than 5 items, we overlap them a little bit on the display + var bNeedToCollapse = rgItemsWithCaps.length > 5; + var $BundleContentsCtn = $J('
', {'class': 'bundle_contents_preview'} ); + if ( bNeedToCollapse ) + $BundleContentsCtn.addClass( 'collapsed' ); + + var $BundleContentsPosition = $J('
', {'class': 'bundle_contents_preview_position'} ); + for ( var i = 0; i < rgItemsWithCaps.length; i++ ) + { + var rgLinkParams = { 'class': 'bundle_contents_preview_item ds_collapse_flag', 'data-panel': '{"focusable":false}' } + var Item = GStoreItemData.GetCapParams( 'bundle_component_preview', null, rgItemsWithCaps[i], null, rgLinkParams ); + var $Link = $J('', rgLinkParams ); + + var $Img = $J('', {'src': Item.tiny_capsule, 'class': 'bundle_contents_preview_img' } ); + if ( i > 0 && bNeedToCollapse ) + { + var flPositionRight = 100 * i / rgItemsWithCaps.length; + $Link.addClass( 'floated' ).css( 'left', flPositionRight + '%' ).css('z-index', (rgItemsWithCaps.length - i)); + } + $BundleContentsPosition.append( $Link.append( $Img ) ); + + + GStoreItemData.BindHoverEvents( $Img.parent(), Item.appids.length == 1 ? Item.appids[0] : null, rgItemsWithCaps[i] ); + } + + $Description.append( $BundleContentsCtn.append($BundleContentsPosition) ); + GDynamicStore.DecorateDynamicItems( $BundleContentsCtn ); + } + }, + + PopulateRecommendedTagList: function() + { + var $Element = $J('#foryou_yourtags'); + if ( !$Element.length ) + return; // no menu + + $Element.empty(); + $Element.css( 'min-height', '' ); + for( var i = 0; i < GDynamicStore.s_rgRecommendedTags.length && i < 4; i++ ) + { + var tag = GDynamicStore.s_rgRecommendedTags[i]; + var url = 'https://store.steampowered.com/tags/zh-cn/' + encodeURIComponent( tag.name ); + var $Link = $J('', {'class': 'popup_menu_item', 'href': GStoreItemData.AddNavEventParamsToURL( url, 'storemenu_recommendedtags' ) }); + $Link.text( tag.name ); + $Element.append( $Link ); + } + }, + + InvalidateCache: function() + { + WebStorage.SetLocal( 'unUserdataVersion', parseInt( WebStorage.GetLocal( 'unUserdataVersion' ) || 0 ) + 1 ); + }, + + BIsAppOwned: function( appid, optsIn ) + { + var opts = { bExcludeIfAutoGrant: true, bExcludeMasterSub: false }; + + if ( optsIn === false ) + $J.extend( opts, { bExcludeIfAutoGrant: false } ); + else if ( optsIn ) + $J.extend( opts, optsIn ); + + if ( GDynamicStore.s_rgOwnedApps[appid] ) + { + if ( opts.bExcludeIfAutoGrant && this.BIsAutoGrantedApp( appid ) ) + return false; + + if ( opts.bExcludeMasterSub && this.BIsMasterSubApp( appid ) ) + return false; + + return true; + } + return false; + }, + + BIsAutoGrantedApp: function( appid ) + { + return GDynamicStore.s_rgAutoGrantApps[appid] ? true : false; + }, + + BIsMasterSubApp: function( appid ) + { + // presence in s_rgMasterSubApps indicates the user owns the app via a subscription like EA Play + // in some places we allow user to repurchase + return GDynamicStore.s_rgMasterSubApps[appid] ? true : false; + }, + + BIsSalePageAppID: function( appid ) + { + return GStoreItemData.rgAppData[ appid ] && GStoreItemData.rgAppData[ appid ].url; + }, + + BIsPackageOwned: function( packageid ) + { + return GDynamicStore.s_rgOwnedPackages[packageid] ? true : false; + }, + + BIsAppIgnored: function( appid ) + { + return ( appid in GDynamicStore.s_rgIgnoredApps ); + }, + + GetIgnoredAppCount: function( ) + { + return Object.keys(GDynamicStore.s_rgIgnoredApps).length; + }, + + GetExcludedTagsOverlap: function( $e ) + { + var rgOverlappingTagNames = []; + var rgTagIDs = $e.data( 'dsTagids' ); + if ( rgTagIDs && rgTagIDs.length > 0 ) + { + for ( var i = 0; i < rgTagIDs.length; ++i ) + { + var tagid = rgTagIDs[i]; + if ( GDynamicStore.s_rgExcludedTags[tagid] ) + { + rgOverlappingTagNames.push( GDynamicStore.s_rgExcludedTags[tagid] ); + } + } + } + return rgOverlappingTagNames; + }, + + GetExcludedContentDescriptorOverlap: function( $e ) + { + var rgOverlappingDescIDs = []; + var rgIDs = $e.data( 'dsDescids' ); + if ( rgIDs && rgIDs.length > 0 ) + { + for ( var i = 0; i < rgIDs.length; ++i ) + { + var id = rgIDs[i]; + if ( GDynamicStore.s_rgExcludedDescIDs[id] ) + { + rgOverlappingDescIDs.push( id ); + } + } + } + return rgOverlappingDescIDs; + }, + + GetExcludedCreatorOverlap: function( $e ) + { + var rgOverlappingDescIDs = []; + var rgIDs = $e.data( 'dsCrtrids' ); + if ( rgIDs && rgIDs.length > 0 ) + { + for ( var i = 0; i < rgIDs.length; ++i ) + { + var id = rgIDs[i]; + if ( GDynamicStore.s_rgCreatorsIgnored[id] ) + { + rgOverlappingDescIDs.push( id ); + } + } + } + return rgOverlappingDescIDs; + }, + + BIsAppOnWishlist: function( appid ) + { + return GDynamicStore.s_rgWishlist[appid] ? true: false; + }, + + BIsPackageIgnored: function( packageid ) + { + return ( packageid in GDynamicStore.s_rgIgnoredPackages ); + }, + + GetCuratorForApp: function( unAppID, bOnlyPositive ) + { + var curator = null; + if( GDynamicStore.s_rgCurations[unAppID] ) + { + var rgFilteredCuratorIDs = []; + $J.each(GDynamicStore.s_rgCurations[unAppID], function( unCuratorID, unRecommendationState ){ + if( !bOnlyPositive || unRecommendationState == 0 ) + rgFilteredCuratorIDs.push( unCuratorID ); + }); + + if( rgFilteredCuratorIDs.length ) + { + var unCuratorID = rgFilteredCuratorIDs[ Math.floor( Math.random() * rgFilteredCuratorIDs.length ) ]; + return { + 'recommendation_state': GDynamicStore.s_rgCurations[unAppID][unCuratorID], + 'curator': GDynamicStore.s_rgCurators[unCuratorID] + } + } + } + return null; + }, + + GetCurator: function( clanid ) + { + return GDynamicStore.s_rgCurators[ clanid ]; + }, + + GetMatchingCreatorFollowed: function( rgAppCreatorRelationship ) + { + if( GDynamicStore.s_rgCreatorsFollowed ) + { + for( var clanid in rgAppCreatorRelationship ) + { + if( rgAppCreatorRelationship.hasOwnProperty( clanid ) && clanid in GDynamicStore.s_rgCreatorsFollowed ) + { + return { 'clanid': clanid, 'relationship': rgAppCreatorRelationship[clanid] } + } + } + } + return null; + }, + + BAreAllAppsOwned: function( rgAppIds, opts ) + { + for ( var i = 0; i < rgAppIds.length; i++ ) + { + if ( !GDynamicStore.BIsAppOwned( rgAppIds[i], opts ) ) + return false; + } + + return true; + }, + + DisplayBundleSimulator: function( unBundleID ) + { + if ( !GDynamicStore.m_bLoadComplete ) + { + GDynamicStore.OnReady( function() { GDynamicStore.DisplayBundleSimulator( unBundleID ) } ); + return; + } + + var Bundle = GStoreItemData.rgPersonalizedBundleData[ unBundleID ]; + if ( !Bundle ) + { + ShowAlertDialog( '', 'Unknown bundle ID ' + unBundleID ); + return; + } + + var $Form = $J('
', {'class': 'bundle_simulator_form'}); + $Form.append( $J('

').text('标记物品为“已拥有”') ); + $Form.append( $J('
', {'class': 'bundle_simulator_secondary' } ).append( + $J('', {'href': 'javascript:void(0);'} ).click( function() { $Form.find('input').prop('checked', true ); } ).text( "全选" ), + ' - ', + $J('', {'href': 'javascript:void(0);'} ).click( function() { $Form.find('input').prop('checked', false ); } ).text( "全不选" ) + ) ); + + for ( var i =0; i < Bundle.m_rgItems.length; i++ ) + { + var BundleItem = Bundle.m_rgItems[i]; + var id = 'bundle_check_' + i; + var nPackageID = BundleItem.m_nPackageID; + var rgAppIDs = BundleItem.m_rgIncludedAppIDs; + + var $Row = $J('
', {'class': 'bundle_simulator_row'} ); + var $Checkbox = $J('', {type: 'checkbox', id: id } ); + if ( GDynamicStore.s_rgOwnedPackages[nPackageID] || ( rgAppIDs.length && GDynamicStore.BAreAllAppsOwned( rgAppIDs ) ) ) + $Checkbox.prop('checked', true); + + $Checkbox.data( 'BundleItem', BundleItem ); + $Row.append( $Checkbox ); + + var strLabel = GStoreItemData.rgPackageData[nPackageID].name; + if ( rgAppIDs.length == 1 ) + strLabel = GStoreItemData.rgAppData[rgAppIDs[0]].name; + $Row.append( $J('', params ); + + if ( !rgOptions.no_hover ) + GStoreItemData.BindHoverEvents( $CapCtn, unAppID, unPackageID ); + + var $ImgCtn = $J('
').addClass( rgOptions.capsule_size ); + + var rgImageProperties = { src: rgItemData[rgOptions.capsule_size] }; + if( rgOptions.lazy ) + rgImageProperties = { 'data-image-url': rgItemData[rgOptions.capsule_size] } + + $ImgCtn.append( $J('', rgImageProperties ) ); + $CapCtn.append( $ImgCtn ); + if( rgOptions.include_title ) + $CapCtn.append( $J('
', {'class': 'title ellipsis' } ).html( rgItemData.name ) ); + + if( rgOptions.html_before_price ) + $CapCtn.append( rgOptions.html_before_price ); + + if( rgItemData.has_live_broadcast ) + $CapCtn.append( $J( '
').addClass( 'broadcast_live_stream_icon' ).append( '直播' ) ); + + $CapCtn.append( $J('
').html( rgItemData.discount_block ? $J(rgItemData.discount_block).addClass( rgOptions.discount_class ) : ' ' ) ); + + return $CapCtn; + }, + + FillPagedCapsuleCarousel: function( rgCapsules, $elTarget, fnCapsule, strNavContext, nCapsules, rgBaseOptions ) + { + var $elCapsuleTarget = $J('.carousel_items', $elTarget); + var $elThumbTarget = $J('.carousel_thumbs', $elTarget); + + var bPaginated = !$elCapsuleTarget.hasClass('no_paging'); + + if ( !bPaginated ) + nCapsules = rgCapsules.length; + + if( rgCapsules.length < nCapsules ) + return; + + for( var j=0; j 0 && j+nCapsules > rgCapsules.length && bPaginated ) + break; + + var $elPageContainer = $J('
'); + for( var k=0; k < nCapsules && k + j < rgCapsules.length; k++ ) + { + var oItem = rgCapsules[ k + j ]; + var rgOptions = $J.extend({}, rgBaseOptions); + if( j > 0 ) + rgOptions.lazy = true; + var $CapCtn = fnCapsule( oItem, strNavContext, rgOptions ); + if( !$CapCtn ) + continue; + + // Don't try to do automatic visibilty tracking on non-visible clusters. + if( j > 0 ) + $CapCtn.attr('data-manual-tracking', 1); + + $elPageContainer.append( $CapCtn ); + + } + + $elCapsuleTarget.append($elPageContainer); + + if ( bPaginated ) + { + $elThumbTarget.append($J('
')); + } + } + + if ( $elCapsuleTarget.children().length > 0 ) + { + $elCapsuleTarget.InstrumentLinks(); + GDynamicStore.DecorateDynamicItems( $elCapsuleTarget ); + $elTarget.show(); + } + + if ( bPaginated ) + CreateFadingCarousel( $elTarget, 0 ); + }, + + AddSNRDepthParamsToCapsuleList: function( $Capsules ) + { + var nDepth = 1; + $Capsules.filter('a:visible').each( function() { + ModifyLinkSNR( $J(this), function( snr ) { + var rgParts = snr.split('_'); + rgParts[5] = nDepth++; + return rgParts.join('_'); + }); + }); + } +}; + +function OnDynamicStorePageException(e) +{ + } + +GDynamicStorePage = { + oSettings: {}, + oApplicableSettings: {"main_cluster":{"top_sellers":true,"early_access":true,"games_already_in_library":true,"recommended_for_you":true,"prepurchase":true,"games":"always","software":true,"dlc_for_you":true,"dlc":null,"recently_viewed":null,"new_on_steam":null,"popular_new_releases":"always","games_not_in_library":null,"only_current_platform":true,"video":true,"localized":true,"virtual_reality":true,"recommended_by_curators":true,"hidden":null},"new_on_steam":{"top_sellers":null,"early_access":true,"games_already_in_library":true,"recommended_for_you":null,"prepurchase":null,"games":"always","software":true,"dlc_for_you":null,"dlc":null,"recently_viewed":null,"new_on_steam":null,"popular_new_releases":null,"games_not_in_library":null,"only_current_platform":true,"video":true,"localized":true,"virtual_reality":true,"recommended_by_curators":null,"hidden":null},"recently_updated":{"top_sellers":null,"early_access":true,"games_already_in_library":null,"recommended_for_you":null,"prepurchase":null,"games":"always","software":true,"dlc_for_you":null,"dlc":null,"recently_viewed":null,"new_on_steam":null,"popular_new_releases":null,"games_not_in_library":true,"only_current_platform":true,"video":true,"localized":true,"virtual_reality":true,"recommended_by_curators":null,"hidden":null},"tabs":null,"specials":null,"more_recommendations":null,"friend_recommendations":null,"curators":{"top_sellers":null,"early_access":true,"games_already_in_library":true,"recommended_for_you":null,"prepurchase":null,"games":"always","software":true,"dlc_for_you":null,"dlc":null,"recently_viewed":null,"new_on_steam":null,"popular_new_releases":null,"games_not_in_library":null,"only_current_platform":true,"video":true,"localized":true,"virtual_reality":true,"recommended_by_curators":null,"hidden":null},"home":{"top_sellers":null,"early_access":true,"games_already_in_library":null,"recommended_for_you":null,"prepurchase":true,"games":null,"software":true,"dlc_for_you":null,"dlc":null,"recently_viewed":null,"new_on_steam":null,"popular_new_releases":null,"games_not_in_library":null,"only_current_platform":null,"video":true,"localized":true,"virtual_reality":true,"recommended_by_curators":null,"hidden":null}}, + + InitUserData: function( rgParams ) + { + try { + GDynamicStorePage.oSettings = rgParams.oSettings; + } catch( e ) { OnDynamicStorePageException(e); } + }, + + ItemIDFromCapsule: function( $capsule ) + { + var unPackageId = $capsule.data('ds-packageid'); + var unBundleId = $capsule.data('ds-bundleid'); + var unAppId = $capsule.data('ds-appid'); + + // bundles set package and appids, packages set appids, so start from the outside and work down. + if ( unBundleId ) + return { bundleid: unBundleId }; + else if ( unPackageId) + return { packageid: unPackageId }; + else if ( unAppId ) + return { appid: unAppId }; + + return null; + }, + + BItemValid: function( item, oShownItems, opts ) + { + var unAppId = item.appid; + + if( unAppId ) + { + var rgAppIds = [ unAppId ]; + if( unAppId.toString().indexOf(',') !== -1 ) + { + rgAppIds = unAppId.toString().split( ',' ); + unAppId = rgAppIds[0]; + } + + for ( var i = 0; i < rgAppIds.length; i++ ) + { + if ( oShownItems.rgAppIds.indexOf( rgAppIds[i] ) !== -1 ) + { + return false; + } + } + + if ( opts && opts.filter_dlc ) + { + var rgAppData = GStoreItemData.rgAppData[unAppId]; + + // Treat DLC as the base app; so we either show the DLC or the base game; but only one (and whichever is in top position). + // If the user owns the base game already, only show the DLC + if ( rgAppData && rgAppData.dlc_for_app ) + { + if ( !GDynamicStore.BIsAppOwned( rgAppData.dlc_for_app, false ) ) + { + return false; + } + + oShownItems.rgAppIds.push( rgAppData.dlc_for_app ); + } + } + + for ( var i = 0; i < rgAppIds.length; i++ ) + oShownItems.rgAppIds.push( rgAppIds[i] ); + } + + if ( item.packageid ) + { + if ( oShownItems.rgPackageIds.indexOf( item.packageid ) !== -1 ) + return false; + + oShownItems.rgPackageIds.push( item.packageid ); + } + + if ( item.bundleid ) + { + if ( oShownItems.rgBundleIds.indexOf( item.bundleid ) !== -1 ) + return false; + + oShownItems.rgBundleIds.push( item.bundleid ); + } + + return true; + }, + + FilterCapsules: function( nMin, nMax, $elElements, $elContainer, rgFilterParams, bFilterDLC ) + { + // by default we want to filter DLC + if ( bFilterDLC === undefined ) + bFilterDLC = true; + + // Get a list of appids to filter + var rgItems = []; + var oShownItems = { rgAppIds: [], rgPackageIds: [], rgBundleIds: [] }; + var rgValidElements = []; + + // Remove duplicates or DLC from the list + for( var i = 0; i < $elElements.length; i++ ) + { + var $capsule = $J( $elElements[i] ); + var item = GDynamicStorePage.ItemIDFromCapsule( $capsule ); + if ( !item ) + continue; + + if ( GDynamicStorePage.BItemValid( item, oShownItems, { filter_dlc: bFilterDLC } ) ) + { + rgItems.push( item ); + rgValidElements.push( $capsule ); + } + else + $capsule.remove(); + } + + // Filter + var rgFilteredItems = this.FilterItemsForDisplay( + rgItems, 'home', nMin, nMax, rgFilterParams + ); + + // Now follow filters as long we we can keep 4 items in the capsule + for( var i = 0; i < rgValidElements.length; i++ ) + { + var $capsule = rgValidElements[i]; + var item = GDynamicStorePage.ItemIDFromCapsule( $capsule ); + if ( !item ) + continue; + + // Test our filtered list + var bVisible = false; + if ( this.GetItemFromList( item, rgFilteredItems ) ) + bVisible = true; + + if( bVisible ) + { + $capsule.removeClass('hidden'); + + if ( $capsule.parent().length ) + { + $capsule.parent().append( $capsule ); + } + else + { + $J( $elContainer ).append( $capsule ); + } + } + else + $capsule.remove(); + } + + GDynamicStoreHelpers.AddSNRDepthParamsToCapsuleList( $elElements ); + + $elElements.parent().trigger('v_contentschanged'); + + //if( nCapsules < nMin && $elContainer ) + // $elContainer.hide(); + }, + + GetItemFromList: function( oItem, rgList ) + { + if( rgList ) + { + for ( var i = 0; i < rgList.length; i++ ) + { + if ( oItem.bundleid && rgList[i].bundleid == oItem.bundleid ) + { + return rgList[i]; + } + else if ( oItem.packageid && rgList[i].packageid == oItem.packageid ) + { + return rgList[i]; + } + else if ( oItem.appid && rgList[i].appid == oItem.appid ) + { + return rgList[i]; + } + } + } + return null; + }, + + FilterItemsForDisplay: function( rgItems, strSettingsName, cMinItemsToDisplay, cMaxItemsToDisplay, rgAdditionalSettings ) + { + var Settings = this.oSettings[strSettingsName] || {}; + var ApplicableSettings = this.oApplicableSettings[strSettingsName] || {}; + + // Allow sections to have additional, section-specific settings. We'll use jQuery to shallow copy the settings + // object so we don't pollute future calls. + if( rgAdditionalSettings ) + { + Settings = jQuery.extend({}, Settings, rgAdditionalSettings); + + // Ensure our feature is turned on as an applicable setting + for( var strKey in rgAdditionalSettings ) + rgAdditionalSettings[strKey] = true; + + ApplicableSettings = jQuery.extend({}, ApplicableSettings, rgAdditionalSettings); + } + + if ( !cMaxItemsToDisplay ) + cMaxItemsToDisplay = cMinItemsToDisplay; + + return GStoreItemData.FilterItemsForDisplay( rgItems, Settings, ApplicableSettings, cMaxItemsToDisplay, cMinItemsToDisplay ) + }, + + FilterAndPrioritizeCapsules: function( rgCapsules, strPriorityListKey, strSettingsName, AdditionalSettings, oShownItems, cMinItemsToDisplay ) + { + // initialize the shown item list + if ( !oShownItems.rgAppIds ) + $J.extend( oShownItems, { rgAppIds: [], rgPackageIds: [], rgBundleIds: [] }, oShownItems ); + + var rgPriorityList = g_rgAppPriorityLists[strPriorityListKey] || []; + var rgItems = []; + var rgUnidentifiedCaps = []; + + for ( var i = 0; i < rgCapsules.length; i++ ) + { + var $capsule = $J( rgCapsules[i] ); + var itemid = GDynamicStorePage.ItemIDFromCapsule( $capsule ); + + if ( !itemid || ( itemid.appid && GDynamicStore.BIsSalePageAppID( itemid.appid ) ) ) + { + // if there's no item associated, preseve it; it's probably a sale page or event + rgUnidentifiedCaps.push( i ); + continue; + } + else if ( !GDynamicStorePage.BItemValid( itemid, oShownItems ) ) + { + // duplicate + continue; + } + + itemid.capsule = $capsule; + rgItems.push( itemid ); + } + + rgItems = SortItemListByPriorityList( rgItems, strPriorityListKey ); + var rgItems = GDynamicStorePage.FilterItemsForDisplay( rgItems, strSettingsName, cMinItemsToDisplay, rgItems.length, AdditionalSettings ); + + // splce anything we don't have info about back in the list in the same position it was before. + for ( var i = 0; i < rgUnidentifiedCaps.length; i++ ) + { + var $capsule = $J( rgCapsules[ rgUnidentifiedCaps[i] ] ); + rgItems.splice( rgUnidentifiedCaps[i], 0, { capsule: $capsule, priority: 1 } ); + } + + + return rgItems; + }, + + FilterAndPrioritizeItems: function( rgItems, strPriorityListKey, strSettingsName, AdditionalSettings, oShownItems, cMinItemsToDisplay ) + { + // initialize the shown item list + if ( !oShownItems.rgAppIds ) + $J.extend( oShownItems, { rgAppIds: [], rgPackageIds: [], rgBundleIds: [] }, oShownItems ); + + // first filter out items that are dupes of ones we've already been asked to list + var rgItemsNoDupes = []; + for( var i = 0; i < rgItems.length; i++ ) + { + if ( GDynamicStorePage.BItemValid( rgItems[i], oShownItems ) ) + rgItemsNoDupes.push( rgItems[i] ); + } + rgItemsNoDupes = SortItemListByPriorityList( rgItemsNoDupes, strPriorityListKey ); + return GDynamicStorePage.FilterItemsForDisplay( rgItemsNoDupes, strSettingsName, cMinItemsToDisplay, rgItemsNoDupes.length, AdditionalSettings ); + }, +}; + +var g_rgAppPriorityLists = {}; +var g_rgAppPriorityListMaps = {}; +function InitAppPriorityLists( rgAppPriorityLists ) +{ + $J.extend( g_rgAppPriorityLists, rgAppPriorityLists ); +} + +function GetAppPriorityListMap( strPriorityListName ) +{ + if ( !g_rgAppPriorityListMaps[strPriorityListName] ) + { + var rgAppPriorityList = g_rgAppPriorityLists[strPriorityListName] || []; + + var rgPositionByApp = {}; + for ( var i = 0; i < rgAppPriorityList.length; i++ ) + rgPositionByApp[ ItemKey( rgAppPriorityList[i] ) ] = i; + + g_rgAppPriorityListMaps[strPriorityListName] = rgPositionByApp; + } + + return g_rgAppPriorityListMaps[strPriorityListName]; +} + +function ItemKey( rgItem ) +{ + if ( rgItem.appid ) + return 'a' + rgItem.appid; + else if ( rgItem.packageid ) + return 'p' + rgItem.packageid; + else if ( rgItem.bundleid ) + return 'b' + rgItem.bundleid; + + return 'unknown'; +} + +function SortItemListByPriorityList( rgItemList, strPriorityListName ) +{ + var rgPositionByApp = GetAppPriorityListMap( strPriorityListName ); + if ( !rgPositionByApp ) + return rgItemList.slice(); + + /* + javascript sort is stable (except in IE), so this shouldn't be needed + for ( var i = 0; i < rgItemList.length; i++ ) + { + var key = ItemKey( rgItemList[i] ); + if ( key && rgPositionByApp[key] === undefined ) + rgPositionByApp[key] = i + 1000; + } + */ + + var rgItemListSorted = rgItemList.slice(); + rgItemListSorted.sort( function( a, b ) { + var posA = rgPositionByApp[ ItemKey( a ) ]; + var posB = rgPositionByApp[ ItemKey( b ) ]; + return ( posA !== undefined ? posA : 1000 ) - ( posB !== undefined ? posB : 1000 ); + }); + + DEBUG_LogItemList( strPriorityListName, rgItemListSorted ); + + return rgItemListSorted; +} + +function DEBUG_LogItemList( strListName, rgItems ) +{ + } + +function ShowHowDoDiscoveryQueuesWorkDialog() +{ + $J.get( + 'https://store.steampowered.com/explore/howitworks/', + { + l : 'schinese' + }, + function( data ) + { + ShowAlertDialog( '它是如何运作的?', data ); + } + ); +} + +function GetAvatarURL( strHash, strSize ) +{ + return "https:\/\/avatars.st.dl.eccdnx.com\/" + strHash + strSize + '.jpg'; +} + +function GetScreenshotURL( appid, filename, sizeStr ) +{ + if( sizeStr ) + return 'https://media.st.dl.eccdnx.com/steam/' + 'apps/' + appid + '/' + filename.replace('.jpg', sizeStr + '.jpg'); + + return 'https://media.st.dl.eccdnx.com/steam/' + 'apps/' + appid + '/' + filename; +} + + +function UpdatePricesForAdditionalCartDiscount( $Selector, nCartDiscount ) +{ + if ( !nCartDiscount ) + return; + + var strSelector = '[data-price-final]'; + var $DynamicElements = []; + if ( $Selector ) + { + if ( $Selector.is( strSelector ) ) + $DynamicElements = $Selector; + else + $DynamicElements = $Selector.find( strSelector ); + } + else + { + $DynamicElements = $J( strSelector ); + } + + for ( var i = 0; i < $DynamicElements.length; i++ ) + { + $element = $J($DynamicElements[i]); + var nFinalPrice = parseInt($element.attr('data-price-final')); + $element.addClass( 'additional_cart_discount_container' ); + + if (!nFinalPrice) + continue; + + var nToSubtract = Math.min(nFinalPrice, nCartDiscount); + var bNowFree = (nFinalPrice - nToSubtract) <= 0; + + var strAdditionalDiscountBlock = '
-' + GStoreItemData.fnFormatCurrency(nToSubtract) + '
'; + var strFinalPriceBlock = '
' + GStoreItemData.fnFormatCurrency(nFinalPrice - nToSubtract) + '
'; + var $additionalDiscount = $J('
' + strAdditionalDiscountBlock + strFinalPriceBlock + '
'); + //var $additionalDiscount = $J('
' + strAdditionalDiscountBlock + strFinalPriceBlock + '
'); + var $basePriceStrikeout = $J('
'); + $element.append($basePriceStrikeout); + $element.append($additionalDiscount); + } +} + + +function UpdateStoreBannerForAdditionalCartDiscount( nCartDiscount ) +{ + if ( !nCartDiscount ) + return false; + + var strTemplate = ' \ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
%header%
%discount%
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ + '; + + + var strAmount = GStoreItemData.fnFormatCurrency( nCartDiscount ); + var strHeader = '激活奖励省钱模式'; + var strDiscount = '您的购物车将省 %amount%!'.replace( '%amount%', strAmount ); + strTemplate = strTemplate.replace( '%header%', strHeader ); + strTemplate = strTemplate.replace( '%discount%', strDiscount ); + + $Elements = $J( '[data-cart-banner-spot]' ); + for ( var i = 0; i < $Elements.length; i++ ) + { + $element = $J( $Elements[i] ); + $element.replaceWith( $J( strTemplate ) ); + } + + return true; +} + +function UpdateStoreBannerForPromotionalDiscount( nDiscount, nMinCartAmount, nAvailableUseCount ) +{ + if ( !nDiscount ) + return false; + + if ( !nAvailableUseCount ) + return false; + + if ( $J( 'body.events_hub' ).length ) + return false; + + var strTemplate = ' \ + \ +
\ + '; + + + var strAmount = GStoreItemData.fnFormatCurrency( nDiscount, true ); + var strMinAmount = GStoreItemData.fnFormatCurrency( nMinCartAmount, true ); + + var strTitle = '公路旅行特别优惠'; + var strHeader = '购物满 %min_amount%,额外再省 %amount%'.replace( '%amount%', strAmount ).replace( '%min_amount%', strMinAmount ); + var strDiscount = '折扣于付款时应用'; + strTemplate = strTemplate.replace( '%title%', strTitle ); + strTemplate = strTemplate.replace( '%header%', strHeader ); + strTemplate = strTemplate.replace( '%discount%', strDiscount ); + + $Elements = $J( '[data-cart-banner-spot]' ); + for ( var i = 0; i < $Elements.length; i++ ) + { + $element = $J( $Elements[i] ); + $element.replaceWith( $J( strTemplate ) ); + $J( '#promo_header_banner' ).slideDown( 500 ); + } + + return true; +} + + diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/main.js" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/main.js" new file mode 100644 index 0000000..49ef371 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/main.js" @@ -0,0 +1,2925 @@ + +function GotFlashPopup() +{ + var win = window.open( 'https://store.steampowered.com/gotflash','gotflash','width=536,height=546,resize=yes,scrollbars=yes'); + win.focus(); +} + +// +// Page-able tabs +// +var tabStart = { }; +var tabMax = { }; +var tabTransition = { }; +function PageTab( tab, delta, max, params ) +{ + if ( tabTransition[tab] ) + return; + + if ( !tabStart[tab] ) + tabStart[tab] = 0; + if ( !tabMax[tab] ) + tabMax[tab] = 0; + + if ( tabStart[tab] + delta >= max ) + return; + + tabStart[tab] += delta; + tabTransition[tab] = true; + if ( tabStart[tab] > tabMax[tab] ) + { + if ( !params ) + params = {}; + params.tab = tab; + params.start = tabStart[tab]; + params.count = delta; + new Ajax.Updater( + 'tab_' + tab + '_items', + 'https://store.steampowered.com/search/tab', + { parameters: params, method: 'get', insertion: 'bottom', onComplete: TabCompletionClosure( tab, delta, max ) } ); + tabMax[tab] = tabStart[tab]; + } + else + { + RollTab( tab, delta ); + TabUpdateCounts( tab, delta, max ); + } + +} + +function TabCompletionClosure( tab, delta, max ) +{ + var tab_closure = tab; + var delta_closure = delta; + var max_closure = max; + return function() { + RollTab( tab_closure, delta_closure ); + TabUpdateCounts( tab_closure, delta_closure, max_closure ); + }; + +} + +function RollTab( tab, delta ) +{ + if ( $('tab_' + tab + '_items' ).hasClassName( 'twenty_smallcap_page_items' ) ) + { + var xdiff = 950; + if ( delta > 0 ) + xdiff = -xdiff; + new Effect.Move( $('tab_' + tab + '_items'), {x: xdiff, afterFinish: TabScrollFinishClosure( tab, delta ) } ); + } + else + { + //standard tab + var ydiff = -RowHeightForTab( tab ) * delta; + new Effect.Move( $('tab_' + tab + '_items'), {y: ydiff, afterFinish: TabScrollFinishClosure( tab, delta ) } ); + } + var elTabArea = $('tab_' + tab + '_items').up('.tabarea' ); + if ( elTabArea ) + Effect.ScrollTo( elTabArea, { afterFinish: TabScrollFinishClosure( tab, delta ) } ); +} + +function TabScrollFinishClosure( tab, delta ) +{ + var tab_closure = tab; + var delta_closure = delta; + return function() { + tabTransition[tab_closure] = false; + }; +} + +function TabUpdateCounts( tab, delta, max ) +{ + if ( $('tab_' + tab + '_count_start') ) + { + $('tab_' + tab + '_count_start').update( tabStart[tab] + 1 ); + $('tab_' + tab + '_count_end').update( Math.min( tabStart[tab] + Math.abs(delta), max ) ); + } + else + { + $('tab_' + tab + '_count').update( (tabStart[tab] + 1) + '-' + Math.min( tabStart[tab] + Math.abs(delta), max ) ); + } + if ( tabStart[tab] > 0 ) + $('tab_' + tab + '_prev').style.visibility='visible'; + else + $('tab_' + tab + '_prev').style.visibility='hidden'; + + if ( tabStart[tab] + delta >= max ) + $('tab_' + tab + '_next').style.visibility='hidden'; + else + $('tab_' + tab + '_next').style.visibility='visible'; +} + +function RowHeightForTab( tab ) +{ + var tabRow = $('tab_' + tab + '_items' ).down( '.tab_row' ); + return tabRow.getHeight(); +} + +function TabSelect( elem, target ) +{ + $J('#last_tab').val(target); + var $Elem = $JFromIDOrElement( elem ); + $Elem.siblings().removeClass( 'active' ); + $Elem.addClass( 'active' ); + + if( target == "tab_1_content" ) + target = GetDefaultTabSelection(); + + var $Content = $JFromIDOrElement(target); + $Content.siblings().hide(); + $Content.show(); + + // Re-compute impression tracking visibility + if ( typeof GDynamicStore != 'undefined' ) + { + GDynamicStore.s_ImpressionTracker.CheckVisibility(); + } +} + +function TabSelectStealth( target ) +{ + var tab_content = $(target); + tab_content.siblings().invoke( 'hide' ); + tab_content.show(); + + SetDefaultTabSelection( target ); +} + +function GetDefaultTabSelection() +{ + var value = WebStorage.GetLocal( 'store_newreleases_filter_dlc' ); + + if( value == null ) + return "tab_filtered_dlc_content"; + return value; +} + +function SetDefaultTabSelection( tab ) +{ + WebStorage.SetLocal( 'store_newreleases_filter_dlc', tab ); +} + +function InitTabDefaults() +{ + TabSelectStealth( GetDefaultTabSelection() ); +} + +function ScrollSmallCaps( name, delta, pageSize, totalCount, params ) +{ + var targetid = 'sm_cap_' + name + '_scroll'; + var elem = $( targetid ); + if ( elem.effect ) + return; + + if ( !elem.curPos ) + { + elem.curPos = 0; + } + if ( !elem.maxLoaded ) + { + elem.maxLoaded = 0; + } + + elem.curPos += delta; + + if ( elem.curPos > elem.maxLoaded ) + { + elem.effect = true; + elem.maxLoaded++; + elem.style.width = ( ( elem.maxLoaded + 2 ) * 614 ) + 'px'; + + if ( !params ) + params = {}; + params.name = name; + params.start = elem.curPos * pageSize + pageSize; // we are always loading one page ahead + params.count = pageSize; + new Ajax.Updater( + targetid, + 'https://store.steampowered.com/search/smallcapscroll', + { parameters: params, method: 'get', insertion: 'bottom', onComplete: UpdateSmallCapControl.bind( window, targetid, delta, pageSize, totalCount ) } ); + } + else + { + UpdateSmallCapControl( targetid, delta, pageSize, totalCount ); + } + +} + +function ScrollStaticSmallCaps( targetid, delta, pageSize, totalCount ) +{ + var elem = $( targetid ); + if ( elem.effect ) + return; + + if ( !elem.curPos ) + { + elem.curPos = 0; + } + + elem.curPos += delta; + + UpdateSmallCapControl( targetid, delta, pageSize, totalCount ); +} + +function ScrollCarouselSmallCaps( targetid, delta, pageSize, totalCount ) +{ + var elem = $( targetid ); + if ( elem.effect ) + return; + + if ( !elem.curPos ) + { + elem.curPos = 0; + } + + elem.curPos += delta; + + var max = Math.ceil( totalCount / pageSize ) - 1; + + var nextLink = targetid + '_next'; + var prevLink = targetid + '_prev'; + if ( elem.curPos >= max ) + $(nextLink).addClassName('disabled'); + else + $(nextLink).removeClassName('disabled'); + + if ( elem.curPos <= 0 ) + $(prevLink).addClassName('disabled'); + else + $(prevLink).removeClassName('disabled'); + + + var cb = function( targetid ) { + var elem = $( targetid ); + elem.effect = false; + if ( typeof GDynamicStore != 'undefined' ) + { + GDynamicStore.s_ImpressionTracker.CheckVisibility(); + GDynamicStore.HandleCarouselChange( targetid, elem.curPos, pageSize ); + } + }; + + elem.effect = new Effect.Move( elem, {x: -808 * delta, afterFinish: cb.bind( this, targetid ), duration: 0.4 } ); + +} + + +function UpdateSmallCapControl( targetid, delta, pageSize, totalCount ) +{ + var elem = $( targetid ); + var max = Math.ceil( totalCount / pageSize ) - 1; + var width = $(elem.parentNode).getWidth(); + + var nextLink = targetid + '_next'; + var prevLink = targetid + '_prev'; + if ( elem.curPos >= max ) + $(nextLink).hide(); + else + $(nextLink).show(); + + if ( elem.curPos <= 0 ) + $(prevLink).hide(); + else + $(prevLink).show(); + + var pageStart = elem.curPos * pageSize + 1; + var pageEnd = pageStart + ( pageSize - 1 ); + if ( $( targetid + '_page_start' ) ) + $( targetid + '_page_start' ).update( pageStart ); + if ( $( targetid + '_page_end' ) ) + $( targetid + '_page_end' ).update( Math.min( pageEnd, totalCount ) ); + + + elem.effect = new Effect.Move( elem, {x: -width * delta, afterFinish: function() { elem.effect = false; }, duration: 0.4 } ); + +} + + +var g_HoverState = { + target: null, + hiding: false +}; + +function GetHoverState( $Elem ) +{ + var oElemState = $Elem.data( 'oHoverState' ); + if ( !oElemState ) + { + oElemState = {}; + $Elem.data( 'oHoverState', oElemState ); + } + return oElemState; +} + +function GameHover( elem, event, divHover, rgHoverData ) +{ + if (!event) var event = window.event; + var $Elem = $JFromIDOrElement(elem); + var $Hover = $JFromIDOrElement(divHover); + var bNewHoverSpeed = typeof ( g_bNewHoverSpeed) != 'undefined' && g_bNewHoverSpeed; + + var oElemState = GetHoverState( $Elem ); + + if ( !$Hover.length ) + { + $Hover = $J("\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t
<\/div>\r\n\t\t\t
<\/div>\r\n\t\t<\/div>"); + $J(document.body).append( $Hover ); + } + + if ( g_HoverState.hiding && $Hover.is(':visible') && g_HoverState.target == $Elem[0] ) + { + ShowWithFade( $Hover ); + } + else if ( ( !$Hover.is(':visible') || g_HoverState.target != $Elem[0] ) && !oElemState.timer ) + { + oElemState.bWantsHover = true; + var accountId = ( typeof g_AccountID !== 'undefined' ) && !rgHoverData['public'] ? g_AccountID : 0; + var bPublic = rgHoverData['public'] || accountId == 0; + var strTargetPrefix = ''; + var strUrlTarget = ''; + if ( rgHoverData['type'] == 'app' ) + { + strTargetPrefix = 'hover_app_'; + strUrlTarget = 'apphover' + ( bPublic ? 'public' : '' ) + '/' + rgHoverData['id']; + } + else if ( rgHoverData['type'] == 'sub' ) + { + strTargetPrefix = 'hover_sub_'; + strUrlTarget = 'subhover' + ( bPublic ? 'public' : '' ) + '/' + rgHoverData['id']; + } + else if ( rgHoverData['type'] == 'bundle' ) + { + strTargetPrefix = 'hover_bundle_'; + strUrlTarget = 'bundle/' + rgHoverData['id'] + '/hover' + ( bPublic ? '_public' : '' ) + '/'; + } + else + { + return; + } + + if ( typeof GDynamicStore != 'undefined' ) + { + strUrlTarget += '?review_score_preference=' + ( !GDynamicStore.s_preferences['review_score_preference'] ? 0 : GDynamicStore.s_preferences['review_score_preference'] ); + } + + var targetId = strTargetPrefix + rgHoverData['id']; + var $HoverData = $JFromIDOrElement( targetId ); + var params = rgHoverData['params'] || {}; + var nStartHoverTime = new Date().getTime(); + var fnComputeHoverDelay = bNewHoverSpeed ? + function() { return Math.max( 400 - ( new Date().getTime() - nStartHoverTime ), 200 );} : + function() { return 200; }; + + if ( !$HoverData.length && !oElemState.bAjaxRequestMade ) + { + var rgAjaxParams = { u: accountId }; + if ( bPublic ) + { + // is cc needed? + rgAjaxParams = { /*cc: rgHoverData['cc'],*/ l: 'schinese' }; + } + if ( rgHoverData['v6'] ) + { + rgAjaxParams['pagev6'] = true; + } + if ( $Elem.data('hoverDisableScreenshots') ) + { + rgAjaxParams['disableScreenshots'] = true; + } + + window.setTimeout( function() { + if ( oElemState.bWantsHover && !oElemState.bAjaxRequestMade ) { + oElemState.bAjaxRequestMade = true; + $J.get( 'https://store.steampowered.com/' + strUrlTarget, rgAjaxParams ).done( function( html ) + { + var $Content = $J(html); + $Content.hide(); + $Hover.find( '.content' ).append( $Content ); + ShowGameHover( $Elem, $Hover, targetId, params, fnComputeHoverDelay() ); + } ); + } + }, bNewHoverSpeed ? 50 : 150 ); + } + if ( !oElemState.timer ) + { + oElemState.timer = window.setTimeout(function () { + oElemState.timer = false; + oElemState.bReadyForHover = true; + ShowGameHover( $Elem, $Hover, targetId, params, fnComputeHoverDelay() ); + }, bNewHoverSpeed ? 100 : 300 ); + } + } +} + +function HideGameHover( elem, event, divHover ) +{ + var $Elem = $JFromIDOrElement( elem ); + var $Hover = $JFromIDOrElement( divHover ); + + var oElemState = GetHoverState( $Elem ); + + if ( !$Hover.length ) + return; + + if (!event) var event = window.event; + var reltarget = $J( (event.relatedTarget) ? event.relatedTarget : event.toElement ); + if ( reltarget.length && $J.contains( $Elem[0], reltarget[0] ) ) + return; + + if ( oElemState.timer ) + { + window.clearTimeout( oElemState.timer ); + oElemState.timer = false; + } + oElemState.bWantsHover = false; + oElemState.bReadyForHover = false; + + HideWithFade( divHover, 200 ); +} + +function ShowGameHover( elem, divHover, targetContent, params, speed ) +{ + var $Elem = $JFromIDOrElement( elem ); + var $Hover = $JFromIDOrElement( divHover ); + var $Target = $JFromIDOrElement( targetContent ); + + var oElemState = GetHoverState( $Elem ); + + if ( !$Target.length || !oElemState.bWantsHover || !oElemState.bReadyForHover || !$J.contains( document, $Elem[0] ) ) + return; + + $Target.siblings().hide(); + $Target.show(); + + g_HoverState.target = $Elem[0]; + + var $Toparea = $Target.find( '.hover_top_area' ); + if ( params && params.top_area_content ) + { + $Toparea.html( params.top_area_content ); + $Toparea.show(); + } + else if ( $Toparea.length ) + { + $Toparea.hide(); + } + + // "show" the hover, but not "visible", letting us do some positioning + $Hover.css( 'visibility', 'hidden' ).show(); + + var $HoverBox = $Hover.find( '.hover_box' ); + var $HoverArrowLeft = $Hover.find( '.hover_arrow_left' ); + var $HoverArrowRight = $Hover.find( '.hover_arrow_right' ); + + var offset = $Elem.offset(); + var nWindowScrollTop = $J(window).scrollTop(); + var nWindowScrollLeft = $J(window).scrollLeft(); + var nViewportWidth = $J(window).width(); + var nViewportHeight = $J(window).height(); + + var nHoverPositionLeft, nHoverPositionTop; + + var $HoverArrow = $HoverArrowLeft; + var boxRightViewport = ( offset.left - nWindowScrollLeft ) + $Elem.outerWidth() + $HoverBox.width() + 14; + var nSpaceRight = nViewportWidth - boxRightViewport; + var nSpaceLeft = offset.left - $Hover.width(); + if( nSpaceLeft < -10 && nSpaceRight < -10 ) + { + //no room at all + $Hover.hide().css('visibility',''); + return; //skip showing the hover + } + else if ( nSpaceRight < 14 && nSpaceLeft > nSpaceRight ) + { + nHoverPositionLeft = offset.left - $Hover.outerWidth() + 8; + $HoverArrow = $HoverArrowRight; + $HoverArrowLeft.hide(); + $HoverArrowRight.show(); + } + else + { + nHoverPositionLeft = offset.left + $Elem.outerWidth() - 8; + $HoverArrowLeft.show(); + $HoverArrowRight.hide(); + } + + var nTopAdjustment = -13; + if ( $Elem.height() < 63 ) + nTopAdjustment = Math.floor( $Elem.height() ) / 2 - 56; + nHoverPositionTop = offset.top + nTopAdjustment; + $Hover.offset( {top: nHoverPositionTop, left: nHoverPositionLeft} ); + + var nTargetTopViewport = ( offset.top - nWindowScrollTop ) + nTopAdjustment; + if ( nTargetTopViewport + $HoverBox.height() + 8 > nViewportHeight ) + { + var nViewportAdjustment = ( $HoverBox.height() + 8 ) - ( nViewportHeight - nTargetTopViewport ); + + nViewportAdjustment = Math.min( $HoverBox.height() - 74, nViewportAdjustment ); + var nViewportAdjustedHoverTop = offset.top - nViewportAdjustment; + $Hover.css( 'top', nViewportAdjustedHoverTop + 'px' ); + + $HoverArrow.css( 'top', ( 48 + nHoverPositionTop - nViewportAdjustedHoverTop ) + 'px' ); + } + else + { + $HoverArrow.css( 'top', '' ); + } + + $Hover.hide(); + $Hover.css( 'visibility', '' ); + + ShowWithFade( $Hover, speed ); +} + +function UpdateWishlistCount( nCount ) +{ + if ( nCount == 0 ) + $JFromIDOrElement('wishlist_link').text( '愿望单' ); + else + $JFromIDOrElement('wishlist_link').html( '愿望单 (' + nCount.toString() + ')' ); +} + +function AddToWishlist( appid, divToHide, divToShowSuccess, divToShowError, navref, divToHide2 ) +{ + if ( !g_AccountID ) + { + ShowAlertDialog( "\u8bf7\u767b\u5f55\u2026", "\u60a8\u5fc5\u987b\u767b\u5f55 Steam \u624d\u80fd\u5c06\u7269\u54c1\u6dfb\u52a0\u81f3\u613f\u671b\u5355\u3002" ) + .done( function() { + window.location.href = 'https://store.steampowered.com//login?redir=app/' + appid; + } ); + return; + } + + var url = 'https://store.steampowered.com/api/addtowishlist'; + if ( navref ) + { + MakeNavCookie( navref, url ); + } + + $J.post( url, {sessionid: g_sessionID, appid: appid} ) + .done( function( data ) { + $JFromIDOrElement(divToHide).hide(); + + if ( divToHide2 ) + $JFromIDOrElement(divToHide2).hide(); + + if ( data && data.success ) { + $JFromIDOrElement(divToShowSuccess).show(); + if ( data.saleTaskCompleted ) { + NewStickerPackModal( '添加游戏至愿望单' ); + } + } + else { + $JFromIDOrElement(divToShowError).show(); + } + + UpdateWishlistCount( data.wishlistCount ); + + if ( typeof GDynamicStore != 'undefined' ) + GDynamicStore.InvalidateCache(); + }).fail( function() { + $JFromIDOrElement(divToShowError).show(); + }); +} + +function RemoveFromWishlist( appid, divToHide, divToShowSuccess, divToShowError, navref, divToHide2 ) +{ + var url = 'https://store.steampowered.com/api/removefromwishlist'; + if ( navref ) + { + MakeNavCookie( navref, url ); + } + + $J.post( url, {sessionid: g_sessionID, appid: appid} ) + .done( function( data ) { + $JFromIDOrElement(divToHide).hide(); + + if ( divToHide2 ) + $JFromIDOrElement(divToHide2).hide(); + + if ( data && data.success ) { + $JFromIDOrElement(divToShowSuccess).show(); + } + else { + $JFromIDOrElement(divToShowError).show(); + } + + UpdateWishlistCount( data.wishlistCount ); + + if ( typeof GDynamicStore != 'undefined' ) + GDynamicStore.InvalidateCache(); + }).fail( function() { + $JFromIDOrElement(divToShowError).show(); + }); +} + +function AddToWishlistButton( button, appid, navref ) +{ + var url = 'https://store.steampowered.com/api/addtowishlist'; + if ( navref ) + { + MakeNavCookie( navref, url ); + } + + $J.post( url, {sessionid: g_sessionID, appid: appid} ) + .done( function( data ) { + if ( data && data.success ) + { + $J(button).addClass('btn_disabled'); + $J('span',button).text("\u5df2\u5728\u613f\u671b\u5355\u4e2d"); + UpdateWishlistCount( data.wishlistCount ); + } + else + { + $J('span',button).text( "\u54ce\u5440\uff0c\u5f88\u62b1\u6b49\uff01" ); + } + + if ( typeof GDynamicStore != 'undefined' ) + GDynamicStore.InvalidateCache(); + } ); +} + +function IgnoreButton( button, appid ) +{ + $J.post( 'https://store.steampowered.com/recommended/ignorerecommendation/', { + sessionid: g_sessionID, + appid: appid + }).done( function() { + $J(button).addClass('btn_disabled'); + GDynamicStore.InvalidateCache(); + }).fail( function() { + ShowAlertDialog( '忽略应用', '在保存您的更改时出现问题。请稍后重试。' ); + }); +} + +// unlike wishlists, the "divToHide" is only hidden on success +function RecommendGame( appid, steamworksappid, comment, rated_up, is_public, language, received_compensation, divBtn, onSuccessFunc, divToShowError, navref, bDisableComments ) +{ + $JFromIDOrElement(divBtn).hide(); + var url = 'https://store.steampowered.com/friends/recommendgame'; + if ( navref ) + MakeNavCookie( navref, url ); + + var params = { + appid: appid, + steamworksappid: steamworksappid, + comment: comment, + rated_up: rated_up, + is_public: is_public, + language: language, + received_compensation: + received_compensation, + disable_comments: bDisableComments, + sessionid: g_sessionID + }; + + $J.post( url, params ) + .done( function( data ) { + if ( data && data.success ) + { + $JFromIDOrElement(divToShowError).hide(); + onSuccessFunc(); + } + else + { + $JFromIDOrElement(divBtn).show(); + var $Error = $JFromIDOrElement(divToShowError); + if ( data && data.strError ) + { + if ( !$Error.data( 'strOrigMessage' ) ) + $Error.data( 'strOrigMessage', $Error.html() ); + $Error.html( data.strError ); + } + else if ( $Error.data( 'strOrigMessage' ) ) + $Error.html( $Error.data( 'strOrigMessage' ) ); + $Error.show(); + } + } ); +} + +//hide a game from being recommended +function HideRecommendation( type, itemid, divBtn, elemContainer ) +{ + var parameters = { sessionid: g_sessionID }; + + if ( type == 'app' ) + parameters.appid = itemid; + else if ( type == 'sub' ) + parameters.subid = itemid; + else + { + // invalid arguments + return false; + } + + $(divBtn).hide(); + + new Ajax.Request( 'https://store.steampowered.com/recommended/ignorerecommendation/', { + method: 'post', + parameters: parameters, + onSuccess: function( transport ) { + if ( transport.responseJSON ) + { + if ( $(elemContainer) ) + $(elemContainer).update( '
好的,下一次,我们将会给您推荐别的内容
' ); + } + else + { + $(divBtn).show(); + } + } + }); +} + +var g_OnWebPanelShownHandlers = Array(); +function SteamOnWebPanelShown() +{ + for ( var i = 0; i < g_OnWebPanelShownHandlers.length; i++ ) + { + g_OnWebPanelShownHandlers[i](); + } +} +function RegisterSteamOnWebPanelShownHandler( f ) +{ + g_OnWebPanelShownHandlers.push( f ); +} + +var g_OnWebPanelHiddenHandlers = Array(); +function SteamOnWebPanelHidden() +{ + for( var i = 0; i < g_OnWebPanelHiddenHandlers.length; i++ ) + { + g_OnWebPanelHiddenHandlers[i](); + } +} +function RegisterSteamOnWebPanelHiddenHandler( f ) +{ + g_OnWebPanelHiddenHandlers.push( f ); +} + + +$J( function() { + InstrumentLinks(); + + // add a jquery extension to handle our SNR stuff (we do this on load because jquery is included after this file) + jQuery.fn.InstrumentLinks = function() + { + if ( this.is('a') ) + this.each( function() { InstrumentLink( this ); } ); + else + this.find( 'a' ).each( function() { InstrumentLink( this ); } ); + + return this; + }; +} ); + +function ExtractSNR( href ) +{ + var match = href.match( /[\?&]snr=([^&]*)/ ); + return match && match[1]; +} + +function ReplaceSNR( href, snr ) +{ + return href.replace( /([\?&]snr=)[^&]*/, '$1' + snr ); +} + +/** + * + * @param $Link + * @param fnCallback takes an SNR code, should return the new SNR code + * @constructor + */ +function ModifyLinkSNR( $Link, fnCallback ) +{ + var href = $Link.attr('href'); + var snr = href && ExtractSNR( href ); + if ( snr ) + { + $Link.attr( 'href', ReplaceSNR( href, fnCallback( snr ) ) ); + } +} + +function InstrumentLinks() +{ + $J('A').each( function() { InstrumentLink( this ); } ); +} + +function InstrumentLink( link ) +{ + if ( link.bIsInstrumented ) + return; + + var bIsInstrumented = false; + // if the anchor uses javascript, then we don't want to monkey with any embedded URL's + if ( !link.href.match( /^javascript/ ) ) + { + var navinfo = link.href.match( /[\?&]snr=[^&]*(&|$)/ ); + if ( navinfo ) + { + bIsInstrumented = true; + $J(link).click( function( event ) { InstrumentedLinkOnClick( event, link ); } ); + } + else + { + var outcinfo = link.href.match(/[\?&]outc=([^&]*)(&|$)/); + if ( outcinfo ) + { + bIsInstrumented = true; + $J(link).click( function (event) { InstrumentedLinkOnClick(event, link); } ); + } + } + if ( bIsInstrumented ) + { + link.bIsInstrumented = bIsInstrumented; + } + } +} + +function InstrumentedLinkOnClick( event, link ) +{ + var navinfo = link.href.match( /[\?&]snr=([^&#]*)(&|$|#)/ ); + if ( navinfo ) + { + } + var exprinfo = link.href.match( /[\?&]outc=([^&#]*)(&|#|$)/ ); + if ( exprinfo ) + { + replacement = ''; + if ( exprinfo[2] == '&' ) + replacement = exprinfo[0][0]; + else + replacement = navinfo[2]; + link.href = link.href.replace( /[\?&]outc=[^&#]*(&|#|$)/, replacement ); + MakeOutcomeCookie( exprinfo[1], link.href ); + } + + return true; +} + +function MakeNavCookie( snr, url ) +{ + var dateExpires = new Date(); + dateExpires.setTime( dateExpires.getTime() + 1000 * 60 ); + document.cookie = 'snr=' + snr + '|' + encodeURIComponent( url ) +'; expires=' + dateExpires.toGMTString() + ';path=/'; +} + +function MakeOutcomeCookie( outc, url ) +{ + var dateExpires = new Date(); + dateExpires.setTime( dateExpires.getTime() + 1000 * 60 ); + document.cookie = 'outc=' + outc +'; expires=' + dateExpires.toGMTString() + ';path=/'; +} + +function GetNavCookie() +{ + // get back the cookie that MakeNavCookie creates ! + var ref = document.cookie.match( /\ssnr=([^;]*);/ ); + if ( ref ) + return ref[1]; +} + +var g_iActiveSpotlight = 0; + +function AnimateSpotlightTransition( iCurSpotlight, iNextSpotlight ) +{ + var $elSpotlights = $J('#spotlight_scroll').children(); + var $Spotlight = $J( $elSpotlights[iCurSpotlight] ); + var $NextSpotlight = $J( $elSpotlights[iNextSpotlight] ); + + var $Scroll = $JFromIDOrElement('spotlight_scroll'); + $Scroll.stop(); + var curHeight = $Scroll.height(); + + $Scroll.css( 'height', curHeight + 'px' ); + + $Spotlight.css( 'position', 'absolute' ); + $NextSpotlight.css( 'position', 'absolute' ); + + var targetHeight = $NextSpotlight.height(); + if ( targetHeight != curHeight ) + $Scroll.animate( {height: targetHeight }, 250 ); + + $Spotlight.stop(); + $Spotlight.fadeOut( 250 ); + + $NextSpotlight.stop(); + $NextSpotlight.fadeTo( 200, 1.0 ); //fadeTo rather than fadeIn in case it was already in a fade +} + +function NextSpotlight( cMaxSpotlights ) +{ + if ( g_iActiveSpotlight + 1 >= cMaxSpotlights ) + return; + AnimateSpotlightTransition( g_iActiveSpotlight, ++g_iActiveSpotlight ); + UpdateSpotlightControls( cMaxSpotlights ); +} + +function expandTXItem( item ) +{ + var blurb = $( item ).down( '.tx_record_row_blurb' ); + + if ( !blurb ) + return; + + if ( blurb.visible() ) + Effect.BlindUp( blurb, { duration: 0.25 } ); + else + Effect.BlindDown( blurb, { duration: 0.25 } ) +} + +function PrevSpotlight( cMaxSpotlights ) +{ + if ( g_iActiveSpotlight <= 0 ) + return; + AnimateSpotlightTransition( g_iActiveSpotlight, --g_iActiveSpotlight ); + UpdateSpotlightControls( cMaxSpotlights ); +} + +function UpdateSpotlightControls( cMaxSpotlights ) +{ + if ( g_iActiveSpotlight < cMaxSpotlights - 1 ) + $JFromIDOrElement('spotlight_scroll_next').removeClass( 'disabled' ); + else + $JFromIDOrElement('spotlight_scroll_next').addClass( 'disabled' ); + + if ( g_iActiveSpotlight > 0 ) + $JFromIDOrElement('spotlight_scroll_prev').removeClass( 'disabled' ); + else + $JFromIDOrElement('spotlight_scroll_prev').addClass( 'disabled' ); + + $J('#spotlight_scroll_count_cur').text( g_iActiveSpotlight + 1 ); +} + +function InitDailyDealTimer( elTimer, nServerEndTime ) +{ + var nTimeRemaining = nServerEndTime - g_ServerTime; + if ( nTimeRemaining > 0 ) + { + var nEndTimeLocal = Math.round( new Date().getTime() / 1000 ) + nTimeRemaining; + new Countdown( elTimer, nEndTimeLocal ); + } +} + +var CCountdownManager = { + rgCountdowns: [], + nIntervalId: null, + bRefreshOnTimerEnd: false, + + tsInit: 0, + bReadyForRefresh: false, + bTriggeredRefresh: false, + + registerCountdown: function( countdown ) + { + this.rgCountdowns.push( countdown ); + if ( !this.nIntervalId ) + { + this.nIntervalId = window.setInterval( this.refreshClocks.bind( this ), 1000 ); + this.tsInit = Math.round( new Date().getTime() / 1000 ); + } + }, + + refreshClocks: function() + { + for ( var i = 0; i < this.rgCountdowns.length; i++ ) + { + var countdown = this.rgCountdowns[i]; + if ( countdown.bEnded ) + continue; + + this.rgCountdowns[i].refreshClock(); + if ( countdown.bEnded && this.bRefreshOnTimerEnd ) + this.refreshOnUserAction(); + } + }, + + refreshOnUserAction: function() + { + // if a few seconds have passed, we'll refresh + if ( !this.bReadyForRefresh && Math.round( new Date().getTime() / 1000 ) - this.tsInit >= 5 ) + { + var _this = this; + $J(document).on( 'focus mousemove', function() { _this.doRefresh(); } ); + this.bReadyForRefresh = true; + } + }, + + doRefresh: function() + { + if ( !this.bTriggeredRefresh ) + { + this.bTriggeredRefresh = true; + window.location.reload(); + } + } +}; + +function Countdown( elClock, nEndTimeLocalTime ) +{ + this.$Clock = $JFromIDOrElement( elClock ); + this.nEndTime = nEndTimeLocalTime; + this.bEnded = false; + this.cbkExpired = null; + + if ( this.$Clock.length && nEndTimeLocalTime ) + { + this.refreshClock(); + CCountdownManager.registerCountdown(this); + } +} + +Countdown.prototype.setCallback = function( cbkExpired ) +{ + this.cbkExpired = cbkExpired; +}; + +Countdown.prototype.refreshClock = function() +{ + if ( this.bEnded ) + return; + + var timeCur = Math.round( new Date().getTime() / 1000 ); + var secsRemaining = this.nEndTime - timeCur; + + if ( secsRemaining < 0 ) + { + this.bEnded = true; + secsRemaining = 0; + } + + var remainDays = Math.floor( secsRemaining / 86400 ); + var remainHours = Math.floor( ( secsRemaining % 86400 ) / 3600 ); + var remainMinutes = Math.floor( ( secsRemaining % 3600 ) / 60 ); + var remainSeconds = secsRemaining % 60; + + if ( this.cbkExpired && secsRemaining < 1 ) + { + this.cbkExpired(); + this.cbkExpired = null; + } + + this.render( remainDays, remainHours, remainMinutes, remainSeconds ); +}; + +Countdown.prototype.render = function( remainDays, remainHours, remainMinutes, remainSeconds ) +{ + var str = ''; + if ( remainDays < 3 ) + { + remainHours += remainDays * 24; + } + else + { + str += remainDays + ' 天 '; + } + str += (remainHours < 10 ? '0' : '') + remainHours + ':'; + str += (remainMinutes < 10 ? '0' : '') + remainMinutes + ':'; + str += (remainSeconds < 10 ? '0' : '') + remainSeconds; + this.$Clock.text( str ); +}; + +function GraphicalCountdown( nEndTimeLocalTime, strImagePath, strElPrefix ) +{ + this.strImagePath = strImagePath; + this.strElPrefix = strElPrefix; + this.strExtension = '.png'; + this.rgLastVals = {}; + Countdown.apply( this, [ null, nEndtimeLocalTime ] ); +} +GraphicalCountdown.prototype = new Countdown; +GraphicalCountdown.prototype.constructor = GraphicalCountdown; + +GraphicalCountdown.prototype.render = function( remainDays, remainHours, remainMinutes, remainSeconds ) +{ + remainHours += remainDays * 24; + this.setImage( 'hours_tens', Math.floor( remainHours / 10 ) ); + this.setImage( 'hours_units', remainHours % 10 ); + this.setImage( 'minutes_tens', Math.floor( remainMinutes / 10 ) ); + this.setImage( 'minutes_units', remainMinutes % 10 ); + this.setImage( 'seconds_tens', Math.floor( remainSeconds / 10 ) ); + this.setImage( 'seconds_units', remainSeconds % 10 ); +}; + +GraphicalCountdown.prototype.setImage = function( idSuffix, val ) +{ + if ( this.rgLastVals[idSuffix] != val ) + { + $(this.strElPrefix + idSuffix).src = this.strImagePath + val + this.strExtension; + this.rgLastVals[idSuffix] = val; + } +}; + + +// SEARCH.JS + +var g_oSuggestParams; + +var g_nMobileSearchTermTimer = 0; + +// how long we wait after the first keypress after a search or page load +var k_nStartSearchTimeoutMS = 350; + +// how long we extend the wait after each keypress. We always time out at 3x the base search timeout ms +var k_nSearchKeypressTimeoutExtensionMS = 125; + +// TODO: only reason for having this here is to support the SNR. If the mobile app can identify it, or it's not important to include the SNR then +// we'll have the mobile app navigate to the search page without having to post a message to the webview +function MobileApp_ShowSearchResults( $SNR, $Term ) +{ + const snr = $SNR ? '&snr=' + $SNR : ''; + window.location = 'https://store.steampowered.com/search/?term=' + $Term + snr; +} + +function MobileApp_UpdateSearchSuggestions( $Term ) +{ + var $SuggestionsCtn = $J('#searchterm_options'); + var $Suggestions = $J('#search_suggestion_contents'); + + var msDelayBeforeTimeout = k_nStartSearchTimeoutMS; + if ( g_nMobileSearchTermTimer !== 0 ) + { + window.clearTimeout( g_nMobileSearchTermTimer ); + g_nMobileSearchTermTimer = 0; + msDelayBeforeTimeout = k_nSearchKeypressTimeoutExtensionMS; + } + + g_nMobileSearchTermTimer = window.setTimeout( function() { + g_nMobileSearchTermTimer = 0; + sLastVal = $Term; + SearchTimeout( $Term, v_trim( sLastVal ), $SuggestionsCtn, $Suggestions, true /* bUseResponsivePopupOverlay */ ); + }, msDelayBeforeTimeout ); +} + +function InitializeSearchSuggestionParams( cc, realm, l, rgUserPreferences, strPackageXMLVersion ) +{ + g_oSuggestParams = $J.extend( { + cc: cc, + realm: realm, + l:l, + v: strPackageXMLVersion + }, rgUserPreferences ); +} + +// Enable search where the search text input is part of the web page +function EnableSearchSuggestions( elemTerm, navcontext, cc, realm, l, rgUserPreferences, strPackageXMLVersion, elemSuggestionCtn, elemSuggestions ) +{ + var $Term = $JFromIDOrElement(elemTerm); + var $SuggestionsCtn = elemSuggestionCtn ? $JFromIDOrElement(elemSuggestionCtn) : $J('#searchterm_options'); + var $Suggestions = elemSuggestions ? $JFromIDOrElement(elemSuggestions) : $J('#search_suggestion_contents'); + + $Term.parents('div.searchbox').click( function( event ) { + if ( event.target && event.target.tagName != 'INPUT' ) + $J(elemTerm).focus(); + }); + + var sLastVal = $Term.val(); + var nTermTimer = 0; + var tsScheduledTimer = 0; + var tsLastSearch = 0; + $Term.on( 'keyup paste', function( event ) { + var sNewVal = $Term.val(); + if ( sNewVal != sLastVal ) + { + var tsChange = $J.now(); + var msDelayBeforeTimeout = k_nStartSearchTimeoutMS; + if ( !tsLastSearch ) + tsLastSearch = tsChange; + + if ( nTermTimer && tsScheduledTimer - tsChange < k_nSearchKeypressTimeoutExtensionMS && tsChange - tsLastSearch < 3 * k_nStartSearchTimeoutMS ) + { + // we have one scheduled within 50ms, just bump it out a little + msDelayBeforeTimeout = k_nSearchKeypressTimeoutExtensionMS; + window.clearTimeout( nTermTimer ); + nTermTimer = 0; + } + + if ( !nTermTimer ) + { + tsScheduledTimer = $J.now() + msDelayBeforeTimeout; + nTermTimer = window.setTimeout( function() { + nTermTimer = 0; + tsLastSearch = 0; + sLastVal = $Term.val(); + SearchTimeout( $Term, v_trim( sLastVal ), $SuggestionsCtn, $Suggestions ); + }, msDelayBeforeTimeout); + } + } + }); + + $Term.on( 'keydown', function( event ) { SearchSuggestOnKeyDown( event, $Term, $SuggestionsCtn, $Suggestions ); } ); + $Term.on( 'click focus', function( event ) { SearchSuggestClearDefaultSearchText( $Term, $SuggestionsCtn, $Suggestions ); } ); + $Term.add( $SuggestionsCtn ).on( 'focusout', function( event ) { + if ( event.relatedTarget && ( $J.contains( $Term[0], event.relatedTarget ) || $Term.is( event.relatedTarget ) || $J.contains( $SuggestionsCtn[0], event.relatedTarget ) ) ) + { + return; + } + SearchSuggestSetDefaultSearchText( $Term, $SuggestionsCtn, $Suggestions ); + } ); + + InitializeSearchSuggestionParams( cc, realm, l, rgUserPreferences, strPackageXMLVersion ); +} +function SearchTimeout( $Term, value, $SuggestionsCtn, $Suggestions, bUseResponsivePopupOverlay = false ) +{ + if ( value ) + { + var parameters = {term: value, f: 'games' }; + $J.extend( parameters, g_oSuggestParams ); + $J.get( 'https://store.steampowered.com/search/suggest', parameters).done( function( html ) { + $Suggestions.html( html ); + $Suggestions.InstrumentLinks(); + $Suggestions.find('.match').attr('data-ds-options', 0); + GDynamicStore.DecorateDynamicItems( $Suggestions ); + $Suggestions.find('a.match').each( function () { + var el = this; + $J(el).on( 'mouseover', function( event ) { SearchSuggestOnMouseOver( event, $J(el) ); } ); + $J(el).on( 'mouseleave', function( event ) { SearchSuggestOnMouseLeave( event, $J(el) ); } ); + $J(el).on( 'mousemove', function( event ) { SearchSuggestOnMouseOver( event, $J(el) ); } ); + } ); + ShowSuggestionsAsNecessary( false, $SuggestionsCtn, $Suggestions, bUseResponsivePopupOverlay ); + } ); + } + else + { + $Suggestions.empty(); + ShowSuggestionsAsNecessary( false, $SuggestionsCtn, $Suggestions, bUseResponsivePopupOverlay ); + } +} + +function ShowSuggestionsAsNecessary( bForceHide, $SuggestionsCtn, $Suggestions, bUseResponsivePopupOverlay = false ) +{ + var bShow = $Suggestions.children().length > 0 && !bForceHide; + if ( bShow ) + { + ShowWithFade( $SuggestionsCtn ); + } + else + { + HideWithFade( $SuggestionsCtn ); + } + + if ( bUseResponsivePopupOverlay ) + { + UpdateResponsiveSearchOverlay( bShow ); + } +} + +function UpdateResponsiveSearchOverlay( bShow ) +{ + var $ResponsiveSearchOverlay = $J( '#responsive_store_search_overlay' ); + if ( bShow ) + { + $ResponsiveSearchOverlay.show(); + document.body.classList.add( 'responsive_store_overlay_visible' ); + } + else + { + $ResponsiveSearchOverlay.hide(); + document.body.classList.remove( 'responsive_store_overlay_visible' ); + } +} + +function SearchSuggestOnKeyDown( event, $Term, $SuggestionsCtn, $Suggestions ) +{ + if ( event.keyCode == 27 /* Event.KEY_ESC */ ) + { + ShowSuggestionsAsNecessary( true, $SuggestionsCtn, $Suggestions ); + } + else if ( event.keyCode == 13 /* Event.KEY_RETURN */ + || event.keyCode == 38 /* Event.KEY_UP */ + || event.keyCode == 40 /* Event.KEY_DOWN */ ) + { + if ( !$SuggestionsCtn.is( ':visible' ) ) + return; + + var $CurSuggestion = $Suggestions.children('.focus'); + var $NewSuggestion = $J(); + + if ( event.keyCode == 13 /* Event.KEY_RETURN */ ) + { + if ( $CurSuggestion.length ) + { + window.location = $CurSuggestion.attr( 'href' ); + event.preventDefault(); + } + } + else + { + if ( !$CurSuggestion.length ) + $CurSuggestion = $Suggestions.children('.hover'); + + if ( event.keyCode == 38 /* Event.KEY_UP */ ) + { + if ( $CurSuggestion.length ) + $NewSuggestion = $CurSuggestion.prev(); + if ( !$NewSuggestion.length ) + $NewSuggestion = $Suggestions.children('a.match:last-child'); + } + else if ( event.keyCode == 40 /* Event.KEY_DOWN */ ) + { + if ( $CurSuggestion.length ) + $NewSuggestion = $CurSuggestion.next(); + if ( !$NewSuggestion.length ) + $NewSuggestion = $Suggestions.children('a.match:first-child'); + } + + if ( $NewSuggestion.length ) + { + $CurSuggestion.removeClass( 'focus' ); + $CurSuggestion.removeClass( 'hover' ); + $NewSuggestion.addClass('focus'); + } + + //client webkit will move cursor on up/down + event.preventDefault(); + } + + } +} +function SearchSuggestOnMouseOver( event, $Suggestion ) +{ + $Suggestion.siblings().removeClass( 'focus' ); + $Suggestion.removeClass( 'focus' ); + $Suggestion.siblings().removeClass( 'hover' ); + $Suggestion.addClass( 'hover' ); +} + +function SearchSuggestOnMouseLeave( event, $Suggestion ) +{ + $Suggestion.removeClass( 'focus' ); + $Suggestion.removeClass( 'hover' ); +} + +function SearchSuggestClearDefaultSearchText( $Term, $SuggestionsCtn, $Suggestions ) +{ + ShowSuggestionsAsNecessary( false, $SuggestionsCtn, $Suggestions ); + SearchSuggestClearFixStyles($Term); +} + +function SearchSuggestClearFixStyles($Term) +{ + $Term.removeClass( 'default' ); +} + +function SearchSuggestSetDefaultSearchText( $Term, $SuggestionsCtn, $Suggestions ) +{ + ShowSuggestionsAsNecessary( true, $SuggestionsCtn, $Suggestions ); + SearchSuggestSetFixStyles($Term); +} + +function SearchSuggestSetFixStyles($Term) +{ + var text = $Term.val(); + if (text == '') + { + $Term.addClass( 'default' ); + } +} + +function SearchSuggestCheckTerm( theform ) +{ + // no longer need to check for #text_search_the_store, but leaving here + // in case we have other things we want to block in the future. + return true; +} + +// HEADER.JS + +// We always want to have the timezone cookie set for PHP to use +setTimezoneCookies(); + + +// tags in the menu +function EnsureStoreMenuTagsLoaded( strId ) +{ + // dynamic store can handle this in v6 + if ( typeof GDynamicStore != 'undefined' ) + return; + + var $Element = $J(strId); + if ( !$Element.data('tags-loaded') ) + { + $Element.data('tags-loaded', true ); + + var url = 'https://store.steampowered.com/tagdata/recommendedtags'; + + $J.get( url, {ll: 'schinese'} ).done( function( data ) { + var rgYourPopularTags = data || []; + if ( rgYourPopularTags.length > 0 ) + { + $Element.empty(); + $Element.css( 'min-height', '' ); + for( var i = 0; i < rgYourPopularTags.length && i < 5; i++ ) + { + var tag = rgYourPopularTags[i]; + var $Link = $J('', {'class': 'popup_menu_item', 'href': 'https://store.steampowered.com/tag/zh-cn/' + encodeURIComponent( tag.name ) }); + $Link.text( tag.name ); + $Element.append( $Link ); + } + } + }).fail( function() { + }).always( function() { + $Element.children( '.popup_menu_subarea').show(); + }); + } +} + + +function AddFreeLicense( subid, strDisplayName ) +{ + if ( window.g_bAddFreeLicenseInFlight ) + return; + + window.g_bAddFreeLicenseInFlight = true; + + var posts = []; + var subids = ( typeof subid == "number" || typeof subid == "string" ? [ subid ] : subid ); + + for ( var i = 0; i < subids.length; i++ ) + { + posts.push( $J.post( 'https://store.steampowered.com/checkout/addfreelicense/' + subids[i], { ajax: true, sessionid: g_sessionID }) ); + } + + $J.when.apply( $J, posts ).done( function() { + ShowAlertDialog( + strDisplayName, + '%s 已经被添加至您的帐户。它已在您的 Steam 库中可用。'.replace( /%s/, strDisplayName ) + ).done( function() { + window.location.reload(); + }); + if ( typeof GDynamicStore != 'undefined' ) + GDynamicStore.InvalidateCache(); + }).fail( function( jqXHR ) { + var data = V_ParseJSON( jqXHR.responseText ); + if ( data && data.purchaseresultdetail == 9 ) + ShowAlertDialog( strDisplayName, '该产品已在您的 Steam 库中可用。' ); + else if ( data && data.purchaseresultdetail == 24 ) + ShowAlertDialog( strDisplayName, '您必须拥有基础产品才能添加此产品至您的 Steam 帐户。' ); + else + ShowAlertDialog( strDisplayName, '添加该产品至您的帐户时出现问题。请稍后再试。' ); + }).always( function () { + delete window.g_bAddFreeLicenseInFlight; + }); +} + + +function AddFreeBundle( bundleid, strDisplayName ) +{ + if ( window.g_bAddFreeLicenseInFlight ) + return; + + window.g_bAddFreeLicenseInFlight = true; + + var posts = []; + posts.push( $J.post( 'https://store.steampowered.com/checkout/addfreebundle/' + bundleid, { ajax: true, sessionid: g_sessionID }) ); + + $J.when.apply( $J, posts ).done( function() { + ShowAlertDialog( + strDisplayName, + '%s 已经被添加至您的帐户。它已在您的 Steam 库中可用。'.replace( /%s/, strDisplayName ) + ).done( function() { + window.location.reload(); + }); + if ( typeof GDynamicStore != 'undefined' ) + GDynamicStore.InvalidateCache(); + }).fail( function( jqXHR ) { + var data = V_ParseJSON( jqXHR.responseText ); + if ( data && data.purchaseresultdetail == 9 ) + ShowAlertDialog( strDisplayName, '该产品已在您的 Steam 库中可用。' ); + else + ShowAlertDialog( strDisplayName, '添加该产品至您的帐户时出现问题。请稍后再试。' ); + }).always( function () { + delete window.g_bAddFreeLicenseInFlight; + }); +} + + +function ChangeLanguage( strTargetLanguage, bStayOnPage ) +{ + var Modal = ShowBlockingWaitDialog( '更改语言', '' ); + $J.post( 'https://store.steampowered.com/account/setlanguage/', {language: strTargetLanguage, sessionid: g_sessionID }) + .done( function() { + if ( bStayOnPage ) + Modal.Dismiss(); + else + { + if( typeof g_AccountID != 'undefined' && g_AccountID > 0 ) + window.location = 'https://store.steampowered.com/account/languagepreferences/'; + else if ( window.location.href.match( /[?&]l=/ ) ) + window.location = window.location.href.replace( /([?&])l=[^&]*&?/, '$1' ); + else + window.location.reload(); + } + }).fail( function() { + Modal.Dismiss(); + ShowAlertDialog( '更改语言', '在保存您的更改时出现问题。请稍后重试。' ); + }); +} + +function Logout() +{ + var $Form = $J('', {'action': 'https://store.steampowered.com/logout/', 'method': 'POST' } ); + $Form.append( $J('', {'type': 'hidden', 'name': 'sessionid', 'value': g_sessionID } ) ); + $Form.appendTo( 'body' ); + $Form.submit(); +} + +function getBestAvailNavData() +{ + var navData = jQuery.data( document, 'x_oldnav' ); + if ( navData == undefined ) + { + navData = jQuery.data( document, 'x_oldref' ); + } + if ( navData === undefined ) + { + // try to get what we need from the URL ! + var rg = window.location.href.match( /[\?&]snr=([^\?&]*)($|&)/ ); + if ( rg ) + { + navData = rg[1]; + } + } + return navData; +} + +// Function to add a package to a cart, assumes form setup on the page +function addToCart( subid, dedupe ) +{ + try + { + // Find all of the add to cart buttons displayed on the page + var filterAllButtons='a.btn_addtocart_content'; + // the filterString can be used to find the element that invoked us, since the subid appears within it + // note that href*= specifies that href contains the string + var filterString = 'a[href*=' + subid + ']'; + // within the set of all buttons, get the index of the one that we are dealing with! + // To do that, we find the anchor that invoked us within the larger set of add to cart buttons! + var allButtons = jQuery( filterAllButtons ); + + // Check for quantity + var idx = ( dedupe !== undefined ) ? dedupe : 0; + var filterStringForm = 'form[name=add_to_cart_'+subid+']'; + var $Form = jQuery( filterStringForm ); + + if ( !$Form.length ) + { + $Form= $J('', { name: 'add_to_cart_' + subid, action: 'https://store.steampowered.com/cart/', method: 'POST', style: 'display: none;' } ); + $Form.append( $J('', { type: 'hidden', name: 'action', value: 'add_to_cart' } ) ); + $Form.append( $J('', { type: 'hidden', name: 'subid', value: subid } ) ); + $Form.append( $J('', { type: 'hidden', name: 'sessionid', value: g_sessionID } ) ); + + if ( typeof GStoreItemData !== 'undefined' ) + $Form.append( $J('', { type: 'hidden', name: 'snr', value: GStoreItemData.GetCurrentPageNavParams() } ) ); + + $J(document.body).append( $Form ); + } + + var quantity = jQuery( '#quantity_update_'+subid+'_'+idx ).val(); + if ( quantity !== undefined ) + { + jQuery('').attr({name: 'quantity', 'value': quantity}).appendTo($Form); + } + + // do we have anything to examine? + if ( allButtons.length > 0 ) + { + + var navData = getBestAvailNavData(); + var button; + var buttonOffset = { top : 0, left : 0 }; + var buttonIndex = allButtons.index( jQuery( filterString ) ); + // + // Subscription pages have ambiguous add to cart buttons - we will try to 'dedupe' it ! + // + if ( buttonIndex === -1 ) + { + if ( dedupe !== undefined ) + { + buttonIndex = dedupe; + } + else + { + // There is a chance this we're mistaken if the .php generation of the page + // didn't generate the addToCart() calls as we expect ! + buttonIndex = 0; + } + } + button = allButtons.eq(buttonIndex); + + // + // If we are certain we know what button was clicked, then we'll provide info on the form! + // + if ( button != null && button.length === 1 && typeof button.offset == 'function' ) + { + buttonOffset = button.offset(); + var height = jQuery(window).height(); + var width = jQuery(window).width(); + // + // We have all the components we want the standard button to submit to the server! + // we will now add input fields to the form we intend to submit. + // + + var begintime = jQuery.data(document, 'x_readytime'); + + var selecttime = 0.0; + if ( begintime !== undefined ) + { + selecttime = new Date().getTime() - begintime; + } + if ( $Form.length === 1 ) + { + // We include the 'hidden' attribute at this point, because of a believe compatibility issue with Internet Explorer! + jQuery( '' ).attr( { name: 'x_selection', 'value' : buttonIndex } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_choices', 'value' : allButtons.length } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_top', 'value' : buttonOffset.top } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_left', 'value' : buttonOffset.left } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_window_height', 'value' : height } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_window_width', 'value' : width } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_select_time', 'value' : selecttime } ).appendTo( $Form ); + if ( navData ) + { + var pipeSplit = new RegExp( /\|/ ); + var resultString = navData.split( pipeSplit )[0]; + jQuery( '' ).attr( { name: 'x_oldnav', 'value' : resultString } ).appendTo( $Form ); + } + } + } + } + } + catch( e ) + { + //console.log( e ); + } + // Regardless of instrumentation failures, try to submit the form for the user. + try + { + $Form.submit(); + } + catch( e ) + { + // swallow exceptions ! + } + +} + +// Function to handle quantity box changes per keystroke, largely to show error style if above max quantity +function qtyBoxInputChanged( sIdSuffix, sAddToCartID ) +{ + let elField = jQuery( "#quantity_update_" + sIdSuffix ); + let elCartButton = jQuery( "#" + sAddToCartID ); + let elUpdateButton = jQuery( "#btn_quantity_update_" + sIdSuffix ); + + try + { + let sQty = elField.val(); + let sQtyMax = elField.attr( 'max' ); + let nQty = parseInt( sQty ); + let nQtyMax = parseInt( sQtyMax ); + + const sDisabledClass = 'btn_disabled'; + const sInvalidClass = 'qty_invalid'; + + if ( nQty !== undefined ) + { + if ( ( nQtyMax === undefined || isNaN( nQtyMax ) ) || ( !isNaN( nQty ) && nQty > 0 && nQty <= nQtyMax ) ) + { + elField.removeClass( sInvalidClass ); + elCartButton.removeClass( sDisabledClass ); + elCartButton.prop( 'disabled', false ); + elUpdateButton.prop( 'disabled', false ); + } + else + { + elField.addClass( sInvalidClass ); + elCartButton.addClass( sDisabledClass ); + elCartButton.prop( 'disabled', true ); + elUpdateButton.prop( 'disabled', true ); + } + + elUpdateButton.show(); + } + } + catch( e ) + { + // ignore + } +} + +// Function to add a package to a cart, assumes form setup on the page +function updateQtyCart( formName, id ) +{ + try + { + // Check for quantity + var quantity = jQuery( '#'+id ).val(); + if ( quantity !== undefined ) + { + var filterStringForm = 'form[name='+formName+']'; + var formSelector = jQuery( filterStringForm ); + if ( formSelector.length === 1 ) + { + jQuery('').attr({name: 'quantity', 'value': quantity}).appendTo(formSelector); + } + } + } + catch( e ) + { + //console.log( e ); + } + // Regardless of instrumentation failures, try to submit the form for the user. + try + { + document.forms[formName].submit(); + } + catch( e ) + { + // swallow exceptions ! + } + +} + +// Function to add a bundle to a cart, assumes form setup on the page +function addBundleToCart( bundleid, dedupe ) +{ + try + { + // Find all of the add to cart buttons displayed on the page + var filterAllButtons='a.btn_addtocart_content'; + // the filterString can be used to find the element that invoked us, since the subid appears within it + // note that href*= specifies that href contains the string + var filterString = 'a[href*=' + bundleid + ']'; + // within the set of all buttons, get the index of the one that we are dealing with! + // To do that, we find the anchor that invoked us within the larger set of add to cart buttons! + var allButtons = jQuery( filterAllButtons ); + + + var filterStringForm = 'form[name=add_bundle_to_cart_'+bundleid+']'; + var $Form = jQuery( filterStringForm ); + + if ( !$Form.length ) + { + $Form= $J('', { name: 'add_bundle_to_cart_' + bundleid, action: 'https://store.steampowered.com/cart/', method: 'POST', style: 'display: none;' } ); + $Form.append( $J('', { type: 'hidden', name: 'action', value: 'add_to_cart' } ) ); + $Form.append( $J('', { type: 'hidden', name: 'bundleid', value: bundleid } ) ); + $Form.append( $J('', { type: 'hidden', name: 'sessionid', value: g_sessionID } ) ); + + $J(document.body).append( $Form ); + } + + // Check for quantity + var idx = ( dedupe !== undefined ) ? dedupe : 0; + var quantity = jQuery( '#quantity_update_'+bundleid+'_'+idx ).val(); + if ( quantity !== undefined ) + { + if ( $Form.length === 1 ) + { + jQuery('').attr({name: 'quantity', 'value': quantity}).appendTo($Form); + } + } + + // do we have anything to examine? + if ( allButtons.length > 0 ) + { + + var navData = getBestAvailNavData(); + var button; + var buttonOffset = { top : 0, left : 0 }; + var buttonIndex = allButtons.index( jQuery( filterString ) ); + // + // Subscription pages have ambiguous add to cart buttons - we will try to 'dedupe' it ! + // + if ( buttonIndex === -1 ) + { + if ( dedupe !== undefined ) + { + buttonIndex = dedupe; + } + else + { + // There is a chance this we're mistaken if the .php generation of the page + // didn't generate the addToCart() calls as we expect ! + buttonIndex = 0; + } + } + button = allButtons.eq(buttonIndex); + + // + // If we are certain we know what button was clicked, then we'll provide info on the form! + // + if ( button != null && button.length === 1 && typeof button.offset == 'function' ) + { + buttonOffset = button.offset(); + var height = jQuery(window).height(); + var width = jQuery(window).width(); + // + // We have all the components we want the standard button to submit to the server! + // we will now add input fields to the form we intend to submit. + // + var begintime = jQuery.data(document, 'x_readytime'); + var selecttime = 0.0; + if ( begintime !== undefined ) + { + selecttime = new Date().getTime() - begintime; + } + if ( $Form.length === 1 ) + { + // We include the 'hidden' attribute at this point, because of a believe compatibility issue with Internet Explorer! + jQuery( '' ).attr( { name: 'x_selection', 'value' : buttonIndex } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_choices', 'value' : allButtons.length } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_top', 'value' : buttonOffset.top } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_left', 'value' : buttonOffset.left } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_window_height', 'value' : height } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_window_width', 'value' : width } ).appendTo( $Form ); + jQuery( '' ).attr( { name: 'x_select_time', 'value' : selecttime } ).appendTo( $Form ); + if ( navData ) + { + var pipeSplit = new RegExp( /\|/ ); + var resultString = navData.split( pipeSplit )[0]; + jQuery( '' ).attr( { name: 'x_oldnav', 'value' : resultString } ).appendTo( $Form ); + } + } + } + } + } + catch( e ) + { + //console.log( e ); + } + // Regardless of instrumentation failures, try to submit the form for the user. + try + { + $Form.submit(); + } + catch( e ) + { + // swallow exceptions ! + } + +} + +function addAllDlcToCart() +{ + try + { + // Find all of the add to cart buttons displayed on the page + var filterAllButtons='a.btn_addtocart_content'; + // the filterString can be used to find the element that invoked us, since the subid appears within it + // note that href*= specifies that href contains the string + var filterString = 'a[href*=addAllDlcToCart]'; + // within the set of all buttons, get the index of the one that we are dealing with! + // To do that, we find the anchor that invoked us within the larger set of add to cart buttons! + var allButtons = jQuery( filterAllButtons ); + // do we have anything to examine? + if ( allButtons.length > 0 ) + { + + var navData = getBestAvailNavData(); + var button = null; + var buttonOffset = { top : 0, left : 0 }; + var buttonIndex = allButtons.index( jQuery( filterString ) ); + if ( buttonIndex !== -1 ) + { + button = allButtons.eq(buttonIndex); + } + // + // If we are certain we know what button was clicked, then we'll provide info on the form! + // + if ( button != null && button.length === 1 && typeof button.offset == 'function' ) + { + buttonOffset = button.offset(); + var height = jQuery(window).height(); + var width = jQuery(window).width(); + // + // We have all the components we want the standard button to submit to the server! + // we will now add input fields to the form we intend to submit. + // + var filterStringForm = 'form[name=add_all_dlc_to_cart]'; + var formSelector = jQuery( filterStringForm ); + var begintime = jQuery.data(document, 'x_readytime'); + var selecttime = 0.0; + if ( begintime !== undefined ) + { + selecttime = new Date().getTime() - begintime; + } + if ( formSelector.length === 1 ) + { + // We include the 'hidden' attribute at this point, because of a believe compatibility issue with Internet Explorer! + jQuery( '' ).attr( { name: 'x_selection', 'value' : buttonIndex } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_choices', 'value' : allButtons.length } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_top', 'value' : buttonOffset.top } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_left', 'value' : buttonOffset.left } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_window_height', 'value' : height } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_window_width', 'value' : width } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_select_time', 'value' : selecttime } ).appendTo( formSelector ); + if ( navData ) + { + var pipeSplit = new RegExp( /\|/ ); + var resultString = navData.split( pipeSplit )[0]; + jQuery( '' ).attr( { name: 'x_oldnav', 'value' : resultString } ).appendTo( formSelector ); + } + } + } + } + } + catch( e ) + { + //console.log( e ); + } + + try + { + document.forms['add_all_dlc_to_cart'].submit(); + } + catch( e ) + { + } +} + +function removeFromCart( gid ) +{ + try + { + // Find all of the add to cart buttons displayed on the page + var filterAllButtons='a.remove_link'; + // the filterString can be used to find the element that invoked us, since the subid appears within it + // note that href*= specifies that href contains the string + var filterString = 'a[href*=' + gid + ']'; + // within the set of all buttons, get the index of the one that we are dealing with! + // To do that, we find the anchor that invoked us within the larger set of add to cart buttons! + var allButtons = jQuery( filterAllButtons ); + // do we have anything to examine? + + // do we have anything to examine? + if ( allButtons.length > 0 ) + { + var navData = getBestAvailNavData(); + var buttonIndex = allButtons.index( jQuery( filterString ) ); + // + var button = allButtons.filter( jQuery( filterString ) ); + var buttonOffset = { top : 0, left : 0 }; + if ( button != null && button.length === 1 && typeof button.offset == 'function' ) + { + buttonOffset = button.offset(); + var height = jQuery(window).height(); + var width = jQuery(window).width(); + // + // We have all the components we want the standard button to submit to the server! + // we will now add input fields to the form we intend to submit. + // + var filterStringForm = 'form[name=remove_line_item]'; + var formSelector = jQuery( filterStringForm ); + var begintime = jQuery.data(document, 'x_readytime'); + var selecttime = 0.0; + if ( begintime !== undefined ) + { + selecttime = new Date().getTime() - begintime; + } + if ( formSelector.length === 1 ) + { + // We include the 'hidden' attribute at this point, because of a believe compatibility issue with Internet Explorer! + jQuery( '' ).attr( { name: 'x_selection', 'value' : buttonIndex } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_choices', 'value' : allButtons.length } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_top', 'value' : buttonOffset.top } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_left', 'value' : buttonOffset.left } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_window_height', 'value' : height } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_window_width', 'value' : width } ).appendTo( formSelector ); + jQuery( '' ).attr( { name: 'x_select_time', 'value' : selecttime } ).appendTo( formSelector ); + if ( navData ) + { + var pipeSplit = new RegExp( /\|/ ); + var resultString = navData.split( pipeSplit )[0]; + jQuery( '' ).attr( { name: 'x_oldnav', 'value' : resultString } ).appendTo( formSelector ); + } + } + } + } + } + catch( e ) + { + } + try + { + document.getElementById('line_item_to_remove_gid').value = gid; + document.forms['remove_line_item'].submit(); + } + catch( e ) + { + } +} + +function GamePurchaseDropdownSelectOption( dropdownName, subId, inCart ) +{ + $J('#add_to_cart_' + dropdownName + '_value').val( subId ); + $J('#add_to_cart_' + dropdownName + '_selected_text').html( $J('#add_to_cart_' + dropdownName + '_menu_option_' + subId).html() ); + + $J('#add_to_cart_' + dropdownName + '_select_option').hide(); + + var $inCart = $J('#add_to_cart_' + dropdownName + '_in_cart_button'); + var $addCart = $J('#add_to_cart_' + dropdownName + '_add_button'); + if ( inCart ) + { + $addCart.hide(); + $inCart.show(); + if ( typeof GPNavFocusChild !== 'undefined' ) + { + GPNavFocusChild( $inCart ); + } + } + else + { + $inCart.hide(); + $addCart.show(); + if ( typeof GPNavFocusChild !== 'undefined' ) + { + GPNavFocusChild( $addCart ); + } + } + + if ( window.UseTabletScreenMode && window.UseTabletScreenMode() ) + { + CModal.DismissActiveModal(); + } + else + { + HideMenu('game_purchase_dropdown_' + dropdownName + '_region', 'add_to_cart_' + dropdownName + '_menu'); + } +} + +function GamePurchaseDropdownAddToCart( dropdownName ) +{ + if ( $J('#add_to_cart_' + dropdownName + '_value').val() == '') + { + ShowGamePurchaseDropdown( 'game_purchase_dropdown_' + dropdownName + '_region', 'add_to_cart_' + dropdownName + '_menu' ); + } + else + { + addToCart( dropdownName ); + } +} + +function ShowGamePurchaseDropdown( elemLink, elemPopup ) +{ + var $Link = $JFromIDOrElement(elemLink); + var $Popup = $JFromIDOrElement(elemPopup); + + var nWidth = $Link.outerWidth(); + $Popup.css( 'min-width', nWidth ); + + if ( window.UseTabletScreenMode && window.UseTabletScreenMode() ) + { + var $Content = $Popup.clone(); + $Content.attr('data-panel', '{"maintainY":true,"autoFocus":true}' ); + $Content.css( 'position', 'relative' ); + var $Dialog = ShowDialog( '选择一个购买选项', $Content.show() ); + $Dialog.AdjustSizing(); + } + else + { + ShowMenu( elemLink, elemPopup, 'right', 'bottom' ); + } +} + +function AgeGateClear() +{ + WebStorage.SetCookie('birthtime', 0, -1); + window.location.reload(); +} + +function InitHorizontalAutoSliders() +{ + $J('.store_horizontal_autoslider' ).each( function() { + var $Scroll = $J(this); + var $Wrapper = $Scroll.wrap( $J('
', {'class': 'store_horizontal_autoslider_ctn' } ) ).parent(); + var $SliderCtn = $J('
', {'class': 'slider_ctn store_autoslider'} ); + var $SliderLeft = $J('
', {'class': 'slider_left'} ).append($J('')); + var $SliderRight = $J('
', {'class': 'slider_right'} ).append($J('')); + var $Slider = $J('
', {'class': 'slider' } ); + $SliderCtn.append( + $SliderLeft, $SliderRight, + $J('
', {'class': 'slider_bg' } ), + $Slider.append( $J('
', {'class': 'handle'} ) ) + ); + $Wrapper.after( $SliderCtn ); + var fnFixHeight = function() { $Wrapper.height( $Scroll[0].clientHeight ); }; + + if ( $Scroll.data( 'usability' ) ) + $SliderCtn.attr( 'data-usability', $Scroll.data( 'usability' ) ); + + $Wrapper.on('v_contentschanged.AutoSlider', function() { + fnFixHeight(); + $Wrapper.find('img' ).one('load', fnFixHeight ); + } ); + $J(window ).on('resize.AutoSlider', fnFixHeight ); + + $Scroll.attr( 'data-panel', '{"maintainX":true,"bFocusRingRoot":true,"flow-children":"row"}' ); + + window.setTimeout( function() { + $Wrapper.trigger('v_contentschanged.AutoSlider'); + + var Slider = new CScrollSlider( $Scroll, $SliderCtn ); + + var fnGetScrollIncrement = function() { + var $TryChild = $Scroll; + do + { + $TryChild = $TryChild.children().first(); + if ( $TryChild.width() && $TryChild.outerWidth() < $Scroll.width() ) + { + // optional param determines whether or not we include margin + // As a note, if you use selective margin make sure you're using + // :not(:last-child) as it'll peek the first and you want to ensure + // that element has the expected margin. + return $TryChild.outerWidth( true ); + } + } while ( $TryChild.length ); + + return $Wrapper.width() / 3; + }; + + $SliderLeft.click( function() { + Slider.SetValue( Slider.GetValue() - fnGetScrollIncrement(), 250 ); + }); + $SliderRight.click( function() { + Slider.SetValue( Slider.GetValue() + fnGetScrollIncrement(), 250 ); + }); + + }, 1 ); + }); + + $J('.store_horizontal_minislider' ).each( function() { + var $Scroll = $J(this); + var $Wrapper = $Scroll.wrap( $J('
', {'class': 'store_horizontal_minislider_ctn' } ) ).parent(); + var $SliderLeft = $J('
', {'class': 'slider_left'} ).append($J('')); + var $SliderRight = $J('
', {'class': 'slider_right'} ).append($J('')); + + $Wrapper.append( $SliderLeft, $SliderRight ); + + var fnShowHideButtons = function() + { + var nTallestChild = 0; + $Scroll.children().each( function() { + nTallestChild = Math.max( nTallestChild, $J(this ).outerHeight() ); + }); + $Wrapper.css('height', nTallestChild ); + + if ( $Scroll.scrollLeft() <= 1 ) + $SliderLeft.hide(); + else + $SliderLeft.show(); + + if ( $Scroll.scrollLeft() + $Scroll.width() < $Scroll[0].scrollWidth - 1 ) + $SliderRight.show(); + else + $SliderRight.hide(); + }; + + $Scroll.on( 'scroll.AutoSlider v_contentschagned.AutoSlider', fnShowHideButtons ); + $J(window ).on('resize.AutoSlider', fnShowHideButtons ); + + $SliderLeft.click( function() { + $Scroll.animate( {scrollLeft: Math.max( 0, $Scroll.scrollLeft() - $Wrapper.width() ) } ); + fnShowHideButtons(); + } ); + $SliderRight.click( function() { + $Scroll.animate( {scrollLeft: Math.min( $Scroll[0].scrollWidth - $Scroll.width(), $Scroll.scrollLeft() + $Wrapper.width() ) } ); + fnShowHideButtons(); + } ); + + window.setTimeout( fnShowHideButtons, 1 ); + }); +} + +function PreloadImages( elElement ) +{ + $J(elElement).find("*[data-background-image-url]").each(function(i, j){ + var $elTarget = $J(j); + $elTarget.css({'background-image': 'url(' + $elTarget.data('background-image-url') + ')' }); + }); + + $J(elElement).find("img[data-image-url]").each(function(i, j){ + var $elTarget = $J(j); + $elTarget.attr('src', $elTarget.data('image-url') ); + }); + +} + + +// Common glue logic for a carousel of some kind +var CGenericCarousel = function( $elContainer, nSpeed, fnOnFocus, fnOnBlur, fnClickThumb, bNoWrap ) +{ + this.$elContainer = $elContainer; + this.nSpeed = nSpeed; + this.fnOnFocus = fnOnFocus; + this.fnOnBlur = fnOnBlur; + this.fnClickThumb = fnClickThumb; + this.bNoWrap = bNoWrap; + this.nIndex = 0; + + this.$elArrowLeft = $J('.arrow.left', this.$elContainer); + this.$elArrowRight = $J('.arrow.right', this.$elContainer); + + this.UpdateItems(); + PreloadImages( this.$elItems[ this.nIndex ] ); + + // get ready to preload images when we scroll. Delay this a bit because these are low priority + // and finding them forces layout via a slow jquery :visible call + if ( this.nSpeed ) + setTimeout( this.HintNearbyCapsules.bind(this), this.nSpeed * 750 ); + + this.fnOnFocus( this.nIndex ); + + var instance = this; + + this.fnMouseOver = function(){ + clearInterval( instance.timerAdvance ); + }; + + this.fnMouseOut = function(){ + + if( instance.timerAdvance ) + clearInterval( instance.timerAdvance ); + + if( instance.nSpeed > 0 ) + { + instance.timerAdvance = setInterval ( function () + { + if( !instance.bIsResponsive() ) + instance.Advance (); + }, nSpeed * 1000 ); + } + }; + + this.fnMouseOut(); + + $elContainer.bind('mouseover', function(e) { instance.fnMouseOver(); } ); + $elContainer.bind('mouseout', function(e) { instance.fnMouseOut(); } ); + // If we get a scroll event, and we're in respondive, hint all remaining images + var $Parent = this.$elItems.parent(); + $Parent.bind('scroll', function(e) { if( instance.bIsResponsive() ) PreloadImages( $elContainer ); } ); + + // add panel attributes, and force an update as this element is already on the page so legacyweb doesn't see this change + $Parent.attr( 'data-panel', '{"bFocusRingRoot":true,"flow-children":"row"}' ); + if ( typeof ForceUpdateFocusElements != 'undefined' ) + ForceUpdateFocusElements( $Parent ); + + // Only bind a mouseover thumb event if we have one. + if( fnClickThumb ) { + + this.$elThumbs.each(function (i, j) + { + + $J(j).bind('click touchstart', (function( index, ele ) { + return function() { + instance.fnClickThumb( index, ele ); + };}(i, j) ) + ); + }); + } + + // Bind arrows (if we have them) + this.$elArrowLeft.click( function(e){ instance.Advance(-1); e.preventDefault(); return true; }); + this.$elArrowRight.click( function(e){ instance.Advance(); e.preventDefault(); return true; }); + + this.$elContainer.on('v_gamepadpress', function( e, button ) { + if ( button.button == 'BUMPER_BACK' ) + { + instance.Advance( -1, true ); + e.stopPropagation(); + } + else if ( button.button == 'BUMPER_FORWARD' ) + { + // -1 means go back 1, any other number means "go to that index". + instance.Advance( undefined, true ); + e.stopPropagation(); + } + }).on('focusin', function( e ) { + if ( e.target != e.currentTarget ) + { + // focus on a child element; make sure it's in view + instance.$elItems.each( function ( index ) { + // $elItems are caps in main cluster, but pages in others + if ( $J.contains( this, e.target ) || this == e.target ) + { + if ( !$J(this).hasClass('focus') ) + instance.Advance( index ); + return false; // stop iterating + } + }); + } + instance.fnMouseOver(); + }).on('focusout', function() { + instance.fnMouseOut(); + }); + + if( this.$elThumbs.length < 2 ) + { + this.$elThumbs.parent().css({'visibility':'hidden'}) + } + + this.UpdateControls(); + +}; + +// Advances the carousel by one. Optionally pass in a specific index to advance to. +CGenericCarousel.prototype.UpdateControls = function( ) +{ + // Only one item, so hide the arrows since they're not useful. + if( this.nItems == 1 ) + { + this.$elArrowLeft.hide(); + this.$elArrowRight.hide(); + return; + } + + // Our carousel does not wrap, so conditionally show/hider arrows + if( this.bNoWrap ) + { + if( this.nIndex == 0 ) + this.$elArrowLeft.hide(); + else + this.$elArrowLeft.show(); + + if( this.nIndex == this.nItems-1 ) + this.$elArrowRight.hide(); + else + this.$elArrowRight.show(); + + } + else + { + this.$elArrowLeft.show(); + this.$elArrowRight.show(); + return; + } + + + +}; + +// Start loading images further down the rotation. +CGenericCarousel.prototype.HintNearbyCapsules = function( ) +{ + PreloadImages( this.$elItems[ this.nIndex ] ); + + // If we're going to auto-scroll, hint the next item. + if( this.nSpeed > 0 ) + { + var nNextIndex = this.GetNextValidIndex(); + var elNextElement = this.$elItems[ nNextIndex ]; + PreloadImages( elNextElement ); + } +}; + + +CGenericCarousel.prototype.UpdateItems = function() +{ + this.$elThumbs = $J('.carousel_thumbs', this.$elContainer).children(); + this.$elItems = $J('.carousel_items', this.$elContainer).children(); + this.nItems = this.$elItems.length; +} + +CGenericCarousel.prototype.GetNextValidIndex = function( nNewIndex ) +{ + if( this.nItems == 0 ) + return false; + + var nIndex = this.nIndex; + + var rgTargets = this.$elItems; + var nSearched = 0; + + if( nNewIndex < 0 ) // Allow index of -1 to go backwards. + { + // Skip hidden items + do + { + nIndex = ( nIndex + nNewIndex ) % this.nItems; + + // JS's % operator doesn't wrap, so we need to fix it... + if( nIndex < 0 ) + nIndex += this.nItems; + + } + while( !$J( rgTargets[ nIndex ] ).is( ":visible" ) && nSearched++ < this.nItems ); + } + else if( nNewIndex !== undefined ) + { + if( nIndex == nNewIndex ) + return false + return nNewIndex; + } + else + { + // Skip hidden items + do + { + nIndex = ( nIndex + 1 ) % this.nItems; + } + while( !$J( rgTargets[ nIndex ] ).is( ":visible" ) && nSearched++ < this.nItems ); + + } + + return nIndex; +} + +CGenericCarousel.prototype.bIsResponsive = function( ) +{ + return window.UseSmallScreenMode && window.UseSmallScreenMode(); +} + +CGenericCarousel.prototype.Advance = function( nNewIndex, bApplyFocus ) +{ + if( this.bIsResponsive() && !window.UseTabletScreenMode() ) + { + return this.ResponsiveAdvance(nNewIndex ); + } + + if( this.nItems == 0 ) + return; + + var nNextIndex = this.GetNextValidIndex( nNewIndex ); + if( nNextIndex == this.nIndex || nNextIndex === false ) + return; + + this.fnOnBlur( this.nIndex ); + this.fnOnFocus( nNextIndex ); + this.nIndex = nNextIndex; + + if ( bApplyFocus && typeof GPNavFocusChild !== 'undefined' ) + GPNavFocusChild( this.$elItems[this.nIndex] ); + + this.UpdateControls(); + this.HintNearbyCapsules(); +} + +// Advance function may be (totally is) different in responsive mode +CGenericCarousel.prototype.ResponsiveAdvance = function( nNewIndex ) +{ + var $elTarget = this.$elItems.parent(); + var nMaxScroll = this.$elItems.outerWidth( true ) * this.nItems - $elTarget.innerWidth(); + var nCurrentScroll = $elTarget.scrollLeft(); + var nScrollRate = this.$elItems.outerWidth( true ); + if( nScrollRate > $elTarget.innerWidth() * 1.1 ) + nScrollRate = $elTarget.innerWidth(); + + var nTargetScroll = nCurrentScroll + ( nNewIndex < 0 ? -1 : 1 ) * nScrollRate; + + if( nCurrentScroll == nMaxScroll && nCurrentScroll > nCurrentScroll) + nTargetScroll = 0; + + if( nTargetScroll > nMaxScroll ) + nTargetScroll = nMaxScroll; + + if( nTargetScroll < 0 ) + nTargetScroll = 0; + + // Hintload capsules we're about to show + this.$elItems.each( function(i, j) { + var $el = $J(j); + var rgOffset = $el.offset(); + if( rgOffset.left < nScrollRate * 2 ) + { + PreloadImages( $el ); + } + }); + + $J( $elTarget ).stop().animate({scrollLeft: nTargetScroll}, 800); + +} + +// Carousel which adds the 'focus' class to the active element. Can be used for fading carousels +// @todo: This needs to be detangled from CGenericCarousel a bit more to be useful in other applications..... +function CreateFadingCarousel( $elContainer, nSpeed, bNoWrap, fnOnBlur ) +{ + + var fnOnFocus = function( nIndex ) + { + this.$elThumbs.removeClass( 'focus' ); + this.$elItems.removeClass( 'focus' ); + + $J( this.$elThumbs[nIndex] ).addClass('focus'); + $J( this.$elItems[nIndex] ).addClass('focus'); + if ( typeof GDynamicStore != 'undefined' && GDynamicStore.m_bLoadComplete ) { + GDynamicStore.s_ImpressionTracker.TrackAppearanceIfVisible(this.$elItems[nIndex]); + } + } + + var fnMouseOverThumb = function( index, element ) + { + this.Advance(index); + }; + if( !fnOnBlur ) + fnOnBlur = function(){}; + + return new CGenericCarousel( $elContainer, nSpeed, fnOnFocus, fnOnBlur, fnMouseOverThumb, bNoWrap ); + +} + +/** + * Sets up a form to automagically save itself when edited. + * Note: Ajax requests inside fnOnChange should bind their first param to async + * @param elForm + * @param fnOnChange + * @constructor + */ +function RegisterAutoSaveForm( elForm, fnOnChange ) +{ + // Time to wait before saving a changed element that hasn't explicitly lost focus + var nSaveDelay = 5000; // 5 seconds + + // Attempt to save if we're closing the tab in a dirty state + $J( window ).on( 'unload', function(){ + $J( elForm ).trigger('saveform'); + } ); + + $J( elForm ).on( 'saveform', function(){ + + if (!$J.contains(document, elForm)) + { + return; + } + + $J( 'input[type=text],input[type=radio],input[type=checkbox],select,textarea', elForm ).trigger('save'); + }); + + // Text elements + $J( 'input[type=text],textarea', elForm ).each(function(index, element ){ + var curVal = element.value; + var timer = null; + + var fnUpdateIfChanged = function( bAsync ){ + if( element.value != curVal ) + { + curVal = element.value; + fnOnChange ( bAsync ); + } + }; + + $J(element).on('save', fnUpdateIfChanged.bind(null, false ) ); + + $J(element).on('keyup', function(){ + if( timer != null ) + clearTimeout( timer ); + timer = setTimeout( fnUpdateIfChanged.bind(null, true ), nSaveDelay ); + }); + }); + + // input types that use .checked + $J( 'input[type=checkbox],input[type=radio]', elForm ).each(function(index, element ){ + var curVal = element.checked; + var timer = null; + + var fnUpdateIfChanged = function( bAsync ){ + if( element.checked != curVal ) + { + curVal = element.checked; + fnOnChange ( bAsync ); + } + }; + + $J(element).on('save', fnUpdateIfChanged.bind(null, false )); + + $J(element).on('change', function(){ + if( timer != null ) + clearTimeout( timer ); + timer = setTimeout( fnUpdateIfChanged.bind(null, true ), nSaveDelay ); + }); + }); + + // select boxes + $J( 'select', elForm ).each(function(index, element ){ + var curVal = element.selectedIndex; + var timer = null; + console.log(element); + + var fnUpdateIfChanged = function( bAsync ){ + if( element.selectedIndex != curVal ) + { + curVal = element.selectedIndex; + fnOnChange ( bAsync ); + } + }; + + $J(element).on('save', fnUpdateIfChanged.bind(null, false )); + + $J(element).on('change', function(){ + if( timer != null ) + clearTimeout( timer ); + timer = setTimeout( fnUpdateIfChanged.bind(null, true ), nSaveDelay ); + }); + }); +} + +function RecordAJAXPageView( url ) +{ + if ( typeof ga != "undefined" && ga ) + { + var rgURLs = [ 'https://store.steampowered.com/', 'https://store.steampowered.com/' ]; + for ( var i = 0; i < rgURLs.length; ++i ) + { + var baseURL = rgURLs[i]; + var idx = url.indexOf( baseURL ); + if ( idx != -1 ) + { + url = url.substring( idx + baseURL.length ); + } + ga( 'send', 'pageview', url ); + return; + } + } +} + + +function FollowCuratorWithCallback( clanID, bFollow, onComplete ) +{ + var bHaveUser = ( g_AccountID != 0 ); + if ( !bHaveUser ) + { + ShowAlertDialog("\u8bf7\u767b\u5f55", "\u60a8\u5fc5\u987b\u767b\u5f55\u624d\u80fd\u5173\u6ce8\u9274\u8d4f\u5bb6"); + return; + } + + $J.post( + 'https://store.steampowered.com/curators/ajaxfollow', + { 'clanid' : clanID, 'sessionid' : g_sessionID, 'follow' : bFollow ? 1 : 0 }, + function( data ) + { + onComplete( bFollow ); + }, + 'json' + ).fail( function() + { + ShowAlertDialog( '错误', '尝试关注 Steam 鉴赏家时出现问题。可能出现的问题:
  • 您不能关注已经忽略的鉴赏家。
  • 您一次只能关注最多 100 名鉴赏家。
  • 受限帐户不能关注鉴赏家。
' ); + } + ); + return false; +} + +function IgnoreCuratorWithCallback( clanID, bIgnore, onComplete ) +{ + var bHaveUser = ( g_AccountID != 0 ); + if ( !bHaveUser ) + { + ShowAlertDialog("\u8bf7\u767b\u5f55", "\u60a8\u5fc5\u987b\u767b\u5f55\u624d\u80fd\u5ffd\u7565 Steam \u9274\u8d4f\u5bb6"); + return; + } + + $J.post( + 'https://store.steampowered.com/curators/ajaxignore', + { 'clanid' : clanID, 'sessionid' : g_sessionID, 'ignore' : bIgnore ? 1 : 0 }, + function( data ) + { + onComplete( bIgnore ); + GDynamicStore.InvalidateCache(); + }, + 'json' + ).fail( function() + { + ShowAlertDialog( '错误', '尝试忽略 Steam 鉴赏家时出现问题。
注意:您不能忽略已关注的鉴赏家。' ); + } + ); + return false; +} + + +var CUsabilityTracker = function() +{ + this.m_strEndpoint = ''; + this.m_fnPostCallback = null; + this.m_schUpload = null; + this.m_tsLoaded = performance.now(); + this.m_rgScrollToElements = null; + this.m_stats = { + maxScroll: 0, + windowWidth: 0, + windowHeight: 0, + scrolledToSection: 0, + events: [] + } +} + +CUsabilityTracker.prototype.Init = function( strEndpoint ) +{ + this.m_strEndpoint = strEndpoint; + this.ResetStats(); + + var _this = this; + $Window = $J( window ); + $Window.unload( function() + { + _this.OnWindowUnload(); + }); + + $Window.on( 'scroll', function() + { + _this.SetScrollPosition(); + }); + + $Window.on( 'click', function( e ) + { + _this.HandleWindowClick( e ); + }); +} + +CUsabilityTracker.prototype.ResetStats = function() +{ + this.m_stats.windowWidth = window.innerWidth; + this.m_stats.windowHeight = window.innerHeight; + this.m_stats.events = []; + this.m_stats.maxScroll = this.GetScrollPosition(); + this.m_stats.scrolledToSection = 0; +} + +CUsabilityTracker.prototype.ScheduleUpload = function() +{ + this.CancelScheduledUpload(); + + var _this = this; + this.m_schUpload = setTimeout( function() { _this.PostStats() }, 3 * 60 * 1000 ); +} + +CUsabilityTracker.prototype.CancelScheduledUpload = function() +{ + if ( this.m_schUpload === null ) + return; + + clearTimeout( this.m_schUpload ); + this.m_schUpload = null; +} + +CUsabilityTracker.prototype.GetScrollPosition = function() +{ + var nCurrent = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + return nCurrent + window.innerHeight; +} + +CUsabilityTracker.prototype.SetScrollPosition = function() +{ + // ignore scrolling for 1/2 second after page load + if ( (performance.now() - this.m_tsLoaded) < 500.0 ) + return; + + var nCurrent = this.GetScrollPosition(); + + // always skip updating and scheduling a new scroll if previous matches, including across page reloads that automatically scroll down + if ( nCurrent <= this.m_stats.maxScroll ) + return; + + this.m_stats.maxScroll = nCurrent; + this.CheckScrollToElements(); + this.ScheduleUpload(); +} + +CUsabilityTracker.prototype.OnWindowUnload = function () +{ + this.PostStats(); +} + +CUsabilityTracker.prototype.HandleWindowClick = function( e ) +{ + var $Target = $J( e.target ); + if ( !$Target ) + return; + + var $Tracked = $Target.closest( '[data-usability]'); + if ( !$Tracked || $Tracked.length == 0 ) + return; + + this.AddEvent( $Tracked.data( 'usability' ) ); +} + +CUsabilityTracker.prototype.AddEvent = function( eEvent ) +{ + for ( var i = 0; i < this.m_stats.events.length; i++ ) + { + if ( this.m_stats.events[i] == eEvent ) + return; + } + + this.m_stats.events.push( eEvent ); + this.ScheduleUpload(); +} + +CUsabilityTracker.prototype.IncrementStat = function( strStat, nValue ) +{ + if ( this.m_stats[strStat] === undefined ) + this.m_stats[strStat] = 0; + + this.m_stats[strStat] = this.m_stats[strStat] + nValue; +} + +CUsabilityTracker.prototype.CheckScrollToElements = function() +{ + if ( this.m_rgScrollToElements === null ) + this.m_rgScrollToElements = $J( '[data-usability-scroll]' ); + + var nBottomOfScreen = this.GetScrollPosition(); + for ( var i = this.m_rgScrollToElements.length - 1; i >= 0; i-- ) + { + var $element = $J( this.m_rgScrollToElements[i] ); + if ( !$element.is(':visible') ) + continue; + + var nOffset = $element.offset().top; + if ( nOffset > nBottomOfScreen ) + continue; + + this.SetScrollToSection( $element.data( 'usability-scroll' ) ); + } +} + +CUsabilityTracker.prototype.SetScrollToSection = function( eEvent ) +{ + if ( this.m_stats.scrolledToSection < eEvent ) + { + this.m_stats.scrolledToSection = eEvent; + this.ScheduleUpload(); + } +} + +CUsabilityTracker.prototype.SetPostCallback = function( fnCallback ) +{ + this.m_fnPostCallback = fnCallback; +} + +CUsabilityTracker.prototype.PostStats = function() +{ + // if no scheduled upload, stats aren't dirty + if ( this.m_schUpload === null ) + return; + + this.CancelScheduledUpload(); + + this.m_stats.windowWidth = window.innerWidth; + this.m_stats.windowHeight = window.innerHeight; + + if ( this.m_fnPostCallback ) + this.m_fnPostCallback( this.m_stats ); + + var strStats = JSON.stringify( this.m_stats ); + var strURL = this.m_strEndpoint; + var bSupportsBeacon = typeof navigator.sendBeacon != 'undefined'; + if ( bSupportsBeacon ) + { + var fdParams = new FormData(); + fdParams.append( 'stats', strStats ); + navigator.sendBeacon( strURL, fdParams ); + } + else + { + $J.ajax( + { + url: strURL, + data: { stats: strStats }, + dataType: 'json', + type: 'POST' + }) + .done( function( data ) + { + }); + + // if we couldn't send a beacon, we try to busy wait for a bit so the AJAX request has time + // to reach the servers. + var iters = 0; + var start = new Date().getMilliseconds(); + while ( iters < 10000000 && ( new Date().getMilliseconds() - start ) < 30 ) { iters++; } + } + + this.ResetStats(); +} + +var g_usabilityTracker = null; +function InitUsabilityTracker( strEndpoint ) +{ + if ( !g_usabilityTracker ) + { + g_usabilityTracker = new CUsabilityTracker(); + g_usabilityTracker.Init( strEndpoint ); + } + + return g_usabilityTracker; +} + +function GetUsabilityTracker() +{ + return g_usabilityTracker; +} + +function ScrollToTopStoreMobileAware() +{ + var bUseSmallScreenMode = window.UseSmallScreenMode && window.UseSmallScreenMode(); + var bIsMobileClient = $J('html').is('.mobile_client:not(.legacy_mobile)') + if ( bUseSmallScreenMode && !bIsMobileClient ) + { + var $Window = $J( window ); + $Window.scrollTop( $J( '#store_header' ).height() ); + } + else + { + window.scrollTo( 0, 0 ); + } +} + + diff --git "a/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/login.js" "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/login.js" new file mode 100644 index 0000000..ed93068 --- /dev/null +++ "b/steam/2023-05-21--\345\215\217\350\256\256\345\256\236\347\216\260\347\275\221\351\241\265\347\231\273\345\275\225/src-steam/shared/login.js" @@ -0,0 +1,1202 @@ +"use strict"; + +function CLoginPromptManager( strBaseURL, rgOptions ) +{ + // normalize with trailing slash + this.m_strBaseURL = strBaseURL + ( strBaseURL.substr(-1) == '/' ? '' : '/' ) + ( this.m_bIsMobile ? 'mobilelogin' : 'login' ) + '/'; + this.m_strSiteBaseURL = strBaseURL; // Actual base url, not the login base url above. + + // read options + rgOptions = rgOptions || {}; + this.m_bIsMobile = rgOptions.bIsMobile || false; + this.m_strMobileClientType = rgOptions.strMobileClientType || ''; + this.m_strMobileClientVersion = rgOptions.strMobileClientVersion || ''; + this.m_bIsMobileSteamClient = ( this.m_strMobileClientType ? true : false ); + this.m_bMobileClientSupportsPostMessage = rgOptions.bMobileClientSupportsPostMessage || false; + + this.m_$LogonForm = $JFromIDOrElement( rgOptions.elLogonForm || document.forms['logon'] ); + + this.m_fnOnFailure = rgOptions.fnOnFailure || null; + this.m_fnOnSuccess = rgOptions.fnOnSuccess || null; + + this.m_strRedirectURL = rgOptions.strRedirectURL || (this.m_bIsMobile ? '' : strBaseURL); + this.m_strSessionID = rgOptions.strSessionID || null; + + this.m_strUsernameEntered = null; + this.m_strUsernameCanonical = null; + + if ( rgOptions.gidCaptcha ) + this.UpdateCaptcha( rgOptions.gidCaptcha ); + else + this.RefreshCaptcha(); // check if needed + + + this.m_bLoginInFlight = false; + this.m_bInEmailAuthProcess = false; + this.m_bInTwoFactorAuthProcess = false; + this.m_TwoFactorModal = null; + this.m_bEmailAuthSuccessful = false; + this.m_bLoginTransferInProgress = false; + this.m_bEmailAuthSuccessfulWantToLeave = false; + this.m_bTwoFactorAuthSuccessful = false; + this.m_bTwoFactorAuthSuccessfulWantToLeave = false; + this.m_sOAuthRedirectURI = 'steammobile://mobileloginsucceeded'; + this.m_sAuthCode = ""; + this.m_sPhoneNumberLastDigits = "??"; + this.m_bTwoFactorReset = false; + + // values we collect from the user + this.m_steamidEmailAuth = ''; + + + // record keeping + this.m_iIncorrectLoginFailures = 0; // mobile reveals password after a couple failures + + var _this = this; + + this.m_$LogonForm.submit( function(e) { + _this.DoLogin(); + e.preventDefault(); + }); + // find buttons and make them clickable + $J('#login_btn_signin' ).children('a, button' ).click( function() { _this.DoLogin(); } ); + + this.InitModalContent(); + + // these modals need to be in the body because we refer to elements by name before they are ready + this.m_$ModalAuthCode = this.GetModalContent( 'loginAuthCodeModal' ); + this.m_$ModalAuthCode.find('[data-modalstate]' ).each( function() { + $J(this).click( function() { _this.SetEmailAuthModalState( $J(this).data('modalstate') ); } ); + }); + this.m_$ModalAuthCode.find('form').submit( function(e) { + _this.SetEmailAuthModalState('submit'); + e.preventDefault(); + }); + this.m_EmailAuthModal = null; + + this.m_$ModalIPT = this.GetModalContent( 'loginIPTModal' ); + + this.m_$ModalTwoFactor = this.GetModalContent( 'loginTwoFactorCodeModal' ); + this.m_$ModalTwoFactor.find( '[data-modalstate]' ).each( function() { + $J(this).click( function() { _this.SetTwoFactorAuthModalState( $J(this).data('modalstate') ); } ); + }); + this.m_$ModalTwoFactor.find( 'form' ).submit( function(e) { + // Prevent submit if nothing was entered + if ( $J('#twofactorcode_entry').val() != '' ) + { + // Push the left button + var $btnLeft = _this.m_$ModalTwoFactor.find( '.auth_buttonset:visible .auth_button.leftbtn ' ); + $btnLeft.trigger( 'click' ); + } + + e.preventDefault(); + }); + + + + // register to listen to IOS two factor callback + $J(document).on('SteamMobile_ReceiveAuthCode', function( e, authcode ) { + _this.m_sAuthCode = authcode; + }); + + $J('#captchaRefreshLink' ).click( $J.proxy( this.RefreshCaptcha, this ) ); + + // include some additional scripts we may need + if ( typeof BigNumber == 'undefined' ) + $J.ajax( { url: 'https://store.st.dl.eccdnx.com/public/shared/javascript/crypto/jsbn.js', type: 'get', dataType: 'script', cache: true } ); + if ( typeof RSA == 'undefined' ) + $J.ajax( { url: 'https://store.st.dl.eccdnx.com/public/shared/javascript/crypto/rsa.js', type: 'get', dataType: 'script', cache: true } ); +} + +CLoginPromptManager.prototype.BIsIos = function() { return this.m_strMobileClientType == 'ios'; }; +CLoginPromptManager.prototype.BIsAndroid = function() { return this.m_strMobileClientType == 'android'; }; +CLoginPromptManager.prototype.BIsWinRT = function() { return this.m_strMobileClientType == 'winrt'; }; + +CLoginPromptManager.prototype.BIsUserInMobileClientVersionOrNewer = function( nMinMajor, nMinMinor, nMinPatch ) { + if ( (!this.BIsIos() && !this.BIsAndroid() && !this.BIsWinRT() ) || this.m_strMobileClientVersion == '' ) + return false; + + var version = this.m_strMobileClientVersion.match( /(?:(\d+) )?\(?(\d+)\.(\d+)(?:\.(\d+))?\)?/ ); + if ( version && version.length >= 3 ) + { + var nMajor = parseInt( version[2] ); + var nMinor = parseInt( version[3] ); + var nPatch = parseInt( version[4] ); + + return nMajor > nMinMajor || ( nMajor == nMinMajor && ( nMinor > nMinMinor || ( nMinor == nMinMinor && nPatch >= nMinPatch ) ) ); + } +}; + +CLoginPromptManager.prototype.GetParameters = function( rgParams ) +{ + var rgDefaultParams = { 'donotcache': new Date().getTime() }; + if ( this.m_strSessionID ) + rgDefaultParams['sessionid'] = this.m_strSessionID; + + return $J.extend( rgDefaultParams, rgParams ); +}; + +CLoginPromptManager.prototype.$LogonFormElement = function( strElementName ) +{ + var $Form = this.m_$LogonForm; + var elInput = this.m_$LogonForm[0].elements[ strElementName ]; + + if ( !elInput ) + { + var $Input = $J('', {type: 'hidden', name: strElementName } ); + $Form.append( $Input ); + return $Input; + } + else + { + return $J( elInput ); + } +}; + +CLoginPromptManager.prototype.HighlightFailure = function( msg ) +{ + if ( this.m_fnOnFailure ) + { + this.m_fnOnFailure( msg ); + + // always blur on mobile so the error can be seen + if ( this.m_bIsMobile && msg ) + $J('input:focus').blur(); + } + else + { + var $ErrorElement = $J('#error_display'); + + if ( msg ) + { + $ErrorElement.text( msg ); + $ErrorElement.slideDown(); + + if ( this.m_bIsMobile ) + $J('input:focus').blur(); + } + else + { + $ErrorElement.hide(); + } + } +}; + + +//Refresh the catpcha image +CLoginPromptManager.prototype.RefreshCaptcha = function() +{ + var _this = this; + $J.post( this.m_strBaseURL + 'refreshcaptcha/', this.GetParameters( {} ) ) + .done( function( data ) { + _this.UpdateCaptcha( data.gid ); + }); +}; + +CLoginPromptManager.prototype.UpdateCaptcha = function( gid ) +{ + if ( gid != -1 ) + { + $J('#captcha_entry').show(); + + var $ImageElement = $J('#captchaImg'); + + var strURL = this.m_strBaseURL + 'rendercaptcha/?gid=' + gid; + + if ( $ImageElement.data( 'noborder' ) ) + { + strURL += '&noborder=1'; + } + + $ImageElement.attr( 'src', strURL ); + this.$LogonFormElement('captcha_text').val(''); + } + else + { + $J('#captcha_entry' ).hide(); + } + this.m_gidCaptcha = gid; +}; + +CLoginPromptManager.prototype.DoLogin = function() +{ + var form = this.m_$LogonForm[0]; + + var username = form.elements['username'].value; + this.m_strUsernameEntered = username; + username = username.replace( /[^\x00-\x7F]/g, '' ); // remove non-standard-ASCII characters + this.m_strUsernameCanonical = username; + + var password = form.elements['password'].value; + password = password.replace( /[^\x00-\x7F]/g, '' ); // remove non-standard-ASCII characters + + if ( this.m_bLoginInFlight || password.length == 0 || username.length == 0 ) + return; + + this.m_bLoginInFlight = true; + $J('#login_btn_signin').hide(); + $J('#login_btn_wait').show(); + + // reset some state + this.HighlightFailure( '' ); + + var _this = this; + $J.post( this.m_strBaseURL + 'getrsakey/', this.GetParameters( { username: username } ) ) + .done( $J.proxy( this.OnRSAKeyResponse, this ) ) + .fail( function () { + ShowAlertDialog( '错误', '与 Steam 服务器通信时出现问题。请稍后重试。' ); + $J('#login_btn_signin').show(); + $J('#login_btn_wait').hide(); + _this.m_bLoginInFlight = false; + }); +}; + +// used to get mobile client to execute a steammobile URL +CLoginPromptManager.prototype.RunLocalURL = function(url) +{ + var $IFrame = $J('