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
66 KiB
JavaScript
22 lines
66 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/page",{
|
|
|
|
/***/ "(app-pages-browser)/./app/components/sidebar.tsx":
|
|
/*!************************************!*\
|
|
!*** ./app/components/sidebar.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 */ SideBar: function() { return /* binding */ SideBar; },\n/* harmony export */ SideBarBody: function() { return /* binding */ SideBarBody; },\n/* harmony export */ SideBarContainer: function() { return /* binding */ SideBarContainer; },\n/* harmony export */ SideBarHeader: function() { return /* binding */ SideBarHeader; },\n/* harmony export */ SideBarTail: function() { return /* binding */ SideBarTail; },\n/* harmony export */ useDragSideBar: function() { return /* binding */ useDragSideBar; },\n/* harmony export */ useHotKey: function() { return /* binding */ useHotKey; }\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 _home_module_scss__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./home.module.scss */ \"(app-pages-browser)/./app/components/home.module.scss\");\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_home_module_scss__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/settings.svg */ \"(app-pages-browser)/./app/icons/settings.svg\");\n/* harmony import */ var _icons_github_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/github.svg */ \"(app-pages-browser)/./app/icons/github.svg\");\n/* harmony import */ var _icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/chatgpt.svg */ \"(app-pages-browser)/./app/icons/chatgpt.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_delete_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/delete.svg */ \"(app-pages-browser)/./app/icons/delete.svg\");\n/* harmony import */ var _icons_mask_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/mask.svg */ \"(app-pages-browser)/./app/icons/mask.svg\");\n/* harmony import */ var _icons_mcp_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/mcp.svg */ \"(app-pages-browser)/./app/icons/mcp.svg\");\n/* harmony import */ var _icons_drag_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/drag.svg */ \"(app-pages-browser)/./app/icons/drag.svg\");\n/* harmony import */ var _icons_discovery_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/discovery.svg */ \"(app-pages-browser)/./app/icons/discovery.svg\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dynamic */ \"(app-pages-browser)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var _mcp_actions__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../mcp/actions */ \"(app-pages-browser)/./app/mcp/actions.ts\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DISCOVERY = [\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Plugin.Name,\n path: _constant__WEBPACK_IMPORTED_MODULE_14__.Path.Plugins\n },\n {\n name: \"Stable Diffusion\",\n path: _constant__WEBPACK_IMPORTED_MODULE_14__.Path.Sd\n },\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].SearchChat.Page.Title,\n path: _constant__WEBPACK_IMPORTED_MODULE_14__.Path.SearchChat\n }\n];\nconst ChatList = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(async ()=>(await __webpack_require__.e(/*! import() */ \"_app-pages-browser_app_components_chat-list_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! ./chat-list */ \"(app-pages-browser)/./app/components/chat-list.tsx\"))).ChatList, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx -> \" + \"./chat-list\"\n ]\n },\n loading: ()=>null\n});\n_c = ChatList;\nfunction useHotKey() {\n _s();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_13__.useChatStore)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const onKeyDown = (e)=>{\n if (e.altKey || e.ctrlKey) {\n if (e.key === \"ArrowUp\") {\n chatStore.nextSession(-1);\n } else if (e.key === \"ArrowDown\") {\n chatStore.nextSession(1);\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return ()=>window.removeEventListener(\"keydown\", onKeyDown);\n });\n}\n_s(useHotKey, \"FzvLXhlKJxQuM4lHoDi2MSNJT+U=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_13__.useChatStore\n ];\n});\nfunction useDragSideBar() {\n _s1();\n const limit = (x)=>Math.min(_constant__WEBPACK_IMPORTED_MODULE_14__.MAX_SIDEBAR_WIDTH, x);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_13__.useAppConfig)();\n const startX = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n var _config_sidebarWidth;\n const startDragWidth = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)((_config_sidebarWidth = config.sidebarWidth) !== null && _config_sidebarWidth !== void 0 ? _config_sidebarWidth : _constant__WEBPACK_IMPORTED_MODULE_14__.DEFAULT_SIDEBAR_WIDTH);\n const lastUpdateTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(Date.now());\n const toggleSideBar = ()=>{\n config.update((config)=>{\n if (config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_14__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_14__.DEFAULT_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_14__.NARROW_SIDEBAR_WIDTH;\n }\n });\n };\n const onDragStart = (e)=>{\n // Remembers the initial width each time the mouse is pressed\n startX.current = e.clientX;\n startDragWidth.current = config.sidebarWidth;\n const dragStartTime = Date.now();\n const handleDragMove = (e)=>{\n if (Date.now() < lastUpdateTime.current + 20) {\n return;\n }\n lastUpdateTime.current = Date.now();\n const d = e.clientX - startX.current;\n const nextWidth = limit(startDragWidth.current + d);\n config.update((config)=>{\n if (nextWidth < _constant__WEBPACK_IMPORTED_MODULE_14__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_14__.NARROW_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = nextWidth;\n }\n });\n };\n const handleDragEnd = ()=>{\n // In useRef the data is non-responsive, so `config.sidebarWidth` can't get the dynamic sidebarWidth\n window.removeEventListener(\"pointermove\", handleDragMove);\n window.removeEventListener(\"pointerup\", handleDragEnd);\n // if user click the drag icon, should toggle the sidebar\n const shouldFireClick = Date.now() - dragStartTime < 300;\n if (shouldFireClick) {\n toggleSideBar();\n }\n };\n window.addEventListener(\"pointermove\", handleDragMove);\n window.addEventListener(\"pointerup\", handleDragEnd);\n };\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useMobileScreen)();\n const shouldNarrow = !isMobileScreen && config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_14__.MIN_SIDEBAR_WIDTH;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _config_sidebarWidth;\n const barWidth = shouldNarrow ? _constant__WEBPACK_IMPORTED_MODULE_14__.NARROW_SIDEBAR_WIDTH : limit((_config_sidebarWidth = config.sidebarWidth) !== null && _config_sidebarWidth !== void 0 ? _config_sidebarWidth : _constant__WEBPACK_IMPORTED_MODULE_14__.DEFAULT_SIDEBAR_WIDTH);\n const sideBarWidth = isMobileScreen ? \"100vw\" : \"\".concat(barWidth, \"px\");\n document.documentElement.style.setProperty(\"--sidebar-width\", sideBarWidth);\n }, [\n config.sidebarWidth,\n isMobileScreen,\n shouldNarrow\n ]);\n return {\n onDragStart,\n shouldNarrow\n };\n}\n_s1(useDragSideBar, \"9sAuy9Iv7h5+fcBNiGeE2YvGON8=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_13__.useAppConfig,\n _utils__WEBPACK_IMPORTED_MODULE_15__.useMobileScreen\n ];\n});\nfunction SideBarContainer(props) {\n _s2();\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_15__.useMobileScreen)();\n const isIOSMobile = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_utils__WEBPACK_IMPORTED_MODULE_15__.isIOS)() && isMobileScreen, [\n isMobileScreen\n ]);\n const { children, className, onDragStart, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_18__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default().sidebar), className, {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"narrow-sidebar\"])]: shouldNarrow\n }),\n style: {\n // #3016 disable transition on ios mobile screen\n transition: isMobileScreen && isIOSMobile ? \"none\" : undefined\n },\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-drag\"]),\n onPointerDown: (e)=>onDragStart(e),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_drag_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 166,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 162,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 152,\n columnNumber: 5\n }, this);\n}\n_s2(SideBarContainer, \"G8svrsL9du90jZRzgR3EOvl9Bcg=\", false, function() {\n return [\n _utils__WEBPACK_IMPORTED_MODULE_15__.useMobileScreen\n ];\n});\n_c1 = SideBarContainer;\nfunction SideBarHeader(props) {\n const { title, subTitle, logo, children, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_18__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-header\"]), {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-header-narrow\"])]: shouldNarrow\n }),\n \"data-tauri-drag-region\": true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-title-container\"])\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 188,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 182,\n columnNumber: 7\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 181,\n columnNumber: 5\n }, this);\n}\n_c2 = SideBarHeader;\nfunction SideBarBody(props) {\n const { onClick, children } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-body\"]),\n onClick: onClick,\n children: children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n_c3 = SideBarBody;\nfunction SideBarTail(props) {\n const { primaryAction, secondaryAction } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-tail\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-actions\"]),\n children: primaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 216,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-actions\"]),\n children: secondaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 217,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 215,\n columnNumber: 5\n }, this);\n}\n_c4 = SideBarTail;\nfunction SideBar(props) {\n _s3();\n useHotKey();\n const { onDragStart, shouldNarrow } = useDragSideBar();\n const [showDiscoverySelector, setshowDiscoverySelector] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_21__.useNavigate)();\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_13__.useAppConfig)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_13__.useChatStore)();\n const [mcpEnabled, setMcpEnabled] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // 检查 MCP 是否启用\n const checkMcpStatus = async ()=>{\n const enabled = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_19__.isMcpEnabled)();\n setMcpEnabled(enabled);\n console.log(\"[SideBar] MCP enabled:\", enabled);\n };\n checkMcpStatus();\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarContainer, {\n onDragStart: onDragStart,\n shouldNarrow: shouldNarrow,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarHeader, {\n title: \"NextChat\",\n subTitle: \"Build your own AI assistant.\",\n logo: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 250,\n columnNumber: 15\n }, void 0),\n shouldNarrow: shouldNarrow,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-header-bar\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_mask_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 255,\n columnNumber: 19\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Mask.Name,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-bar-button\"]),\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen !== true) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.NewChat, {\n state: {\n fromHome: true\n }\n });\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.Masks, {\n state: {\n fromHome: true\n }\n });\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 254,\n columnNumber: 11\n }, this),\n mcpEnabled && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_mcp_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 269,\n columnNumber: 21\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Mcp.Name,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-bar-button\"]),\n onClick: ()=>{\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.McpMarket, {\n state: {\n fromHome: true\n }\n });\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 268,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_discovery_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 279,\n columnNumber: 19\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Discovery.Name,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-bar-button\"]),\n onClick: ()=>setshowDiscoverySelector(true),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 278,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 253,\n columnNumber: 9\n }, this),\n showDiscoverySelector && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_17__.Selector, {\n items: [\n ...DISCOVERY.map((item)=>{\n return {\n title: item.name,\n value: item.path\n };\n })\n ],\n onClose: ()=>setshowDiscoverySelector(false),\n onSelection: (s)=>{\n navigate(s[0], {\n state: {\n fromHome: true\n }\n });\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 287,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 247,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarBody, {\n onClick: (e)=>{\n if (e.target === e.currentTarget) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.Home);\n }\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ChatList, {\n narrow: shouldNarrow\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 310,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 303,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarTail, {\n primaryAction: /*#__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)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_18__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-action\"]), (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default().mobile)),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_delete_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 317,\n columnNumber: 23\n }, void 0),\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_17__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Home.DeleteChat)) {\n chatStore.deleteSession(chatStore.currentSessionIndex);\n }\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 316,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 315,\n columnNumber: 13\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-action\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_22__.Link, {\n to: _constant__WEBPACK_IMPORTED_MODULE_14__.Path.Settings,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Settings.Title,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 329,\n columnNumber: 25\n }, void 0),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 327,\n columnNumber: 17\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 326,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 325,\n columnNumber: 13\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_20___default()[\"sidebar-action\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: _constant__WEBPACK_IMPORTED_MODULE_14__.REPO_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Export.MessageFromChatGPT,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_github_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 338,\n columnNumber: 25\n }, void 0),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 336,\n columnNumber: 17\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 335,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 334,\n columnNumber: 13\n }, void 0)\n ]\n }, void 0, true),\n secondaryAction: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 347,\n columnNumber: 19\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Home.NewChat,\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen) {\n chatStore.newSession();\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.Chat);\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_14__.Path.NewChat);\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 346,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 312,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 242,\n columnNumber: 5\n }, this);\n}\n_s3(SideBar, \"iSaWbHwCifIibzferT/kPvTq2Ek=\", false, function() {\n return [\n useHotKey,\n useDragSideBar,\n react_router_dom__WEBPACK_IMPORTED_MODULE_21__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_13__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_13__.useChatStore\n ];\n});\n_c5 = SideBar;\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"ChatList\");\n$RefreshReg$(_c1, \"SideBarContainer\");\n$RefreshReg$(_c2, \"SideBarHeader\");\n$RefreshReg$(_c3, \"SideBarBody\");\n$RefreshReg$(_c4, \"SideBarTail\");\n$RefreshReg$(_c5, \"SideBar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NpZGViYXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBOEU7QUFFdEM7QUFFRjtBQUNXO0FBQ0o7QUFDRTtBQUNSO0FBQ007QUFDSjtBQUNGO0FBQ0U7QUFDVTtBQUVuQjtBQUVzQjtBQVNqQztBQUVnQztBQUNIO0FBQ2Y7QUFDYztBQUN6QjtBQUNzQjtBQUU5QyxNQUFNbUMsWUFBWTtJQUNoQjtRQUFFQyxNQUFNbkIsaURBQU1BLENBQUNvQixNQUFNLENBQUNDLElBQUk7UUFBRUMsTUFBTWYsNENBQUlBLENBQUNnQixPQUFPO0lBQUM7SUFDL0M7UUFBRUosTUFBTTtRQUFvQkcsTUFBTWYsNENBQUlBLENBQUNpQixFQUFFO0lBQUM7SUFDMUM7UUFBRUwsTUFBTW5CLGlEQUFNQSxDQUFDeUIsVUFBVSxDQUFDQyxJQUFJLENBQUNDLEtBQUs7UUFBRUwsTUFBTWYsNENBQUlBLENBQUNrQixVQUFVO0lBQUM7Q0FDN0Q7QUFFRCxNQUFNRyxXQUFXZix5REFBT0EsQ0FBQyxVQUFZLENBQUMsTUFBTSxxTkFBb0IsRUFBR2UsUUFBUTs7Ozs7O0lBQ3pFQyxTQUFTLElBQU07O0tBRFhEO0FBSUMsU0FBU0U7O0lBQ2QsTUFBTUMsWUFBWTdCLHFEQUFZQTtJQUU5QmpCLGdEQUFTQSxDQUFDO1FBQ1IsTUFBTStDLFlBQVksQ0FBQ0M7WUFDakIsSUFBSUEsRUFBRUMsTUFBTSxJQUFJRCxFQUFFRSxPQUFPLEVBQUU7Z0JBQ3pCLElBQUlGLEVBQUVHLEdBQUcsS0FBSyxXQUFXO29CQUN2QkwsVUFBVU0sV0FBVyxDQUFDLENBQUM7Z0JBQ3pCLE9BQU8sSUFBSUosRUFBRUcsR0FBRyxLQUFLLGFBQWE7b0JBQ2hDTCxVQUFVTSxXQUFXLENBQUM7Z0JBQ3hCO1lBQ0Y7UUFDRjtRQUVBQyxPQUFPQyxnQkFBZ0IsQ0FBQyxXQUFXUDtRQUNuQyxPQUFPLElBQU1NLE9B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Q2hKLCtDQUFVQTtvQ0FDVDZJLE1BQU1uSSxpREFBTUEsQ0FBQ3VJLE1BQU0sQ0FBQ0Msa0JBQWtCO29DQUN0Q2xDLG9CQUFNLDhEQUFDOUcseURBQVVBOzs7OztvQ0FDakJzSCxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBTWhCbkIsK0JBQ0UsOERBQUNyRywrQ0FBVUE7b0JBQ1RnSCxvQkFBTSw4REFBQzVHLHNEQUFPQTs7Ozs7b0JBQ2Q2RyxNQUFNdEMsZUFBZWUsWUFBWWhGLGlEQUFNQSxDQUFDMkgsSUFBSSxDQUFDakIsT0FBTztvQkFDcERsQixTQUFTO3dCQUNQLElBQUkxQyxPQUFPMkQsd0JBQXdCLEVBQUU7NEJBQ25DMUUsVUFBVTBHLFVBQVU7NEJBQ3BCMUMsU0FBU3hGLDRDQUFJQSxDQUFDbUksSUFBSTt3QkFDcEIsT0FBTzs0QkFDTDNDLFNBQVN4Riw0Q0FBSUEsQ0FBQ21HLE9BQU87d0JBQ3ZCO29CQUNGO29CQUNBSSxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7OztBQU1sQjtJQTdJZ0JsQjs7UUFDZDlEO1FBQ3NDVztRQUVyQi9CLDBEQUFXQTtRQUNiVCxpREFBWUE7UUFDVEMsaURBQVlBOzs7TUFOaEIwRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvY29tcG9uZW50cy9zaWRlYmFyLnRzeD8zYzE3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2hvbWUubW9kdWxlLnNjc3NcIjtcclxuXHJcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tIFwiLi9idXR0b25cIjtcclxuaW1wb3J0IFNldHRpbmdzSWNvbiBmcm9tIFwiLi4vaWNvbnMvc2V0dGluZ3Muc3ZnXCI7XHJcbmltcG9ydCBHaXRodWJJY29uIGZyb20gXCIuLi9pY29ucy9naXRodWIuc3ZnXCI7XHJcbmltcG9ydCBDaGF0R3B0SWNvbiBmcm9tIFwiLi4vaWNvbnMvY2hhdGdwdC5zdmdcIjtcclxuaW1wb3J0IEFkZEljb24gZnJvbSBcIi4uL2ljb25zL2FkZC5zdmdcIjtcclxuaW1wb3J0IERlbGV0ZUljb24gZnJvbSBcIi4uL2ljb25zL2RlbGV0ZS5zdmdcIjtcclxuaW1wb3J0IE1hc2tJY29uIGZyb20gXCIuLi9pY29ucy9tYXNrLnN2Z1wiO1xyXG5pbXBvcnQgTWNwSWNvbiBmcm9tIFwiLi4vaWNvbnMvbWNwLnN2Z1wiO1xyXG5pbXBvcnQgRHJhZ0ljb24gZnJvbSBcIi4uL2ljb25zL2RyYWcuc3ZnXCI7XHJcbmltcG9ydCBEaXNjb3ZlcnlJY29uIGZyb20gXCIuLi9pY29ucy9kaXNjb3Zlcnkuc3ZnXCI7XHJcblxyXG5pbXBvcnQgTG9jYWxlIGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcblxyXG5pbXBvcnQgeyB1c2VBcHBDb25maWcsIHVzZUNoYXRTdG9yZSB9IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IHtcclxuICBERUZBVUxUX1NJREVCQVJfV0lEVEgsXHJcbiAgTUFYX1NJREVCQVJfV0lEVEgsXHJcbiAgTUlOX1NJREVCQVJfV0lEVEgsXHJcbiAgTkFSUk9XX1NJREVCQVJfV0lEVEgsXHJcbiAgUGF0aCxcclxuICBSRVBPX1VSTCxcclxufSBmcm9tIFwiLi4vY29uc3RhbnRcIjtcclxuXHJcbmltcG9ydCB7IExpbmssIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcclxuaW1wb3J0IHsgaXNJT1MsIHVzZU1vYmlsZVNjcmVlbiB9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgZHluYW1pYyBmcm9tIFwibmV4dC9keW5hbWljXCI7XHJcbmltcG9ydCB7IFNlbGVjdG9yLCBzaG93Q29uZmlybSB9IGZyb20gXCIuL3VpLWxpYlwiO1xyXG5pbXBvcnQgY2xzeCBmcm9tIFwiY2xzeFwiO1xyXG5pbXBvcnQgeyBpc01jcEVuYWJsZWQgfSBmcm9tIFwiLi4vbWNwL2FjdGlvbnNcIjtcclxuXHJcbmNvbnN0IERJU0NPVkVSWSA9IFtcclxuICB7IG5hbWU6IExvY2FsZS5QbHVnaW4uTmFtZSwgcGF0aDogUGF0aC5QbHVnaW5zIH0sXHJcbiAgeyBuYW1lOiBcIlN0YWJsZSBEaWZmdXNpb25cIiwgcGF0aDogUGF0aC5TZCB9LFxyXG4gIHsgbmFtZTogTG9jYWxlLlNlYXJjaENoYXQuUGFnZS5UaXRsZSwgcGF0aDogUGF0aC5TZWFyY2hDaGF0IH0sXHJcbl07XHJcblxyXG5jb25zdCBDaGF0TGlzdCA9IGR5bmFtaWMoYXN5bmMgKCkgPT4gKGF3YWl0IGltcG9ydChcIi4vY2hhdC1saXN0XCIpKS5DaGF0TGlzdCwge1xyXG4gIGxvYWRpbmc6ICgpID0+IG51bGwsXHJcbn0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZUhvdEtleSgpIHtcclxuICBjb25zdCBjaGF0U3RvcmUgPSB1c2VDaGF0U3RvcmUoKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IG9uS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLmFsdEtleSB8fCBlLmN0cmxLZXkpIHtcclxuICAgICAgICBpZiAoZS5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XHJcbiAgICAgICAgICBjaGF0U3RvcmUubmV4dFNlc3Npb24oLTEpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcclxuICAgICAgICAgIGNoYXRTdG9yZS5uZXh0U2Vzc2lvbigxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIG9uS2V5RG93bik7XHJcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIG9uS2V5RG93bik7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1c2VEcmFnU2lkZUJhcigpIHtcclxuICBjb25zdCBsaW1pdCA9ICh4OiBudW1iZXIpID0+IE1hdGgubWluKE1BWF9TSURFQkFSX1dJRFRILCB4KTtcclxuXHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3Qgc3RhcnRYID0gdXNlUmVmKDApO1xyXG4gIGNvbnN0IHN0YXJ0RHJhZ1dpZHRoID0gdXNlUmVmKGNvbmZpZy5zaWRlYmFyV2lkdGggPz8gREVGQVVMVF9TSURFQkFSX1dJRFRIKTtcclxuICBjb25zdCBsYXN0VXBkYXRlVGltZSA9IHVzZVJlZihEYXRlLm5vdygpKTtcclxuXHJcbiAgY29uc3QgdG9nZ2xlU2lkZUJhciA9ICgpID0+IHtcclxuICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4ge1xyXG4gICAgICBpZiAoY29uZmlnLnNpZGViYXJXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIKSB7XHJcbiAgICAgICAgY29uZmlnLnNpZGViYXJXaWR0aCA9IERFRkFVTFRfU0lERUJBUl9XSURUSDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25maWcuc2lkZWJhcldpZHRoID0gTkFSUk9XX1NJREVCQVJfV0lEVEg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IG9uRHJhZ1N0YXJ0ID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIC8vIFJlbWVtYmVycyB0aGUgaW5pdGlhbCB3aWR0aCBlYWNoIHRpbWUgdGhlIG1vdXNlIGlzIHByZXNzZWRcclxuICAgIHN0YXJ0WC5jdXJyZW50ID0gZS5jbGllbnRYO1xyXG4gICAgc3RhcnREcmFnV2lkdGguY3VycmVudCA9IGNvbmZpZy5zaWRlYmFyV2lkdGg7XHJcbiAgICBjb25zdCBkcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgbGFzdFVwZGF0ZVRpbWUuY3VycmVudCArIDIwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGxhc3RVcGRhdGVUaW1lLmN1cnJlbnQgPSBEYXRlLm5vdygpO1xyXG4gICAgICBjb25zdCBkID0gZS5jbGllbnRYIC0gc3RhcnRYLmN1cnJlbnQ7XHJcbiAgICAgIGNvbnN0IG5leHRXaWR0aCA9IGxpbWl0KHN0YXJ0RHJhZ1dpZHRoLmN1cnJlbnQgKyBkKTtcclxuICAgICAgY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiB7XHJcbiAgICAgICAgaWYgKG5leHRXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIKSB7XHJcbiAgICAgICAgICBjb25maWcuc2lkZWJhcldpZHRoID0gTkFSUk9XX1NJREVCQVJfV0lEVEg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbmZpZy5zaWRlYmFyV2lkdGggPSBuZXh0V2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9ICgpID0+IHtcclxuICAgICAgLy8gSW4gdXNlUmVmIHRoZSBkYXRhIGlzIG5vbi1yZXNwb25zaXZlLCBzbyBgY29uZmlnLnNpZGViYXJXaWR0aGAgY2FuJ3QgZ2V0IHRoZSBkeW5hbWljIHNpZGViYXJXaWR0aFxyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgaGFuZGxlRHJhZ0VuZCk7XHJcblxyXG4gICAgICAvLyBpZiB1c2VyIGNsaWNrIHRoZSBkcmFnIGljb24sIHNob3VsZCB0b2dnbGUgdGhlIHNpZGViYXJcclxuICAgICAgY29uc3Qgc2hvdWxkRmlyZUNsaWNrID0gRGF0ZS5ub3coKSAtIGRyYWdTdGFydFRpbWUgPCAzMDA7XHJcbiAgICAgIGlmIChzaG91bGRGaXJlQ2xpY2spIHtcclxuICAgICAgICB0b2dnbGVTaWRlQmFyKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLCBoYW5kbGVEcmFnTW92ZSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBoYW5kbGVEcmFnRW5kKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBpc01vYmlsZVNjcmVlbiA9IHVzZU1vYmlsZVNjcmVlbigpO1xyXG4gIGNvbnN0IHNob3VsZE5hcnJvdyA9XHJcbiAgICAhaXNNb2JpbGVTY3JlZW4gJiYgY29uZmlnLnNpZGViYXJXaWR0aCA8IE1JTl9TSURFQkFSX1dJRFRIO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3QgYmFyV2lkdGggPSBzaG91bGROYXJyb3dcclxuICAgICAgPyBOQVJST1dfU0lERUJBUl9XSURUSFxyXG4gICAgICA6IGxpbWl0KGNvbmZpZy5zaWRlYmFyV2lkdGggPz8gREVGQVVMVF9TSURFQkFSX1dJRFRIKTtcclxuICAgIGNvbnN0IHNpZGVCYXJXaWR0aCA9IGlzTW9iaWxlU2NyZWVuID8gXCIxMDB2d1wiIDogYCR7YmFyV2lkdGh9cHhgO1xyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS1zaWRlYmFyLXdpZHRoXCIsIHNpZGVCYXJXaWR0aCk7XHJcbiAgfSwgW2NvbmZpZy5zaWRlYmFyV2lkdGgsIGlzTW9iaWxlU2NyZWVuLCBzaG91bGROYXJyb3ddKTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIG9uRHJhZ1N0YXJ0LFxyXG4gICAgc2hvdWxkTmFycm93LFxyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTaWRlQmFyQ29udGFpbmVyKHByb3BzOiB7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvbkRyYWdTdGFydDogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbiAgc2hvdWxkTmFycm93OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxufSkge1xyXG4gIGNvbnN0IGlzTW9iaWxlU2NyZWVuID0gdXNlTW9iaWxlU2NyZWVuKCk7XHJcbiAgY29uc3QgaXNJT1NNb2JpbGUgPSB1c2VNZW1vKFxyXG4gICAgKCkgPT4gaXNJT1MoKSAmJiBpc01vYmlsZVNjcmVlbixcclxuICAgIFtpc01vYmlsZVNjcmVlbl0sXHJcbiAgKTtcclxuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIG9uRHJhZ1N0YXJ0LCBzaG91bGROYXJyb3cgfSA9IHByb3BzO1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXMuc2lkZWJhciwgY2xhc3NOYW1lLCB7XHJcbiAgICAgICAgW3N0eWxlc1tcIm5hcnJvdy1zaWRlYmFyXCJdXTogc2hvdWxkTmFycm93LFxyXG4gICAgICB9KX1cclxuICAgICAgc3R5bGU9e3tcclxuICAgICAgICAvLyAjMzAxNiBkaXNhYmxlIHRyYW5zaXRpb24gb24gaW9zIG1vYmlsZSBzY3JlZW5cclxuICAgICAgICB0cmFuc2l0aW9uOiBpc01vYmlsZVNjcmVlbiAmJiBpc0lPU01vYmlsZSA/IFwibm9uZVwiIDogdW5kZWZpbmVkLFxyXG4gICAgICB9fVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItZHJhZ1wiXX1cclxuICAgICAgICBvblBvaW50ZXJEb3duPXsoZSkgPT4gb25EcmFnU3RhcnQoZSBhcyBhbnkpfVxyXG4gICAgICA+XHJcbiAgICAgICAgPERyYWdJY29uIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXJIZWFkZXIocHJvcHM6IHtcclxuICB0aXRsZT86IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBzdWJUaXRsZT86IHN0cmluZyB8IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBsb2dvPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIHNob3VsZE5hcnJvdz86IGJvb2xlYW47XHJcbn0pIHtcclxuICBjb25zdCB7IHRpdGxlLCBzdWJUaXRsZSwgbG9nbywgY2hpbGRyZW4sIHNob3VsZE5hcnJvdyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxGcmFnbWVudD5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJzaWRlYmFyLWhlYWRlclwiXSwge1xyXG4gICAgICAgICAgW3N0eWxlc1tcInNpZGViYXItaGVhZGVyLW5hcnJvd1wiXV06IHNob3VsZE5hcnJvdyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBkYXRhLXRhdXJpLWRyYWctcmVnaW9uXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci10aXRsZS1jb250YWluZXJcIl19PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9GcmFnbWVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2lkZUJhckJvZHkocHJvcHM6IHtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uQ2xpY2s/OiAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XHJcbn0pIHtcclxuICBjb25zdCB7IG9uQ2xpY2ssIGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYm9keVwiXX0gb25DbGljaz17b25DbGlja30+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTaWRlQmFyVGFpbChwcm9wczoge1xyXG4gIHByaW1hcnlBY3Rpb24/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgc2Vjb25kYXJ5QWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlO1xyXG59KSB7XHJcbiAgY29uc3QgeyBwcmltYXJ5QWN0aW9uLCBzZWNvbmRhcnlBY3Rpb24gfSA9IHByb3BzO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItdGFpbFwiXX0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWFjdGlvbnNcIl19PntwcmltYXJ5QWN0aW9ufTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1hY3Rpb25zXCJdfT57c2Vjb25kYXJ5QWN0aW9ufTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXIocHJvcHM6IHsgY2xhc3NOYW1lPzogc3RyaW5nIH0pIHtcclxuICB1c2VIb3RLZXkoKTtcclxuICBjb25zdCB7IG9uRHJhZ1N0YXJ0LCBzaG91bGROYXJyb3cgfSA9IHVzZURyYWdTaWRlQmFyKCk7XHJcbiAgY29uc3QgW3Nob3dEaXNjb3ZlcnlTZWxlY3Rvciwgc2V0c2hvd0Rpc2NvdmVyeVNlbGVjdG9yXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3QgY2hhdFN0b3JlID0gdXNlQ2hhdFN0b3JlKCk7XHJcbiAgY29uc3QgW21jcEVuYWJsZWQsIHNldE1jcEVuYWJsZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgLy8g5qOA5p+lIE1DUCDmmK/lkKblkK/nlKhcclxuICAgIGNvbnN0IGNoZWNrTWNwU3RhdHVzID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbmFibGVkID0gYXdhaXQgaXNNY3BFbmFibGVkKCk7XHJcbiAgICAgIHNldE1jcEVuYWJsZWQoZW5hYmxlZCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1NpZGVCYXJdIE1DUCBlbmFibGVkOlwiLCBlbmFibGVkKTtcclxuICAgIH07XHJcbiAgICBjaGVja01jcFN0YXR1cygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxTaWRlQmFyQ29udGFpbmVyXHJcbiAgICAgIG9uRHJhZ1N0YXJ0PXtvbkRyYWdTdGFydH1cclxuICAgICAgc2hvdWxkTmFycm93PXtzaG91bGROYXJyb3d9XHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgID5cclxuICAgICAgPFNpZGVCYXJIZWFkZXJcclxuICAgICAgICB0aXRsZT1cIk5leHRDaGF0XCJcclxuICAgICAgICBzdWJUaXRsZT1cIkJ1aWxkIHlvdXIgb3duIEFJIGFzc2lzdGFudC5cIlxyXG4gICAgICAgIGxvZ289ezxDaGF0R3B0SWNvbiAvPn1cclxuICAgICAgICBzaG91bGROYXJyb3c9e3Nob3VsZE5hcnJvd31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWhlYWRlci1iYXJcIl19PlxyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgaWNvbj17PE1hc2tJY29uIC8+fVxyXG4gICAgICAgICAgICB0ZXh0PXtzaG91bGROYXJyb3cgPyB1bmRlZmluZWQgOiBMb2NhbGUuTWFzay5OYW1lfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYmFyLWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChjb25maWcuZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuICE9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLk5ld0NoYXQsIHsgc3RhdGU6IHsgZnJvbUhvbWU6IHRydWUgfSB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmF2aWdhdGUoUGF0aC5NYXNrcywgeyBzdGF0ZTogeyBmcm9tSG9tZTogdHJ1ZSB9IH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAge21jcEVuYWJsZWQgJiYgKFxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGljb249ezxNY3BJY29uIC8+fVxyXG4gICAgICAgICAgICAgIHRleHQ9e3Nob3VsZE5hcnJvdyA/IHVuZGVmaW5lZCA6IExvY2FsZS5NY3AuTmFtZX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYmFyLWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLk1jcE1hcmtldCwgeyBzdGF0ZTogeyBmcm9tSG9tZTogdHJ1ZSB9IH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgaWNvbj17PERpc2NvdmVyeUljb24gLz59XHJcbiAgICAgICAgICAgIHRleHQ9e3Nob3VsZE5hcnJvdyA/IHVuZGVmaW5lZCA6IExvY2FsZS5EaXNjb3ZlcnkuTmFtZX1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWJhci1idXR0b25cIl19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldHNob3dEaXNjb3ZlcnlTZWxlY3Rvcih0cnVlKX1cclxuICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtzaG93RGlzY292ZXJ5U2VsZWN0b3IgJiYgKFxyXG4gICAgICAgICAgPFNlbGVjdG9yXHJcbiAgICAgICAgICAgIGl0ZW1zPXtbXHJcbiAgICAgICAgICAgICAgLi4uRElTQ09WRVJZLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0ucGF0aCxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldHNob3dEaXNjb3ZlcnlTZWxlY3RvcihmYWxzZSl9XHJcbiAgICAgICAgICAgIG9uU2VsZWN0aW9uPXsocykgPT4ge1xyXG4gICAgICAgICAgICAgIG5hdmlnYXRlKHNbMF0sIHsgc3RhdGU6IHsgZnJvbUhvbWU6IHRydWUgfSB9KTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9TaWRlQmFySGVhZGVyPlxyXG4gICAgICA8U2lkZUJhckJvZHlcclxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGUudGFyZ2V0ID09PSBlLmN1cnJlbnRUYXJnZXQpIHtcclxuICAgICAgICAgICAgbmF2aWdhdGUoUGF0aC5Ib21lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPENoYXRMaXN0IG5hcnJvdz17c2hvdWxkTmFycm93fSAvPlxyXG4gICAgICA8L1NpZGVCYXJCb2R5PlxyXG4gICAgICA8U2lkZUJhclRhaWxcclxuICAgICAgICBwcmltYXJ5QWN0aW9uPXtcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHN4KHN0eWxlc1tcInNpZGViYXItYWN0aW9uXCJdLCBzdHlsZXMubW9iaWxlKX0+XHJcbiAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgIGljb249ezxEZWxldGVJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17YXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoYXdhaXQgc2hvd0NvbmZpcm0oTG9jYWxlLkhvbWUuRGVsZXRlQ2hhdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGF0U3RvcmUuZGVsZXRlU2Vzc2lvbihjaGF0U3RvcmUuY3VycmVudFNlc3Npb25JbmRleCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWFjdGlvblwiXX0+XHJcbiAgICAgICAgICAgICAgPExpbmsgdG89e1BhdGguU2V0dGluZ3N9PlxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlRpdGxlfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8U2V0dGluZ3NJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9MaW5rPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYWN0aW9uXCJdfT5cclxuICAgICAgICAgICAgICA8YSBocmVmPXtSRVBPX1VSTH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLkV4cG9ydC5NZXNzYWdlRnJvbUNoYXRHUFR9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxHaXRodWJJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWNvbmRhcnlBY3Rpb249e1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgaWNvbj17PEFkZEljb24gLz59XHJcbiAgICAgICAgICAgIHRleHQ9e3Nob3VsZE5hcnJvdyA/IHVuZGVmaW5lZCA6IExvY2FsZS5Ib21lLk5ld0NoYXR9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoY29uZmlnLmRvbnRTaG93TWFza1NwbGFzaFNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgY2hhdFN0b3JlLm5ld1Nlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguQ2hhdCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguTmV3Q2hhdCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgICAvPlxyXG4gICAgPC9TaWRlQmFyQ29udGFpbmVyPlxyXG4gICk7XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRnJhZ21lbnQiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJzdHlsZXMiLCJJY29uQnV0dG9uIiwiU2V0dGluZ3NJY29uIiwiR2l0aHViSWNvbiIsIkNoYXRHcHRJY29uIiwiQWRkSWNvbiIsIkRlbGV0ZUljb24iLCJNYXNrSWNvbiIsIk1jcEljb24iLCJEcmFnSWNvbiIsIkRpc2NvdmVyeUljb24iLCJMb2NhbGUiLCJ1c2VBcHBDb25maWciLCJ1c2VDaGF0U3RvcmUiLCJERUZBVUxUX1NJREVCQVJfV0lEVEgiLCJNQVhfU0lERUJBUl9XSURUSCIsIk1JTl9TSURFQkFSX1dJRFRIIiwiTkFSUk9XX1NJREVCQVJfV0lEVEgiLCJQYXRoIiwiUkVQT19VUkwiLCJMaW5rIiwidXNlTmF2aWdhdGUiLCJpc0lPUyIsInVzZU1vYmlsZVNjcmVlbiIsImR5bmFtaWMiLCJTZWxlY3RvciIsInNob3dDb25maXJtIiwiY2xzeCIsImlzTWNwRW5hYmxlZCIsIkRJU0NPVkVSWSIsIm5hbWUiLCJQbHVnaW4iLCJOYW1lIiwicGF0aCIsIlBsdWdpbnMiLCJTZCIsIlNlYXJjaENoYXQiLCJQYWdlIiwiVGl0bGUiLCJDaGF0TGlzdCIsImxvYWRpbmciLCJ1c2VIb3RLZXkiLCJjaGF0U3RvcmUiLCJvbktleURvd24iLCJlIiwiYWx0S2V5IiwiY3RybEtleSIsImtleSIsIm5leHRTZXNzaW9uIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1c2VEcmFnU2lkZUJhciIsImxpbWl0IiwieCIsIk1hdGgiLCJtaW4iLCJjb25maWciLCJzdGFydFgiLCJzdGFydERyYWdXaWR0aCIsInNpZGViYXJXaWR0aCIsImxhc3RVcGRhdGVUaW1lIiwiRGF0ZSIsIm5vdyIsInRvZ2dsZVNpZGVCYXIiLCJ1cGRhdGUiLCJvbkRyYWdTdGFydCIsImN1cnJlbnQiLCJjbGllbnRYIiwiZHJhZ1N0YXJ0VGltZSIsImhhbmRsZURyYWdNb3ZlIiwiZCIsIm5leHRXaWR0aCIsImhhbmRsZURyYWdFbmQiLCJzaG91bGRGaXJlQ2xpY2siLCJpc01vYmlsZVNjcmVlbiIsInNob3VsZE5hcnJvdyIsImJhcldpZHRoIiwic2lkZUJhcldpZHRoIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJzdHlsZSIsInNldFByb3BlcnR5IiwiU2lkZUJhckNvbnRhaW5lciIsInByb3BzIiwiaXNJT1NNb2JpbGUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpdiIsInNpZGViYXIiLCJ0cmFuc2l0aW9uIiwidW5kZWZpbmVkIiwib25Qb2ludGVyRG93biIsIlNpZGVCYXJIZWFkZXIiLCJ0aXRsZSIsInN1YlRpdGxlIiwibG9nbyIsImRhdGEtdGF1cmktZHJhZy1yZWdpb24iLCJTaWRlQmFyQm9keSIsIm9uQ2xpY2siLCJTaWRlQmFyVGFpbCIsInByaW1hcnlBY3Rpb24iLCJzZWNvbmRhcnlBY3Rpb24iLCJTaWRlQmFyIiwic2hvd0Rpc2NvdmVyeVNlbGVjdG9yIiwic2V0c2hvd0Rpc2NvdmVyeVNlbGVjdG9yIiwibmF2aWdhdGUiLCJtY3BFbmFibGVkIiwic2V0TWNwRW5hYmxlZCIsImNoZWNrTWNwU3RhdHVzIiwiZW5hYmxlZCIsImNvbnNvbGUiLCJsb2ciLCJpY29uIiwidGV4dCIsIk1hc2siLCJkb250U2hvd01hc2tTcGxhc2hTY3JlZW4iLCJOZXdDaGF0Iiwic3RhdGUiLCJmcm9tSG9tZSIsIk1hc2tzIiwic2hhZG93IiwiTWNwIiwiTWNwTWFya2V0IiwiRGlzY292ZXJ5IiwiaXRlbXMiLCJtYXAiLCJpdGVtIiwidmFsdWUiLCJvbkNsb3NlIiwib25TZWxlY3Rpb24iLCJzIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsIkhvbWUiLCJuYXJyb3ciLCJtb2JpbGUiLCJEZWxldGVDaGF0IiwiZGVsZXRlU2Vzc2lvbiIsImN1cnJlbnRTZXNzaW9uSW5kZXgiLCJ0byIsIlNldHRpbmdzIiwiYXJpYSIsImEiLCJocmVmIiwicmVsIiwiRXhwb3J0IiwiTWVzc2FnZUZyb21DaGF0R1BUIiwibmV3U2Vzc2lvbiIsIkNoYXQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/sidebar.tsx\n"));
|
|
|
|
/***/ })
|
|
|
|
}); |