"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/constant.ts": /*!*************************!*\ !*** ./app/constant.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 */ ACCESS_CODE_PREFIX: function() { return /* binding */ ACCESS_CODE_PREFIX; },\n/* harmony export */ ALIBABA_BASE_URL: function() { return /* binding */ ALIBABA_BASE_URL; },\n/* harmony export */ ANTHROPIC_BASE_URL: function() { return /* binding */ ANTHROPIC_BASE_URL; },\n/* harmony export */ Alibaba: function() { return /* binding */ Alibaba; },\n/* harmony export */ Anthropic: function() { return /* binding */ Anthropic; },\n/* harmony export */ ApiPath: function() { return /* binding */ ApiPath; },\n/* harmony export */ Azure: function() { return /* binding */ Azure; },\n/* harmony export */ BAIDU_BASE_URL: function() { return /* binding */ BAIDU_BASE_URL; },\n/* harmony export */ BAIDU_OATUH_URL: function() { return /* binding */ BAIDU_OATUH_URL; },\n/* harmony export */ BYTEDANCE_BASE_URL: function() { return /* binding */ BYTEDANCE_BASE_URL; },\n/* harmony export */ Baidu: function() { return /* binding */ Baidu; },\n/* harmony export */ ByteDance: function() { return /* binding */ ByteDance; },\n/* harmony export */ CACHE_URL_PREFIX: function() { return /* binding */ CACHE_URL_PREFIX; },\n/* harmony export */ CHATGLM_BASE_URL: function() { return /* binding */ CHATGLM_BASE_URL; },\n/* harmony export */ CHAT_PAGE_SIZE: function() { return /* binding */ CHAT_PAGE_SIZE; },\n/* harmony export */ ChatGLM: function() { return /* binding */ ChatGLM; },\n/* harmony export */ DEEPSEEK_BASE_URL: function() { return /* binding */ DEEPSEEK_BASE_URL; },\n/* harmony export */ DEEPSEEK_SUMMARIZE_MODEL: function() { return /* binding */ DEEPSEEK_SUMMARIZE_MODEL; },\n/* harmony export */ DEFAULT_GA_ID: function() { return /* binding */ DEFAULT_GA_ID; },\n/* harmony export */ DEFAULT_INPUT_TEMPLATE: function() { return /* binding */ DEFAULT_INPUT_TEMPLATE; },\n/* harmony export */ DEFAULT_MODELS: function() { return /* binding */ DEFAULT_MODELS; },\n/* harmony export */ DEFAULT_SIDEBAR_WIDTH: function() { return /* binding */ DEFAULT_SIDEBAR_WIDTH; },\n/* harmony export */ DEFAULT_SYSTEM_TEMPLATE: function() { return /* binding */ DEFAULT_SYSTEM_TEMPLATE; },\n/* harmony export */ DEFAULT_TTS_ENGINE: function() { return /* binding */ DEFAULT_TTS_ENGINE; },\n/* harmony export */ DEFAULT_TTS_ENGINES: function() { return /* binding */ DEFAULT_TTS_ENGINES; },\n/* harmony export */ DEFAULT_TTS_MODEL: function() { return /* binding */ DEFAULT_TTS_MODEL; },\n/* harmony export */ DEFAULT_TTS_MODELS: function() { return /* binding */ DEFAULT_TTS_MODELS; },\n/* harmony export */ DEFAULT_TTS_VOICE: function() { return /* binding */ DEFAULT_TTS_VOICE; },\n/* harmony export */ DEFAULT_TTS_VOICES: function() { return /* binding */ DEFAULT_TTS_VOICES; },\n/* harmony export */ DeepSeek: function() { return /* binding */ DeepSeek; },\n/* harmony export */ EXCLUDE_VISION_MODEL_REGEXES: function() { return /* binding */ EXCLUDE_VISION_MODEL_REGEXES; },\n/* harmony export */ EXPORT_MESSAGE_CLASS_NAME: function() { return /* binding */ EXPORT_MESSAGE_CLASS_NAME; },\n/* harmony export */ FETCH_COMMIT_URL: function() { return /* binding */ FETCH_COMMIT_URL; },\n/* harmony export */ FETCH_TAG_URL: function() { return /* binding */ FETCH_TAG_URL; },\n/* harmony export */ FileName: function() { return /* binding */ FileName; },\n/* harmony export */ GEMINI_BASE_URL: function() { return /* binding */ GEMINI_BASE_URL; },\n/* harmony export */ GEMINI_SUMMARIZE_MODEL: function() { return /* binding */ GEMINI_SUMMARIZE_MODEL; },\n/* harmony export */ Google: function() { return /* binding */ Google; },\n/* harmony export */ GoogleSafetySettingsThreshold: function() { return /* binding */ GoogleSafetySettingsThreshold; },\n/* harmony export */ IFLYTEK_BASE_URL: function() { return /* binding */ IFLYTEK_BASE_URL; },\n/* harmony export */ ISSUE_URL: function() { return /* binding */ ISSUE_URL; },\n/* harmony export */ Iflytek: function() { return /* binding */ Iflytek; },\n/* harmony export */ KnowledgeCutOffDate: function() { return /* binding */ KnowledgeCutOffDate; },\n/* harmony export */ LAST_INPUT_KEY: function() { return /* binding */ LAST_INPUT_KEY; },\n/* harmony export */ MAX_RENDER_MSG_COUNT: function() { return /* binding */ MAX_RENDER_MSG_COUNT; },\n/* harmony export */ MAX_SIDEBAR_WIDTH: function() { return /* binding */ MAX_SIDEBAR_WIDTH; },\n/* harmony export */ MCP_SYSTEM_TEMPLATE: function() { return /* binding */ MCP_SYSTEM_TEMPLATE; },\n/* harmony export */ MCP_TOOLS_TEMPLATE: function() { return /* binding */ MCP_TOOLS_TEMPLATE; },\n/* harmony export */ MIN_SIDEBAR_WIDTH: function() { return /* binding */ MIN_SIDEBAR_WIDTH; },\n/* harmony export */ MOONSHOT_BASE_URL: function() { return /* binding */ MOONSHOT_BASE_URL; },\n/* harmony export */ ModelProvider: function() { return /* binding */ ModelProvider; },\n/* harmony export */ Moonshot: function() { return /* binding */ Moonshot; },\n/* harmony export */ NARROW_SIDEBAR_WIDTH: function() { return /* binding */ NARROW_SIDEBAR_WIDTH; },\n/* harmony export */ OPENAI_BASE_URL: function() { return /* binding */ OPENAI_BASE_URL; },\n/* harmony export */ OWNER: function() { return /* binding */ OWNER; },\n/* harmony export */ OpenaiPath: function() { return /* binding */ OpenaiPath; },\n/* harmony export */ PLUGINS_REPO_URL: function() { return /* binding */ PLUGINS_REPO_URL; },\n/* harmony export */ Path: function() { return /* binding */ Path; },\n/* harmony export */ RELEASE_URL: function() { return /* binding */ RELEASE_URL; },\n/* harmony export */ REPO: function() { return /* binding */ REPO; },\n/* harmony export */ REPO_URL: function() { return /* binding */ REPO_URL; },\n/* harmony export */ REQUEST_TIMEOUT_MS: function() { return /* binding */ REQUEST_TIMEOUT_MS; },\n/* harmony export */ REQUEST_TIMEOUT_MS_FOR_THINKING: function() { return /* binding */ REQUEST_TIMEOUT_MS_FOR_THINKING; },\n/* harmony export */ RUNTIME_CONFIG_DOM: function() { return /* binding */ RUNTIME_CONFIG_DOM; },\n/* harmony export */ SAAS_CHAT_URL: function() { return /* binding */ SAAS_CHAT_URL; },\n/* harmony export */ SAAS_CHAT_UTM_URL: function() { return /* binding */ SAAS_CHAT_UTM_URL; },\n/* harmony export */ SILICONFLOW_BASE_URL: function() { return /* binding */ SILICONFLOW_BASE_URL; },\n/* harmony export */ STABILITY_BASE_URL: function() { return /* binding */ STABILITY_BASE_URL; },\n/* harmony export */ STORAGE_KEY: function() { return /* binding */ STORAGE_KEY; },\n/* harmony export */ SUMMARIZE_MODEL: function() { return /* binding */ SUMMARIZE_MODEL; },\n/* harmony export */ ServiceProvider: function() { return /* binding */ ServiceProvider; },\n/* harmony export */ SiliconFlow: function() { return /* binding */ SiliconFlow; },\n/* harmony export */ SlotID: function() { return /* binding */ SlotID; },\n/* harmony export */ Stability: function() { return /* binding */ Stability; },\n/* harmony export */ StoreKey: function() { return /* binding */ StoreKey; },\n/* harmony export */ TENCENT_BASE_URL: function() { return /* binding */ TENCENT_BASE_URL; },\n/* harmony export */ Tencent: function() { return /* binding */ Tencent; },\n/* harmony export */ UNFINISHED_INPUT: function() { return /* binding */ UNFINISHED_INPUT; },\n/* harmony export */ UPDATE_URL: function() { return /* binding */ UPDATE_URL; },\n/* harmony export */ UPLOAD_URL: function() { return /* binding */ UPLOAD_URL; },\n/* harmony export */ VISION_MODEL_REGEXES: function() { return /* binding */ VISION_MODEL_REGEXES; },\n/* harmony export */ XAI: function() { return /* binding */ XAI; },\n/* harmony export */ XAI_BASE_URL: function() { return /* binding */ XAI_BASE_URL; },\n/* harmony export */ internalAllowedWebDavEndpoints: function() { return /* binding */ internalAllowedWebDavEndpoints; }\n/* harmony export */ });\nconst OWNER = \"ChatGPTNextWeb\";\nconst REPO = \"ChatGPT-Next-Web\";\nconst REPO_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO);\nconst PLUGINS_REPO_URL = \"https://github.com/\".concat(OWNER, \"/NextChat-Awesome-Plugins\");\nconst ISSUE_URL = \"https://github.com/\".concat(OWNER, \"/\").concat(REPO, \"/issues\");\nconst UPDATE_URL = \"\".concat(REPO_URL, \"#keep-updated\");\nconst RELEASE_URL = \"\".concat(REPO_URL, \"/releases\");\nconst FETCH_COMMIT_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/commits?per_page=1\");\nconst FETCH_TAG_URL = \"https://api.github.com/repos/\".concat(OWNER, \"/\").concat(REPO, \"/tags?per_page=1\");\nconst RUNTIME_CONFIG_DOM = \"danger-runtime-config\";\nconst STABILITY_BASE_URL = \"https://api.stability.ai\";\nconst OPENAI_BASE_URL = \"https://api.openai.com\";\nconst ANTHROPIC_BASE_URL = \"https://api.anthropic.com\";\nconst GEMINI_BASE_URL = \"https://generativelanguage.googleapis.com/\";\nconst BAIDU_BASE_URL = \"https://aip.baidubce.com\";\nconst BAIDU_OATUH_URL = \"\".concat(BAIDU_BASE_URL, \"/oauth/2.0/token\");\nconst BYTEDANCE_BASE_URL = \"https://ark.cn-beijing.volces.com\";\nconst ALIBABA_BASE_URL = \"https://dashscope.aliyuncs.com/api/\";\nconst TENCENT_BASE_URL = \"https://hunyuan.tencentcloudapi.com\";\nconst MOONSHOT_BASE_URL = \"https://api.moonshot.cn\";\nconst IFLYTEK_BASE_URL = \"https://spark-api-open.xf-yun.com\";\nconst DEEPSEEK_BASE_URL = \"https://api.deepseek.com\";\nconst XAI_BASE_URL = \"https://api.x.ai\";\nconst CHATGLM_BASE_URL = \"https://open.bigmodel.cn\";\nconst SILICONFLOW_BASE_URL = \"https://api.siliconflow.cn\";\nconst CACHE_URL_PREFIX = \"/api/cache\";\nconst UPLOAD_URL = \"\".concat(CACHE_URL_PREFIX, \"/upload\");\nvar Path;\n(function(Path) {\n Path[\"Home\"] = \"/\";\n Path[\"Chat\"] = \"/chat\";\n Path[\"Settings\"] = \"/settings\";\n Path[\"NewChat\"] = \"/new-chat\";\n Path[\"Masks\"] = \"/masks\";\n Path[\"Plugins\"] = \"/plugins\";\n Path[\"Auth\"] = \"/auth\";\n Path[\"Sd\"] = \"/sd\";\n Path[\"SdNew\"] = \"/sd-new\";\n Path[\"Artifacts\"] = \"/artifacts\";\n Path[\"SearchChat\"] = \"/search-chat\";\n Path[\"McpMarket\"] = \"/mcp-market\";\n})(Path || (Path = {}));\nvar ApiPath;\n(function(ApiPath) {\n ApiPath[\"Cors\"] = \"\";\n ApiPath[\"Azure\"] = \"/api/azure\";\n ApiPath[\"OpenAI\"] = \"/api/openai\";\n ApiPath[\"Anthropic\"] = \"/api/anthropic\";\n ApiPath[\"Google\"] = \"/api/google\";\n ApiPath[\"Baidu\"] = \"/api/baidu\";\n ApiPath[\"ByteDance\"] = \"/api/bytedance\";\n ApiPath[\"Alibaba\"] = \"/api/alibaba\";\n ApiPath[\"Tencent\"] = \"/api/tencent\";\n ApiPath[\"Moonshot\"] = \"/api/moonshot\";\n ApiPath[\"Iflytek\"] = \"/api/iflytek\";\n ApiPath[\"Stability\"] = \"/api/stability\";\n ApiPath[\"Artifacts\"] = \"/api/artifacts\";\n ApiPath[\"XAI\"] = \"/api/xai\";\n ApiPath[\"ChatGLM\"] = \"/api/chatglm\";\n ApiPath[\"DeepSeek\"] = \"/api/deepseek\";\n ApiPath[\"SiliconFlow\"] = \"/api/siliconflow\";\n})(ApiPath || (ApiPath = {}));\nvar SlotID;\n(function(SlotID) {\n SlotID[\"AppBody\"] = \"app-body\";\n SlotID[\"CustomModel\"] = \"custom-model\";\n})(SlotID || (SlotID = {}));\nvar FileName;\n(function(FileName) {\n FileName[\"Masks\"] = \"masks.json\";\n FileName[\"Prompts\"] = \"prompts.json\";\n})(FileName || (FileName = {}));\nvar StoreKey;\n(function(StoreKey) {\n StoreKey[\"Chat\"] = \"chat-next-web-store\";\n StoreKey[\"Plugin\"] = \"chat-next-web-plugin\";\n StoreKey[\"Access\"] = \"access-control\";\n StoreKey[\"Config\"] = \"app-config\";\n StoreKey[\"Mask\"] = \"mask-store\";\n StoreKey[\"Prompt\"] = \"prompt-store\";\n StoreKey[\"Update\"] = \"chat-update\";\n StoreKey[\"Sync\"] = \"sync\";\n StoreKey[\"SdList\"] = \"sd-list\";\n StoreKey[\"Mcp\"] = \"mcp-store\";\n})(StoreKey || (StoreKey = {}));\nconst DEFAULT_SIDEBAR_WIDTH = 300;\nconst MAX_SIDEBAR_WIDTH = 500;\nconst MIN_SIDEBAR_WIDTH = 230;\nconst NARROW_SIDEBAR_WIDTH = 100;\nconst ACCESS_CODE_PREFIX = \"nk-\";\nconst LAST_INPUT_KEY = \"last-input\";\nconst UNFINISHED_INPUT = (id)=>\"unfinished-input-\" + id;\nconst STORAGE_KEY = \"chatgpt-next-web\";\nconst REQUEST_TIMEOUT_MS = 60000;\nconst REQUEST_TIMEOUT_MS_FOR_THINKING = REQUEST_TIMEOUT_MS * 5;\nconst EXPORT_MESSAGE_CLASS_NAME = \"export-markdown\";\nvar ServiceProvider;\n(function(ServiceProvider) {\n ServiceProvider[\"OpenAI\"] = \"OpenAI\";\n ServiceProvider[\"Azure\"] = \"Azure\";\n ServiceProvider[\"Google\"] = \"Google\";\n ServiceProvider[\"Anthropic\"] = \"Anthropic\";\n ServiceProvider[\"Baidu\"] = \"Baidu\";\n ServiceProvider[\"ByteDance\"] = \"ByteDance\";\n ServiceProvider[\"Alibaba\"] = \"Alibaba\";\n ServiceProvider[\"Tencent\"] = \"Tencent\";\n ServiceProvider[\"Moonshot\"] = \"Moonshot\";\n ServiceProvider[\"Stability\"] = \"Stability\";\n ServiceProvider[\"Iflytek\"] = \"Iflytek\";\n ServiceProvider[\"XAI\"] = \"XAI\";\n ServiceProvider[\"ChatGLM\"] = \"ChatGLM\";\n ServiceProvider[\"DeepSeek\"] = \"DeepSeek\";\n ServiceProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ServiceProvider || (ServiceProvider = {}));\nvar GoogleSafetySettingsThreshold;\n(function(GoogleSafetySettingsThreshold) {\n GoogleSafetySettingsThreshold[\"BLOCK_NONE\"] = \"BLOCK_NONE\";\n GoogleSafetySettingsThreshold[\"BLOCK_ONLY_HIGH\"] = \"BLOCK_ONLY_HIGH\";\n GoogleSafetySettingsThreshold[\"BLOCK_MEDIUM_AND_ABOVE\"] = \"BLOCK_MEDIUM_AND_ABOVE\";\n GoogleSafetySettingsThreshold[\"BLOCK_LOW_AND_ABOVE\"] = \"BLOCK_LOW_AND_ABOVE\";\n})(GoogleSafetySettingsThreshold || (GoogleSafetySettingsThreshold = {}));\nvar ModelProvider;\n(function(ModelProvider) {\n ModelProvider[\"Stability\"] = \"Stability\";\n ModelProvider[\"GPT\"] = \"GPT\";\n ModelProvider[\"GeminiPro\"] = \"GeminiPro\";\n ModelProvider[\"Claude\"] = \"Claude\";\n ModelProvider[\"Ernie\"] = \"Ernie\";\n ModelProvider[\"Doubao\"] = \"Doubao\";\n ModelProvider[\"Qwen\"] = \"Qwen\";\n ModelProvider[\"Hunyuan\"] = \"Hunyuan\";\n ModelProvider[\"Moonshot\"] = \"Moonshot\";\n ModelProvider[\"Iflytek\"] = \"Iflytek\";\n ModelProvider[\"XAI\"] = \"XAI\";\n ModelProvider[\"ChatGLM\"] = \"ChatGLM\";\n ModelProvider[\"DeepSeek\"] = \"DeepSeek\";\n ModelProvider[\"SiliconFlow\"] = \"SiliconFlow\";\n})(ModelProvider || (ModelProvider = {}));\nconst Stability = {\n GeneratePath: \"v2beta/stable-image/generate\",\n ExampleEndpoint: \"https://api.stability.ai\"\n};\nconst Anthropic = {\n ChatPath: \"v1/messages\",\n ChatPath1: \"v1/complete\",\n ExampleEndpoint: \"https://api.anthropic.com\",\n Vision: \"2023-06-01\"\n};\nconst OpenaiPath = {\n ChatPath: \"v1/chat/completions\",\n SpeechPath: \"v1/audio/speech\",\n ImagePath: \"v1/images/generations\",\n UsagePath: \"dashboard/billing/usage\",\n SubsPath: \"dashboard/billing/subscription\",\n ListModelPath: \"v1/models\"\n};\nconst Azure = {\n ChatPath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/chat/completions?api-version=\").concat(apiVersion),\n // https://.openai.azure.com/openai/deployments//images/generations?api-version=\n ImagePath: (deployName, apiVersion)=>\"deployments/\".concat(deployName, \"/images/generations?api-version=\").concat(apiVersion),\n ExampleEndpoint: \"https://{resource-url}/openai\"\n};\nconst Google = {\n ExampleEndpoint: \"https://generativelanguage.googleapis.com/\",\n ChatPath: (modelName)=>\"v1beta/models/\".concat(modelName, \":streamGenerateContent\")\n};\nconst Baidu = {\n ExampleEndpoint: BAIDU_BASE_URL,\n ChatPath: (modelName)=>{\n let endpoint = modelName;\n if (modelName === \"ernie-4.0-8k\") {\n endpoint = \"completions_pro\";\n }\n if (modelName === \"ernie-4.0-8k-preview-0518\") {\n endpoint = \"completions_adv_pro\";\n }\n if (modelName === \"ernie-3.5-8k\") {\n endpoint = \"completions\";\n }\n if (modelName === \"ernie-speed-8k\") {\n endpoint = \"ernie_speed\";\n }\n return \"rpc/2.0/ai_custom/v1/wenxinworkshop/chat/\".concat(endpoint);\n }\n};\nconst ByteDance = {\n ExampleEndpoint: \"https://ark.cn-beijing.volces.com/api/\",\n ChatPath: \"api/v3/chat/completions\"\n};\nconst Alibaba = {\n ExampleEndpoint: ALIBABA_BASE_URL,\n ChatPath: \"v1/services/aigc/text-generation/generation\"\n};\nconst Tencent = {\n ExampleEndpoint: TENCENT_BASE_URL\n};\nconst Moonshot = {\n ExampleEndpoint: MOONSHOT_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst Iflytek = {\n ExampleEndpoint: IFLYTEK_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DeepSeek = {\n ExampleEndpoint: DEEPSEEK_BASE_URL,\n ChatPath: \"chat/completions\"\n};\nconst XAI = {\n ExampleEndpoint: XAI_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst ChatGLM = {\n ExampleEndpoint: CHATGLM_BASE_URL,\n ChatPath: \"api/paas/v4/chat/completions\",\n ImagePath: \"api/paas/v4/images/generations\",\n VideoPath: \"api/paas/v4/videos/generations\"\n};\nconst SiliconFlow = {\n ExampleEndpoint: SILICONFLOW_BASE_URL,\n ChatPath: \"v1/chat/completions\"\n};\nconst DEFAULT_INPUT_TEMPLATE = \"{{input}}\"; // input / time / model / lang\n// export const DEFAULT_SYSTEM_TEMPLATE = `\n// You are ChatGPT, a large language model trained by {{ServiceProvider}}.\n// Knowledge cutoff: {{cutoff}}\n// Current model: {{model}}\n// Current time: {{time}}\n// Latex inline: $x^2$\n// Latex block: $$e=mc^2$$\n// `;\nconst DEFAULT_SYSTEM_TEMPLATE = \"\\nYou are ChatGPT, a large language model trained by {{ServiceProvider}}.\\nKnowledge cutoff: {{cutoff}}\\nCurrent model: {{model}}\\nCurrent time: {{time}}\\nLatex inline: \\\\(x^2\\\\) \\nLatex block: $$e=mc^2$$\\n\";\nconst MCP_TOOLS_TEMPLATE = \"\\n[clientId]\\n{{ clientId }}\\n[tools]\\n{{ tools }}\\n\";\nconst MCP_SYSTEM_TEMPLATE = '\\nYou are an AI assistant with access to system tools. Your role is to help users by combining natural language understanding with tool operations when needed.\\n\\n1. AVAILABLE TOOLS:\\n{{ MCP_TOOLS }}\\n\\n2. WHEN TO USE TOOLS:\\n - ALWAYS USE TOOLS when they can help answer user questions\\n - DO NOT just describe what you could do - TAKE ACTION immediately\\n - If you\\'re not sure whether to use a tool, USE IT\\n - Common triggers for tool use:\\n * Questions about files or directories\\n * Requests to check, list, or manipulate system resources\\n * Any query that can be answered with available tools\\n\\n3. HOW TO USE TOOLS:\\n A. Tool Call Format:\\n - Use markdown code blocks with format: ```json:mcp:{clientId}```\\n - Always include:\\n * method: \"tools/call\"(Only this method is supported)\\n * params: \\n - name: must match an available primitive name\\n - arguments: required parameters for the primitive\\n\\n B. Response Format:\\n - Tool responses will come as user messages\\n - Format: ```json:mcp-response:{clientId}```\\n - Wait for response before making another tool call\\n\\n C. Important Rules:\\n - Only use tools/call method\\n - Only ONE tool call per message\\n - ALWAYS TAKE ACTION instead of just describing what you could do\\n - Include the correct clientId in code block language tag\\n - Verify arguments match the primitive\\'s requirements\\n\\n4. INTERACTION FLOW:\\n A. When user makes a request:\\n - IMMEDIATELY use appropriate tool if available\\n - DO NOT ask if user wants you to use the tool\\n - DO NOT just describe what you could do\\n B. After receiving tool response:\\n - Explain results clearly\\n - Take next appropriate action if needed\\n C. If tools fail:\\n - Explain the error\\n - Try alternative approach immediately\\n\\n5. EXAMPLE INTERACTION:\\n\\n good example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"list_allowed_directories\",\\n \"arguments\": {}\\n }\\n }\\n ```\"\\n\\n\\n ```json:mcp-response:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"write_file\",\\n \"arguments\": {\\n \"path\": \"/Users/river/dev/nextchat/test/joke.txt\",\\n \"content\": \"为什么数学书总是感到忧伤?因为它有太多的问题。\"\\n }\\n }\\n }\\n```\\n\\n follwing is the wrong! mcp json example:\\n\\n ```json:mcp:filesystem\\n {\\n \"method\": \"write_file\",\\n \"params\": {\\n \"path\": \"NextChat_Information.txt\",\\n \"content\": \"1\"\\n }\\n }\\n ```\\n\\n This is wrong because the method is not tools/call.\\n \\n ```{\\n \"method\": \"search_repositories\",\\n \"params\": {\\n \"query\": \"2oeee\"\\n }\\n}\\n ```\\n\\n This is wrong because the method is not tools/call.!!!!!!!!!!!\\n\\n the right format is:\\n ```json:mcp:filesystem\\n {\\n \"method\": \"tools/call\",\\n \"params\": {\\n \"name\": \"search_repositories\",\\n \"arguments\": {\\n \"query\": \"2oeee\"\\n }\\n }\\n }\\n ```\\n \\n please follow the format strictly ONLY use tools/call method!!!!!!!!!!!\\n \\n';\nconst SUMMARIZE_MODEL = \"gpt-4o-mini\";\nconst GEMINI_SUMMARIZE_MODEL = \"gemini-pro\";\nconst DEEPSEEK_SUMMARIZE_MODEL = \"deepseek-ai/DeepSeek-R1-Distill-Llama-8B\";\nconst KnowledgeCutOffDate = {\n default: \"2021-09\",\n \"gpt-4-turbo\": \"2023-12\",\n \"gpt-4-turbo-2024-04-09\": \"2023-12\",\n \"gpt-4-turbo-preview\": \"2023-12\",\n \"gpt-4o\": \"2023-10\",\n \"gpt-4o-2024-05-13\": \"2023-10\",\n \"gpt-4o-2024-08-06\": \"2023-10\",\n \"gpt-4o-2024-11-20\": \"2023-10\",\n \"chatgpt-4o-latest\": \"2023-10\",\n \"gpt-4o-mini\": \"2023-10\",\n \"gpt-4o-mini-2024-07-18\": \"2023-10\",\n \"gpt-4-vision-preview\": \"2023-04\",\n \"o1-mini-2024-09-12\": \"2023-10\",\n \"o1-mini\": \"2023-10\",\n \"o1-preview-2024-09-12\": \"2023-10\",\n \"o1-preview\": \"2023-10\",\n \"o1-2024-12-17\": \"2023-10\",\n o1: \"2023-10\",\n \"o3-mini-2025-01-31\": \"2023-10\",\n \"o3-mini\": \"2023-10\",\n // After improvements,\n // it's now easier to add \"KnowledgeCutOffDate\" instead of stupid hardcoding it, as was done previously.\n \"gemini-pro\": \"2023-12\",\n \"gemini-pro-vision\": \"2023-12\",\n \"deepseek-chat\": \"2024-07\",\n \"deepseek-coder\": \"2024-07\"\n};\nconst DEFAULT_TTS_ENGINE = \"OpenAI-TTS\";\nconst DEFAULT_TTS_ENGINES = [\n \"OpenAI-TTS\",\n \"Edge-TTS\"\n];\nconst DEFAULT_TTS_MODEL = \"tts-1\";\nconst DEFAULT_TTS_VOICE = \"alloy\";\nconst DEFAULT_TTS_MODELS = [\n \"tts-1\",\n \"tts-1-hd\"\n];\nconst DEFAULT_TTS_VOICES = [\n \"alloy\",\n \"echo\",\n \"fable\",\n \"onyx\",\n \"nova\",\n \"shimmer\"\n];\nconst VISION_MODEL_REGEXES = [\n /vision/,\n /gpt-4o/,\n /claude-3/,\n /gemini-1\\.5/,\n /gemini-exp/,\n /gemini-2\\.0/,\n /learnlm/,\n /qwen-vl/,\n /qwen2-vl/,\n /gpt-4-turbo(?!.*preview)/,\n /^dall-e-3$/,\n /glm-4v/\n];\nconst EXCLUDE_VISION_MODEL_REGEXES = [\n /claude-3-5-haiku-20241022/\n];\nconst openaiModels = [];\nconst googleModels = [];\nconst anthropicModels = [];\nconst baiduModels = [];\nconst bytedanceModels = [];\nconst alibabaModes = [];\nconst tencentModels = [];\nconst moonshotModes = [];\nconst iflytekModels = [];\nconst deepseekModels = [];\nconst xAIModes = [];\nconst chatglmModels = [];\nconst siliconflowModels = [\n \"deepseek-ai/DeepSeek-R1\",\n \"deepseek-ai/DeepSeek-V3\",\n \"deepseek-ai/DeepSeek-R1-Distill-Llama-8B\"\n];\nlet seq = 1000; // 内置的模型序号生成器从1000开始\nconst DEFAULT_MODELS = [\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"openai\",\n providerName: \"OpenAI\",\n providerType: \"openai\",\n sorted: 1\n }\n })),\n ...openaiModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"azure\",\n providerName: \"Azure\",\n providerType: \"azure\",\n sorted: 2\n }\n })),\n ...googleModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"google\",\n providerName: \"Google\",\n providerType: \"google\",\n sorted: 3\n }\n })),\n ...anthropicModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"anthropic\",\n providerName: \"Anthropic\",\n providerType: \"anthropic\",\n sorted: 4\n }\n })),\n ...baiduModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"baidu\",\n providerName: \"Baidu\",\n providerType: \"baidu\",\n sorted: 5\n }\n })),\n ...bytedanceModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"bytedance\",\n providerName: \"ByteDance\",\n providerType: \"bytedance\",\n sorted: 6\n }\n })),\n ...alibabaModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"alibaba\",\n providerName: \"Alibaba\",\n providerType: \"alibaba\",\n sorted: 7\n }\n })),\n ...tencentModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"tencent\",\n providerName: \"Tencent\",\n providerType: \"tencent\",\n sorted: 8\n }\n })),\n ...moonshotModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"moonshot\",\n providerName: \"Moonshot\",\n providerType: \"moonshot\",\n sorted: 9\n }\n })),\n ...iflytekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"iflytek\",\n providerName: \"Iflytek\",\n providerType: \"iflytek\",\n sorted: 10\n }\n })),\n ...xAIModes.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"xai\",\n providerName: \"XAI\",\n providerType: \"xai\",\n sorted: 11\n }\n })),\n ...chatglmModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"chatglm\",\n providerName: \"ChatGLM\",\n providerType: \"chatglm\",\n sorted: 12\n }\n })),\n ...deepseekModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"deepseek\",\n providerName: \"DeepSeek\",\n providerType: \"deepseek\",\n sorted: 13\n }\n })),\n ...siliconflowModels.map((name)=>({\n name,\n available: true,\n sorted: seq++,\n provider: {\n id: \"siliconflow\",\n providerName: \"SiliconFlow\",\n providerType: \"siliconflow\",\n sorted: 14\n }\n }))\n];\nconst CHAT_PAGE_SIZE = 15;\nconst MAX_RENDER_MSG_COUNT = 45;\n// some famous webdav endpoints\nconst internalAllowedWebDavEndpoints = [\n \"https://dav.jianguoyun.com/dav/\",\n \"https://dav.dropdav.com/\",\n \"https://dav.box.com/dav\",\n \"https://nanao.teracloud.jp/dav/\",\n \"https://bora.teracloud.jp/dav/\",\n \"https://webdav.4shared.com/\",\n \"https://dav.idrivesync.com\",\n \"https://webdav.yandex.com\",\n \"https://app.koofr.net/dav/Koofr\"\n];\nconst DEFAULT_GA_ID = \"G-89WN60ZK2E\";\nconst SAAS_CHAT_URL = \"https://nextchat.dev/chat\";\nconst SAAS_CHAT_UTM_URL = \"https://nextchat.dev/chat?utm=github\";\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb25zdGFudC50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxNQUFNQSxRQUFRLGlCQUFpQjtBQUMvQixNQUFNQyxPQUFPLG1CQUFtQjtBQUNoQyxNQUFNQyxXQUFXLHNCQUErQkQsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQU87QUFDdkQsTUFBTUUsbUJBQW1CLHNCQUE0QixPQUFOSCxPQUFNLDZCQUEyQjtBQUNoRixNQUFNSSxZQUFZLHNCQUErQkgsT0FBVEQsT0FBTSxLQUFRLE9BQUxDLE1BQUssV0FBUztBQUMvRCxNQUFNSSxhQUFhLEdBQVksT0FBVEgsVUFBUyxpQkFBZTtBQUM5QyxNQUFNSSxjQUFjLEdBQVksT0FBVEosVUFBUyxhQUFXO0FBQzNDLE1BQU1LLG1CQUFtQixnQ0FBeUNOLE9BQVRELE9BQU0sS0FBUSxPQUFMQyxNQUFLLHVCQUFxQjtBQUM1RixNQUFNTyxnQkFBZ0IsZ0NBQXlDUCxPQUFURCxPQUFNLEtBQVEsT0FBTEMsTUFBSyxvQkFBa0I7QUFDdEYsTUFBTVEscUJBQXFCLHdCQUF3QjtBQUVuRCxNQUFNQyxxQkFBcUIsMkJBQTJCO0FBRXRELE1BQU1DLGtCQUFrQix5QkFBeUI7QUFDakQsTUFBTUMscUJBQXFCLDRCQUE0QjtBQUV2RCxNQUFNQyxrQkFBa0IsNkNBQTZDO0FBRXJFLE1BQU1DLGlCQUFpQiwyQkFBMkI7QUFDbEQsTUFBTUMsa0JBQWtCLEdBQWtCLE9BQWZELGdCQUFlLG9CQUFrQjtBQUU1RCxNQUFNRSxxQkFBcUIsb0NBQW9DO0FBRS9ELE1BQU1DLG1CQUFtQixzQ0FBc0M7QUFFL0QsTUFBTUMsbUJBQW1CLHNDQUFzQztBQUUvRCxNQUFNQyxvQkFBb0IsMEJBQTBCO0FBQ3BELE1BQU1DLG1CQUFtQixvQ0FBb0M7QUFFN0QsTUFBTUMs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d2VicGFjazovL19OX0UvLi9hcHAvY29uc3RhbnQudHM/YWY0NCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgT1dORVIgPSBcIkNoYXRHUFROZXh0V2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPID0gXCJDaGF0R1BULU5leHQtV2ViXCI7XHJcbmV4cG9ydCBjb25zdCBSRVBPX1VSTCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtPV05FUn0vJHtSRVBPfWA7XHJcbmV4cG9ydCBjb25zdCBQTFVHSU5TX1JFUE9fVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS9OZXh0Q2hhdC1Bd2Vzb21lLVBsdWdpbnNgO1xyXG5leHBvcnQgY29uc3QgSVNTVUVfVVJMID0gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke09XTkVSfS8ke1JFUE99L2lzc3Vlc2A7XHJcbmV4cG9ydCBjb25zdCBVUERBVEVfVVJMID0gYCR7UkVQT19VUkx9I2tlZXAtdXBkYXRlZGA7XHJcbmV4cG9ydCBjb25zdCBSRUxFQVNFX1VSTCA9IGAke1JFUE9fVVJMfS9yZWxlYXNlc2A7XHJcbmV4cG9ydCBjb25zdCBGRVRDSF9DT01NSVRfVVJMID0gYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHtPV05FUn0vJHtSRVBPfS9jb21taXRzP3Blcl9wYWdlPTFgO1xyXG5leHBvcnQgY29uc3QgRkVUQ0hfVEFHX1VSTCA9IGBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyR7T1dORVJ9LyR7UkVQT30vdGFncz9wZXJfcGFnZT0xYDtcclxuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ09ORklHX0RPTSA9IFwiZGFuZ2VyLXJ1bnRpbWUtY29uZmlnXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU1RBQklMSVRZX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS5zdGFiaWxpdHkuYWlcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBPUEVOQUlfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb21cIjtcclxuZXhwb3J0IGNvbnN0IEFOVEhST1BJQ19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFTUlOSV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9nZW5lcmF0aXZlbGFuZ3VhZ2UuZ29vZ2xlYXBpcy5jb20vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQkFJRFVfQkFTRV9VUkwgPSBcImh0dHBzOi8vYWlwLmJhaWR1YmNlLmNvbVwiO1xyXG5leHBvcnQgY29uc3QgQkFJRFVfT0FUVUhfVVJMID0gYCR7QkFJRFVfQkFTRV9VUkx9L29hdXRoLzIuMC90b2tlbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQllURURBTkNFX0JBU0VfVVJMID0gXCJodHRwczovL2Fyay5jbi1iZWlqaW5nLnZvbGNlcy5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBBTElCQUJBX0JBU0VfVVJMID0gXCJodHRwczovL2Rhc2hzY29wZS5hbGl5dW5jcy5jb20vYXBpL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkNFTlRfQkFTRV9VUkwgPSBcImh0dHBzOi8vaHVueXVhbi50ZW5jZW50Y2xvdWRhcGkuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTU9PTlNIT1RfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLm1vb25zaG90LmNuXCI7XHJcbmV4cG9ydCBjb25zdCBJRkxZVEVLX0JBU0VfVVJMID0gXCJodHRwczovL3NwYXJrLWFwaS1vcGVuLnhmLXl1bi5jb21cIjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUVQU0VFS19CQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tXCI7XHJcblxyXG5leHBvcnQgY29uc3QgWEFJX0JBU0VfVVJMID0gXCJodHRwczovL2FwaS54LmFpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hBVEdMTV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly9vcGVuLmJpZ21vZGVsLmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0lMSUNPTkZMT1dfQkFTRV9VUkwgPSBcImh0dHBzOi8vYXBpLnNpbGljb25mbG93LmNuXCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ0FDSEVfVVJMX1BSRUZJWCA9IFwiL2FwaS9jYWNoZVwiO1xyXG5leHBvcnQgY29uc3QgVVBMT0FEX1VSTCA9IGAke0NBQ0hFX1VSTF9QUkVGSVh9L3VwbG9hZGA7XHJcblxyXG5leHBvcnQgZW51bSBQYXRoIHtcclxuICBIb21lID0gXCIvXCIsXHJcbiAgQ2hhdCA9IFwiL2NoYXRcIixcclxuICBTZXR0aW5ncyA9IFwiL3NldHRpbmdzXCIsXHJcbiAgTmV3Q2hhdCA9IFwiL25ldy1jaGF0XCIsXHJcbiAgTWFza3MgPSBcIi9tYXNrc1wiLFxyXG4gIFBsdWdpbnMgPSBcIi9wbHVnaW5zXCIsXHJcbiAgQXV0aCA9IFwiL2F1dGhcIixcclxuICBTZCA9IFwiL3NkXCIsXHJcbiAgU2ROZXcgPSBcIi9zZC1uZXdcIixcclxuICBBcnRpZmFjdHMgPSBcIi9hcnRpZmFjdHNcIixcclxuICBTZWFyY2hDaGF0ID0gXCIvc2VhcmNoLWNoYXRcIixcclxuICBNY3BNYXJrZXQgPSBcIi9tY3AtbWFya2V0XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFwaVBhdGgge1xyXG4gIENvcnMgPSBcIlwiLFxyXG4gIEF6dXJlID0gXCIvYXBpL2F6dXJlXCIsXHJcbiAgT3BlbkFJID0gXCIvYXBpL29wZW5haVwiLFxyXG4gIEFudGhyb3BpYyA9IFwiL2FwaS9hbnRocm9waWNcIixcclxuICBHb29nbGUgPSBcIi9hcGkvZ29vZ2xlXCIsXHJcbiAgQmFpZHUgPSBcIi9hcGkvYmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIi9hcGkvYnl0ZWRhbmNlXCIsXHJcbiAgQWxpYmFiYSA9IFwiL2FwaS9hbGliYWJhXCIsXHJcbiAgVGVuY2VudCA9IFwiL2FwaS90ZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIi9hcGkvbW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCIvYXBpL2lmbHl0ZWtcIixcclxuICBTdGFiaWxpdHkgPSBcIi9hcGkvc3RhYmlsaXR5XCIsXHJcbiAgQXJ0aWZhY3RzID0gXCIvYXBpL2FydGlmYWN0c1wiLFxyXG4gIFhBSSA9IFwiL2FwaS94YWlcIixcclxuICBDaGF0R0xNID0gXCIvYXBpL2NoYXRnbG1cIixcclxuICBEZWVwU2VlayA9IFwiL2FwaS9kZWVwc2Vla1wiLFxyXG4gIFNpbGljb25GbG93ID0gXCIvYXBpL3NpbGljb25mbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNsb3RJRCB7XHJcbiAgQXBwQm9keSA9IFwiYXBwLWJvZHlcIixcclxuICBDdXN0b21Nb2RlbCA9IFwiY3VzdG9tLW1vZGVsXCIsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVOYW1lIHtcclxuICBNYXNrcyA9IFwibWFza3MuanNvblwiLFxyXG4gIFByb21wdHMgPSBcInByb21wdHMuanNvblwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTdG9yZUtleSB7XHJcbiAgQ2hhdCA9IFwiY2hhdC1uZXh0LXdlYi1zdG9yZVwiLFxyXG4gIFBsdWdpbiA9IFwiY2hhdC1uZXh0LXdlYi1wbHVnaW5cIixcclxuICBBY2Nlc3MgPSBcImFjY2Vzcy1jb250cm9sXCIsXHJcbiAgQ29uZmlnID0gXCJhcHAtY29uZmlnXCIsXHJcbiAgTWFzayA9IFwibWFzay1zdG9yZVwiLFxyXG4gIFByb21wdCA9IFwicHJvbXB0LXN0b3JlXCIsXHJcbiAgVXBkYXRlID0gXCJjaGF0LXVwZGF0ZVwiLFxyXG4gIFN5bmMgPSBcInN5bmNcIixcclxuICBTZExpc3QgPSBcInNkLWxpc3RcIixcclxuICBNY3AgPSBcIm1jcC1zdG9yZVwiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TSURFQkFSX1dJRFRIID0gMzAwO1xyXG5leHBvcnQgY29uc3QgTUFYX1NJREVCQVJfV0lEVEggPSA1MDA7XHJcbmV4cG9ydCBjb25zdCBNSU5fU0lERUJBUl9XSURUSCA9IDIzMDtcclxuZXhwb3J0IGNvbnN0IE5BUlJPV19TSURFQkFSX1dJRFRIID0gMTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFDQ0VTU19DT0RFX1BSRUZJWCA9IFwibmstXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTEFTVF9JTlBVVF9LRVkgPSBcImxhc3QtaW5wdXRcIjtcclxuZXhwb3J0IGNvbnN0IFVORklOSVNIRURfSU5QVVQgPSAoaWQ6IHN0cmluZykgPT4gXCJ1bmZpbmlzaGVkLWlucHV0LVwiICsgaWQ7XHJcblxyXG5leHBvcnQgY29uc3QgU1RPUkFHRV9LRVkgPSBcImNoYXRncHQtbmV4dC13ZWJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVMgPSA2MDAwMDtcclxuZXhwb3J0IGNvbnN0IFJFUVVFU1RfVElNRU9VVF9NU19GT1JfVEhJTktJTkcgPSBSRVFVRVNUX1RJTUVPVVRfTVMgKiA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYUE9SVF9NRVNTQUdFX0NMQVNTX05BTUUgPSBcImV4cG9ydC1tYXJrZG93blwiO1xyXG5cclxuZXhwb3J0IGVudW0gU2VydmljZVByb3ZpZGVyIHtcclxuICBPcGVuQUkgPSBcIk9wZW5BSVwiLFxyXG4gIEF6dXJlID0gXCJBenVyZVwiLFxyXG4gIEdvb2dsZSA9IFwiR29vZ2xlXCIsXHJcbiAgQW50aHJvcGljID0gXCJBbnRocm9waWNcIixcclxuICBCYWlkdSA9IFwiQmFpZHVcIixcclxuICBCeXRlRGFuY2UgPSBcIkJ5dGVEYW5jZVwiLFxyXG4gIEFsaWJhYmEgPSBcIkFsaWJhYmFcIixcclxuICBUZW5jZW50ID0gXCJUZW5jZW50XCIsXHJcbiAgTW9vbnNob3QgPSBcIk1vb25zaG90XCIsXHJcbiAgU3RhYmlsaXR5ID0gXCJTdGFiaWxpdHlcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbi8vIEdvb2dsZSBBUEkgc2FmZXR5IHNldHRpbmdzLCBzZWUgaHR0cHM6Ly9haS5nb29nbGUuZGV2L2dlbWluaS1hcGkvZG9jcy9zYWZldHktc2V0dGluZ3NcclxuLy8gQkxPQ0tfTk9ORSB3aWxsIG5vdCBibG9jayBhbnkgY29udGVudCwgYW5kIEJMT0NLX09OTFlfSElHSCB3aWxsIGJsb2NrIG9ubHkgaGlnaC1yaXNrIGNvbnRlbnQuXHJcbmV4cG9ydCBlbnVtIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIHtcclxuICBCTE9DS19OT05FID0gXCJCTE9DS19OT05FXCIsXHJcbiAgQkxPQ0tfT05MWV9ISUdIID0gXCJCTE9DS19PTkxZX0hJR0hcIixcclxuICBCTE9DS19NRURJVU1fQU5EX0FCT1ZFID0gXCJCTE9DS19NRURJVU1fQU5EX0FCT1ZFXCIsXHJcbiAgQkxPQ0tfTE9XX0FORF9BQk9WRSA9IFwiQkxPQ0tfTE9XX0FORF9BQk9WRVwiLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBNb2RlbFByb3ZpZGVyIHtcclxuICBTdGFiaWxpdHkgPSBcIlN0YWJpbGl0eVwiLFxyXG4gIEdQVCA9IFwiR1BUXCIsXHJcbiAgR2VtaW5pUHJvID0gXCJHZW1pbmlQcm9cIixcclxuICBDbGF1ZGUgPSBcIkNsYXVkZVwiLFxyXG4gIEVybmllID0gXCJFcm5pZVwiLFxyXG4gIERvdWJhbyA9IFwiRG91YmFvXCIsXHJcbiAgUXdlbiA9IFwiUXdlblwiLFxyXG4gIEh1bnl1YW4gPSBcIkh1bnl1YW5cIixcclxuICBNb29uc2hvdCA9IFwiTW9vbnNob3RcIixcclxuICBJZmx5dGVrID0gXCJJZmx5dGVrXCIsXHJcbiAgWEFJID0gXCJYQUlcIixcclxuICBDaGF0R0xNID0gXCJDaGF0R0xNXCIsXHJcbiAgRGVlcFNlZWsgPSBcIkRlZXBTZWVrXCIsXHJcbiAgU2lsaWNvbkZsb3cgPSBcIlNpbGljb25GbG93XCIsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTdGFiaWxpdHkgPSB7XHJcbiAgR2VuZXJhdGVQYXRoOiBcInYyYmV0YS9zdGFibGUtaW1hZ2UvZ2VuZXJhdGVcIixcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcGkuc3RhYmlsaXR5LmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQW50aHJvcGljID0ge1xyXG4gIENoYXRQYXRoOiBcInYxL21lc3NhZ2VzXCIsXHJcbiAgQ2hhdFBhdGgxOiBcInYxL2NvbXBsZXRlXCIsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8vYXBpLmFudGhyb3BpYy5jb21cIixcclxuICBWaXNpb246IFwiMjAyMy0wNi0wMVwiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IE9wZW5haVBhdGggPSB7XHJcbiAgQ2hhdFBhdGg6IFwidjEvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG4gIFNwZWVjaFBhdGg6IFwidjEvYXVkaW8vc3BlZWNoXCIsXHJcbiAgSW1hZ2VQYXRoOiBcInYxL2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFVzYWdlUGF0aDogXCJkYXNoYm9hcmQvYmlsbGluZy91c2FnZVwiLFxyXG4gIFN1YnNQYXRoOiBcImRhc2hib2FyZC9iaWxsaW5nL3N1YnNjcmlwdGlvblwiLFxyXG4gIExpc3RNb2RlbFBhdGg6IFwidjEvbW9kZWxzXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQXp1cmUgPSB7XHJcbiAgQ2hhdFBhdGg6IChkZXBsb3lOYW1lOiBzdHJpbmcsIGFwaVZlcnNpb246IHN0cmluZykgPT5cclxuICAgIGBkZXBsb3ltZW50cy8ke2RlcGxveU5hbWV9L2NoYXQvY29tcGxldGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgLy8gaHR0cHM6Ly88eW91cl9yZXNvdXJjZV9uYW1lPi5vcGVuYWkuYXp1cmUuY29tL29wZW5haS9kZXBsb3ltZW50cy88eW91cl9kZXBsb3ltZW50X25hbWU+L2ltYWdlcy9nZW5lcmF0aW9ucz9hcGktdmVyc2lvbj08YXBpX3ZlcnNpb24+XHJcbiAgSW1hZ2VQYXRoOiAoZGVwbG95TmFtZTogc3RyaW5nLCBhcGlWZXJzaW9uOiBzdHJpbmcpID0+XHJcbiAgICBgZGVwbG95bWVudHMvJHtkZXBsb3lOYW1lfS9pbWFnZXMvZ2VuZXJhdGlvbnM/YXBpLXZlcnNpb249JHthcGlWZXJzaW9ufWAsXHJcbiAgRXhhbXBsZUVuZHBvaW50OiBcImh0dHBzOi8ve3Jlc291cmNlLXVybH0vb3BlbmFpXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgR29vZ2xlID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogXCJodHRwczovL2dlbmVyYXRpdmVsYW5ndWFnZS5nb29nbGVhcGlzLmNvbS9cIixcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PlxyXG4gICAgYHYxYmV0YS9tb2RlbHMvJHttb2RlbE5hbWV9OnN0cmVhbUdlbmVyYXRlQ29udGVudGAsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQmFpZHUgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBCQUlEVV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogKG1vZGVsTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBsZXQgZW5kcG9pbnQgPSBtb2RlbE5hbWU7XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTQuMC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19wcm9cIjtcclxuICAgIH1cclxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwiZXJuaWUtNC4wLThrLXByZXZpZXctMDUxOFwiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc19hZHZfcHJvXCI7XHJcbiAgICB9XHJcbiAgICBpZiAobW9kZWxOYW1lID09PSBcImVybmllLTMuNS04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJjb21wbGV0aW9uc1wiO1xyXG4gICAgfVxyXG4gICAgaWYgKG1vZGVsTmFtZSA9PT0gXCJlcm5pZS1zcGVlZC04a1wiKSB7XHJcbiAgICAgIGVuZHBvaW50ID0gXCJlcm5pZV9zcGVlZFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGBycGMvMi4wL2FpX2N1c3RvbS92MS93ZW54aW53b3Jrc2hvcC9jaGF0LyR7ZW5kcG9pbnR9YDtcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEJ5dGVEYW5jZSA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFwiaHR0cHM6Ly9hcmsuY24tYmVpamluZy52b2xjZXMuY29tL2FwaS9cIixcclxuICBDaGF0UGF0aDogXCJhcGkvdjMvY2hhdC9jb21wbGV0aW9uc1wiLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFsaWJhYmEgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBBTElCQUJBX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL3NlcnZpY2VzL2FpZ2MvdGV4dC1nZW5lcmF0aW9uL2dlbmVyYXRpb25cIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBUZW5jZW50ID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogVEVOQ0VOVF9CQVNFX1VSTCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNb29uc2hvdCA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IE1PT05TSE9UX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBJZmx5dGVrID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogSUZMWVRFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJ2MS9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgRGVlcFNlZWsgPSB7XHJcbiAgRXhhbXBsZUVuZHBvaW50OiBERUVQU0VFS19CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJjaGF0L2NvbXBsZXRpb25zXCIsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgWEFJID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogWEFJX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBDaGF0R0xNID0ge1xyXG4gIEV4YW1wbGVFbmRwb2ludDogQ0hBVEdMTV9CQVNFX1VSTCxcclxuICBDaGF0UGF0aDogXCJhcGkvcGFhcy92NC9jaGF0L2NvbXBsZXRpb25zXCIsXHJcbiAgSW1hZ2VQYXRoOiBcImFwaS9wYWFzL3Y0L2ltYWdlcy9nZW5lcmF0aW9uc1wiLFxyXG4gIFZpZGVvUGF0aDogXCJhcGkvcGFhcy92NC92aWRlb3MvZ2VuZXJhdGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBTaWxpY29uRmxvdyA9IHtcclxuICBFeGFtcGxlRW5kcG9pbnQ6IFNJTElDT05GTE9XX0JBU0VfVVJMLFxyXG4gIENoYXRQYXRoOiBcInYxL2NoYXQvY29tcGxldGlvbnNcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUX1RFTVBMQVRFID0gYHt7aW5wdXR9fWA7IC8vIGlucHV0IC8gdGltZSAvIG1vZGVsIC8gbGFuZ1xyXG4vLyBleHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbi8vIFlvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbi8vIEtub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuLy8gQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbi8vIEN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuLy8gTGF0ZXggaW5saW5lOiAkeF4yJFxyXG4vLyBMYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG4vLyBgO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TWVNURU1fVEVNUExBVEUgPSBgXHJcbllvdSBhcmUgQ2hhdEdQVCwgYSBsYXJnZSBsYW5ndWFnZSBtb2RlbCB0cmFpbmVkIGJ5IHt7U2VydmljZVByb3ZpZGVyfX0uXHJcbktub3dsZWRnZSBjdXRvZmY6IHt7Y3V0b2ZmfX1cclxuQ3VycmVudCBtb2RlbDoge3ttb2RlbH19XHJcbkN1cnJlbnQgdGltZToge3t0aW1lfX1cclxuTGF0ZXggaW5saW5lOiBcXFxcKHheMlxcXFwpIFxyXG5MYXRleCBibG9jazogJCRlPW1jXjIkJFxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1DUF9UT09MU19URU1QTEFURSA9IGBcclxuW2NsaWVudElkXVxyXG57eyBjbGllbnRJZCB9fVxyXG5bdG9vbHNdXHJcbnt7IHRvb2xzIH19XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTUNQX1NZU1RFTV9URU1QTEFURSA9IGBcclxuWW91IGFyZSBhbiBBSSBhc3Npc3RhbnQgd2l0aCBhY2Nlc3MgdG8gc3lzdGVtIHRvb2xzLiBZb3VyIHJvbGUgaXMgdG8gaGVscCB1c2VycyBieSBjb21iaW5pbmcgbmF0dXJhbCBsYW5ndWFnZSB1bmRlcnN0YW5kaW5nIHdpdGggdG9vbCBvcGVyYXRpb25zIHdoZW4gbmVlZGVkLlxyXG5cclxuMS4gQVZBSUxBQkxFIFRPT0xTOlxyXG57eyBNQ1BfVE9PTFMgfX1cclxuXHJcbjIuIFdIRU4gVE8gVVNFIFRPT0xTOlxyXG4gICAtIEFMV0FZUyBVU0UgVE9PTFMgd2hlbiB0aGV5IGNhbiBoZWxwIGFuc3dlciB1c2VyIHF1ZXN0aW9uc1xyXG4gICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvIC0gVEFLRSBBQ1RJT04gaW1tZWRpYXRlbHlcclxuICAgLSBJZiB5b3UncmUgbm90IHN1cmUgd2hldGhlciB0byB1c2UgYSB0b29sLCBVU0UgSVRcclxuICAgLSBDb21tb24gdHJpZ2dlcnMgZm9yIHRvb2wgdXNlOlxyXG4gICAgICogUXVlc3Rpb25zIGFib3V0IGZpbGVzIG9yIGRpcmVjdG9yaWVzXHJcbiAgICAgKiBSZXF1ZXN0cyB0byBjaGVjaywgbGlzdCwgb3IgbWFuaXB1bGF0ZSBzeXN0ZW0gcmVzb3VyY2VzXHJcbiAgICAgKiBBbnkgcXVlcnkgdGhhdCBjYW4gYmUgYW5zd2VyZWQgd2l0aCBhdmFpbGFibGUgdG9vbHNcclxuXHJcbjMuIEhPVyBUTyBVU0UgVE9PTFM6XHJcbiAgIEEuIFRvb2wgQ2FsbCBGb3JtYXQ6XHJcbiAgICAgIC0gVXNlIG1hcmtkb3duIGNvZGUgYmxvY2tzIHdpdGggZm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcDp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gQWx3YXlzIGluY2x1ZGU6XHJcbiAgICAgICAgKiBtZXRob2Q6IFwidG9vbHMvY2FsbFwi77yIT25seSB0aGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWTvvIlcclxuICAgICAgICAqIHBhcmFtczogXHJcbiAgICAgICAgICAtIG5hbWU6IG11c3QgbWF0Y2ggYW4gYXZhaWxhYmxlIHByaW1pdGl2ZSBuYW1lXHJcbiAgICAgICAgICAtIGFyZ3VtZW50czogcmVxdWlyZWQgcGFyYW1ldGVycyBmb3IgdGhlIHByaW1pdGl2ZVxyXG5cclxuICAgQi4gUmVzcG9uc2UgRm9ybWF0OlxyXG4gICAgICAtIFRvb2wgcmVzcG9uc2VzIHdpbGwgY29tZSBhcyB1c2VyIG1lc3NhZ2VzXHJcbiAgICAgIC0gRm9ybWF0OiBcXGBcXGBcXGBqc29uOm1jcC1yZXNwb25zZTp7Y2xpZW50SWR9XFxgXFxgXFxgXHJcbiAgICAgIC0gV2FpdCBmb3IgcmVzcG9uc2UgYmVmb3JlIG1ha2luZyBhbm90aGVyIHRvb2wgY2FsbFxyXG5cclxuICAgQy4gSW1wb3J0YW50IFJ1bGVzOlxyXG4gICAgICAtIE9ubHkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kXHJcbiAgICAgIC0gT25seSBPTkUgdG9vbCBjYWxsIHBlciBtZXNzYWdlXHJcbiAgICAgIC0gQUxXQVlTIFRBS0UgQUNUSU9OIGluc3RlYWQgb2YganVzdCBkZXNjcmliaW5nIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgICAgIC0gSW5jbHVkZSB0aGUgY29ycmVjdCBjbGllbnRJZCBpbiBjb2RlIGJsb2NrIGxhbmd1YWdlIHRhZ1xyXG4gICAgICAtIFZlcmlmeSBhcmd1bWVudHMgbWF0Y2ggdGhlIHByaW1pdGl2ZSdzIHJlcXVpcmVtZW50c1xyXG5cclxuNC4gSU5URVJBQ1RJT04gRkxPVzpcclxuICAgQS4gV2hlbiB1c2VyIG1ha2VzIGEgcmVxdWVzdDpcclxuICAgICAgLSBJTU1FRElBVEVMWSB1c2UgYXBwcm9wcmlhdGUgdG9vbCBpZiBhdmFpbGFibGVcclxuICAgICAgLSBETyBOT1QgYXNrIGlmIHVzZXIgd2FudHMgeW91IHRvIHVzZSB0aGUgdG9vbFxyXG4gICAgICAtIERPIE5PVCBqdXN0IGRlc2NyaWJlIHdoYXQgeW91IGNvdWxkIGRvXHJcbiAgIEIuIEFmdGVyIHJlY2VpdmluZyB0b29sIHJlc3BvbnNlOlxyXG4gICAgICAtIEV4cGxhaW4gcmVzdWx0cyBjbGVhcmx5XHJcbiAgICAgIC0gVGFrZSBuZXh0IGFwcHJvcHJpYXRlIGFjdGlvbiBpZiBuZWVkZWRcclxuICAgQy4gSWYgdG9vbHMgZmFpbDpcclxuICAgICAgLSBFeHBsYWluIHRoZSBlcnJvclxyXG4gICAgICAtIFRyeSBhbHRlcm5hdGl2ZSBhcHByb2FjaCBpbW1lZGlhdGVseVxyXG5cclxuNS4gRVhBTVBMRSBJTlRFUkFDVElPTjpcclxuXHJcbiAgZ29vZCBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgXCJtZXRob2RcIjogXCJ0b29scy9jYWxsXCIsXHJcbiAgICAgXCJwYXJhbXNcIjoge1xyXG4gICAgICAgXCJuYW1lXCI6IFwibGlzdF9hbGxvd2VkX2RpcmVjdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7fVxyXG4gICAgIH1cclxuICAgfVxyXG4gICBcXGBcXGBcXGBcIlxyXG5cclxuXHJcbiAgXFxgXFxgXFxganNvbjptY3AtcmVzcG9uc2U6ZmlsZXN5c3RlbVxyXG4gIHtcclxuICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcIm5hbWVcIjogXCJ3cml0ZV9maWxlXCIsXHJcbiAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgIFwicGF0aFwiOiBcIi9Vc2Vycy9yaXZlci9kZXYvbmV4dGNoYXQvdGVzdC9qb2tlLnR4dFwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCLkuLrku4DkuYjmlbDlrabkuabmgLvmmK/mhJ/liLDlv6fkvKTvvJ/lm6DkuLrlroPmnInlpKrlpJrnmoTpl67popjjgIJcIlxyXG4gICAgfVxyXG4gIH1cclxuICB9XHJcblxcYFxcYFxcYFxyXG5cclxuICAgZm9sbHdpbmcgaXMgdGhlIHdyb25nISBtY3AganNvbiBleGFtcGxlOlxyXG5cclxuICAgXFxgXFxgXFxganNvbjptY3A6ZmlsZXN5c3RlbVxyXG4gICB7XHJcbiAgICAgIFwibWV0aG9kXCI6IFwid3JpdGVfZmlsZVwiLFxyXG4gICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICAgXCJwYXRoXCI6IFwiTmV4dENoYXRfSW5mb3JtYXRpb24udHh0XCIsXHJcbiAgICAgICAgXCJjb250ZW50XCI6IFwiMVwiXHJcbiAgICB9XHJcbiAgIH1cclxuICAgXFxgXFxgXFxgXHJcblxyXG4gICBUaGlzIGlzIHdyb25nIGJlY2F1c2UgdGhlIG1ldGhvZCBpcyBub3QgdG9vbHMvY2FsbC5cclxuICAgXHJcbiAgIFxcYFxcYFxcYHtcclxuICBcIm1ldGhvZFwiOiBcInNlYXJjaF9yZXBvc2l0b3JpZXNcIixcclxuICBcInBhcmFtc1wiOiB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiMm9lZWVcIlxyXG4gIH1cclxufVxyXG4gICBcXGBcXGBcXGBcclxuXHJcbiAgIFRoaXMgaXMgd3JvbmcgYmVjYXVzZSB0aGUgbWV0aG9kIGlzIG5vdCB0b29scy9jYWxsLiEhISEhISEhISEhXHJcblxyXG4gICB0aGUgcmlnaHQgZm9ybWF0IGlzOlxyXG4gICBcXGBcXGBcXGBqc29uOm1jcDpmaWxlc3lzdGVtXHJcbiAgIHtcclxuICAgICBcIm1ldGhvZFwiOiBcInRvb2xzL2NhbGxcIixcclxuICAgICBcInBhcmFtc1wiOiB7XHJcbiAgICAgICBcIm5hbWVcIjogXCJzZWFyY2hfcmVwb3NpdG9yaWVzXCIsXHJcbiAgICAgICBcImFyZ3VtZW50c1wiOiB7XHJcbiAgICAgICAgIFwicXVlcnlcIjogXCIyb2VlZVwiXHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgIFxcYFxcYFxcYFxyXG4gICBcclxuICAgcGxlYXNlIGZvbGxvdyB0aGUgZm9ybWF0IHN0cmljdGx5IE9OTFkgdXNlIHRvb2xzL2NhbGwgbWV0aG9kISEhISEhISEhISFcclxuICAgXHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU1VNTUFSSVpFX01PREVMID0gXCJncHQtNG8tbWluaVwiO1xyXG5leHBvcnQgY29uc3QgR0VNSU5JX1NVTU1BUklaRV9NT0RFTCA9IFwiZ2VtaW5pLXByb1wiO1xyXG5leHBvcnQgY29uc3QgREVFUFNFRUtfU1VNTUFSSVpFX01PREVMID0gXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMS1EaXN0aWxsLUxsYW1hLThCXCI7XHJcblxyXG5leHBvcnQgY29uc3QgS25vd2xlZGdlQ3V0T2ZmRGF0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICBkZWZhdWx0OiBcIjIwMjEtMDlcIixcclxuICBcImdwdC00LXR1cmJvXCI6IFwiMjAyMy0xMlwiLFxyXG4gIFwiZ3B0LTQtdHVyYm8tMjAyNC0wNC0wOVwiOiBcIjIwMjMtMTJcIixcclxuICBcImdwdC00LXR1cmJvLXByZXZpZXdcIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJncHQtNG9cIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJncHQtNG8tMjAyNC0wNS0xM1wiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by0yMDI0LTA4LTA2XCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLTIwMjQtMTEtMjBcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJjaGF0Z3B0LTRvLWxhdGVzdFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00by1taW5pXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwiZ3B0LTRvLW1pbmktMjAyNC0wNy0xOFwiOiBcIjIwMjMtMTBcIixcclxuICBcImdwdC00LXZpc2lvbi1wcmV2aWV3XCI6IFwiMjAyMy0wNFwiLFxyXG4gIFwibzEtbWluaS0yMDI0LTA5LTEyXCI6IFwiMjAyMy0xMFwiLFxyXG4gIFwibzEtbWluaVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXctMjAyNC0wOS0xMlwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8xLXByZXZpZXdcIjogXCIyMDIzLTEwXCIsXHJcbiAgXCJvMS0yMDI0LTEyLTE3XCI6IFwiMjAyMy0xMFwiLFxyXG4gIG8xOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmktMjAyNS0wMS0zMVwiOiBcIjIwMjMtMTBcIixcclxuICBcIm8zLW1pbmlcIjogXCIyMDIzLTEwXCIsXHJcbiAgLy8gQWZ0ZXIgaW1wcm92ZW1lbnRzLFxyXG4gIC8vIGl0J3Mgbm93IGVhc2llciB0byBhZGQgXCJLbm93bGVkZ2VDdXRPZmZEYXRlXCIgaW5zdGVhZCBvZiBzdHVwaWQgaGFyZGNvZGluZyBpdCwgYXMgd2FzIGRvbmUgcHJldmlvdXNseS5cclxuICBcImdlbWluaS1wcm9cIjogXCIyMDIzLTEyXCIsXHJcbiAgXCJnZW1pbmktcHJvLXZpc2lvblwiOiBcIjIwMjMtMTJcIixcclxuICBcImRlZXBzZWVrLWNoYXRcIjogXCIyMDI0LTA3XCIsXHJcbiAgXCJkZWVwc2Vlay1jb2RlclwiOiBcIjIwMjQtMDdcIixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19FTkdJTkUgPSBcIk9wZW5BSS1UVFNcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX0VOR0lORVMgPSBbXCJPcGVuQUktVFRTXCIsIFwiRWRnZS1UVFNcIl07XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RUU19NT0RFTCA9IFwidHRzLTFcIjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFID0gXCJhbGxveVwiO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9UVFNfTU9ERUxTID0gW1widHRzLTFcIiwgXCJ0dHMtMS1oZFwiXTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFRTX1ZPSUNFUyA9IFtcclxuICBcImFsbG95XCIsXHJcbiAgXCJlY2hvXCIsXHJcbiAgXCJmYWJsZVwiLFxyXG4gIFwib255eFwiLFxyXG4gIFwibm92YVwiLFxyXG4gIFwic2hpbW1lclwiLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IFZJU0lPTl9NT0RFTF9SRUdFWEVTID0gW1xyXG4gIC92aXNpb24vLFxyXG4gIC9ncHQtNG8vLFxyXG4gIC9jbGF1ZGUtMy8sXHJcbiAgL2dlbWluaS0xXFwuNS8sXHJcbiAgL2dlbWluaS1leHAvLFxyXG4gIC9nZW1pbmktMlxcLjAvLFxyXG4gIC9sZWFybmxtLyxcclxuICAvcXdlbi12bC8sXHJcbiAgL3F3ZW4yLXZsLyxcclxuICAvZ3B0LTQtdHVyYm8oPyEuKnByZXZpZXcpLywgLy8gTWF0Y2hlcyBcImdwdC00LXR1cmJvXCIgYnV0IG5vdCBcImdwdC00LXR1cmJvLXByZXZpZXdcIlxyXG4gIC9eZGFsbC1lLTMkLywgLy8gTWF0Y2hlcyBleGFjdGx5IFwiZGFsbC1lLTNcIlxyXG4gIC9nbG0tNHYvLFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVYQ0xVREVfVklTSU9OX01PREVMX1JFR0VYRVMgPSBbL2NsYXVkZS0zLTUtaGFpa3UtMjAyNDEwMjIvXTtcclxuXHJcbmNvbnN0IG9wZW5haU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGdvb2dsZU1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGFudGhyb3BpY01vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IGJhaWR1TW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYnl0ZWRhbmNlTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgYWxpYmFiYU1vZGVzID0gW1xyXG5dO1xyXG5cclxuY29uc3QgdGVuY2VudE1vZGVscyA9IFtcclxuXTtcclxuXHJcbmNvbnN0IG1vb25zaG90TW9kZXMgPSBbXTtcclxuXHJcbmNvbnN0IGlmbHl0ZWtNb2RlbHMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBkZWVwc2Vla01vZGVscyA9IFtdO1xyXG5cclxuY29uc3QgeEFJTW9kZXMgPSBbXHJcbl07XHJcblxyXG5jb25zdCBjaGF0Z2xtTW9kZWxzID0gW1xyXG5dO1xyXG5cclxuY29uc3Qgc2lsaWNvbmZsb3dNb2RlbHMgPSBbXHJcbiAgXCJkZWVwc2Vlay1haS9EZWVwU2Vlay1SMVwiLFxyXG4gIFwiZGVlcHNlZWstYWkvRGVlcFNlZWstVjNcIixcclxuICBcImRlZXBzZWVrLWFpL0RlZXBTZWVrLVIxLURpc3RpbGwtTGxhbWEtOEJcIixcclxuXTtcclxuXHJcbmxldCBzZXEgPSAxMDAwOyAvLyDlhoXnva7nmoTmqKHlnovluo/lj7fnlJ/miJDlmajku44xMDAw5byA5aeLXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREVMUyA9IFtcclxuICAuLi5vcGVuYWlNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssIC8vIEdsb2JhbCBzZXF1ZW5jZSBzb3J0KGluZGV4KVxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwib3BlbmFpXCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJPcGVuQUlcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcIm9wZW5haVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEsIC8vIOi/memHjOaYr+WbuuWumueahO+8jOehruS/nemhuuW6j+S4juS5i+WJjeWGhee9rueahOeJiOacrOS4gOiHtFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ub3BlbmFpTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYXp1cmVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkF6dXJlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhenVyZVwiLFxyXG4gICAgICBzb3J0ZWQ6IDIsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5nb29nbGVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJnb29nbGVcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIkdvb2dsZVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiZ29vZ2xlXCIsXHJcbiAgICAgIHNvcnRlZDogMyxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmFudGhyb3BpY01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImFudGhyb3BpY1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQW50aHJvcGljXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJhbnRocm9waWNcIixcclxuICAgICAgc29ydGVkOiA0LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYmFpZHVNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJiYWlkdVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQmFpZHVcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImJhaWR1XCIsXHJcbiAgICAgIHNvcnRlZDogNSxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG4gIC4uLmJ5dGVkYW5jZU1vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcImJ5dGVkYW5jZVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQnl0ZURhbmNlXCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJieXRlZGFuY2VcIixcclxuICAgICAgc29ydGVkOiA2LFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uYWxpYmFiYU1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQWxpYmFiYVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiYWxpYmFiYVwiLFxyXG4gICAgICBzb3J0ZWQ6IDcsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi50ZW5jZW50TW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwidGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiVGVuY2VudFwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwidGVuY2VudFwiLFxyXG4gICAgICBzb3J0ZWQ6IDgsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5tb29uc2hvdE1vZGVzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwibW9vbnNob3RcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIk1vb25zaG90XCIsXHJcbiAgICAgIHByb3ZpZGVyVHlwZTogXCJtb29uc2hvdFwiLFxyXG4gICAgICBzb3J0ZWQ6IDksXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5pZmx5dGVrTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiaWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiSWZseXRla1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiaWZseXRla1wiLFxyXG4gICAgICBzb3J0ZWQ6IDEwLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4ueEFJTW9kZXMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJ4YWlcIixcclxuICAgICAgcHJvdmlkZXJOYW1lOiBcIlhBSVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwieGFpXCIsXHJcbiAgICAgIHNvcnRlZDogMTEsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5jaGF0Z2xtTW9kZWxzLm1hcCgobmFtZSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICBhdmFpbGFibGU6IHRydWUsXHJcbiAgICBzb3J0ZWQ6IHNlcSsrLFxyXG4gICAgcHJvdmlkZXI6IHtcclxuICAgICAgaWQ6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiQ2hhdEdMTVwiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwiY2hhdGdsbVwiLFxyXG4gICAgICBzb3J0ZWQ6IDEyLFxyXG4gICAgfSxcclxuICB9KSksXHJcbiAgLi4uZGVlcHNlZWtNb2RlbHMubWFwKChuYW1lKSA9PiAoe1xyXG4gICAgbmFtZSxcclxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcclxuICAgIHNvcnRlZDogc2VxKyssXHJcbiAgICBwcm92aWRlcjoge1xyXG4gICAgICBpZDogXCJkZWVwc2Vla1wiLFxyXG4gICAgICBwcm92aWRlck5hbWU6IFwiRGVlcFNlZWtcIixcclxuICAgICAgcHJvdmlkZXJUeXBlOiBcImRlZXBzZWVrXCIsXHJcbiAgICAgIHNvcnRlZDogMTMsXHJcbiAgICB9LFxyXG4gIH0pKSxcclxuICAuLi5zaWxpY29uZmxvd01vZGVscy5tYXAoKG5hbWUpID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgc29ydGVkOiBzZXErKyxcclxuICAgIHByb3ZpZGVyOiB7XHJcbiAgICAgIGlkOiBcInNpbGljb25mbG93XCIsXHJcbiAgICAgIHByb3ZpZGVyTmFtZTogXCJTaWxpY29uRmxvd1wiLFxyXG4gICAgICBwcm92aWRlclR5cGU6IFwic2lsaWNvbmZsb3dcIixcclxuICAgICAgc29ydGVkOiAxNCxcclxuICAgIH0sXHJcbiAgfSkpLFxyXG5dIGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IGNvbnN0IENIQVRfUEFHRV9TSVpFID0gMTU7XHJcbmV4cG9ydCBjb25zdCBNQVhfUkVOREVSX01TR19DT1VOVCA9IDQ1O1xyXG5cclxuLy8gc29tZSBmYW1vdXMgd2ViZGF2IGVuZHBvaW50c1xyXG5leHBvcnQgY29uc3QgaW50ZXJuYWxBbGxvd2VkV2ViRGF2RW5kcG9pbnRzID0gW1xyXG4gIFwiaHR0cHM6Ly9kYXYuamlhbmd1b3l1bi5jb20vZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9kYXYuZHJvcGRhdi5jb20vXCIsXHJcbiAgXCJodHRwczovL2Rhdi5ib3guY29tL2RhdlwiLFxyXG4gIFwiaHR0cHM6Ly9uYW5hby50ZXJhY2xvdWQuanAvZGF2L1wiLFxyXG4gIFwiaHR0cHM6Ly9ib3JhLnRlcmFjbG91ZC5qcC9kYXYvXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi40c2hhcmVkLmNvbS9cIixcclxuICBcImh0dHBzOi8vZGF2Lmlkcml2ZXN5bmMuY29tXCIsXHJcbiAgXCJodHRwczovL3dlYmRhdi55YW5kZXguY29tXCIsXHJcbiAgXCJodHRwczovL2FwcC5rb29mci5uZXQvZGF2L0tvb2ZyXCIsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9HQV9JRCA9IFwiRy04OVdONjBaSzJFXCI7XHJcblxyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VSTCA9IFwiaHR0cHM6Ly9uZXh0Y2hhdC5kZXYvY2hhdFwiO1xyXG5leHBvcnQgY29uc3QgU0FBU19DSEFUX1VUTV9VUkwgPSBcImh0dHBzOi8vbmV4dGNoYXQuZGV2L2NoYXQ/dXRtPWdpdGh1YlwiO1xyXG4iXSwibmFtZXMiOlsiT1dORVIiLCJSRVBPIiwiUkVQT19VUkwiLCJQTFVHSU5TX1JFUE9fVVJMIiwiSVNTVUVfVVJMIiwiVVBEQVRFX1VSTCIsIlJFTEVBU0VfVVJMIiwiRkVUQ0hfQ09NTUlUX1VSTCIsIkZFVENIX1RBR19VUkwiLCJSVU5USU1FX0NPTkZJR19ET00iLCJTVEFCSUxJVFlfQkFTRV9VUkwiLCJPUEVOQUlfQkFTRV9VUkwiLCJBTlRIUk9QSUNfQkFTRV9VUkwiLCJHRU1JTklfQkFTRV9VUkwiLCJCQUlEVV9CQVNFX1VSTCIsIkJBSURVX09BVFVIX1VSTCIsIkJZVEVEQU5DRV9CQVNFX1VSTCIsIkFMSUJBQkFfQkFTRV9VUkwiLCJURU5DRU5UX0JBU0VfVVJMIiwiTU9PTlNIT1RfQkFTRV9VUkwiLCJJRkxZVEVLX0JBU0VfVVJMIiwiREVFUFNFRUtfQkFTRV9VUkwiLCJYQUlfQkFTRV9VUkwiLCJDSEFUR0xNX0JBU0VfVVJMIiwiU0lMSUNPTkZMT1dfQkFTRV9VUkwiLCJDQUNIRV9VUkxfUFJFRklYIiwiVVBMT0FEX1VSTCIsIlBhdGgiLCJBcGlQYXRoIiwiU2xvdElEIiwiRmlsZU5hbWUiLCJTdG9yZUtleSIsIkRFRkFVTFRfU0lERUJBUl9XSURUSCIsIk1BWF9TSURFQkFSX1dJRFRIIiwiTUlOX1NJREVCQVJfV0lEVEgiLCJOQVJST1dfU0lERUJBUl9XSURUSCIsIkFDQ0VTU19DT0RFX1BSRUZJWCIsIkxBU1RfSU5QVVRfS0VZIiwiVU5GSU5JU0hFRF9JTlBVVCIsImlkIiwiU1RPUkFHRV9LRVkiLCJSRVFVRVNUX1RJTUVPVVRfTVMiLCJSRVFVRVNUX1RJTUVPVVRfTVNfRk9SX1RISU5LSU5HIiwiRVhQT1JUX01FU1NBR0VfQ0xBU1NfTkFNRSIsIlNlcnZpY2VQcm92aWRlciIsIkdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkIiwiTW9kZWxQcm92aWRlciIsIlN0YWJpbGl0eSIsIkdlbmVyYXRlUGF0aCIsIkV4YW1wbGVFbmRwb2ludCIsIkFudGhyb3BpYyIsIkNoYXRQYXRoIiwiQ2hhdFBhdGgxIiwiVmlzaW9uIiwiT3BlbmFpUGF0aCIsIlNwZWVjaFBhdGgiLCJJbWFnZVBhdGgiLCJVc2FnZVBhdGgiLCJTdWJzUGF0aCIsIkxpc3RNb2RlbFBhdGgiLCJBenVyZSIsImRlcGxveU5hbWUiLCJhcGlWZXJzaW9uIiwiR29vZ2xlIiwibW9kZWxOYW1lIiwiQmFpZHUiLCJlbmRwb2ludCIsIkJ5dGVEYW5jZSIsIkFsaWJhYmEiLCJUZW5jZW50IiwiTW9vbnNob3QiLCJJZmx5dGVrIiwiRGVlcFNlZWsiLCJYQUkiLCJDaGF0R0xNIiwiVmlkZW9QYXRoIiwiU2lsaWNvbkZsb3ciLCJERUZBVUxUX0lOUFVUX1RFTVBMQVRFIiwiREVGQVVMVF9TWVNURU1fVEVNUExBVEUiLCJNQ1BfVE9PTFNfVEVNUExBVEUiLCJNQ1BfU1lTVEVNX1RFTVBMQVRFIiwiU1VNTUFSSVpFX01PREVMIiwiR0VNSU5JX1NVTU1BUklaRV9NT0RFTCIsIkRFRVBTRUVLX1NVTU1BUklaRV9NT0RFTCIsIktub3dsZWRnZUN1dE9mZkRhdGUiLCJkZWZhdWx0IiwibzEiLCJERUZBVUxUX1RUU19FTkdJTkUiLCJERUZBVUxUX1RUU19FTkdJTkVTIiwiREVGQVVMVF9UVFNfTU9ERUwiLCJERUZBVUxUX1RUU19WT0lDRSIsIkRFRkFVTFRfVFRTX01PREVMUyIsIkRFRkFVTFRfVFRTX1ZPSUNFUyIsIlZJU0lPTl9NT0RFTF9SRUdFWEVTIiwiRVhDTFVERV9WSVNJT05fTU9ERUxfUkVHRVhFUyIsIm9wZW5haU1vZGVscyIsImdvb2dsZU1vZGVscyIsImFudGhyb3BpY01vZGVscyIsImJhaWR1TW9kZWxzIiwiYnl0ZWRhbmNlTW9kZWxzIiwiYWxpYmFiYU1vZGVzIiwidGVuY2VudE1vZGVscyIsIm1vb25zaG90TW9kZXMiLCJpZmx5dGVrTW9kZWxzIiwiZGVlcHNlZWtNb2RlbHMiLCJ4QUlNb2RlcyIsImNoYXRnbG1Nb2RlbHMiLCJzaWxpY29uZmxvd01vZGVscyIsInNlcSIsIkRFRkFVTFRfTU9ERUxTIiwibWFwIiwibmFtZSIsImF2YWlsYWJsZSIsInNvcnRlZCIsInByb3ZpZGVyIiwicHJvdmlkZXJOYW1lIiwicHJvdmlkZXJUeXBlIiwiQ0hBVF9QQUdFX1NJWkUiLCJNQVhfUkVOREVSX01TR19DT1VOVCIsImludGVybmFsQWxsb3dlZFdlYkRhdkVuZHBvaW50cyIsIkRFRkFVTFRfR0FfSUQiLCJTQUFTX0NIQVRfVVJMIiwiU0FBU19DSEFUX1VUTV9VUkwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/constant.ts\n")); /***/ }) });