You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
316 KiB
JavaScript
22 lines
316 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
self["webpackHotUpdate_N_E"]("_app-pages-browser_app_components_settings_tsx",{
|
|
|
|
/***/ "(app-pages-browser)/./app/components/settings.tsx":
|
|
/*!*************************************!*\
|
|
!*** ./app/components/settings.tsx ***!
|
|
\*************************************/
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Settings: function() { return /* binding */ Settings; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./settings.module.scss */ \"(app-pages-browser)/./app/components/settings.module.scss\");\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_settings_module_scss__WEBPACK_IMPORTED_MODULE_36__);\n/* harmony import */ var _icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload.svg */ \"(app-pages-browser)/./app/icons/reload.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/close.svg */ \"(app-pages-browser)/./app/icons/close.svg\");\n/* harmony import */ var _icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/copy.svg */ \"(app-pages-browser)/./app/icons/copy.svg\");\n/* harmony import */ var _icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/clear.svg */ \"(app-pages-browser)/./app/icons/clear.svg\");\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(app-pages-browser)/./app/icons/three-dots.svg\");\n/* harmony import */ var _icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/edit.svg */ \"(app-pages-browser)/./app/icons/edit.svg\");\n/* harmony import */ var _icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/fire.svg */ \"(app-pages-browser)/./app/icons/fire.svg\");\n/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/eye.svg */ \"(app-pages-browser)/./app/icons/eye.svg\");\n/* harmony import */ var _icons_download_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/download.svg */ \"(app-pages-browser)/./app/icons/download.svg\");\n/* harmony import */ var _icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icons/upload.svg */ \"(app-pages-browser)/./app/icons/upload.svg\");\n/* harmony import */ var _icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../icons/confirm.svg */ \"(app-pages-browser)/./app/icons/confirm.svg\");\n/* harmony import */ var _icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../icons/connection.svg */ \"(app-pages-browser)/./app/icons/connection.svg\");\n/* harmony import */ var _icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../icons/cloud-success.svg */ \"(app-pages-browser)/./app/icons/cloud-success.svg\");\n/* harmony import */ var _icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../icons/cloud-fail.svg */ \"(app-pages-browser)/./app/icons/cloud-fail.svg\");\n/* harmony import */ var _utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/auth-settings-events */ \"(app-pages-browser)/./app/utils/auth-settings-events.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _model_config__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./model-config */ \"(app-pages-browser)/./app/components/model-config.tsx\");\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _store_prompt__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../store/prompt */ \"(app-pages-browser)/./app/store/prompt.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./error */ \"(app-pages-browser)/./app/components/error.tsx\");\n/* harmony import */ var _input_range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./input-range */ \"(app-pages-browser)/./app/components/input-range.tsx\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./emoji */ \"(app-pages-browser)/./app/components/emoji.tsx\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _store_sync__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../store/sync */ \"(app-pages-browser)/./app/store/sync.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! nanoid */ \"(app-pages-browser)/./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../store/mask */ \"(app-pages-browser)/./app/store/mask.ts\");\n/* harmony import */ var _utils_cloud__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../utils/cloud */ \"(app-pages-browser)/./app/utils/cloud/index.ts\");\n/* harmony import */ var _tts_config__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./tts-config */ \"(app-pages-browser)/./app/components/tts-config.tsx\");\n/* harmony import */ var _realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./realtime-chat/realtime-config */ \"(app-pages-browser)/./app/components/realtime-chat/realtime-config.tsx\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction EditPromptModal(props) {\n _s();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const prompt = promptStore.get(props.id);\n return prompt ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.EditModal.Title,\n onClose: props.onClose,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm,\n bordered: true\n }, \"\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: prompt.title,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-title\"]),\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.title = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Input, {\n value: prompt.content,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-content\"]),\n rows: 10,\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.content = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 97,\n columnNumber: 5\n }, this) : null;\n}\n_s(EditPromptModal, \"EzYblIzMAFxPJK+yzvwKHzO38X8=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c = EditPromptModal;\nfunction UserPromptModal(props) {\n _s1();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const userPrompts = promptStore.getUserPrompts();\n const builtinPrompts = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.builtinPrompts;\n const allPrompts = userPrompts.concat(builtinPrompts);\n const [searchInput, setSearchInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [searchPrompts, setSearchPrompts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const prompts = searchInput.length > 0 ? searchPrompts : allPrompts;\n const [editingPromptId, setEditingPromptId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (searchInput.length > 0) {\n const searchResult = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.search(searchInput);\n setSearchPrompts(searchResult);\n } else {\n setSearchPrompts([]);\n }\n }, [\n searchInput\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: ()=>{\n const promptId = promptStore.add({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_37__.nanoid)(),\n createdAt: Date.now(),\n title: \"Empty Prompt\",\n content: \"Empty Prompt Content\"\n });\n setEditingPromptId(promptId);\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 178,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Add\n }, \"add\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 167,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-search\"]),\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Search,\n value: searchInput,\n onInput: (e)=>setSearchInput(e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 185,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-list\"]),\n children: prompts.map((v, _)=>/*#__PURE__*/ {\n var _v_id;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-item\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-header\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-title\"]),\n children: v.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 197,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-content\"]) + \" one-line\",\n children: v.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 198,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 196,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-buttons\"]),\n children: [\n v.isUser && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 206,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>promptStore.remove(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 205,\n columnNumber: 21\n }, this),\n v.isUser ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 213,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 212,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 219,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 218,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 225,\n columnNumber: 27\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.copyToClipboard)(v.content)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 224,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 203,\n columnNumber: 17\n }, this)\n ]\n }, (_v_id = v.id) !== null && _v_id !== void 0 ? _v_id : v.title, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 195,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 193,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 184,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n editingPromptId !== undefined && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(EditPromptModal, {\n id: editingPromptId,\n onClose: ()=>setEditingPromptId(undefined)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 237,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 162,\n columnNumber: 5\n }, this);\n}\n_s1(UserPromptModal, \"j8e7IC+Qorb6vYwwV+saiLvwdt4=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c1 = UserPromptModal;\nfunction DangerItems() {\n _s2();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const appConfig = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Confirm)) {\n appConfig.reset();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 256,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 252,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Confirm)) {\n chatStore.clearAllData();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 251,\n columnNumber: 5\n }, this);\n}\n_s2(DangerItems, \"bujEX65sRm+zZElj4DteQrQ/PHM=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig\n ];\n});\n_c2 = DangerItems;\nfunction CheckButton() {\n _s3();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const couldCheck = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [checkState, setCheckState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"none\");\n async function check() {\n setCheckState(\"checking\");\n const valid = await syncStore.check();\n setCheckState(valid ? \"success\" : \"failed\");\n }\n if (!couldCheck) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Check,\n bordered: true,\n onClick: check,\n icon: checkState === \"none\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 312,\n columnNumber: 11\n }, void 0) : checkState === \"checking\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 314,\n columnNumber: 11\n }, void 0) : checkState === \"success\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 316,\n columnNumber: 11\n }, void 0) : checkState === \"failed\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 318,\n columnNumber: 11\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 320,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 306,\n columnNumber: 5\n }, this);\n}\n_s3(CheckButton, \"/6RI3yEungwoEAZn8dbo3xLpAIg=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c3 = CheckButton;\nfunction SyncConfigModal(props) {\n _s4();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CheckButton, {}, \"check\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 336,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 340,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 337,\n columnNumber: 11\n }, void 0)\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: syncStore.provider,\n onChange: (e)=>{\n syncStore.update((config)=>config.provider = e.target.value);\n },\n children: Object.entries(_utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 351,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 347,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: syncStore.useProxy,\n onChange: (e)=>{\n syncStore.update((config)=>config.useProxy = e.currentTarget.checked);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 372,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, this),\n syncStore.useProxy ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.proxyUrl,\n onChange: (e)=>{\n syncStore.update((config)=>config.proxyUrl = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 387,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 383,\n columnNumber: 13\n }, this) : null\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 346,\n columnNumber: 9\n }, this),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.WebDAV && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 404,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 403,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.username,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 417,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 416,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.webdav.password,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.password = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 429,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 428,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 402,\n columnNumber: 13\n }, this)\n }, void 0, false),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.UpStash && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 446,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.username,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.STORAGE_KEY,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 459,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 458,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.upstash.apiKey,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.apiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 472,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 471,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 444,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 332,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 331,\n columnNumber: 5\n }, this);\n}\n_s4(SyncConfigModal, \"7LGHNOh5zyQVSbzbR8YwVjAXtoY=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c4 = SyncConfigModal;\nfunction SyncItems() {\n _s5();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const maskStore = (0,_store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore)();\n const couldSync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [showSyncConfigModal, setShowSyncConfigModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const stateOverview = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const sessions = chatStore.sessions;\n const messageCount = sessions.reduce((p, c)=>p + c.messages.length, 0);\n return {\n chat: sessions.length,\n message: messageCount,\n prompt: Object.keys(promptStore.prompts).length,\n mask: Object.keys(maskStore.masks).length\n };\n }, [\n chatStore.sessions,\n maskStore.masks,\n promptStore.prompts\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Overview(stateOverview),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 521,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n onClick: ()=>{\n syncStore.export();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 519,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_download_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 529,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n onClick: ()=>{\n syncStore.import();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 527,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 518,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 514,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 513,\n columnNumber: 7\n }, this),\n showSyncConfigModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncConfigModal, {\n onClose: ()=>setShowSyncConfigModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 540,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true);\n}\n_s5(SyncItems, \"nX5YTDzhgMuya10UCPA20+lQ5Uw=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore,\n _store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore\n ];\n});\n_c5 = SyncItems;\nfunction Settings() {\n var _getClientConfig;\n _s6();\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_38__.useNavigate)();\n const [showEmojiPicker, setShowEmojiPicker] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n const updateConfig = config.update;\n const updateStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore)();\n const [checkingUpdate, setCheckingUpdate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const currentVersion = updateStore.formatVersion(updateStore.version);\n const remoteId = updateStore.formatVersion(updateStore.remoteVersion);\n const hasNewVersion = (0,_utils__WEBPACK_IMPORTED_MODULE_23__.semverCompare)(currentVersion, remoteId) === -1;\n const updateUrl = ((_getClientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)()) === null || _getClientConfig === void 0 ? void 0 : _getClientConfig.isApp) ? _constant__WEBPACK_IMPORTED_MODULE_25__.RELEASE_URL : _constant__WEBPACK_IMPORTED_MODULE_25__.UPDATE_URL;\n function checkUpdate() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n setCheckingUpdate(true);\n updateStore.getLatestVersion(force).then(()=>{\n setCheckingUpdate(false);\n });\n console.log(\"[Update] local version \", updateStore.version);\n console.log(\"[Update] remote version \", updateStore.remoteVersion);\n }\n const accessStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore)();\n const shouldHideBalanceQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const isOpenAiUrl = accessStore.openaiUrl.includes(_constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL);\n return accessStore.hideBalanceQuery || isOpenAiUrl || accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure;\n }, [\n accessStore.hideBalanceQuery,\n accessStore.openaiUrl,\n accessStore.provider\n ]);\n const usage = {\n used: updateStore.used,\n subscription: updateStore.subscription\n };\n const [loadingUsage, setLoadingUsage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n function checkUsage() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n if (shouldHideBalanceQuery) {\n return;\n }\n setLoadingUsage(true);\n updateStore.updateUsage(force).finally(()=>{\n setLoadingUsage(false);\n });\n }\n const enabledAccessControl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>accessStore.enabledAccessControl(), // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const builtinCount = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.count.builtin;\n var _promptStore_getUserPrompts_length;\n const customCount = (_promptStore_getUserPrompts_length = promptStore.getUserPrompts().length) !== null && _promptStore_getUserPrompts_length !== void 0 ? _promptStore_getUserPrompts_length : 0;\n const [shouldShowPromptModal, setShowPromptModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const showUsage = accessStore.isAuthorized();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // checks per minutes\n checkUpdate();\n showUsage && checkUsage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const keydownEvent = (e)=>{\n if (e.key === \"Escape\") {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home);\n }\n };\n if (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) {\n // Force to set custom endpoint to true if it's app\n accessStore.update((state)=>{\n state.useCustomConfig = true;\n });\n }\n document.addEventListener(\"keydown\", keydownEvent);\n return ()=>{\n document.removeEventListener(\"keydown\", keydownEvent);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const clientConfig = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)(), []);\n const showAccessCode = enabledAccessControl && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp);\n const accessCodeComponent = showAccessCode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: accessStore.accessCode,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.accessCode = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 646,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 642,\n columnNumber: 5\n }, this);\n const saasStartComponent = /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"subtitle-button\"]),\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + \"\".concat(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Label),\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 673,\n columnNumber: 15\n }, void 0),\n type: \"primary\",\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n onClick: ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__.trackSettingsPageGuideToCPaymentClick)();\n window.location.href = _constant__WEBPACK_IMPORTED_MODULE_25__.SAAS_CHAT_URL;\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 668,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 660,\n columnNumber: 5\n }, this);\n const useCustomConfigComponent = !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n type: \"checkbox\",\n checked: accessStore.useCustomConfig,\n onChange: (e)=>accessStore.update((access)=>access.useCustomConfig = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 690,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 686,\n columnNumber: 7\n }, this);\n const openAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.OpenAI && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.openaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL,\n onChange: (e)=>accessStore.update((access)=>access.openaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 710,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 706,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n value: accessStore.openaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.openaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 726,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 722,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const azureConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n type: \"text\",\n value: accessStore.azureUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.azureUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 751,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 745,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n value: accessStore.azureApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.azureApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 767,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 763,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n type: \"text\",\n value: accessStore.azureApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.azureApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 783,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 779,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const googleConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Google && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n type: \"text\",\n value: accessStore.googleUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.googleUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 808,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 801,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n value: accessStore.googleApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 824,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 820,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n type: \"text\",\n value: accessStore.googleApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.googleApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 840,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 836,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n value: accessStore.googleSafetySettings,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleSafetySettings = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_25__.GoogleSafetySettingsThreshold).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 868,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 856,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 852,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const anthropicConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Anthropic && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n type: \"text\",\n value: accessStore.anthropicUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.anthropicUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 887,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 880,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n value: accessStore.anthropicApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.anthropicApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 903,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 899,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n type: \"text\",\n value: accessStore.anthropicApiVersion,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.Vision,\n onChange: (e)=>accessStore.update((access)=>access.anthropicApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 919,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 915,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const baiduConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Baidu && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n type: \"text\",\n value: accessStore.baiduUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Baidu.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.baiduUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 941,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 937,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n value: accessStore.baiduApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 957,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 953,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n value: accessStore.baiduSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 973,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 969,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const tencentConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Tencent && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n type: \"text\",\n value: accessStore.tencentUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Tencent.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.tencentUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 995,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 991,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n value: accessStore.tencentSecretId,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretId = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1011,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1007,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n value: accessStore.tencentSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1027,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1023,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const byteDanceConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ByteDance && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n type: \"text\",\n value: accessStore.bytedanceUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.bytedanceUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1052,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1045,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n value: accessStore.bytedanceApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.bytedanceApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1068,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1064,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const alibabaConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Alibaba && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n type: \"text\",\n value: accessStore.alibabaUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.alibabaUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1093,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1086,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n value: accessStore.alibabaApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.alibabaApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1109,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1105,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const moonshotConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Moonshot && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n type: \"text\",\n value: accessStore.moonshotUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.moonshotUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1134,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1127,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n value: accessStore.moonshotApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.moonshotApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1150,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1146,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const deepseekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.DeepSeek && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n type: \"text\",\n value: accessStore.deepseekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.deepseekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1175,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1168,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n value: accessStore.deepseekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.deepseekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1191,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1187,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const XAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.XAI && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.xaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.xaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1214,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1208,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n value: accessStore.xaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.xaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1230,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1226,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const chatglmConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ChatGLM && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n type: \"text\",\n value: accessStore.chatglmUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.chatglmUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1255,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1248,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n value: accessStore.chatglmApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.chatglmApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const siliconflowConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.SiliconFlow && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n type: \"text\",\n value: accessStore.siliconflowUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.siliconflowUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1295,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1288,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n value: accessStore.siliconflowApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.siliconflowApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1311,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1307,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const stabilityConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Stability && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n type: \"text\",\n value: accessStore.stabilityUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.stabilityUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1336,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1329,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n value: accessStore.stabilityApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.stabilityApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1352,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1348,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const lflytekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Iflytek && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n type: \"text\",\n value: accessStore.iflytekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.iflytekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1376,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1369,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n value: accessStore.iflytekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1392,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1388,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n value: accessStore.iflytekApiSecret,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiSecret = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1409,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1405,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n var _config_fontSize, _usage_used, _usage_subscription;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_error__WEBPACK_IMPORTED_MODULE_27__.ErrorBoundary, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header\",\n \"data-tauri-drag-region\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-title\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-main-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1428,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-sub-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SubTitle\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1431,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1427,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1436,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1437,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Close,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1441,\n columnNumber: 21\n }, void 0),\n onClick: ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home),\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1439,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1438,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1435,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1426,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default().settings),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Popover, {\n onClose: ()=>setShowEmojiPicker(false),\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.AvatarPicker, {\n onEmojiClick: (avatar)=>{\n updateConfig((config)=>config.avatar = avatar);\n setShowEmojiPicker(false);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1454,\n columnNumber: 17\n }, void 0),\n open: showEmojiPicker,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n tabIndex: 0,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default().avatar),\n onClick: ()=>{\n setShowEmojiPicker(!showEmojiPicker);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.Avatar, {\n avatar: config.avatar\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1471,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1463,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1451,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1450,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.Version(currentVersion !== null && currentVersion !== void 0 ? currentVersion : \"unknown\"),\n subTitle: checkingUpdate ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsChecking : hasNewVersion ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.FoundUpdate(remoteId !== null && remoteId !== void 0 ? remoteId : \"ERROR\") : _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsLatest,\n children: checkingUpdate ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1487,\n columnNumber: 15\n }, this) : hasNewVersion ? (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1491,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate,\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.clientUpdate)()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1490,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n href: updateUrl,\n target: \"_blank\",\n className: \"link\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1496,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1502,\n columnNumber: 23\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.CheckUpdate,\n onClick: ()=>checkUpdate(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1501,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1476,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n value: config.submitKey,\n onChange: (e)=>{\n updateConfig((config)=>config.submitKey = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.SubmitKey).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1521,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1510,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1509,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n value: config.theme,\n onChange: (e)=>{\n updateConfig((config)=>config.theme = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.Theme).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1539,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1529,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1528,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n value: (0,_locales__WEBPACK_IMPORTED_MODULE_22__.getLang)(),\n onChange: (e)=>{\n (0,_locales__WEBPACK_IMPORTED_MODULE_22__.changeLang)(e.target.value);\n },\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.AllLangs.map((lang)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: lang,\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.ALL_LANG_OPTIONS[lang]\n }, lang, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1555,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1547,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1546,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_input_range__WEBPACK_IMPORTED_MODULE_28__.InputRange, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n title: \"\".concat((_config_fontSize = config.fontSize) !== null && _config_fontSize !== void 0 ? _config_fontSize : 14, \"px\"),\n value: config.fontSize,\n min: \"12\",\n max: \"40\",\n step: \"1\",\n onChange: (e)=>updateConfig((config)=>config.fontSize = Number.parseInt(e.currentTarget.value))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1566,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1562,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n type: \"text\",\n value: config.fontFamily,\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Placeholder,\n onChange: (e)=>updateConfig((config)=>config.fontFamily = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1586,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1582,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n type: \"checkbox\",\n checked: config.enableAutoGenerateTitle,\n onChange: (e)=>updateConfig((config)=>config.enableAutoGenerateTitle = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1603,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1599,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n type: \"checkbox\",\n checked: config.sendPreviewBubble,\n onChange: (e)=>updateConfig((config)=>config.sendPreviewBubble = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1620,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1616,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n type: \"checkbox\",\n checked: config.enableArtifacts,\n onChange: (e)=>updateConfig((config)=>config.enableArtifacts = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1637,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1633,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n type: \"checkbox\",\n checked: config.enableCodeFold,\n \"data-testid\": \"enable-code-fold-checkbox\",\n onChange: (e)=>updateConfig((config)=>config.enableCodeFold = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1653,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1649,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1449,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1667,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n id: _constant__WEBPACK_IMPORTED_MODULE_25__.SlotID.CustomModel,\n children: [\n saasStartComponent,\n accessCodeComponent,\n !accessStore.hideUserApiKey && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n useCustomConfigComponent,\n accessStore.useCustomConfig && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Provider.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Provider.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Provider.Title,\n value: accessStore.provider,\n onChange: (e)=>{\n accessStore.update((access)=>access.provider = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1695,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1683,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1679,\n columnNumber: 19\n }, this),\n openAIConfigComponent,\n azureConfigComponent,\n googleConfigComponent,\n anthropicConfigComponent,\n baiduConfigComponent,\n byteDanceConfigComponent,\n alibabaConfigComponent,\n tencentConfigComponent,\n moonshotConfigComponent,\n deepseekConfigComponent,\n stabilityConfigComponent,\n lflytekConfigComponent,\n XAIConfigComponent,\n chatglmConfigComponent,\n siliconflowConfigComponent\n ]\n }, void 0, true)\n ]\n }, void 0, true),\n !shouldHideBalanceQuery && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Usage.Title,\n subTitle: showUsage ? loadingUsage ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Usage.IsChecking : _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Usage.SubTitle((_usage_used = usage === null || usage === void 0 ? void 0 : usage.used) !== null && _usage_used !== void 0 ? _usage_used : \"[?]\", (_usage_subscription = usage === null || usage === void 0 ? void 0 : usage.subscription) !== null && _usage_subscription !== void 0 ? _usage_subscription : \"[?]\") : _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Usage.NoAccess,\n children: !showUsage || loadingUsage ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1737,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1740,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Usage.Check,\n onClick: ()=>checkUsage(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1739,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1723,\n columnNumber: 13\n }, this) : null,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomModel.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomModel.SubTitle,\n vertical: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomModel.Title,\n style: {\n width: \"100%\",\n maxWidth: \"unset\",\n textAlign: \"left\"\n },\n type: \"text\",\n value: config.customModels,\n placeholder: \"model1,model2,model3\",\n onChange: (e)=>config.update((config)=>config.customModels = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1753,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1748,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1669,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_model_config__WEBPACK_IMPORTED_MODULE_19__.ModelConfigList, {\n modelConfig: config.modelConfig,\n updateConfig: (updater)=>{\n const modelConfig = {\n ...config.modelConfig\n };\n updater(modelConfig);\n config.update((config)=>config.modelConfig = modelConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1769,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1768,\n columnNumber: 9\n }, this),\n shouldShowPromptModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(UserPromptModal, {\n onClose: ()=>setShowPromptModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1780,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_35__.RealtimeConfigList, {\n realtimeConfig: config.realtimeConfig,\n updateConfig: (updater)=>{\n const realtimeConfig = {\n ...config.realtimeConfig\n };\n updater(realtimeConfig);\n config.update((config)=>config.realtimeConfig = realtimeConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1783,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1782,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_tts_config__WEBPACK_IMPORTED_MODULE_34__.TTSConfigList, {\n ttsConfig: config.ttsConfig,\n updateConfig: (updater)=>{\n const ttsConfig = {\n ...config.ttsConfig\n };\n updater(ttsConfig);\n config.update((config)=>config.ttsConfig = ttsConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1795,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1794,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DangerItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1805,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1448,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1425,\n columnNumber: 5\n }, this);\n}\n_s6(Settings, \"gamYpAPQsfvuG0awLCYLheWjSrg=\", false, function() {\n return [\n react_router_dom__WEBPACK_IMPORTED_MODULE_38__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c6 = Settings;\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"EditPromptModal\");\n$RefreshReg$(_c1, \"UserPromptModal\");\n$RefreshReg$(_c2, \"DangerItems\");\n$RefreshReg$(_c3, \"CheckButton\");\n$RefreshReg$(_c4, \"SyncConfigModal\");\n$RefreshReg$(_c5, \"SyncItems\");\n$RefreshReg$(_c6, \"Settings\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRDtBQUVUO0FBRUE7QUFDTDtBQUNJO0FBQ0Y7QUFDRTtBQUNPO0FBQ1Q7QUFDQTtBQUNGO0FBQ1U7QUFDSjtBQUVFO0FBRU07QUFDSztBQUNOO0FBQ2tDO0FBV3BFO0FBQytCO0FBRVg7QUFRcEI7QUFPRTtBQUNvRDtBQUMzQztBQXlCUjtBQUNtRDtBQUNoQztBQUNHO0FBQ0k7QUFDQTtBQUNJO0FBQ047QUFDYjtBQUNhO0FBQ0M7QUFDRDtBQUN3QjtBQUVyRSxTQUFTa0YsZ0JBQWdCQyxLQUEwQzs7SUFDakUsTUFBTUMsY0FBY2YsOERBQWNBO0lBQ2xDLE1BQU1nQixTQUFTRCxZQUFZRSxHQUFHLENBQUNILE1BQU1JLEVBQUU7SUFFdkMsT0FBT0YsdUJBQ0wsOERBQUNHO1FBQUlDLFdBQVU7a0JBQ2IsNEVBQUNsRSwyQ0FBS0E7WUFDSm1FLE9BQU90RCxpREFBTUEsQ0FBQ3VELFFBQVEsQ0FBQ0MsTUFBTSxDQUFDQyxTQUFTLENBQUNDLEtBQUs7WUFDN0NDLFNBQVNaLE1BQU1ZLE9BQU87WUFDdEJDLFNBQVM7OEJBQ1AsOERBQUNuRSxnREFBVUE7b0JBRVRvRSxTQUFTZCxNQUFNWSxPQUFPO29CQUN0QkcsTUFBTTlELGlEQUFNQSxDQUFDK0QsRUFBRSxDQUFDQyxPQUFPO29CQUN2QkMsUUFBUTttQkFISjs7Ozs7YUFLUDtzQkFFRCw0RUFBQ2I7Z0JBQUlDLFdBQVd0RixvRkFBMkI7O2tDQUN6Qyw4REFBQ21HO3dCQUNDQyxNQUFLO3dCQUNMQyxPQUFPbkIsT0FBT0ssS0FBSzt3QkFDbkJlLFVBQVUsQ0FBQ3BCLE9BQU9xQixNQUFNO3dCQUN4QmpCLFdBQVd0RixvRkFBMkI7d0JBQ3RDd0csU0FBUyxDQUFDQyxJQUNSeEIsWUFBWXlCLFlBQVksQ0FDdEIxQixN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TSxDQUFDLENBQUNDLFNBQVlBLE9BQU9vTyxXQUFXLEdBQUdBOzRCQUNsRDs7Ozs7Ozs7Ozs7b0JBSUg1SSx1Q0FDQyw4REFBQ25KO3dCQUFnQmxCLFNBQVMsSUFBTXNLLG1CQUFtQjs7Ozs7O2tDQUVyRCw4REFBQ2hQLDBDQUFJQTtrQ0FDSCw0RUFBQzRELCtFQUFrQkE7NEJBQ2pCaVUsZ0JBQWdCdE8sT0FBT3NPLGNBQWM7NEJBQ3JDbkwsY0FBYyxDQUFDa0w7Z0NBQ2IsTUFBTUMsaUJBQWlCO29DQUFFLEdBQUd0TyxPQUFPc08sY0FBYztnQ0FBQztnQ0FDbERELFFBQVFDO2dDQUNSdE8sT0FBT0QsTUFBTSxDQUNYLENBQUNDLFNBQVlBLE9BQU9zTyxjQUFjLEdBQUdBOzRCQUV6Qzs7Ozs7Ozs7Ozs7a0NBR0osOERBQUM3WCwwQ0FBSUE7a0NBQ0gsNEVBQUMyRCx1REFBYUE7NEJBQ1ptVSxXQUFXdk8sT0FBT3VPLFNBQVM7NEJBQzNCcEwsY0FBYyxDQUFDa0w7Z0NBQ2IsTUFBTUUsWUFBWTtvQ0FBRSxHQUFHdk8sT0FBT3VPLFNBQVM7Z0NBQUM7Z0NBQ3hDRixRQUFRRTtnQ0FDUnZPLE9BQU9ELE1BQU0sQ0FBQyxDQUFDQyxTQUFZQSxPQUFPdU8sU0FBUyxHQUFHQTs0QkFDaEQ7Ozs7Ozs7Ozs7O2tDQUlKLDhEQUFDcFE7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSVQ7SUEvdUNnQnBEOztRQUNHbkIsMERBQVdBO1FBRWJyQyxpREFBWUE7UUFHUEYsbURBQWNBO1FBaUJkQyxtREFBY0E7UUFxQ2RtQywwREFBY0E7OztNQTVEcEJzQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy50c3g/MDkwZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL3NldHRpbmdzLm1vZHVsZS5zY3NzXCI7XHJcblxyXG5pbXBvcnQgUmVzZXRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWQuc3ZnXCI7XHJcbmltcG9ydCBBZGRJY29uIGZyb20gXCIuLi9pY29ucy9hZGQuc3ZnXCI7XHJcbmltcG9ydCBDbG9zZUljb24gZnJvbSBcIi4uL2ljb25zL2Nsb3NlLnN2Z1wiO1xyXG5pbXBvcnQgQ29weUljb24gZnJvbSBcIi4uL2ljb25zL2NvcHkuc3ZnXCI7XHJcbmltcG9ydCBDbGVhckljb24gZnJvbSBcIi4uL2ljb25zL2NsZWFyLnN2Z1wiO1xyXG5pbXBvcnQgTG9hZGluZ0ljb24gZnJvbSBcIi4uL2ljb25zL3RocmVlLWRvdHMuc3ZnXCI7XHJcbmltcG9ydCBFZGl0SWNvbiBmcm9tIFwiLi4vaWNvbnMvZWRpdC5zdmdcIjtcclxuaW1wb3J0IEZpcmVJY29uIGZyb20gXCIuLi9pY29ucy9maXJlLnN2Z1wiO1xyXG5pbXBvcnQgRXllSWNvbiBmcm9tIFwiLi4vaWNvbnMvZXllLnN2Z1wiO1xyXG5pbXBvcnQgRG93bmxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9kb3dubG9hZC5zdmdcIjtcclxuaW1wb3J0IFVwbG9hZEljb24gZnJvbSBcIi4uL2ljb25zL3VwbG9hZC5zdmdcIjtcclxuaW1wb3J0IENvbmZpZ0ljb24gZnJvbSBcIi4uL2ljb25zL2NvbmZpZy5zdmdcIjtcclxuaW1wb3J0IENvbmZpcm1JY29uIGZyb20gXCIuLi9pY29ucy9jb25maXJtLnN2Z1wiO1xyXG5cclxuaW1wb3J0IENvbm5lY3Rpb25JY29uIGZyb20gXCIuLi9pY29ucy9jb25uZWN0aW9uLnN2Z1wiO1xyXG5pbXBvcnQgQ2xvdWRTdWNjZXNzSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvdWQtc3VjY2Vzcy5zdmdcIjtcclxuaW1wb3J0IENsb3VkRmFpbEljb24gZnJvbSBcIi4uL2ljb25zL2Nsb3VkLWZhaWwuc3ZnXCI7XHJcbmltcG9ydCB7IHRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2sgfSBmcm9tIFwiLi4vdXRpbHMvYXV0aC1zZXR0aW5ncy1ldmVudHNcIjtcclxuaW1wb3J0IHtcclxuICBJbnB1dCxcclxuICBMaXN0LFxyXG4gIExpc3RJdGVtLFxyXG4gIE1vZGFsLFxyXG4gIFBhc3N3b3JkSW5wdXQsXHJcbiAgUG9wb3ZlcixcclxuICBTZWxlY3QsXHJcbiAgc2hvd0NvbmZpcm0sXHJcbiAgc2hvd1RvYXN0LFxyXG59IGZyb20gXCIuL3VpLWxpYlwiO1xyXG5pbXBvcnQgeyBNb2RlbENvbmZpZ0xpc3QgfSBmcm9tIFwiLi9tb2RlbC1jb25maWdcIjtcclxuXHJcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tIFwiLi9idXR0b25cIjtcclxuaW1wb3J0IHtcclxuICBTdWJtaXRLZXksXHJcbiAgdXNlQ2hhdFN0b3JlLFxyXG4gIFRoZW1lLFxyXG4gIHVzZVVwZGF0ZVN0b3JlLFxyXG4gIHVzZUFjY2Vzc1N0b3JlLFxyXG4gIHVzZUFwcENvbmZpZyxcclxufSBmcm9tIFwiLi4vc3RvcmVcIjtcclxuXHJcbmltcG9ydCBMb2NhbGUsIHtcclxuICBBbGxMYW5ncyxcclxuICBBTExfTEFOR19PUFRJT05TLFxyXG4gIGNoYW5nZUxhbmcsXHJcbiAgZ2V0TGFuZyxcclxufSBmcm9tIFwiLi4vbG9jYWxlc1wiO1xyXG5pbXBvcnQgeyBjb3B5VG9DbGlwYm9hcmQsIGNsaWVudFVwZGF0ZSwgc2VtdmVyQ29tcGFyZSB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XHJcbmltcG9ydCB7XHJcbiAgQW50aHJvcGljLFxyXG4gIEF6dXJlLFxyXG4gIEJhaWR1LFxyXG4gIFRlbmNlbnQsXHJcbiAgQnl0ZURhbmNlLFxyXG4gIEFsaWJhYmEsXHJcbiAgTW9vbnNob3QsXHJcbiAgWEFJLFxyXG4gIEdvb2dsZSxcclxuICBHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCxcclxuICBPUEVOQUlfQkFTRV9VUkwsXHJcbiAgUGF0aCxcclxuICBSRUxFQVNFX1VSTCxcclxuICBTVE9SQUdFX0tFWSxcclxuICBTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgU2xvdElELFxyXG4gIFVQREFURV9VUkwsXHJcbiAgU3RhYmlsaXR5LFxyXG4gIElmbHl0ZWssXHJcbiAgU0FBU19DSEFUX1VSTCxcclxuICBDaGF0R0xNLFxyXG4gIERlZXBTZWVrLFxyXG4gIFNpbGljb25GbG93LFxyXG59IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBQcm9tcHQsIFNlYXJjaFNlcnZpY2UsIHVzZVByb21wdFN0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL3Byb21wdFwiO1xyXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vZXJyb3JcIjtcclxuaW1wb3J0IHsgSW5wdXRSYW5nZSB9IGZyb20gXCIuL2lucHV0LXJhbmdlXCI7XHJcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgQXZhdGFyLCBBdmF0YXJQaWNrZXIgfSBmcm9tIFwiLi9lbW9qaVwiO1xyXG5pbXBvcnQgeyBnZXRDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL2NsaWVudFwiO1xyXG5pbXBvcnQgeyB1c2VTeW5jU3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvc3luY1wiO1xyXG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tIFwibmFub2lkXCI7XHJcbmltcG9ydCB7IHVzZU1hc2tTdG9yZSB9IGZyb20gXCIuLi9zdG9yZS9tYXNrXCI7XHJcbmltcG9ydCB7IFByb3ZpZGVyVHlwZSB9IGZyb20gXCIuLi91dGlscy9jbG91ZFwiO1xyXG5pbXBvcnQgeyBUVFNDb25maWdMaXN0IH0gZnJvbSBcIi4vdHRzLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBSZWFsdGltZUNvbmZpZ0xpc3QgfSBmcm9tIFwiLi9yZWFsdGltZS1jaGF0L3JlYWx0aW1lLWNvbmZpZ1wiO1xyXG5cclxuZnVuY3Rpb24gRWRpdFByb21wdE1vZGFsKHByb3BzOiB7IGlkOiBzdHJpbmc7IG9uQ2xvc2U6ICgpID0+IHZvaWQgfSkge1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCBwcm9tcHQgPSBwcm9tcHRTdG9yZS5nZXQocHJvcHMuaWQpO1xyXG5cclxuICByZXR1cm4gcHJvbXB0ID8gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1tYXNrXCI+XHJcbiAgICAgIDxNb2RhbFxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkVkaXRNb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXtwcm9wcy5vbkNsb3NlfVxyXG4gICAgICAgIGFjdGlvbnM9e1tcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cIlwiXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xvc2V9XHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5Db25maXJtfVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0LXByb21wdC1tb2RhbFwiXX0+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICB2YWx1ZT17cHJvbXB0LnRpdGxlfVxyXG4gICAgICAgICAgICByZWFkT25seT17IXByb21wdC5pc1VzZXJ9XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdC1wcm9tcHQtdGl0bGVcIl19XHJcbiAgICAgICAgICAgIG9uSW5wdXQ9eyhlKSA9PlxyXG4gICAgICAgICAgICAgIHByb21wdFN0b3JlLnVwZGF0ZVByb21wdChcclxuICAgICAgICAgICAgICAgIHByb3BzLmlkLFxyXG4gICAgICAgICAgICAgICAgKHByb21wdCkgPT4gKHByb21wdC50aXRsZSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDxJbnB1dFxyXG4gICAgICAgICAgICB2YWx1ZT17cHJvbXB0LmNvbnRlbnR9XHJcbiAgICAgICAgICAgIHJlYWRPbmx5PXshcHJvbXB0LmlzVXNlcn1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0LXByb21wdC1jb250ZW50XCJdfVxyXG4gICAgICAgICAgICByb3dzPXsxMH1cclxuICAgICAgICAgICAgb25JbnB1dD17KGUpID0+XHJcbiAgICAgICAgICAgICAgcHJvbXB0U3RvcmUudXBkYXRlUHJvbXB0KFxyXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXHJcbiAgICAgICAgICAgICAgICAocHJvbXB0KSA9PiAocHJvbXB0LmNvbnRlbnQgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPjwvSW5wdXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTW9kYWw+XHJcbiAgICA8L2Rpdj5cclxuICApIDogbnVsbDtcclxufVxyXG5cclxuZnVuY3Rpb24gVXNlclByb21wdE1vZGFsKHByb3BzOiB7IG9uQ2xvc2U/OiAoKSA9PiB2b2lkIH0pIHtcclxuICBjb25zdCBwcm9tcHRTdG9yZSA9IHVzZVByb21wdFN0b3JlKCk7XHJcbiAgY29uc3QgdXNlclByb21wdHMgPSBwcm9tcHRTdG9yZS5nZXRVc2VyUHJvbXB0cygpO1xyXG4gIGNvbnN0IGJ1aWx0aW5Qcm9tcHRzID0gU2VhcmNoU2VydmljZS5idWlsdGluUHJvbXB0cztcclxuICBjb25zdCBhbGxQcm9tcHRzID0gdXNlclByb21wdHMuY29uY2F0KGJ1aWx0aW5Qcm9tcHRzKTtcclxuICBjb25zdCBbc2VhcmNoSW5wdXQsIHNldFNlYXJjaElucHV0XSA9IHVzZVN0YXRlKFwiXCIpO1xyXG4gIGNvbnN0IFtzZWFyY2hQcm9tcHRzLCBzZXRTZWFyY2hQcm9tcHRzXSA9IHVzZVN0YXRlPFByb21wdFtdPihbXSk7XHJcbiAgY29uc3QgcHJvbXB0cyA9IHNlYXJjaElucHV0Lmxlbmd0aCA+IDAgPyBzZWFyY2hQcm9tcHRzIDogYWxsUHJvbXB0cztcclxuXHJcbiAgY29uc3QgW2VkaXRpbmdQcm9tcHRJZCwgc2V0RWRpdGluZ1Byb21wdElkXSA9IHVzZVN0YXRlPHN0cmluZz4oKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChzZWFyY2hJbnB1dC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdCA9IFNlYXJjaFNlcnZpY2Uuc2VhcmNoKHNlYXJjaElucHV0KTtcclxuICAgICAgc2V0U2VhcmNoUHJvbXB0cyhzZWFyY2hSZXN1bHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0U2VhcmNoUHJvbXB0cyhbXSk7XHJcbiAgICB9XHJcbiAgfSwgW3NlYXJjaElucHV0XSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuVGl0bGV9XHJcbiAgICAgICAgb25DbG9zZT17KCkgPT4gcHJvcHMub25DbG9zZT8uKCl9XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiYWRkXCJcclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHByb21wdElkID0gcHJvbXB0U3RvcmUuYWRkKHtcclxuICAgICAgICAgICAgICAgIGlkOiBuYW5vaWQoKSxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVtcHR5IFByb21wdFwiLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogXCJFbXB0eSBQcm9tcHQgQ29udGVudFwiLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHNldEVkaXRpbmdQcm9tcHRJZChwcm9tcHRJZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxBZGRJY29uIC8+fVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0Lk1vZGFsLkFkZH1cclxuICAgICAgICAgIC8+LFxyXG4gICAgICAgIF19XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtbW9kYWxcIl19PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1zZWFyY2hcIl19XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0Lk1vZGFsLlNlYXJjaH1cclxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaElucHV0fVxyXG4gICAgICAgICAgICBvbklucHV0PXsoZSkgPT4gc2V0U2VhcmNoSW5wdXQoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKX1cclxuICAgICAgICAgID48L2lucHV0PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1saXN0XCJdfT5cclxuICAgICAgICAgICAge3Byb21wdHMubWFwKCh2LCBfKSA9PiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWl0ZW1cIl19IGtleT17di5pZCA/PyB2LnRpdGxlfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1oZWFkZXJcIl19PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtdGl0bGVcIl19Pnt2LnRpdGxlfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtY29udGVudFwiXSArIFwiIG9uZS1saW5lXCJ9PlxyXG4gICAgICAgICAgICAgICAgICAgIHt2LmNvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvbnNcIl19PlxyXG4gICAgICAgICAgICAgICAgICB7di5pc1VzZXIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8Q2xlYXJJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1idXR0b25cIl19XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBwcm9tcHRTdG9yZS5yZW1vdmUodi5pZCEpfVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHt2LmlzVXNlciA/IChcclxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEVkaXRJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1idXR0b25cIl19XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRFZGl0aW5nUHJvbXB0SWQodi5pZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEV5ZUljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEVkaXRpbmdQcm9tcHRJZCh2LmlkKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGljb249ezxDb3B5SWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjb3B5VG9DbGlwYm9hcmQodi5jb250ZW50KX1cclxuICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L01vZGFsPlxyXG5cclxuICAgICAge2VkaXRpbmdQcm9tcHRJZCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICA8RWRpdFByb21wdE1vZGFsXHJcbiAgICAgICAgICBpZD17ZWRpdGluZ1Byb21wdElkIX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldEVkaXRpbmdQcm9tcHRJZCh1bmRlZmluZWQpfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBEYW5nZXJJdGVtcygpIHtcclxuICBjb25zdCBjaGF0U3RvcmUgPSB1c2VDaGF0U3RvcmUoKTtcclxuICBjb25zdCBhcHBDb25maWcgPSB1c2VBcHBDb25maWcoKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxMaXN0PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5SZXNldC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5SZXNldC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlRpdGxlfVxyXG4gICAgICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5SZXNldC5BY3Rpb259XHJcbiAgICAgICAgICBvbkNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChhd2FpdCBzaG93Q29uZmlybShMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LkNvbmZpcm0pKSB7XHJcbiAgICAgICAgICAgICAgYXBwQ29uZmlnLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB0eXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5DbGVhci5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5DbGVhci5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlRpdGxlfVxyXG4gICAgICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLkRhbmdlci5DbGVhci5BY3Rpb259XHJcbiAgICAgICAgICBvbkNsaWNrPXthc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChhd2FpdCBzaG93Q29uZmlybShMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLkNvbmZpcm0pKSB7XHJcbiAgICAgICAgICAgICAgY2hhdFN0b3JlLmNsZWFyQWxsRGF0YSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgdHlwZT1cImRhbmdlclwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvTGlzdD5cclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBDaGVja0J1dHRvbigpIHtcclxuICBjb25zdCBzeW5jU3RvcmUgPSB1c2VTeW5jU3RvcmUoKTtcclxuXHJcbiAgY29uc3QgY291bGRDaGVjayA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHN5bmNTdG9yZS5jbG91ZFN5bmMoKTtcclxuICB9LCBbc3luY1N0b3JlXSk7XHJcblxyXG4gIGNvbnN0IFtjaGVja1N0YXRlLCBzZXRDaGVja1N0YXRlXSA9IHVzZVN0YXRlPFxyXG4gICAgXCJub25lXCIgfCBcImNoZWNraW5nXCIgfCBcInN1Y2Nlc3NcIiB8IFwiZmFpbGVkXCJcclxuICA+KFwibm9uZVwiKTtcclxuXHJcbiAgYXN5bmMgZnVuY3Rpb24gY2hlY2soKSB7XHJcbiAgICBzZXRDaGVja1N0YXRlKFwiY2hlY2tpbmdcIik7XHJcbiAgICBjb25zdCB2YWxpZCA9IGF3YWl0IHN5bmNTdG9yZS5jaGVjaygpO1xyXG4gICAgc2V0Q2hlY2tTdGF0ZSh2YWxpZCA/IFwic3VjY2Vzc1wiIDogXCJmYWlsZWRcIik7XHJcbiAgfVxyXG5cclxuICBpZiAoIWNvdWxkQ2hlY2spIHJldHVybiBudWxsO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPEljb25CdXR0b25cclxuICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLk1vZGFsLkNoZWNrfVxyXG4gICAgICBib3JkZXJlZFxyXG4gICAgICBvbkNsaWNrPXtjaGVja31cclxuICAgICAgaWNvbj17XHJcbiAgICAgICAgY2hlY2tTdGF0ZSA9PT0gXCJub25lXCIgPyAoXHJcbiAgICAgICAgICA8Q29ubmVjdGlvbkljb24gLz5cclxuICAgICAgICApIDogY2hlY2tTdGF0ZSA9PT0gXCJjaGVja2luZ1wiID8gKFxyXG4gICAgICAgICAgPExvYWRpbmdJY29uIC8+XHJcbiAgICAgICAgKSA6IGNoZWNrU3RhdGUgPT09IFwic3VjY2Vzc1wiID8gKFxyXG4gICAgICAgICAgPENsb3VkU3VjY2Vzc0ljb24gLz5cclxuICAgICAgICApIDogY2hlY2tTdGF0ZSA9PT0gXCJmYWlsZWRcIiA/IChcclxuICAgICAgICAgIDxDbG91ZEZhaWxJY29uIC8+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxDb25uZWN0aW9uSWNvbiAvPlxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG4gICAgPjwvSWNvbkJ1dHRvbj5cclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBTeW5jQ29uZmlnTW9kYWwocHJvcHM6IHsgb25DbG9zZT86ICgpID0+IHZvaWQgfSkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1tYXNrXCI+XHJcbiAgICAgIDxNb2RhbFxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuTW9kYWwuVGl0bGV9XHJcbiAgICAgICAgb25DbG9zZT17KCkgPT4gcHJvcHMub25DbG9zZT8uKCl9XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPENoZWNrQnV0dG9uIGtleT1cImNoZWNrXCIgLz4sXHJcbiAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICBrZXk9XCJjb25maXJtXCJcclxuICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25DbG9zZX1cclxuICAgICAgICAgICAgaWNvbj17PENvbmZpcm1JY29uIC8+fVxyXG4gICAgICAgICAgICBib3JkZXJlZFxyXG4gICAgICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuQ29uZmlybX1cclxuICAgICAgICAgIC8+LFxyXG4gICAgICAgIF19XHJcbiAgICAgID5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlN5bmNUeXBlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlN5bmNUeXBlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgdmFsdWU9e3N5bmNTdG9yZS5wcm92aWRlcn1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5wcm92aWRlciA9IGUudGFyZ2V0LnZhbHVlIGFzIFByb3ZpZGVyVHlwZSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7T2JqZWN0LmVudHJpZXMoUHJvdmlkZXJUeXBlKS5tYXAoKFtrLCB2XSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17dn0ga2V5PXtrfT5cclxuICAgICAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlByb3h5LlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlByb3h5LlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e3N5bmNTdG9yZS51c2VQcm94eX1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcudXNlUHJveHkgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgIHtzeW5jU3RvcmUudXNlUHJveHkgPyAoXHJcbiAgICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHlVcmwuVGl0bGV9XHJcbiAgICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Qcm94eVVybC5TdWJUaXRsZX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N5bmNTdG9yZS5wcm94eVVybH1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcucHJveHlVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICkgOiBudWxsfVxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAge3N5bmNTdG9yZS5wcm92aWRlciA9PT0gUHJvdmlkZXJUeXBlLldlYkRBViAmJiAoXHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8TGlzdD5cclxuICAgICAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5XZWJEYXYuRW5kcG9pbnR9PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3N5bmNTdG9yZS53ZWJkYXYuZW5kcG9pbnR9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnLndlYmRhdi5lbmRwb2ludCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5Vc2VyTmFtZX0+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi51c2VybmFtZX1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LnVzZXJuYW1lID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5XZWJEYXYuUGFzc3dvcmR9PlxyXG4gICAgICAgICAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3N5bmNTdG9yZS53ZWJkYXYucGFzc3dvcmR9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnLndlYmRhdi5wYXNzd29yZCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID48L1Bhc3N3b3JkSW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICAgPC9MaXN0PlxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAge3N5bmNTdG9yZS5wcm92aWRlciA9PT0gUHJvdmlkZXJUeXBlLlVwU3Rhc2ggJiYgKFxyXG4gICAgICAgICAgPExpc3Q+XHJcbiAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlVwU3Rhc2guRW5kcG9pbnR9PlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N5bmNTdG9yZS51cHN0YXNoLmVuZHBvaW50fVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcudXBzdGFzaC5lbmRwb2ludCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5Vc2VyTmFtZX0+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnVwc3Rhc2gudXNlcm5hbWV9XHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17U1RPUkFHRV9LRVl9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy51cHN0YXNoLnVzZXJuYW1lID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlVwU3Rhc2guUGFzc3dvcmR9PlxyXG4gICAgICAgICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnVwc3Rhc2guYXBpS2V5fVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy51cHN0YXNoLmFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L1Bhc3N3b3JkSW5wdXQ+XHJcbiAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICA8L0xpc3Q+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9Nb2RhbD5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFN5bmNJdGVtcygpIHtcclxuICBjb25zdCBzeW5jU3RvcmUgPSB1c2VTeW5jU3RvcmUoKTtcclxuICBjb25zdCBjaGF0U3RvcmUgPSB1c2VDaGF0U3RvcmUoKTtcclxuICBjb25zdCBwcm9tcHRTdG9yZSA9IHVzZVByb21wdFN0b3JlKCk7XHJcbiAgY29uc3QgbWFza1N0b3JlID0gdXNlTWFza1N0b3JlKCk7XHJcbiAgY29uc3QgY291bGRTeW5jID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICByZXR1cm4gc3luY1N0b3JlLmNsb3VkU3luYygpO1xyXG4gIH0sIFtzeW5jU3RvcmVdKTtcclxuXHJcbiAgY29uc3QgW3Nob3dTeW5jQ29uZmlnTW9kYWwsIHNldFNob3dTeW5jQ29uZmlnTW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICBjb25zdCBzdGF0ZU92ZXJ2aWV3ID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICBjb25zdCBzZXNzaW9ucyA9IGNoYXRTdG9yZS5zZXNzaW9ucztcclxuICAgIGNvbnN0IG1lc3NhZ2VDb3VudCA9IHNlc3Npb25zLnJlZHVjZSgocCwgYykgPT4gcCArIGMubWVzc2FnZXMubGVuZ3RoLCAwKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjaGF0OiBzZXNzaW9ucy5sZW5ndGgsXHJcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VDb3VudCxcclxuICAgICAgcHJvbXB0OiBPYmplY3Qua2V5cyhwcm9tcHRTdG9yZS5wcm9tcHRzKS5sZW5ndGgsXHJcbiAgICAgIG1hc2s6IE9iamVjdC5rZXlzKG1hc2tTdG9yZS5tYXNrcykubGVuZ3RoLFxyXG4gICAgfTtcclxuICB9LCBbY2hhdFN0b3JlLnNlc3Npb25zLCBtYXNrU3RvcmUubWFza3MsIHByb21wdFN0b3JlLnByb21wdHNdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0PlxyXG4gICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkxvY2FsU3RhdGV9XHJcbiAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuT3ZlcnZpZXcoc3RhdGVPdmVydmlldyl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Mb2NhbFN0YXRlICsgTG9jYWxlLlVJLkV4cG9ydH1cclxuICAgICAgICAgICAgICBpY29uPXs8VXBsb2FkSWNvbiAvPn1cclxuICAgICAgICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuRXhwb3J0fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5bmNTdG9yZS5leHBvcnQoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkxvY2FsU3RhdGUgKyBMb2NhbGUuVUkuSW1wb3J0fVxyXG4gICAgICAgICAgICAgIGljb249ezxEb3dubG9hZEljb24gLz59XHJcbiAgICAgICAgICAgICAgdGV4dD17TG9jYWxlLlVJLkltcG9ydH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzeW5jU3RvcmUuaW1wb3J0KCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgIHtzaG93U3luY0NvbmZpZ01vZGFsICYmIChcclxuICAgICAgICA8U3luY0NvbmZpZ01vZGFsIG9uQ2xvc2U9eygpID0+IHNldFNob3dTeW5jQ29uZmlnTW9kYWwoZmFsc2UpfSAvPlxyXG4gICAgICApfVxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNldHRpbmdzKCkge1xyXG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcclxuICBjb25zdCBbc2hvd0Vtb2ppUGlja2VyLCBzZXRTaG93RW1vamlQaWNrZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG4gIGNvbnN0IHVwZGF0ZUNvbmZpZyA9IGNvbmZpZy51cGRhdGU7XHJcblxyXG4gIGNvbnN0IHVwZGF0ZVN0b3JlID0gdXNlVXBkYXRlU3RvcmUoKTtcclxuICBjb25zdCBbY2hlY2tpbmdVcGRhdGUsIHNldENoZWNraW5nVXBkYXRlXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IHVwZGF0ZVN0b3JlLmZvcm1hdFZlcnNpb24odXBkYXRlU3RvcmUudmVyc2lvbik7XHJcbiAgY29uc3QgcmVtb3RlSWQgPSB1cGRhdGVTdG9yZS5mb3JtYXRWZXJzaW9uKHVwZGF0ZVN0b3JlLnJlbW90ZVZlcnNpb24pO1xyXG4gIGNvbnN0IGhhc05ld1ZlcnNpb24gPSBzZW12ZXJDb21wYXJlKGN1cnJlbnRWZXJzaW9uLCByZW1vdGVJZCkgPT09IC0xO1xyXG4gIGNvbnN0IHVwZGF0ZVVybCA9IGdldENsaWVudENvbmZpZygpPy5pc0FwcCA/IFJFTEVBU0VfVVJMIDogVVBEQVRFX1VSTDtcclxuXHJcbiAgZnVuY3Rpb24gY2hlY2tVcGRhdGUoZm9yY2UgPSBmYWxzZSkge1xyXG4gICAgc2V0Q2hlY2tpbmdVcGRhdGUodHJ1ZSk7XHJcbiAgICB1cGRhdGVTdG9yZS5nZXRMYXRlc3RWZXJzaW9uKGZvcmNlKS50aGVuKCgpID0+IHtcclxuICAgICAgc2V0Q2hlY2tpbmdVcGRhdGUoZmFsc2UpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJbVXBkYXRlXSBsb2NhbCB2ZXJzaW9uIFwiLCB1cGRhdGVTdG9yZS52ZXJzaW9uKTtcclxuICAgIGNvbnNvbGUubG9nKFwiW1VwZGF0ZV0gcmVtb3RlIHZlcnNpb24gXCIsIHVwZGF0ZVN0b3JlLnJlbW90ZVZlcnNpb24pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgYWNjZXNzU3RvcmUgPSB1c2VBY2Nlc3NTdG9yZSgpO1xyXG4gIGNvbnN0IHNob3VsZEhpZGVCYWxhbmNlUXVlcnkgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IGlzT3BlbkFpVXJsID0gYWNjZXNzU3RvcmUub3BlbmFpVXJsLmluY2x1ZGVzKE9QRU5BSV9CQVNFX1VSTCk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgYWNjZXNzU3RvcmUuaGlkZUJhbGFuY2VRdWVyeSB8fFxyXG4gICAgICBpc09wZW5BaVVybCB8fFxyXG4gICAgICBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT0gU2VydmljZVByb3ZpZGVyLkF6dXJlXHJcbiAgICApO1xyXG4gIH0sIFtcclxuICAgIGFjY2Vzc1N0b3JlLmhpZGVCYWxhbmNlUXVlcnksXHJcbiAgICBhY2Nlc3NTdG9yZS5vcGVuYWlVcmwsXHJcbiAgICBhY2Nlc3NTdG9yZS5wcm92aWRlcixcclxuICBdKTtcclxuXHJcbiAgY29uc3QgdXNhZ2UgPSB7XHJcbiAgICB1c2VkOiB1cGRhdGVTdG9yZS51c2VkLFxyXG4gICAgc3Vic2NyaXB0aW9uOiB1cGRhdGVTdG9yZS5zdWJzY3JpcHRpb24sXHJcbiAgfTtcclxuICBjb25zdCBbbG9hZGluZ1VzYWdlLCBzZXRMb2FkaW5nVXNhZ2VdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGZ1bmN0aW9uIGNoZWNrVXNhZ2UoZm9yY2UgPSBmYWxzZSkge1xyXG4gICAgaWYgKHNob3VsZEhpZGVCYWxhbmNlUXVlcnkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExvYWRpbmdVc2FnZSh0cnVlKTtcclxuICAgIHVwZGF0ZVN0b3JlLnVwZGF0ZVVzYWdlKGZvcmNlKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgc2V0TG9hZGluZ1VzYWdlKGZhbHNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZW5hYmxlZEFjY2Vzc0NvbnRyb2wgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT4gYWNjZXNzU3RvcmUuZW5hYmxlZEFjY2Vzc0NvbnRyb2woKSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcclxuICAgIFtdLFxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCBidWlsdGluQ291bnQgPSBTZWFyY2hTZXJ2aWNlLmNvdW50LmJ1aWx0aW47XHJcbiAgY29uc3QgY3VzdG9tQ291bnQgPSBwcm9tcHRTdG9yZS5nZXRVc2VyUHJvbXB0cygpLmxlbmd0aCA/PyAwO1xyXG4gIGNvbnN0IFtzaG91bGRTaG93UHJvbXB0TW9kYWwsIHNldFNob3dQcm9tcHRNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGNvbnN0IHNob3dVc2FnZSA9IGFjY2Vzc1N0b3JlLmlzQXV0aG9yaXplZCgpO1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAvLyBjaGVja3MgcGVyIG1pbnV0ZXNcclxuICAgIGNoZWNrVXBkYXRlKCk7XHJcbiAgICBzaG93VXNhZ2UgJiYgY2hlY2tVc2FnZSgpO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGtleWRvd25FdmVudCA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikge1xyXG4gICAgICAgIG5hdmlnYXRlKFBhdGguSG9tZSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAoY2xpZW50Q29uZmlnPy5pc0FwcCkge1xyXG4gICAgICAvLyBGb3JjZSB0byBzZXQgY3VzdG9tIGVuZHBvaW50IHRvIHRydWUgaWYgaXQncyBhcHBcclxuICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKChzdGF0ZSkgPT4ge1xyXG4gICAgICAgIHN0YXRlLnVzZUN1c3RvbUNvbmZpZyA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bkV2ZW50KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGtleWRvd25FdmVudCk7XHJcbiAgICB9O1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgY29uc3QgY2xpZW50Q29uZmlnID0gdXNlTWVtbygoKSA9PiBnZXRDbGllbnRDb25maWcoKSwgW10pO1xyXG4gIGNvbnN0IHNob3dBY2Nlc3NDb2RlID0gZW5hYmxlZEFjY2Vzc0NvbnRyb2wgJiYgIWNsaWVudENvbmZpZz8uaXNBcHA7XHJcblxyXG4gIGNvbnN0IGFjY2Vzc0NvZGVDb21wb25lbnQgPSBzaG93QWNjZXNzQ29kZSAmJiAoXHJcbiAgICA8TGlzdEl0ZW1cclxuICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWNjZXNzQ29kZS5UaXRsZX1cclxuICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWNjZXNzQ29kZS5TdWJUaXRsZX1cclxuICAgID5cclxuICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYWNjZXNzQ29kZX1cclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWNjZXNzQ29kZS5QbGFjZWhvbGRlcn1cclxuICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hY2Nlc3NDb2RlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfX1cclxuICAgICAgLz5cclxuICAgIDwvTGlzdEl0ZW0+XHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgc2Fhc1N0YXJ0Q29tcG9uZW50ID0gKFxyXG4gICAgPExpc3RJdGVtXHJcbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wic3VidGl0bGUtYnV0dG9uXCJdfVxyXG4gICAgICB0aXRsZT17XHJcbiAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TYWFzU3RhcnQuVGl0bGUgK1xyXG4gICAgICAgIGAke0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkxhYmVsfWBcclxuICAgICAgfVxyXG4gICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TYWFzU3RhcnQuU3ViVGl0bGV9XHJcbiAgICA+XHJcbiAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgYXJpYT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5UaXRsZSArXHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5DaGF0Tm93XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGljb249ezxGaXJlSWNvbiAvPn1cclxuICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5DaGF0Tm93fVxyXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgIHRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2soKTtcclxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gU0FBU19DSEFUX1VSTDtcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG4gICAgPC9MaXN0SXRlbT5cclxuICApO1xyXG5cclxuICBjb25zdCB1c2VDdXN0b21Db25maWdDb21wb25lbnQgPSAvLyBDb25kaXRpb25hbGx5IHJlbmRlciB0aGUgZm9sbG93aW5nIExpc3RJdGVtIGJhc2VkIG9uIGNsaWVudENvbmZpZy5pc0FwcFxyXG4gICAgIWNsaWVudENvbmZpZz8uaXNBcHAgJiYgKCAvLyBvbmx5IHNob3cgaWYgaXNBcHAgaXMgZmFsc2VcclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ3VzdG9tRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ3VzdG9tRW5kcG9pbnQuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ3VzdG9tRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgY2hlY2tlZD17YWNjZXNzU3RvcmUudXNlQ3VzdG9tQ29uZmlnfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy51c2VDdXN0b21Db25maWcgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICk7XHJcblxyXG4gIGNvbnN0IG9wZW5BSUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLk9wZW5BSSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkVuZHBvaW50LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5vcGVuYWlVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17T1BFTkFJX0JBU0VfVVJMfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5vcGVuYWlVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuU2hvd1Bhc3N3b3JkfVxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLm9wZW5haUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Mub3BlbmFpQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGF6dXJlQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQXp1cmUgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5FbmRwb2ludC5TdWJUaXRsZSArIEF6dXJlLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5henVyZVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBenVyZS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmF6dXJlVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmF6dXJlQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmF6dXJlQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpVmVyaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaVZlcmlvbi5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlWZXJpb24uVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYXp1cmVBcGlWZXJzaW9ufVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCIyMDIzLTA4LTAxLXByZXZpZXdcIlxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5henVyZUFwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBnb29nbGVDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5Hb29nbGUgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEdvb2dsZS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmdvb2dsZVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtHb29nbGUuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5nb29nbGVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5nb29nbGVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpVmVyc2lvbi5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpVmVyc2lvbi5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpVmVyc2lvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVBcGlWZXJzaW9ufVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCIyMDIzLTA4LTAxLXByZXZpZXdcIlxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5nb29nbGVBcGlWZXJzaW9uID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuR29vZ2xlU2FmZXR5U2V0dGluZ3MuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkdvb2dsZVNhZmV0eVNldHRpbmdzLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuR29vZ2xlU2FmZXR5U2V0dGluZ3MuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlU2FmZXR5U2V0dGluZ3N9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+XHJcbiAgICAgICAgICAgICAgICAoYWNjZXNzLmdvb2dsZVNhZmV0eVNldHRpbmdzID0gZS50YXJnZXRcclxuICAgICAgICAgICAgICAgICAgLnZhbHVlIGFzIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkKS5tYXAoKFtrLCB2XSkgPT4gKFxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e2t9PlxyXG4gICAgICAgICAgICAgIHtrfVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICkpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYW50aHJvcGljQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQW50aHJvcGljICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBBbnRocm9waWMuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbnRocm9waWNVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17QW50aHJvcGljLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYW50aHJvcGljVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFudGhyb3BpY0FwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYW50aHJvcGljQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpVmVyaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlWZXJpb24uVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYW50aHJvcGljQXBpVmVyc2lvbn1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBbnRocm9waWMuVmlzaW9ufVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNBcGlWZXJzaW9uID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYmFpZHVDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5CYWlkdSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5iYWlkdVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtCYWlkdS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmJhaWR1VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1QXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmJhaWR1QXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LlNlY3JldEtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LlNlY3JldEtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5iYWlkdVNlY3JldEtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LlNlY3JldEtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5iYWlkdVNlY3JldEtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCB0ZW5jZW50Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuVGVuY2VudCAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuRW5kcG9pbnQuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS50ZW5jZW50VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1RlbmNlbnQuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy50ZW5jZW50VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnRlbmNlbnRTZWNyZXRJZH1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnRlbmNlbnRTZWNyZXRJZCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuU2VjcmV0S2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuU2VjcmV0S2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUudGVuY2VudFNlY3JldEtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuU2VjcmV0S2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnRlbmNlbnRTZWNyZXRLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYnl0ZURhbmNlQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQnl0ZURhbmNlICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBCeXRlRGFuY2UuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5ieXRlZGFuY2VVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17Qnl0ZURhbmNlLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYnl0ZWRhbmNlVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CeXRlRGFuY2UuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CeXRlRGFuY2UuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJ5dGVkYW5jZUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYnl0ZWRhbmNlQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGFsaWJhYmFDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BbGliYWJhICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEFsaWJhYmEuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYWxpYmFiYVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBbGliYWJhLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYWxpYmFiYVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbGliYWJhQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYWxpYmFiYUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBtb29uc2hvdENvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLk1vb25zaG90ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgTW9vbnNob3QuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLm1vb25zaG90VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e01vb25zaG90LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MubW9vbnNob3RVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUubW9vbnNob3RBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MubW9vbnNob3RBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgZGVlcHNlZWtDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5EZWVwU2VlayAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIERlZXBTZWVrLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5kZWVwc2Vla1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtEZWVwU2Vlay5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmRlZXBzZWVrVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmRlZXBzZWVrQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmRlZXBzZWVrQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IFhBSUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PSBTZXJ2aWNlUHJvdmlkZXIuWEFJICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlhBSS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlhBSS5FbmRwb2ludC5TdWJUaXRsZSArIFhBSS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnhhaVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtYQUkuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy54YWlVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlhBSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlhBSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUueGFpQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy54YWlBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgY2hhdGdsbUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkNoYXRHTE0gJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgQ2hhdEdMTS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5jaGF0Z2xtVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0NoYXRHTE0uRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5jaGF0Z2xtVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmNoYXRnbG1BcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5jaGF0Z2xtQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcbiAgY29uc3Qgc2lsaWNvbmZsb3dDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5TaWxpY29uRmxvdyAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIFNpbGljb25GbG93LkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5zaWxpY29uZmxvd1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtTaWxpY29uRmxvdy5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnNpbGljb25mbG93VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnNpbGljb25mbG93QXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnNpbGljb25mbG93QXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHN0YWJpbGl0eUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLlN0YWJpbGl0eSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgU3RhYmlsaXR5LkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuc3RhYmlsaXR5VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1N0YWJpbGl0eS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnN0YWJpbGl0eVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU3RhYmlsaXR5LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU3RhYmlsaXR5LkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5zdGFiaWxpdHlBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnN0YWJpbGl0eUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG4gIGNvbnN0IGxmbHl0ZWtDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5JZmx5dGVrICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIElmbHl0ZWsuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuaWZseXRla1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtJZmx5dGVrLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuaWZseXRla1VybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5pZmx5dGVrQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuaWZseXRla0FwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaVNlY3JldC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaVNlY3JldC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmlmbHl0ZWtBcGlTZWNyZXR9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaVNlY3JldC5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrQXBpU2VjcmV0ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8RXJyb3JCb3VuZGFyeT5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyXCIgZGF0YS10YXVyaS1kcmFnLXJlZ2lvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIndpbmRvdy1oZWFkZXItdGl0bGVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWhlYWRlci1tYWluLXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHtMb2NhbGUuU2V0dGluZ3MuVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWhlYWRlci1zdWItdGl0bGVcIj5cclxuICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5TdWJUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWFjdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWFjdGlvbi1idXR0b25cIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWFjdGlvbi1idXR0b25cIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuVUkuQ2xvc2V9XHJcbiAgICAgICAgICAgICAgaWNvbj17PENsb3NlSWNvbiAvPn1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShQYXRoLkhvbWUpfVxyXG4gICAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzZXR0aW5nc1wiXX0+XHJcbiAgICAgICAgPExpc3Q+XHJcbiAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BdmF0YXJ9PlxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFNob3dFbW9qaVBpY2tlcihmYWxzZSl9XHJcbiAgICAgICAgICAgICAgY29udGVudD17XHJcbiAgICAgICAgICAgICAgICA8QXZhdGFyUGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIG9uRW1vamlDbGljaz17KGF2YXRhcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKChjb25maWcpID0+IChjb25maWcuYXZhdGFyID0gYXZhdGFyKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0Vtb2ppUGlja2VyKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIG9wZW49e3Nob3dFbW9qaVBpY2tlcn1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BdmF0YXJ9XHJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmF2YXRhcn1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc2V0U2hvd0Vtb2ppUGlja2VyKCFzaG93RW1vamlQaWNrZXIpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8QXZhdGFyIGF2YXRhcj17Y29uZmlnLmF2YXRhcn0gLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuVmVyc2lvbihjdXJyZW50VmVyc2lvbiA/PyBcInVua25vd25cIil9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgICAgICBjaGVja2luZ1VwZGF0ZVxyXG4gICAgICAgICAgICAgICAgPyBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLklzQ2hlY2tpbmdcclxuICAgICAgICAgICAgICAgIDogaGFzTmV3VmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLkZvdW5kVXBkYXRlKHJlbW90ZUlkID8/IFwiRVJST1JcIilcclxuICAgICAgICAgICAgICAgIDogTG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5Jc0xhdGVzdFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtjaGVja2luZ1VwZGF0ZSA/IChcclxuICAgICAgICAgICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgICAgICAgICAgKSA6IGhhc05ld1ZlcnNpb24gPyAoXHJcbiAgICAgICAgICAgICAgY2xpZW50Q29uZmlnPy5pc0FwcCA/IChcclxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxSZXNldEljb24+PC9SZXNldEljb24+fVxyXG4gICAgICAgICAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLkdvVG9VcGRhdGV9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNsaWVudFVwZGF0ZSgpfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj17dXBkYXRlVXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzc05hbWU9XCJsaW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLkdvVG9VcGRhdGV9XHJcbiAgICAgICAgICAgICAgICA8L0xpbms+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICBpY29uPXs8UmVzZXRJY29uPjwvUmVzZXRJY29uPn1cclxuICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuQ2hlY2tVcGRhdGV9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaGVja1VwZGF0ZSh0cnVlKX1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TZW5kS2V5fT5cclxuICAgICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5TZW5kS2V5fVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuc3VibWl0S2V5fVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuc3VibWl0S2V5ID0gZS50YXJnZXQudmFsdWUgYXMgYW55IGFzIFN1Ym1pdEtleSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7T2JqZWN0LnZhbHVlcyhTdWJtaXRLZXkpLm1hcCgodikgPT4gKFxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17dn0ga2V5PXt2fT5cclxuICAgICAgICAgICAgICAgICAge3Z9XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlRoZW1lfT5cclxuICAgICAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5UaGVtZX1cclxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLnRoZW1lfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLnRoZW1lID0gZS50YXJnZXQudmFsdWUgYXMgYW55IGFzIFRoZW1lKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKFRoZW1lKS5tYXAoKHYpID0+IChcclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17dn0+XHJcbiAgICAgICAgICAgICAgICAgIHt2fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5MYW5nLk5hbWV9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkxhbmcuTmFtZX1cclxuICAgICAgICAgICAgICB2YWx1ZT17Z2V0TGFuZygpfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2hhbmdlTGFuZyhlLnRhcmdldC52YWx1ZSBhcyBhbnkpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7QWxsTGFuZ3MubWFwKChsYW5nKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXtsYW5nfSBrZXk9e2xhbmd9PlxyXG4gICAgICAgICAgICAgICAgICB7QUxMX0xBTkdfT1BUSU9OU1tsYW5nXX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRm9udFNpemUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRm9udFNpemUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxJbnB1dFJhbmdlXHJcbiAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLkZvbnRTaXplLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHRpdGxlPXtgJHtjb25maWcuZm9udFNpemUgPz8gMTR9cHhgfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuZm9udFNpemV9XHJcbiAgICAgICAgICAgICAgbWluPVwiMTJcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjQwXCJcclxuICAgICAgICAgICAgICBzdGVwPVwiMVwiXHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZm9udFNpemUgPSBOdW1iZXIucGFyc2VJbnQoZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9JbnB1dFJhbmdlPlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250RmFtaWx5LlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5Gb250RmFtaWx5LlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmZvbnRGYW1pbHl9XHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5Gb250RmFtaWx5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbmZpZyhcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5mb250RmFtaWx5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BdXRvR2VuZXJhdGVUaXRsZS5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BdXRvR2VuZXJhdGVUaXRsZS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbmZpZyhcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnLmVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlID0gZS5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlNlbmRQcmV2aWV3QnViYmxlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlNlbmRQcmV2aWV3QnViYmxlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuc2VuZFByZXZpZXdCdWJibGV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuc2VuZFByZXZpZXdCdWJibGUgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLk1hc2suQ29uZmlnLkFydGlmYWN0cy5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLk1hc2suQ29uZmlnLkFydGlmYWN0cy5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5lbmFibGVBcnRpZmFjdHN9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZW5hYmxlQXJ0aWZhY3RzID0gZS5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQ29kZUZvbGQuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQ29kZUZvbGQuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5lbmFibGVDb2RlRm9sZH1cclxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImVuYWJsZS1jb2RlLWZvbGQtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbmZpZyhcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5lbmFibGVDb2RlRm9sZCA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIDxTeW5jSXRlbXMgLz5cclxuXHJcbiAgICAgICAgPExpc3QgaWQ9e1Nsb3RJRC5DdXN0b21Nb2RlbH0+XHJcbiAgICAgICAgICB7c2Fhc1N0YXJ0Q29tcG9uZW50fVxyXG4gICAgICAgICAge2FjY2Vzc0NvZGVDb21wb25lbnR9XHJcblxyXG4gICAgICAgICAgeyFhY2Nlc3NTdG9yZS5oaWRlVXNlckFwaUtleSAmJiAoXHJcbiAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAge3VzZUN1c3RvbUNvbmZpZ0NvbXBvbmVudH1cclxuXHJcbiAgICAgICAgICAgICAge2FjY2Vzc1N0b3JlLnVzZUN1c3RvbUNvbmZpZyAmJiAoXHJcbiAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Qcm92aWRlci5UaXRsZX1cclxuICAgICAgICAgICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Qcm92aWRlci5TdWJUaXRsZX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuUHJvdmlkZXIuVGl0bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUucHJvdmlkZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChhY2Nlc3MpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjZXNzLnByb3ZpZGVyID0gZS50YXJnZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlIGFzIFNlcnZpY2VQcm92aWRlciksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhTZXJ2aWNlUHJvdmlkZXIpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17a30+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICAgICAgICB7b3BlbkFJQ29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7YXp1cmVDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtnb29nbGVDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHthbnRocm9waWNDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtiYWlkdUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2J5dGVEYW5jZUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2FsaWJhYmFDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHt0ZW5jZW50Q29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7bW9vbnNob3RDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge3N0YWJpbGl0eUNvbmZpZ0NvbXBvbmVudH1cclxuICAgICAgICAgICAgICAgICAge2xmbHl0ZWtDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtYQUlDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICAgIHtjaGF0Z2xtQ29uZmlnQ29tcG9uZW50fVxyXG4gICAgICAgICAgICAgICAgICB7c2lsaWNvbmZsb3dDb25maWdDb21wb25lbnR9XHJcbiAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgeyFzaG91bGRIaWRlQmFsYW5jZVF1ZXJ5ICYmICFjbGllbnRDb25maWc/LmlzQXBwID8gKFxyXG4gICAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlVzYWdlLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgICAgICAgIHNob3dVc2FnZVxyXG4gICAgICAgICAgICAgICAgICA/IGxvYWRpbmdVc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgID8gTG9jYWxlLlNldHRpbmdzLlVzYWdlLklzQ2hlY2tpbmdcclxuICAgICAgICAgICAgICAgICAgICA6IExvY2FsZS5TZXR0aW5ncy5Vc2FnZS5TdWJUaXRsZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2U/LnVzZWQgPz8gXCJbP11cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2U/LnN1YnNjcmlwdGlvbiA/PyBcIls/XVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICA6IExvY2FsZS5TZXR0aW5ncy5Vc2FnZS5Ob0FjY2Vzc1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHshc2hvd1VzYWdlIHx8IGxvYWRpbmdVc2FnZSA/IChcclxuICAgICAgICAgICAgICAgIDxkaXYgLz5cclxuICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFJlc2V0SWNvbj48L1Jlc2V0SWNvbj59XHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Vc2FnZS5DaGVja31cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2hlY2tVc2FnZSh0cnVlKX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICkgOiBudWxsfVxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21Nb2RlbC5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ3VzdG9tTW9kZWwuU3ViVGl0bGV9XHJcbiAgICAgICAgICAgIHZlcnRpY2FsPXt0cnVlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkN1c3RvbU1vZGVsLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgbWF4V2lkdGg6IFwidW5zZXRcIiwgdGV4dEFsaWduOiBcImxlZnRcIiB9fVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICB2YWx1ZT17Y29uZmlnLmN1c3RvbU1vZGVsc31cclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1vZGVsMSxtb2RlbDIsbW9kZWwzXCJcclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICBjb25maWcudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmN1c3RvbU1vZGVscyA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxNb2RlbENvbmZpZ0xpc3RcclxuICAgICAgICAgICAgbW9kZWxDb25maWc9e2NvbmZpZy5tb2RlbENvbmZpZ31cclxuICAgICAgICAgICAgdXBkYXRlQ29uZmlnPXsodXBkYXRlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1vZGVsQ29uZmlnID0geyAuLi5jb25maWcubW9kZWxDb25maWcgfTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKG1vZGVsQ29uZmlnKTtcclxuICAgICAgICAgICAgICBjb25maWcudXBkYXRlKChjb25maWcpID0+IChjb25maWcubW9kZWxDb25maWcgPSBtb2RlbENvbmZpZykpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIHtzaG91bGRTaG93UHJvbXB0TW9kYWwgJiYgKFxyXG4gICAgICAgICAgPFVzZXJQcm9tcHRNb2RhbCBvbkNsb3NlPXsoKSA9PiBzZXRTaG93UHJvbXB0TW9kYWwoZmFsc2UpfSAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPExpc3Q+XHJcbiAgICAgICAgICA8UmVhbHRpbWVDb25maWdMaXN0XHJcbiAgICAgICAgICAgIHJlYWx0aW1lQ29uZmlnPXtjb25maWcucmVhbHRpbWVDb25maWd9XHJcbiAgICAgICAgICAgIHVwZGF0ZUNvbmZpZz17KHVwZGF0ZXIpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCByZWFsdGltZUNvbmZpZyA9IHsgLi4uY29uZmlnLnJlYWx0aW1lQ29uZmlnIH07XHJcbiAgICAgICAgICAgICAgdXBkYXRlcihyZWFsdGltZUNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgY29uZmlnLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcucmVhbHRpbWVDb25maWcgPSByZWFsdGltZUNvbmZpZyksXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9MaXN0PlxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPFRUU0NvbmZpZ0xpc3RcclxuICAgICAgICAgICAgdHRzQ29uZmlnPXtjb25maWcudHRzQ29uZmlnfVxyXG4gICAgICAgICAgICB1cGRhdGVDb25maWc9eyh1cGRhdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdHRzQ29uZmlnID0geyAuLi5jb25maWcudHRzQ29uZmlnIH07XHJcbiAgICAgICAgICAgICAgdXBkYXRlcih0dHNDb25maWcpO1xyXG4gICAgICAgICAgICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKGNvbmZpZy50dHNDb25maWcgPSB0dHNDb25maWcpKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICA8RGFuZ2VySXRlbXMgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0Vycm9yQm91bmRhcnk+XHJcbiAgKTtcclxufVxyXG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwic3R5bGVzIiwiUmVzZXRJY29uIiwiQWRkSWNvbiIsIkNsb3NlSWNvbiIsIkNvcHlJY29uIiwiQ2xlYXJJY29uIiwiTG9hZGluZ0ljb24iLCJFZGl0SWNvbiIsIkZpcmVJY29uIiwiRXllSWNvbiIsIkRvd25sb2FkSWNvbiIsIlVwbG9hZEljb24iLCJDb25maXJtSWNvbiIsIkNvbm5lY3Rpb25JY29uIiwiQ2xvdWRTdWNjZXNzSWNvbiIsIkNsb3VkRmFpbEljb24iLCJ0cmFja1NldHRpbmdzUGFnZUd1aWRlVG9DUGF5bWVudENsaWNrIiwiSW5wdXQiLCJMaXN0IiwiTGlzdEl0ZW0iLCJNb2RhbCIsIlBhc3N3b3JkSW5wdXQiLCJQb3BvdmVyIiwiU2VsZWN0Iiwic2hvd0NvbmZpcm0iLCJNb2RlbENvbmZpZ0xpc3QiLCJJY29uQnV0dG9uIiwiU3VibWl0S2V5IiwidXNlQ2hhdFN0b3JlIiwiVGhlbWUiLCJ1c2VVcGRhdGVTdG9yZSIsInVzZUFjY2Vzc1N0b3JlIiwidXNlQXBwQ29uZmlnIiwiTG9jYWxlIiwiQWxsTGFuZ3MiLCJBTExfTEFOR19PUFRJT05TIiwiY2hhbmdlTGFuZyIsImdldExhbmciLCJjb3B5VG9DbGlwYm9hcmQiLCJjbGllbnRVcGRhdGUiLCJzZW12ZXJDb21wYXJlIiwiTGluayIsIkFudGhyb3BpYyIsIkF6dXJlIiwiQmFpZHUiLCJUZW5jZW50IiwiQnl0ZURhbmNlIiwiQWxpYmFiYSIsIk1vb25zaG90IiwiWEFJIiwiR29vZ2xlIiwiR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQiLCJPUEVOQUlfQkFTRV9VUkwiLCJQYXRoIiwiUkVMRUFTRV9VUkwiLCJTVE9SQUdFX0tFWSIsIlNlcnZpY2VQcm92aWRlciIsIlNsb3RJRCIsIlVQREFURV9VUkwiLCJTdGFiaWxpdHkiLCJJZmx5dGVrIiwiU0FBU19DSEFUX1VSTCIsIkNoYXRHTE0iLCJEZWVwU2VlayIsIlNpbGljb25GbG93IiwiU2VhcmNoU2VydmljZSIsInVzZVByb21wdFN0b3JlIiwiRXJyb3JCb3VuZGFyeSIsIklucHV0UmFuZ2UiLCJ1c2VOYXZpZ2F0ZSIsIkF2YXRhciIsIkF2YXRhclBpY2tlciIsImdldENsaWVudENvbmZpZyIsInVzZVN5bmNTdG9yZSIsIm5hbm9pZCIsInVzZU1hc2tTdG9yZSIsIlByb3ZpZGVyVHlwZSIsIlRUU0NvbmZpZ0xpc3QiLCJSZWFsdGltZUNvbmZpZ0xpc3QiLCJFZGl0UHJvbXB0TW9kYWwiLCJwcm9wcyIsInByb21wdFN0b3JlIiwicHJvbXB0IiwiZ2V0IiwiaWQiLCJkaXYiLCJjbGFzc05hbWUiLCJ0aXRsZSIsIlNldHRpbmdzIiwiUHJvbXB0IiwiRWRpdE1vZGFsIiwiVGl0bGUiLCJvbkNsb3NlIiwiYWN0aW9ucyIsIm9uQ2xpY2siLCJ0ZXh0IiwiVUkiLCJDb25maXJtIiwiYm9yZGVyZWQiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsInJlYWRPbmx5IiwiaXNVc2VyIiwib25JbnB1dCIsImUiLCJ1cGRhdGVQcm9tcHQiLCJjdXJyZW50VGFyZ2V0IiwiY29udGVudCIsInJvd3MiLCJVc2VyUHJvbXB0TW9kYWwiLCJ1c2VyUHJvbXB0cyIsImdldFVzZXJQcm9tcHRzIiwiYnVpbHRpblByb21wdHMiLCJhbGxQcm9tcHRzIiwiY29uY2F0Iiwic2VhcmNoSW5wdXQiLCJzZXRTZWFyY2hJbnB1dCIsInNlYXJjaFByb21wdHMiLCJzZXRTZWFyY2hQcm9tcHRzIiwicHJvbXB0cyIsImxlbmd0aCIsImVkaXRpbmdQcm9tcHRJZCIsInNldEVkaXRpbmdQcm9tcHRJZCIsInNlYXJjaFJlc3VsdCIsInNlYXJjaCIsInByb21wdElkIiwiYWRkIiwiY3JlYXRlZEF0IiwiRGF0ZSIsIm5vdyIsImljb24iLCJBZGQiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm1hcCIsInYiLCJfIiwicmVtb3ZlIiwidW5kZWZpbmVkIiwiRGFuZ2VySXRlbXMiLCJjaGF0U3RvcmUiLCJhcHBDb25maWciLCJEYW5nZXIiLCJSZXNldCIsInN1YlRpdGxlIiwiU3ViVGl0bGUiLCJhcmlhIiwiQWN0aW9uIiwicmVzZXQiLCJDbGVhciIsImNsZWFyQWxsRGF0YSIsIkNoZWNrQnV0dG9uIiwic3luY1N0b3JlIiwiY291bGRDaGVjayIsImNsb3VkU3luYyIsImNoZWNrU3RhdGUiLCJzZXRDaGVja1N0YXRlIiwiY2hlY2siLCJ2YWxpZCIsIlN5bmMiLCJDb25maWciLCJDaGVjayIsIlN5bmNDb25maWdNb2RhbCIsIlN5bmNUeXBlIiwic2VsZWN0IiwicHJvdmlkZXIiLCJvbkNoYW5nZSIsInVwZGF0ZSIsImNvbmZpZyIsInRhcmdldCIsIk9iamVjdCIsImVudHJpZXMiLCJrIiwib3B0aW9uIiwiUHJveHkiLCJjaGVja2VkIiwidXNlUHJveHkiLCJQcm94eVVybCIsInByb3h5VXJsIiwiV2ViREFWIiwiV2ViRGF2IiwiRW5kcG9pbnQiLCJ3ZWJkYXYiLCJlbmRwb2ludCIsIlVzZXJOYW1lIiwidXNlcm5hbWUiLCJQYXNzd29yZCIsInBhc3N3b3JkIiwiVXBTdGFzaCIsInVwc3Rhc2giLCJhcGlLZXkiLCJTeW5jSXRlbXMiLCJtYXNrU3RvcmUiLCJjb3VsZFN5bmMiLCJzaG93U3luY0NvbmZpZ01vZGFsIiwic2V0U2hvd1N5bmNDb25maWdNb2RhbCIsInN0YXRlT3ZlcnZpZXciLCJzZXNzaW9ucyIsIm1lc3NhZ2VDb3VudCIsInJlZHVjZSIsInAiLCJjIiwibWVzc2FnZXMiLCJjaGF0IiwibWVzc2FnZSIsImtleXMiLCJtYXNrIiwibWFza3MiLCJMb2NhbFN0YXRlIiwiT3ZlcnZpZXciLCJzdHlsZSIsImRpc3BsYXkiLCJFeHBvcnQiLCJleHBvcnQiLCJJbXBvcnQiLCJpbXBvcnQiLCJuYXZpZ2F0ZSIsInNob3dFbW9qaVBpY2tlciIsInNldFNob3dFbW9qaVBpY2tlciIsInVwZGF0ZUNvbmZpZyIsInVwZGF0ZVN0b3JlIiwiY2hlY2tpbmdVcGRhdGUiLCJzZXRDaGVja2luZ1VwZGF0ZSIsImN1cnJlbnRWZXJzaW9uIiwiZm9ybWF0VmVyc2lvbiIsInZlcnNpb24iLCJyZW1vdGVJZCIsInJlbW90ZVZlcnNpb24iLCJoYXNOZXdWZXJzaW9uIiwidXBkYXRlVXJsIiwiaXNBcHAiLCJjaGVja1VwZGF0ZSIsImZvcmNlIiwiZ2V0TGF0ZXN0VmVyc2lvbiIsInRoZW4iLCJjb25zb2xlIiwibG9nIiwiYWNjZXNzU3RvcmUiLCJzaG91bGRIaWRlQmFsYW5jZVF1ZXJ5IiwiaXNPcGVuQWlVcmwiLCJvcGVuYWlVcmwiLCJpbmNsdWRlcyIsImhpZGVCYWxhbmNlUXVlcnkiLCJ1c2FnZSIsInVzZWQiLCJzdWJzY3JpcHRpb24iLCJsb2FkaW5nVXNhZ2UiLCJzZXRMb2FkaW5nVXNhZ2UiLCJjaGVja1VzYWdlIiwidXBkYXRlVXNhZ2UiLCJmaW5hbGx5IiwiZW5hYmxlZEFjY2Vzc0NvbnRyb2wiLCJidWlsdGluQ291bnQiLCJjb3VudCIsImJ1aWx0aW4iLCJjdXN0b21Db3VudCIsInNob3VsZFNob3dQcm9tcHRNb2RhbCIsInNldFNob3dQcm9tcHRNb2RhbCIsInNob3dVc2FnZSIsImlzQXV0aG9yaXplZCIsImtleWRvd25FdmVudCIsImtleSIsIkhvbWUiLCJjbGllbnRDb25maWciLCJzdGF0ZSIsInVzZUN1c3RvbUNvbmZpZyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzaG93QWNjZXNzQ29kZSIsImFjY2Vzc0NvZGVDb21wb25lbnQiLCJBY2Nlc3MiLCJBY2Nlc3NDb2RlIiwiYWNjZXNzQ29kZSIsIlBsYWNlaG9sZGVyIiwiYWNjZXNzIiwic2Fhc1N0YXJ0Q29tcG9uZW50IiwiU2Fhc1N0YXJ0IiwiTGFiZWwiLCJDaGF0Tm93Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwidXNlQ3VzdG9tQ29uZmlnQ29tcG9uZW50IiwiQ3VzdG9tRW5kcG9pbnQiLCJhcmlhLWxhYmVsIiwib3BlbkFJQ29uZmlnQ29tcG9uZW50IiwiT3BlbkFJIiwiQXBpS2V5IiwiU2hvd1Bhc3N3b3JkIiwib3BlbmFpQXBpS2V5IiwiYXp1cmVDb25maWdDb21wb25lbnQiLCJFeGFtcGxlRW5kcG9pbnQiLCJhenVyZVVybCIsImF6dXJlQXBpS2V5IiwiQXBpVmVyaW9uIiwiYXp1cmVBcGlWZXJzaW9uIiwiZ29vZ2xlQ29uZmlnQ29tcG9uZW50IiwiZ29vZ2xlVXJsIiwiZ29vZ2xlQXBpS2V5IiwiQXBpVmVyc2lvbiIsImdvb2dsZUFwaVZlcnNpb24iLCJHb29nbGVTYWZldHlTZXR0aW5ncyIsImdvb2dsZVNhZmV0eVNldHRpbmdzIiwiYW50aHJvcGljQ29uZmlnQ29tcG9uZW50IiwiYW50aHJvcGljVXJsIiwiYW50aHJvcGljQXBpS2V5IiwiYW50aHJvcGljQXBpVmVyc2lvbiIsIlZpc2lvbiIsImJhaWR1Q29uZmlnQ29tcG9uZW50IiwiYmFpZHVVcmwiLCJiYWlkdUFwaUtleSIsIlNlY3JldEtleSIsImJhaWR1U2VjcmV0S2V5IiwidGVuY2VudENvbmZpZ0NvbXBvbmVudCIsInRlbmNlbnRVcmwiLCJ0ZW5jZW50U2VjcmV0SWQiLCJ0ZW5jZW50U2VjcmV0S2V5IiwiYnl0ZURhbmNlQ29uZmlnQ29tcG9uZW50IiwiYnl0ZWRhbmNlVXJsIiwiYnl0ZWRhbmNlQXBpS2V5IiwiYWxpYmFiYUNvbmZpZ0NvbXBvbmVudCIsImFsaWJhYmFVcmwiLCJhbGliYWJhQXBpS2V5IiwibW9vbnNob3RDb25maWdDb21wb25lbnQiLCJtb29uc2hvdFVybCIsIm1vb25zaG90QXBpS2V5IiwiZGVlcHNlZWtDb25maWdDb21wb25lbnQiLCJkZWVwc2Vla1VybCIsImRlZXBzZWVrQXBpS2V5IiwiWEFJQ29uZmlnQ29tcG9uZW50IiwieGFpVXJsIiwieGFpQXBpS2V5IiwiY2hhdGdsbUNvbmZpZ0NvbXBvbmVudCIsImNoYXRnbG1VcmwiLCJjaGF0Z2xtQXBpS2V5Iiwic2lsaWNvbmZsb3dDb25maWdDb21wb25lbnQiLCJzaWxpY29uZmxvd1VybCIsInNpbGljb25mbG93QXBpS2V5Iiwic3RhYmlsaXR5Q29uZmlnQ29tcG9uZW50Iiwic3RhYmlsaXR5VXJsIiwic3RhYmlsaXR5QXBpS2V5IiwibGZseXRla0NvbmZpZ0NvbXBvbmVudCIsImlmbHl0ZWtVcmwiLCJpZmx5dGVrQXBpS2V5IiwiQXBpU2VjcmV0IiwiaWZseXRla0FwaVNlY3JldCIsImRhdGEtdGF1cmktZHJhZy1yZWdpb24iLCJDbG9zZSIsIm9uRW1vamlDbGljayIsImF2YXRhciIsIm9wZW4iLCJ0YWJJbmRleCIsIlVwZGF0ZSIsIlZlcnNpb24iLCJJc0NoZWNraW5nIiwiRm91bmRVcGRhdGUiLCJJc0xhdGVzdCIsIkdvVG9VcGRhdGUiLCJDaGVja1VwZGF0ZSIsIlNlbmRLZXkiLCJzdWJtaXRLZXkiLCJ2YWx1ZXMiLCJ0aGVtZSIsIkxhbmciLCJOYW1lIiwibGFuZyIsIkZvbnRTaXplIiwiZm9udFNpemUiLCJtaW4iLCJtYXgiLCJzdGVwIiwiTnVtYmVyIiwicGFyc2VJbnQiLCJGb250RmFtaWx5IiwiZm9udEZhbWlseSIsIkF1dG9HZW5lcmF0ZVRpdGxlIiwiZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUiLCJTZW5kUHJldmlld0J1YmJsZSIsInNlbmRQcmV2aWV3QnViYmxlIiwiTWFzayIsIkFydGlmYWN0cyIsImVuYWJsZUFydGlmYWN0cyIsIkNvZGVGb2xkIiwiZW5hYmxlQ29kZUZvbGQiLCJkYXRhLXRlc3RpZCIsIkN1c3RvbU1vZGVsIiwiaGlkZVVzZXJBcGlLZXkiLCJQcm92aWRlciIsIlVzYWdlIiwiTm9BY2Nlc3MiLCJ2ZXJ0aWNhbCIsIndpZHRoIiwibWF4V2lkdGgiLCJ0ZXh0QWxpZ24iLCJjdXN0b21Nb2RlbHMiLCJtb2RlbENvbmZpZyIsInVwZGF0ZXIiLCJyZWFsdGltZUNvbmZpZyIsInR0c0NvbmZpZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/settings.tsx\n"));
|
|
|
|
/***/ })
|
|
|
|
}); |