"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/page",{ /***/ "(app-pages-browser)/./app/store/config.ts": /*!*****************************!*\ !*** ./app/store/config.ts ***! \*****************************/ /***/ (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 */ DEFAULT_CONFIG: function() { return /* binding */ DEFAULT_CONFIG; },\n/* harmony export */ ModalConfigValidator: function() { return /* binding */ ModalConfigValidator; },\n/* harmony export */ SubmitKey: function() { return /* binding */ SubmitKey; },\n/* harmony export */ TTSConfigValidator: function() { return /* binding */ TTSConfigValidator; },\n/* harmony export */ Theme: function() { return /* binding */ Theme; },\n/* harmony export */ limitNumber: function() { return /* binding */ limitNumber; },\n/* harmony export */ useAppConfig: function() { return /* binding */ useAppConfig; }\n/* harmony export */ });\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ \"(app-pages-browser)/./app/utils/store.ts\");\n\n\n\nvar SubmitKey;\n(function(SubmitKey) {\n SubmitKey[\"Enter\"] = \"Enter\";\n SubmitKey[\"CtrlEnter\"] = \"Ctrl + Enter\";\n SubmitKey[\"ShiftEnter\"] = \"Shift + Enter\";\n SubmitKey[\"AltEnter\"] = \"Alt + Enter\";\n SubmitKey[\"MetaEnter\"] = \"Meta + Enter\";\n})(SubmitKey || (SubmitKey = {}));\nvar Theme;\n(function(Theme) {\n Theme[\"Auto\"] = \"auto\";\n Theme[\"Dark\"] = \"dark\";\n Theme[\"Light\"] = \"light\";\n})(Theme || (Theme = {}));\nconst config = (0,_config_client__WEBPACK_IMPORTED_MODULE_0__.getClientConfig)();\nvar _config_template;\nconst DEFAULT_CONFIG = {\n lastUpdate: Date.now(),\n submitKey: \"Enter\",\n avatar: \"1f603\",\n fontSize: 14,\n fontFamily: \"\",\n theme: \"auto\",\n tightBorder: !!(config === null || config === void 0 ? void 0 : config.isApp),\n sendPreviewBubble: true,\n enableAutoGenerateTitle: true,\n sidebarWidth: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SIDEBAR_WIDTH,\n enableArtifacts: true,\n enableCodeFold: true,\n disablePromptHint: false,\n dontShowMaskSplashScreen: true,\n hideBuiltinMasks: false,\n customModels: \"\",\n models: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_MODELS,\n modelConfig: {\n model: \"deepseek-ai/DeepSeek-V3\",\n providerName: \"SiliconFlow\",\n temperature: 0.5,\n top_p: 1,\n max_tokens: 4000,\n presence_penalty: 0,\n frequency_penalty: 0,\n sendMemory: true,\n historyMessageCount: 4,\n compressMessageLengthThreshold: 1000,\n compressModel: \"\",\n compressProviderName: \"\",\n enableInjectSystemPrompts: false,\n template: (_config_template = config === null || config === void 0 ? void 0 : config.template) !== null && _config_template !== void 0 ? _config_template : _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE,\n size: \"1024x1024\",\n quality: \"standard\",\n style: \"vivid\"\n },\n ttsConfig: {\n enable: false,\n autoplay: false,\n engine: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_ENGINE,\n model: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_MODEL,\n voice: _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_TTS_VOICE,\n speed: 1.0\n },\n realtimeConfig: {\n enable: true,\n provider: \"SiliconFlow\",\n model: \"gpt-4o-realtime-preview-2024-10-01\",\n apiKey: \"\",\n azure: {\n endpoint: \"\",\n deployment: \"\"\n },\n temperature: 0.9,\n voice: \"alloy\"\n }\n};\nfunction limitNumber(x, min, max, defaultValue) {\n if (isNaN(x)) {\n return defaultValue;\n }\n return Math.min(max, Math.max(min, x));\n}\nconst TTSConfigValidator = {\n engine (x) {\n return x;\n },\n model (x) {\n return x;\n },\n voice (x) {\n return x;\n },\n speed (x) {\n return limitNumber(x, 0.25, 4.0, 1.0);\n }\n};\nconst ModalConfigValidator = {\n model (x) {\n return x;\n },\n max_tokens (x) {\n return limitNumber(x, 0, 512000, 1024);\n },\n presence_penalty (x) {\n return limitNumber(x, -2, 2, 0);\n },\n frequency_penalty (x) {\n return limitNumber(x, -2, 2, 0);\n },\n temperature (x) {\n return limitNumber(x, 0, 2, 1);\n },\n top_p (x) {\n return limitNumber(x, 0, 1, 1);\n }\n};\nconst useAppConfig = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.createPersistStore)({\n ...DEFAULT_CONFIG\n}, (set, get)=>({\n reset () {\n set(()=>({\n ...DEFAULT_CONFIG\n }));\n },\n mergeModels (newModels) {\n if (!newModels || newModels.length === 0) {\n return;\n }\n const oldModels = get().models;\n const modelMap = {};\n for (const model of oldModels){\n var _model_provider;\n model.available = false;\n modelMap[\"\".concat(model.name, \"@\").concat(model === null || model === void 0 ? void 0 : (_model_provider = model.provider) === null || _model_provider === void 0 ? void 0 : _model_provider.id)] = model;\n }\n for (const model of newModels){\n var _model_provider1;\n model.available = true;\n modelMap[\"\".concat(model.name, \"@\").concat(model === null || model === void 0 ? void 0 : (_model_provider1 = model.provider) === null || _model_provider1 === void 0 ? void 0 : _model_provider1.id)] = model;\n }\n set(()=>({\n models: Object.values(modelMap)\n }));\n },\n allModels () {}\n }), {\n name: _constant__WEBPACK_IMPORTED_MODULE_1__.StoreKey.Config,\n version: 4.1,\n merge (persistedState, currentState) {\n const state = persistedState;\n if (!state) return {\n ...currentState\n };\n const models = currentState.models.slice();\n state.models.forEach((pModel)=>{\n const idx = models.findIndex((v)=>v.name === pModel.name && v.provider === pModel.provider);\n if (idx !== -1) models[idx] = pModel;\n else models.push(pModel);\n });\n return {\n ...currentState,\n ...state,\n models: models\n };\n },\n migrate (persistedState, version) {\n const state = persistedState;\n if (version < 3.4) {\n state.modelConfig.sendMemory = true;\n state.modelConfig.historyMessageCount = 4;\n state.modelConfig.compressMessageLengthThreshold = 1000;\n state.modelConfig.frequency_penalty = 0;\n state.modelConfig.top_p = 1;\n state.modelConfig.template = _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE;\n state.dontShowMaskSplashScreen = true;\n state.hideBuiltinMasks = false;\n }\n if (version < 3.5) {\n state.customModels = \"claude,claude-100k\";\n }\n if (version < 3.6) {\n state.modelConfig.enableInjectSystemPrompts = true;\n }\n if (version < 3.7) {\n state.enableAutoGenerateTitle = true;\n }\n if (version < 3.8) {\n state.lastUpdate = Date.now();\n }\n if (version < 3.9) {\n var _config_template;\n state.modelConfig.template = state.modelConfig.template !== _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE ? state.modelConfig.template : (_config_template = config === null || config === void 0 ? void 0 : config.template) !== null && _config_template !== void 0 ? _config_template : _constant__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_INPUT_TEMPLATE;\n }\n if (version < 4.1) {\n state.modelConfig.compressModel = DEFAULT_CONFIG.modelConfig.compressModel;\n state.modelConfig.compressProviderName = DEFAULT_CONFIG.modelConfig.compressProviderName;\n }\n return state;\n }\n});\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,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RixNQUFNM0QsV0FBVyxDQUFDYyxRQUFRLEdBQ3hCNkMsTUFBTTNELFdBQVcsQ0FBQ2MsUUFBUSxLQUFLOUMsNkRBQXNCQSxHQUNqRDJGLE1BQU0zRCxXQUFXLENBQUNjLFFBQVEsR0FDMUJwQyxDQUFBQSxtQkFBQUEsbUJBQUFBLDZCQUFBQSxPQUFRb0MsUUFBUSxjQUFoQnBDLDhCQUFBQSxtQkFBb0JWLDZEQUFzQkE7UUFDbEQ7UUFFQSxJQUFJdUYsVUFBVSxLQUFLO1lBQ2pCSSxNQUFNM0QsV0FBVyxDQUFDVyxhQUFhLEdBQzdCaEMsZUFBZXFCLFdBQVcsQ0FBQ1csYUFBYTtZQUMxQ2dELE1BQU0zRCxXQUFXLENBQUNZLG9CQUFvQixHQUNwQ2pDLGVBQWVxQixXQUFXLENBQUNZLG9CQUFvQjtRQUNuRDtRQUVBLE9BQU8rQztJQUNUO0FBQ0YsR0FDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvc3RvcmUvY29uZmlnLnRzPzlmMzMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTExNTW9kZWwgfSBmcm9tIFwiLi4vY2xpZW50L2FwaVwiO1xyXG5pbXBvcnQgeyBEYWxsZVF1YWxpdHksIERhbGxlU3R5bGUsIE1vZGVsU2l6ZSB9IGZyb20gXCIuLi90eXBpbmdcIjtcclxuaW1wb3J0IHsgZ2V0Q2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9jbGllbnRcIjtcclxuaW1wb3J0IHtcclxuICBERUZBVUxUX0lOUFVUX1RFTVBMQVRFLFxyXG4gIERFRkFVTFRfTU9ERUxTLFxyXG4gIERFRkFVTFRfU0lERUJBUl9XSURUSCxcclxuICBERUZBVUxUX1RUU19FTkdJTkUsXHJcbiAgREVGQVVMVF9UVFNfRU5HSU5FUyxcclxuICBERUZBVUxUX1RUU19NT0RFTCxcclxuICBERUZBVUxUX1RUU19NT0RFTFMsXHJcbiAgREVGQVVMVF9UVFNfVk9JQ0UsXHJcbiAgREVGQVVMVF9UVFNfVk9JQ0VTLFxyXG4gIFN0b3JlS2V5LFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxufSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuaW1wb3J0IHsgY3JlYXRlUGVyc2lzdFN0b3JlIH0gZnJvbSBcIi4uL3V0aWxzL3N0b3JlXCI7XHJcbmltcG9ydCB0eXBlIHsgVm9pY2UgfSBmcm9tIFwicnQtY2xpZW50XCI7XHJcblxyXG5leHBvcnQgdHlwZSBNb2RlbFR5cGUgPSAodHlwZW9mIERFRkFVTFRfTU9ERUxTKVtudW1iZXJdW1wibmFtZVwiXTtcclxuZXhwb3J0IHR5cGUgVFRTTW9kZWxUeXBlID0gKHR5cGVvZiBERUZBVUxUX1RUU19NT0RFTFMpW251bWJlcl07XHJcbmV4cG9ydCB0eXBlIFRUU1ZvaWNlVHlwZSA9ICh0eXBlb2YgREVGQVVMVF9UVFNfVk9JQ0VTKVtudW1iZXJdO1xyXG5leHBvcnQgdHlwZSBUVFNFbmdpbmVUeXBlID0gKHR5cGVvZiBERUZBVUxUX1RUU19FTkdJTkVTKVtudW1iZXJdO1xyXG5cclxuZXhwb3J0IGVudW0gU3VibWl0S2V5IHtcclxuICBFbnRlciA9IFwiRW50ZXJcIixcclxuICBDdHJsRW50ZXIgPSBcIkN0cmwgKyBFbnRlclwiLFxyXG4gIFNoaWZ0RW50ZXIgPSBcIlNoaWZ0ICsgRW50ZXJcIixcclxuICBBbHRFbnRlciA9IFwiQWx0ICsgRW50ZXJcIixcclxuICBNZXRhRW50ZXIgPSBcIk1ldGEgKyBFbnRlclwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBUaGVtZSB7XHJcbiAgQXV0byA9IFwiYXV0b1wiLFxyXG4gIERhcmsgPSBcImRhcmtcIixcclxuICBMaWdodCA9IFwibGlnaHRcIixcclxufVxyXG5cclxuY29uc3QgY29uZmlnID0gZ2V0Q2xpZW50Q29uZmlnKCk7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUcgPSB7XHJcbiAgbGFzdFVwZGF0ZTogRGF0ZS5ub3coKSwgLy8gdGltZXN0YW1wLCB0byBtZXJnZSBzdGF0ZVxyXG5cclxuICBzdWJtaXRLZXk6IFN1Ym1pdEtleS5FbnRlcixcclxuICBhdmF0YXI6IFwiMWY2MDNcIixcclxuICBmb250U2l6ZTogMTQsXHJcbiAgZm9udEZhbWlseTogXCJcIixcclxuICB0aGVtZTogVGhlbWUuQXV0byBhcyBUaGVtZSxcclxuICB0aWdodEJvcmRlcjogISFjb25maWc/LmlzQXBwLFxyXG4gIHNlbmRQcmV2aWV3QnViYmxlOiB0cnVlLFxyXG4gIGVuYWJsZUF1dG9HZW5lcmF0ZVRpdGxlOiB0cnVlLFxyXG4gIHNpZGViYXJXaWR0aDogREVGQVVMVF9TSURFQkFSX1dJRFRILFxyXG5cclxuICBlbmFibGVBcnRpZmFjdHM6IHRydWUsIC8vIHNob3cgYXJ0aWZhY3RzIGNvbmZpZ1xyXG5cclxuICBlbmFibGVDb2RlRm9sZDogdHJ1ZSwgLy8gY29kZSBmb2xkIGNvbmZpZ1xyXG5cclxuICBkaXNhYmxlUHJvbXB0SGludDogZmFsc2UsXHJcblxyXG4gIGRvbnRTaG93TWFza1NwbGFzaFNjcmVlbjogdHJ1ZSwgLy8gZG9udCBzaG93IHNwbGFzaCBzY3JlZW4gd2hlbiBjcmVhdGUgY2hhdFxyXG4gIGhpZGVCdWlsdGluTWFza3M6IGZhbHNlLCAvLyBkb250IGFkZCBidWlsdGluIG1hc2tzXHJcblxyXG4gIGN1c3RvbU1vZGVsczogXCJcIixcclxuICBtb2RlbHM6IERFRkFVTFRfTU9ERUxTIGFzIGFueSBhcyBMTE1Nb2RlbFtdLFxyXG5cclxuICBtb2RlbENvbmZpZzoge1xyXG4gICAgbW9kZWw6IFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIiBhcyBNb2RlbFR5cGUsXHJcbiAgICBwcm92aWRlck5hbWU6IFwiU2lsaWNvbkZsb3dcIiBhcyBTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgICB0ZW1wZXJhdHVyZTogMC41LFxyXG4gICAgdG9wX3A6IDEsXHJcbiAgICBtYXhfdG9rZW5zOiA0MDAwLFxyXG4gICAgcHJlc2VuY2VfcGVuYWx0eTogMCxcclxuICAgIGZyZXF1ZW5jeV9wZW5hbHR5OiAwLFxyXG4gICAgc2VuZE1lbW9yeTogdHJ1ZSxcclxuICAgIGhpc3RvcnlNZXNzYWdlQ291bnQ6IDQsXHJcbiAgICBjb21wcmVzc01lc3NhZ2VMZW5ndGhUaHJlc2hvbGQ6IDEwMDAsXHJcbiAgICBjb21wcmVzc01vZGVsOiBcIlwiLFxyXG4gICAgY29tcHJlc3NQcm92aWRlck5hbWU6IFwiXCIsXHJcbiAgICBlbmFibGVJbmplY3RTeXN0ZW1Qcm9tcHRzOiBmYWxzZSxcclxuICAgIHRlbXBsYXRlOiBjb25maWc/LnRlbXBsYXRlID8/IERFRkFVTFRfSU5QVVRfVEVNUExBVEUsXHJcbiAgICBzaXplOiBcIjEwMjR4MTAyNFwiIGFzIE1vZGVsU2l6ZSxcclxuICAgIHF1YWxpdHk6IFwic3RhbmRhcmRcIiBhcyBEYWxsZVF1YWxpdHksXHJcbiAgICBzdHlsZTogXCJ2aXZpZFwiIGFzIERhbGxlU3R5bGUsXHJcbiAgfSxcclxuXHJcbiAgdHRzQ29uZmlnOiB7XHJcbiAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgYXV0b3BsYXk6IGZhbHNlLFxyXG4gICAgZW5naW5lOiBERUZBVUxUX1RUU19FTkdJTkUsXHJcbiAgICBtb2RlbDogREVGQVVMVF9UVFNfTU9ERUwsXHJcbiAgICB2b2ljZTogREVGQVVMVF9UVFNfVk9JQ0UsXHJcbiAgICBzcGVlZDogMS4wLFxyXG4gIH0sXHJcblxyXG4gIHJlYWx0aW1lQ29uZmlnOiB7XHJcbiAgICBlbmFibGU6IHRydWUsXHJcbiAgICBwcm92aWRlcjogXCJTaWxpY29uRmxvd1wiIGFzIFNlcnZpY2VQcm92aWRlcixcclxuICAgIG1vZGVsOiBcImdwdC00by1yZWFsdGltZS1wcmV2aWV3LTIwMjQtMTAtMDFcIixcclxuICAgIGFwaUtleTogXCJcIixcclxuICAgIGF6dXJlOiB7XHJcbiAgICAgIGVuZHBvaW50OiBcIlwiLFxyXG4gICAgICBkZXBsb3ltZW50OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIHRlbXBlcmF0dXJlOiAwLjksXHJcbiAgICB2b2ljZTogXCJhbGxveVwiIGFzIFZvaWNlLFxyXG4gIH0sXHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDaGF0Q29uZmlnID0gdHlwZW9mIERFRkFVTFRfQ09ORklHO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kZWxDb25maWcgPSBDaGF0Q29uZmlnW1wibW9kZWxDb25maWdcIl07XHJcbmV4cG9ydCB0eXBlIFRUU0NvbmZpZyA9IENoYXRDb25maWdbXCJ0dHNDb25maWdcIl07XHJcbmV4cG9ydCB0eXBlIFJlYWx0aW1lQ29uZmlnID0gQ2hhdENvbmZpZ1tcInJlYWx0aW1lQ29uZmlnXCJdO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxpbWl0TnVtYmVyKFxyXG4gIHg6IG51bWJlcixcclxuICBtaW46IG51bWJlcixcclxuICBtYXg6IG51bWJlcixcclxuICBkZWZhdWx0VmFsdWU6IG51bWJlcixcclxuKSB7XHJcbiAgaWYgKGlzTmFOKHgpKSB7XHJcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIE1hdGgubWluKG1heCwgTWF0aC5tYXgobWluLCB4KSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBUVFNDb25maWdWYWxpZGF0b3IgPSB7XHJcbiAgZW5naW5lKHg6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHggYXMgVFRTRW5naW5lVHlwZTtcclxuICB9LFxyXG4gIG1vZGVsKHg6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHggYXMgVFRTTW9kZWxUeXBlO1xyXG4gIH0sXHJcbiAgdm9pY2UoeDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4geCBhcyBUVFNWb2ljZVR5cGU7XHJcbiAgfSxcclxuICBzcGVlZCh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAwLjI1LCA0LjAsIDEuMCk7XHJcbiAgfSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb2RhbENvbmZpZ1ZhbGlkYXRvciA9IHtcclxuICBtb2RlbCh4OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB4IGFzIE1vZGVsVHlwZTtcclxuICB9LFxyXG4gIG1heF90b2tlbnMoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgMCwgNTEyMDAwLCAxMDI0KTtcclxuICB9LFxyXG4gIHByZXNlbmNlX3BlbmFsdHkoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgLTIsIDIsIDApO1xyXG4gIH0sXHJcbiAgZnJlcXVlbmN5X3BlbmFsdHkoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgLTIsIDIsIDApO1xyXG4gIH0sXHJcbiAgdGVtcGVyYXR1cmUoeDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbGltaXROdW1iZXIoeCwgMCwgMiwgMSk7XHJcbiAgfSxcclxuICB0b3BfcCh4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiBsaW1pdE51bWJlcih4LCAwLCAxLCAxKTtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHVzZUFwcENvbmZpZyA9IGNyZWF0ZVBlcnNpc3RTdG9yZShcclxuICB7IC4uLkRFRkFVTFRfQ09ORklHIH0sXHJcbiAgKHNldCwgZ2V0KSA9PiAoe1xyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHNldCgoKSA9PiAoeyAuLi5ERUZBVUxUX0NPTkZJRyB9KSk7XHJcbiAgICB9LFxyXG5cclxuICAgIG1lcmdlTW9kZWxzKG5ld01vZGVsczogTExNTW9kZWxbXSkge1xyXG4gICAgICBpZiAoIW5ld01vZGVscyB8fCBuZXdNb2RlbHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBvbGRNb2RlbHMgPSBnZXQoKS5tb2RlbHM7XHJcbiAgICAgIGNvbnN0IG1vZGVsTWFwOiBSZWNvcmQ8c3RyaW5nLCBMTE1Nb2RlbD4gPSB7fTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgbW9kZWwgb2Ygb2xkTW9kZWxzKSB7XHJcbiAgICAgICAgbW9kZWwuYXZhaWxhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgbW9kZWxNYXBbYCR7bW9kZWwubmFtZX1AJHttb2RlbD8ucHJvdmlkZXI/LmlkfWBdID0gbW9kZWw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbmV3TW9kZWxzKSB7XHJcbiAgICAgICAgbW9kZWwuYXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbE1hcFtgJHttb2RlbC5uYW1lfUAke21vZGVsPy5wcm92aWRlcj8uaWR9YF0gPSBtb2RlbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc2V0KCgpID0+ICh7XHJcbiAgICAgICAgbW9kZWxzOiBPYmplY3QudmFsdWVzKG1vZGVsTWFwKSxcclxuICAgICAgfSkpO1xyXG4gICAgfSxcclxuXHJcbiAgICBhbGxNb2RlbHMoKSB7fSxcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBTdG9yZUtleS5Db25maWcsXHJcbiAgICB2ZXJzaW9uOiA0LjEsXHJcblxyXG4gICAgbWVyZ2UocGVyc2lzdGVkU3RhdGUsIGN1cnJlbnRTdGF0ZSkge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IHBlcnNpc3RlZFN0YXRlIGFzIENoYXRDb25maWcgfCB1bmRlZmluZWQ7XHJcbiAgICAgIGlmICghc3RhdGUpIHJldHVybiB7IC4uLmN1cnJlbnRTdGF0ZSB9O1xyXG4gICAgICBjb25zdCBtb2RlbHMgPSBjdXJyZW50U3RhdGUubW9kZWxzLnNsaWNlKCk7XHJcbiAgICAgIHN0YXRlLm1vZGVscy5mb3JFYWNoKChwTW9kZWwpID0+IHtcclxuICAgICAgICBjb25zdCBpZHggPSBtb2RlbHMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKHYpID0+IHYubmFtZSA9PT0gcE1vZGVsLm5hbWUgJiYgdi5wcm92aWRlciA9PT0gcE1vZGVsLnByb3ZpZGVyLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGlkeCAhPT0gLTEpIG1vZGVsc1tpZHhdID0gcE1vZGVsO1xyXG4gICAgICAgIGVsc2UgbW9kZWxzLnB1c2gocE1vZGVsKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7IC4uLmN1cnJlbnRTdGF0ZSwgLi4uc3RhdGUsIG1vZGVsczogbW9kZWxzIH07XHJcbiAgICB9LFxyXG5cclxuICAgIG1pZ3JhdGUocGVyc2lzdGVkU3RhdGUsIHZlcnNpb24pIHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBwZXJzaXN0ZWRTdGF0ZSBhcyBDaGF0Q29uZmlnO1xyXG5cclxuICAgICAgaWYgKHZlcnNpb24gPCAzLjQpIHtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5zZW5kTWVtb3J5ID0gdHJ1ZTtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5oaXN0b3J5TWVzc2FnZUNvdW50ID0gNDtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy5jb21wcmVzc01lc3NhZ2VMZW5ndGhUaHJlc2hvbGQgPSAxMDAwO1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmZyZXF1ZW5jeV9wZW5hbHR5ID0gMDtcclxuICAgICAgICBzdGF0ZS5tb2RlbENvbmZpZy50b3BfcCA9IDE7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcudGVtcGxhdGUgPSBERUZBVUxUX0lOUFVUX1RFTVBMQVRFO1xyXG4gICAgICAgIHN0YXRlLmRvbnRTaG93TWFza1NwbGFzaFNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgc3RhdGUuaGlkZUJ1aWx0aW5NYXNrcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuNSkge1xyXG4gICAgICAgIHN0YXRlLmN1c3RvbU1vZGVscyA9IFwiY2xhdWRlLGNsYXVkZS0xMDBrXCI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy42KSB7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuZW5hYmxlSW5qZWN0U3lzdGVtUHJvbXB0cyA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgMy43KSB7XHJcbiAgICAgICAgc3RhdGUuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuOCkge1xyXG4gICAgICAgIHN0YXRlLmxhc3RVcGRhdGUgPSBEYXRlLm5vdygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmVyc2lvbiA8IDMuOSkge1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLnRlbXBsYXRlID1cclxuICAgICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLnRlbXBsYXRlICE9PSBERUZBVUxUX0lOUFVUX1RFTVBMQVRFXHJcbiAgICAgICAgICAgID8gc3RhdGUubW9kZWxDb25maWcudGVtcGxhdGVcclxuICAgICAgICAgICAgOiBjb25maWc/LnRlbXBsYXRlID8/IERFRkFVTFRfSU5QVVRfVEVNUExBVEU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2ZXJzaW9uIDwgNC4xKSB7XHJcbiAgICAgICAgc3RhdGUubW9kZWxDb25maWcuY29tcHJlc3NNb2RlbCA9XHJcbiAgICAgICAgICBERUZBVUxUX0NPTkZJRy5tb2RlbENvbmZpZy5jb21wcmVzc01vZGVsO1xyXG4gICAgICAgIHN0YXRlLm1vZGVsQ29uZmlnLmNvbXByZXNzUHJvdmlkZXJOYW1lID1cclxuICAgICAgICAgIERFRkFVTFRfQ09ORklHLm1vZGVsQ29uZmlnLmNvbXByZXNzUHJvdmlkZXJOYW1lO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gc3RhdGUgYXMgYW55O1xyXG4gICAgfSxcclxuICB9LFxyXG4pO1xyXG4iXSwibmFtZXMiOlsiZ2V0Q2xpZW50Q29uZmlnIiwiREVGQVVMVF9JTlBVVF9URU1QTEFURSIsIkRFRkFVTFRfTU9ERUxTIiwiREVGQVVMVF9TSURFQkFSX1dJRFRIIiwiREVGQVVMVF9UVFNfRU5HSU5FIiwiREVGQVVMVF9UVFNfTU9ERUwiLCJERUZBVUxUX1RUU19WT0lDRSIsIlN0b3JlS2V5IiwiY3JlYXRlUGVyc2lzdFN0b3JlIiwiU3VibWl0S2V5IiwiVGhlbWUiLCJjb25maWciLCJERUZBVUxUX0NPTkZJRyIsImxhc3RVcGRhdGUiLCJEYXRlIiwibm93Iiwic3VibWl0S2V5IiwiYXZhdGFyIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwidGhlbWUiLCJ0aWdodEJvcmRlciIsImlzQXBwIiwic2VuZFByZXZpZXdCdWJibGUiLCJlbmFibGVBdXRvR2VuZXJhdGVUaXRsZSIsInNpZGViYXJXaWR0aCIsImVuYWJsZUFydGlmYWN0cyIsImVuYWJsZUNvZGVGb2xkIiwiZGlzYWJsZVByb21wdEhpbnQiLCJkb250U2hvd01hc2tTcGxhc2hTY3JlZW4iLCJoaWRlQnVpbHRpbk1hc2tzIiwiY3VzdG9tTW9kZWxzIiwibW9kZWxzIiwibW9kZWxDb25maWciLCJtb2RlbCIsInByb3ZpZGVyTmFtZSIsInRlbXBlcmF0dXJlIiwidG9wX3AiLCJtYXhfdG9rZW5zIiwicHJlc2VuY2VfcGVuYWx0eSIsImZyZXF1ZW5jeV9wZW5hbHR5Iiwic2VuZE1lbW9yeSIsImhpc3RvcnlNZXNzYWdlQ291bnQiLCJjb21wcmVzc01lc3NhZ2VMZW5ndGhUaHJlc2hvbGQiLCJjb21wcmVzc01vZGVsIiwiY29tcHJlc3NQcm92aWRlck5hbWUiLCJlbmFibGVJbmplY3RTeXN0ZW1Qcm9tcHRzIiwidGVtcGxhdGUiLCJzaXplIiwicXVhbGl0eSIsInN0eWxlIiwidHRzQ29uZmlnIiwiZW5hYmxlIiwiYXV0b3BsYXkiLCJlbmdpbmUiLCJ2b2ljZSIsInNwZWVkIiwicmVhbHRpbWVDb25maWciLCJwcm92aWRlciIsImFwaUtleSIsImF6dXJlIiwiZW5kcG9pbnQiLCJkZXBsb3ltZW50IiwibGltaXROdW1iZXIiLCJ4IiwibWluIiwibWF4IiwiZGVmYXVsdFZhbHVlIiwiaXNOYU4iLCJNYXRoIiwiVFRTQ29uZmlnVmFsaWRhdG9yIiwiTW9kYWxDb25maWdWYWxpZGF0b3IiLCJ1c2VBcHBDb25maWciLCJzZXQiLCJnZXQiLCJyZXNldCIsIm1lcmdlTW9kZWxzIiwibmV3TW9kZWxzIiwibGVuZ3RoIiwib2xkTW9kZWxzIiwibW9kZWxNYXAiLCJhdmFpbGFibGUiLCJuYW1lIiwiaWQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJhbGxNb2RlbHMiLCJDb25maWciLCJ2ZXJzaW9uIiwibWVyZ2UiLCJwZXJzaXN0ZWRTdGF0ZSIsImN1cnJlbnRTdGF0ZSIsInN0YXRlIiwic2xpY2UiLCJmb3JFYWNoIiwicE1vZGVsIiwiaWR4IiwiZmluZEluZGV4IiwidiIsInB1c2giLCJtaWdyYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/store/config.ts\n")); /***/ }) });