22 lines
142 KiB
JavaScript
22 lines
142 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/search/page",{
|
||
|
||
/***/ "(app-pages-browser)/./src/app/search/page.tsx":
|
||
/*!*********************************!*\
|
||
!*** ./src/app/search/page.tsx ***!
|
||
\*********************************/
|
||
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SearchPage)\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 next_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dynamic */ \"(app-pages-browser)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/map-pin.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/user.js\");\n/* harmony import */ var _barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Filter,MapPin,Search,User!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/filter.js\");\n/* harmony import */ var _shared_api_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/shared/api/search */ \"(app-pages-browser)/./src/shared/api/search.ts\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./src/components/ui/input.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./src/components/ui/checkbox.tsx\");\n/* harmony import */ var _components_ui_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/select */ \"(app-pages-browser)/./src/components/ui/select.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n// ВАЖНО: react-leaflet ломает SSR — импортируем с ssr: false\nconst LiveMap = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(()=>__webpack_require__.e(/*! import() */ \"_app-pages-browser_src_components_map_LiveMap_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! @/components/map/LiveMap */ \"(app-pages-browser)/./src/components/map/LiveMap.tsx\")), {\n loadableGenerated: {\n modules: [\n \"app\\\\search\\\\page.tsx -> \" + \"@/components/map/LiveMap\"\n ]\n },\n ssr: false,\n loading: ()=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center w-full h-full bg-muted/30\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 w-10 border-4 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 17,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted-foreground text-sm\",\n children: \"Загрузка карты...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 18,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 16,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, undefined)\n});\n_c = LiveMap;\nfunction SearchPage() {\n _s();\n const [performers, setPerformers] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [sidebarOpen, setSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [activePerformerId, setActivePerformerId] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [centerTrigger, setCenterTrigger] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(0);\n const [sortBy, setSortBy] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"default\");\n // Параметры поиска\n const [query, setQuery] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n const [inTitle, setInTitle] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [inDesc, setInDesc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n const [inComp, setInComp] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(true);\n // Текущая позиция карты (и инициализация из localStorage)\n const [mapBounds, setMapBounds] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null);\n const [initialCenter, setInitialCenter] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([\n 55.7558,\n 37.6173\n ]) // Default: Moscow\n ;\n const [isLocationLoaded, setIsLocationLoaded] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n // Пытаемся восстановить локацию при монтировании\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"SearchPage.useEffect\": ()=>{\n try {\n const savedProfile = localStorage.getItem(\"user-profile\");\n if (savedProfile) {\n const profile = JSON.parse(savedProfile);\n if (profile.currentLocation && profile.currentLocation.latitude) {\n setInitialCenter([\n profile.currentLocation.latitude,\n profile.currentLocation.longitude\n ]);\n }\n }\n } catch (e) {\n console.error(\"Ошибка чтения локации из localStorage\", e);\n } finally{\n setIsLocationLoaded(true);\n }\n }\n }[\"SearchPage.useEffect\"], []);\n const searchTimeoutRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const performSearch = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[performSearch]\": async (q, lat, lon, radius, title, desc, comp)=>{\n try {\n if (q.trim().length < 2) {\n setPerformers([]);\n return;\n }\n setIsLoading(true);\n setError(null);\n const result = await (0,_shared_api_search__WEBPACK_IMPORTED_MODULE_3__.globalSearch)({\n q: q.trim(),\n lat,\n lon,\n radius,\n inTitle: title,\n inDesc: desc,\n inComp: comp\n });\n setPerformers(result);\n } catch (err) {\n console.error(\"Search error:\", err);\n setError(\"Ошибка при поиске. Попробуйте снова.\");\n } finally{\n setIsLoading(false);\n }\n }\n }[\"SearchPage.useCallback[performSearch]\"], []);\n // Debounced search trigger\n const triggerSearch = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[triggerSearch]\": (newQuery, lat, lon, rad, title, desc, comp)=>{\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\n const currentLat = lat !== null && lat !== void 0 ? lat : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.lat;\n const currentLon = lon !== null && lon !== void 0 ? lon : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.lon;\n const currentRad = rad !== null && rad !== void 0 ? rad : mapBounds === null || mapBounds === void 0 ? void 0 : mapBounds.radius;\n if (!currentLat || !currentLon) return; // Ждём, пока карта даст координаты\n searchTimeoutRef.current = setTimeout({\n \"SearchPage.useCallback[triggerSearch]\": ()=>{\n performSearch(newQuery, currentLat, currentLon, currentRad || 5000, title !== null && title !== void 0 ? title : inTitle, desc !== null && desc !== void 0 ? desc : inDesc, comp !== null && comp !== void 0 ? comp : inComp);\n }\n }[\"SearchPage.useCallback[triggerSearch]\"], 400);\n }\n }[\"SearchPage.useCallback[triggerSearch]\"], [\n mapBounds,\n performSearch,\n inTitle,\n inDesc,\n inComp\n ]);\n const handleBoundsChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleBoundsChange]\": (lat, lon, radius)=>{\n setMapBounds({\n lat,\n lon,\n radius\n });\n triggerSearch(query, lat, lon, radius);\n }\n }[\"SearchPage.useCallback[handleBoundsChange]\"], [\n triggerSearch,\n query\n ]);\n const handleUserLocated = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleUserLocated]\": (lat, lon)=>{\n setMapBounds({\n lat,\n lon,\n radius: 5000\n });\n triggerSearch(query, lat, lon, 5000);\n }\n }[\"SearchPage.useCallback[handleUserLocated]\"], [\n triggerSearch,\n query\n ]);\n const handlePerformerClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handlePerformerClick]\": (id)=>{\n setActivePerformerId(id);\n if (sidebarOpen) {\n const el = document.getElementById(\"performer-card-\".concat(id));\n if (el) {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n } else {\n setSidebarOpen(true);\n setTimeout({\n \"SearchPage.useCallback[handlePerformerClick]\": ()=>{\n const el = document.getElementById(\"performer-card-\".concat(id));\n if (el) {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n });\n }\n }\n }[\"SearchPage.useCallback[handlePerformerClick]\"], 300);\n }\n }\n }[\"SearchPage.useCallback[handlePerformerClick]\"], [\n sidebarOpen\n ]);\n const handleListPerformerClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)({\n \"SearchPage.useCallback[handleListPerformerClick]\": (id)=>{\n setActivePerformerId(id);\n setCenterTrigger({\n \"SearchPage.useCallback[handleListPerformerClick]\": (prev)=>prev + 1\n }[\"SearchPage.useCallback[handleListPerformerClick]\"]);\n }\n }[\"SearchPage.useCallback[handleListPerformerClick]\"], []);\n const sortedItems = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"SearchPage.useMemo[sortedItems]\": ()=>{\n let items = [];\n performers.forEach({\n \"SearchPage.useMemo[sortedItems]\": (p)=>{\n if (p.matchedOffers && p.matchedOffers.length > 0) {\n p.matchedOffers.forEach({\n \"SearchPage.useMemo[sortedItems]\": (o)=>{\n var _o_priceAmount, _ref;\n items.push({\n type: 'offer',\n performer: p,\n offer: o,\n distance: p.distance || 0,\n price: (_ref = (_o_priceAmount = o.priceAmount) !== null && _o_priceAmount !== void 0 ? _o_priceAmount : o.amount) !== null && _ref !== void 0 ? _ref : 0\n });\n }\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else {\n items.push({\n type: 'performer',\n performer: p,\n distance: p.distance || 0,\n price: 0\n });\n }\n }\n }[\"SearchPage.useMemo[sortedItems]\"]);\n if (sortBy === \"price_asc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>a.price - b.price\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else if (sortBy === \"price_desc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>b.price - a.price\n }[\"SearchPage.useMemo[sortedItems]\"]);\n } else if (sortBy === \"distance_asc\") {\n items.sort({\n \"SearchPage.useMemo[sortedItems]\": (a, b)=>a.distance - b.distance\n }[\"SearchPage.useMemo[sortedItems]\"]);\n }\n return items;\n }\n }[\"SearchPage.useMemo[sortedItems]\"], [\n performers,\n sortBy\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex w-full\",\n style: {\n height: \"calc(100vh - 64px)\"\n },\n children: [\n sidebarOpen && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"w-2/5 min-w-[380px] max-w-[600px] border-r bg-background flex flex-col shrink-0 overflow-hidden shadow-xl z-10 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 border-b space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5 text-primary\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 177,\n columnNumber: 33\n }, this),\n \"Поиск услуг\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 176,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSidebarOpen(false),\n className: \"text-muted-foreground hover:text-foreground text-xs px-2 py-1 rounded hover:bg-muted transition-colors\",\n children: \"Свернуть\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 180,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 175,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"absolute left-3 top-3 h-4 w-4 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 190,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n placeholder: \"Что вы ищете? Напр. 'бар', 'ремонт'\",\n className: \"pl-9 bg-muted/50 focus-visible:ring-primary\",\n value: query,\n onChange: (e)=>{\n setQuery(e.target.value);\n triggerSearch(e.target.value);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 191,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 189,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-2 pt-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-medium text-muted-foreground uppercase tracking-wider\",\n children: \"Искать в:\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 204,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4 text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inTitle,\n onCheckedChange: (c)=>{\n setInTitle(!!c);\n triggerSearch(query, undefined, undefined, undefined, !!c, inDesc, inComp);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 207,\n columnNumber: 37\n }, this),\n \"Названиях\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 206,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inDesc,\n onCheckedChange: (c)=>{\n setInDesc(!!c);\n triggerSearch(query, undefined, undefined, undefined, inTitle, !!c, inComp);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 217,\n columnNumber: 37\n }, this),\n \"Описании\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 216,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_5__.Checkbox, {\n checked: inComp,\n onCheckedChange: (c)=>{\n setInComp(!!c);\n triggerSearch(query, undefined, undefined, undefined, inTitle, inDesc, !!c);\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 227,\n columnNumber: 37\n }, this),\n \"Компетенциях\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 226,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 205,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 203,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 174,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto bg-muted/10\",\n children: query.trim() === \"\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 px-6 text-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-16 w-16 rounded-full bg-muted flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-8 w-8 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 245,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 244,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium\",\n children: \"Введите запрос для поиска\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 247,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Укажите название услуги, например 'уборка' или 'няня'.\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 248,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 243,\n columnNumber: 29\n }, this) : isLoading && performers.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-8 border-3 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 254,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted-foreground\",\n children: \"Ищем подходящие услуги...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 255,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 253,\n columnNumber: 29\n }, this) : performers.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-16 px-6 text-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-16 w-16 rounded-full bg-muted flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-8 w-8 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 260,\n columnNumber: 37\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 259,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium\",\n children: \"Ничего не найдено\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 262,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Попробуйте изменить запрос, расширить зону поиска или убрать фильтры.\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 263,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 258,\n columnNumber: 29\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-4 py-2 bg-muted/30 flex items-center justify-between sticky top-0 backdrop-blur z-10 border-b\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-muted-foreground whitespace-nowrap\",\n children: [\n \"Найдено: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"strong\", {\n className: \"text-foreground\",\n children: performers.length\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 271,\n columnNumber: 50\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 270,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.Select, {\n value: sortBy,\n onValueChange: setSortBy,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectTrigger, {\n className: \"h-7 text-xs w-auto min-w-[140px] border-none bg-transparent shadow-none focus:ring-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectValue, {\n placeholder: \"Сортировка\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 275,\n columnNumber: 45\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 274,\n columnNumber: 41\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"default\",\n className: \"text-xs\",\n children: \"Идеально подходят\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 278,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"price_asc\",\n className: \"text-xs\",\n children: \"Сначала дешевле\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 279,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"price_desc\",\n className: \"text-xs\",\n children: \"Сначала дороже\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 280,\n columnNumber: 45\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_select__WEBPACK_IMPORTED_MODULE_6__.SelectItem, {\n value: \"distance_asc\",\n className: \"text-xs\",\n children: \"Сначала ближе\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 281,\n columnNumber: 45\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 277,\n columnNumber: 41\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 273,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 269,\n columnNumber: 33\n }, this),\n sortedItems.map((item, idx)=>{\n const p = item.performer;\n const isOnline = p.status === \"Готов к заказу\";\n const key = item.type === 'offer' ? \"\".concat(item.offer.id, \"-\").concat(idx) : \"\".concat(p.performerId, \"-\").concat(idx);\n const formatDistance = (d)=>{\n if (d === undefined || d === null) return 'В вашем районе';\n if (d < 1000) return \"\".concat(Math.round(d), \" м от вас\");\n return \"\".concat((d / 1000).toFixed(1), \" км от вас\");\n };\n const performerClasses = item.type === 'offer' ? \"flex items-center gap-3 bg-muted/40 rounded-lg border border-transparent opacity-0 max-h-0 overflow-hidden transform scale-95 transition-all duration-300 ease-in-out group-hover:opacity-100 group-hover:max-h-[100px] group-hover:scale-100 group-hover:mt-3 group-hover:p-2 group-hover:border-border/50\" : \"flex items-center gap-3 bg-background border rounded-lg p-3 shadow-sm mt-3 opacity-100 transition-all\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"performer-card-\".concat(p.performerId, \"-\").concat(idx),\n onClick: ()=>handleListPerformerClick(p.performerId),\n className: \"px-4 py-4 cursor-pointer transition-colors group \".concat(activePerformerId === p.performerId ? 'bg-primary/5 shadow-inner border-l-4 border-l-primary' : 'hover:bg-muted/50 border-l-4 border-l-transparent'),\n children: [\n item.type === 'offer' ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex flex-col sm:flex-row gap-4\",\n children: [\n item.offer.imageUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"shrink-0 w-full sm:w-36 h-36 rounded-lg overflow-hidden bg-muted relative group-hover/image:shadow-md transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: item.offer.imageUrl,\n alt: item.offer.title,\n className: \"w-full h-full object-cover transition-transform duration-500 group-hover:scale-110\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 313,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/10 group-hover:bg-transparent transition-colors duration-500\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 318,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 312,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0 flex flex-col justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-start gap-2 mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"font-bold text-lg leading-tight group-hover:text-primary transition-colors line-clamp-2\",\n children: item.offer.title\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 324,\n columnNumber: 65\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-end gap-1 shrink-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-bold text-primary whitespace-nowrap bg-primary/10 px-2 py-0.5 rounded-md shadow-sm\",\n children: [\n item.price,\n \" ₽\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 326,\n columnNumber: 69\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-muted-foreground whitespace-nowrap bg-muted/70 px-2 py-0.5 rounded-md flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-3 w-3 shrink-0\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 330,\n columnNumber: 73\n }, this),\n formatDistance(p.distance)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 329,\n columnNumber: 69\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 325,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 323,\n columnNumber: 61\n }, this),\n item.offer.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-muted-foreground line-clamp-2 leading-relaxed mb-3\",\n children: item.offer.description\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 336,\n columnNumber: 65\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 322,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 self-start\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/offers/\".concat(item.offer.id),\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n onClick: (e)=>e.stopPropagation(),\n className: \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-4 py-2\",\n children: \"Просмотреть услугу\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 342,\n columnNumber: 61\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 341,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 321,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 310,\n columnNumber: 49\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-3\",\n children: \"Найдено по компетенции\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 356,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-1\",\n children: p.matchedCompetencies.map((c)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2 py-0.5 bg-primary/10 text-primary text-[10px] rounded-full uppercase tracking-wide font-medium\",\n children: c\n }, c, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 361,\n columnNumber: 61\n }, this))\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 359,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 355,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: performerClasses,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative h-8 w-8 shrink-0 rounded-full overflow-hidden bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-white\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 372,\n columnNumber: 53\n }, this),\n p.avatarUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: p.avatarUrl,\n alt: \"Avatar\",\n className: \"absolute inset-0 h-full w-full object-cover bg-background\",\n onError: (e)=>{\n e.currentTarget.style.display = 'none';\n }\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 374,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 371,\n columnNumber: 49\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"font-medium text-xs truncate\",\n children: p.name\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 384,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex items-center gap-1 text-[10px] font-medium shrink-0 flex-nowrap \".concat(isOnline ? \"text-green-500\" : \"text-gray-400\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"h-1.5 w-1.5 shrink-0 rounded-full \".concat(isOnline ? \"bg-green-500 animate-pulse\" : \"bg-gray-400\")\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 386,\n columnNumber: 61\n }, this),\n p.status\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 385,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 383,\n columnNumber: 53\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mt-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-3.5 w-3.5 shrink-0 text-muted-foreground\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 392,\n columnNumber: 61\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-muted-foreground truncate\",\n children: formatDistance(p.distance)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 393,\n columnNumber: 61\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 391,\n columnNumber: 57\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[11px] font-medium text-foreground/80 bg-muted/80 px-2 py-0.5 rounded\",\n children: p.role || \"Пользователь\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 395,\n columnNumber: 57\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 390,\n columnNumber: 53\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 382,\n columnNumber: 49\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 370,\n columnNumber: 45\n }, this)\n ]\n }, key, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 302,\n columnNumber: 41\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 268,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 241,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 172,\n columnNumber: 17\n }, this),\n !sidebarOpen && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSidebarOpen(true),\n className: \"absolute left-2 top-20 z-[1000] bg-background border shadow-lg rounded-lg px-4 py-3 hover:bg-muted transition-colors flex items-center gap-2 text-sm font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Filter_MapPin_Search_User_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 text-primary\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 415,\n columnNumber: 21\n }, this),\n \"Фильтры и список\"\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 411,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 relative z-0\",\n children: isLocationLoaded ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(LiveMap, {\n performers: performers,\n isLoading: isLoading,\n error: error,\n initialCenter: initialCenter,\n onBoundsChange: handleBoundsChange,\n onUserLocated: handleUserLocated,\n activePerformerId: activePerformerId,\n centerTrigger: centerTrigger,\n onPerformerClick: handlePerformerClick\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 423,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center w-full h-full bg-muted/30\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 w-10 border-4 border-primary border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 437,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-muted-foreground text-sm\",\n children: \"Определение вашей позиции...\"\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 438,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 436,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 435,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 421,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"E:\\\\GIT\\\\mvp\\\\nashel-frontend\\\\src\\\\app\\\\search\\\\page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this);\n}\n_s(SearchPage, \"TxZiXQluWrPHJBZrpX0bssHXe7o=\");\n_c1 = SearchPage;\nvar _c, _c1;\n$RefreshReg$(_c, \"LiveMap\");\n$RefreshReg$(_c1, \"SearchPage\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvc2VhcmNoL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVrQztBQUN1QztBQUNIO0FBQ0Y7QUFDdkI7QUFDTTtBQUNtRDtBQUV0Ryw2REFBNkQ7QUFDN0QsTUFBTWtCLFVBQVVsQix3REFBT0EsQ0FBQyxJQUFNLHNPQUFrQzs7Ozs7O0lBQzVEbUIsS0FBSztJQUNMQyxTQUFTLGtCQUNMLDhEQUFDQztZQUFJQyxXQUFVO3NCQUNYLDRFQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ1gsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNDO3dCQUFFRCxXQUFVO2tDQUFnQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBTnZESjtBQVlTLFNBQVNNOztJQUNwQixNQUFNLENBQUNDLFlBQVlDLGNBQWMsR0FBR3pCLCtDQUFRQSxDQUFxQixFQUFFO0lBQ25FLE1BQU0sQ0FBQzBCLFdBQVdDLGFBQWEsR0FBRzNCLCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQzRCLE9BQU9DLFNBQVMsR0FBRzdCLCtDQUFRQSxDQUFnQjtJQUNsRCxNQUFNLENBQUM4QixhQUFhQyxlQUFlLEdBQUcvQiwrQ0FBUUEsQ0FBQztJQUMvQyxNQUFNLENBQUNnQyxtQkFBbUJDLHFCQUFxQixHQUFHakMsK0NBQVFBLENBQWdCO0lBQzFFLE1BQU0sQ0FBQ2tDLGVBQWVDLGlCQUFpQixHQUFHbkMsK0NBQVFBLENBQUM7SUFDbkQsTUFBTSxDQUFDb0MsUUFBUUMsVUFBVSxHQUFHckMsK0NBQVFBLENBQVM7SUFFN0MsbUJBQW1CO0lBQ25CLE1BQU0sQ0FBQ3NDLE9BQU9DLFNBQVMsR0FBR3ZDLCtDQUFRQSxDQUFDO0lBQ25DLE1BQU0sQ0FBQ3dDLFNBQVNDLFdBQVcsR0FBR3pDLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQzBDLFFBQVFDLFVBQVUsR0FBRzNDLCtDQUFRQSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQzRDLFFBQVFD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QUNiLHFHQUFNQTtnRkFBQ2EsV0FBVTs7Ozs7OzBGQUNsQiw4REFBQzJHO2dGQUFLM0csV0FBVTswRkFBc0RxSCxlQUFlcEgsRUFBRW9GLFFBQVE7Ozs7Ozs7Ozs7OztrRkFFbkcsOERBQUNzQjt3RUFBSzNHLFdBQVU7a0ZBQ1hDLEVBQUV5SSxJQUFJLElBQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUNBN0Z0QnZCOzs7OztnQ0FvR2pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFPbkIsQ0FBQzFHLDZCQUNFLDhEQUFDdUY7Z0JBQ0dDLFNBQVMsSUFBTXZGLGVBQWU7Z0JBQzlCVixXQUFVOztrQ0FFViw4REFBQ2Qsc0dBQU1BO3dCQUFDYyxXQUFVOzs7Ozs7b0JBQXlCOzs7Ozs7OzBCQU1uRCw4REFBQ0Q7Z0JBQUlDLFdBQVU7MEJBQ1Y2QixpQ0FDRyw4REFBQ2pDO29CQUNHTyxZQUFZQTtvQkFDWkUsV0FBV0E7b0JBQ1hFLE9BQU9BO29CQUNQb0IsZUFBZUE7b0JBQ2ZnSCxnQkFBZ0IzRTtvQkFDaEI0RSxlQUFlM0U7b0JBQ2Z0RCxtQkFBbUJBO29CQUNuQkUsZUFBZUE7b0JBQ2ZnSSxrQkFBa0IzRTs7Ozs7eUNBR3RCLDhEQUFDbkU7b0JBQUlDLFdBQVU7OEJBQ1gsNEVBQUNEO3dCQUFJQyxXQUFVOzswQ0FDWCw4REFBQ0Q7Z0NBQUlDLFdBQVU7Ozs7OzswQ0FDZiw4REFBQ0M7Z0NBQUVELFdBQVU7MENBQWdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3pFO0dBcmF3QkU7TUFBQUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxzcmNcXGFwcFxcc2VhcmNoXFxwYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxyXG5cclxuaW1wb3J0IGR5bmFtaWMgZnJvbSBcIm5leHQvZHluYW1pY1wiXHJcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxyXG5pbXBvcnQgeyBTZWFyY2gsIFVzZXIsIEZpbHRlciwgTWFwUGluLCBCcmllZmNhc2UgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcclxuaW1wb3J0IHsgZ2xvYmFsU2VhcmNoLCBTZWFyY2hSZXN1bHRJdGVtIH0gZnJvbSBcIkAvc2hhcmVkL2FwaS9zZWFyY2hcIlxyXG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvaW5wdXRcIlxyXG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvY2hlY2tib3hcIlxyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdENvbnRlbnQsIFNlbGVjdEl0ZW0sIFNlbGVjdFRyaWdnZXIsIFNlbGVjdFZhbHVlIH0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9zZWxlY3RcIlxyXG5cclxuLy8g0JLQkNCW0J3QnjogcmVhY3QtbGVhZmxldCDQu9C+0LzQsNC10YIgU1NSIOKAlCDQuNC80L/QvtGA0YLQuNGA0YPQtdC8INGBIHNzcjogZmFsc2VcclxuY29uc3QgTGl2ZU1hcCA9IGR5bmFtaWMoKCkgPT4gaW1wb3J0KFwiQC9jb21wb25lbnRzL21hcC9MaXZlTWFwXCIpLCB7XHJcbiAgICBzc3I6IGZhbHNlLFxyXG4gICAgbG9hZGluZzogKCkgPT4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy1mdWxsIGgtZnVsbCBiZy1tdXRlZC8zMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTAgdy0xMCBib3JkZXItNCBib3JkZXItcHJpbWFyeSBib3JkZXItdC10cmFuc3BhcmVudCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1zcGluXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZCB0ZXh0LXNtXCI+0JfQsNCz0YDRg9C30LrQsCDQutCw0YDRgtGLLi4uPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICksXHJcbn0pXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTZWFyY2hQYWdlKCkge1xyXG4gICAgY29uc3QgW3BlcmZvcm1lcnMsIHNldFBlcmZvcm1lcnNdID0gdXNlU3RhdGU8U2VhcmNoUmVzdWx0SXRlbVtdPihbXSlcclxuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcclxuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcclxuICAgIGNvbnN0IFtzaWRlYmFyT3Blbiwgc2V0U2lkZWJhck9wZW5dID0gdXNlU3RhdGUodHJ1ZSlcclxuICAgIGNvbnN0IFthY3RpdmVQZXJmb3JtZXJJZCwgc2V0QWN0aXZlUGVyZm9ybWVySWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcclxuICAgIGNvbnN0IFtjZW50ZXJUcmlnZ2VyLCBzZXRDZW50ZXJUcmlnZ2VyXSA9IHVzZVN0YXRlKDApXHJcbiAgICBjb25zdCBbc29ydEJ5LCBzZXRTb3J0QnldID0gdXNlU3RhdGU8c3RyaW5nPihcImRlZmF1bHRcIilcclxuXHJcbiAgICAvLyDQn9Cw0YDQsNC80LXRgtGA0Ysg0L/QvtC40YHQutCwXHJcbiAgICBjb25zdCBbcXVlcnksIHNldFF1ZXJ5XSA9IHVzZVN0YXRlKFwiXCIpXHJcbiAgICBjb25zdCBbaW5UaXRsZSwgc2V0SW5UaXRsZV0gPSB1c2VTdGF0ZSh0cnVlKVxyXG4gICAgY29uc3QgW2luRGVzYywgc2V0SW5EZXNjXSA9IHVzZVN0YXRlKHRydWUpXHJcbiAgICBjb25zdCBbaW5Db21wLCBzZXRJbkNvbXBdID0gdXNlU3RhdGUodHJ1ZSlcclxuXHJcbiAgICAvLyDQotC10LrRg9GJ0LDRjyDQv9C+0LfQuNGG0LjRjyDQutCw0YDRgtGLICjQuCDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyDQuNC3IGxvY2FsU3RvcmFnZSlcclxuICAgIGNvbnN0IFttYXBCb3VuZHMsIHNldE1hcEJvdW5kc10gPSB1c2VTdGF0ZTx7IGxhdDogbnVtYmVyLCBsb246IG51bWJlciwgcmFkaXVzOiBudW1iZXIgfSB8IG51bGw+KG51bGwpXHJcbiAgICBjb25zdCBbaW5pdGlhbENlbnRlciwgc2V0SW5pdGlhbENlbnRlcl0gPSB1c2VTdGF0ZTxbbnVtYmVyLCBudW1iZXJdPihbNTUuNzU1OCwgMzcuNjE3M10pIC8vIERlZmF1bHQ6IE1vc2Nvd1xyXG4gICAgY29uc3QgW2lzTG9jYXRpb25Mb2FkZWQsIHNldElzTG9jYXRpb25Mb2FkZWRdID0gdXNlU3RhdGUoZmFsc2UpXHJcblxyXG4gICAgLy8g0J/Ri9GC0LDQtdC80YHRjyDQstC+0YHRgdGC0LDQvdC+0LLQuNGC0Ywg0LvQvtC60LDRhtC40Y4g0L/RgNC4INC80L7QvdGC0LjRgNC+0LLQsNC90LjQuFxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzYXZlZFByb2ZpbGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXItcHJvZmlsZVwiKVxyXG4gICAgICAgICAgICBpZiAoc2F2ZWRQcm9maWxlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9maWxlID0gSlNPTi5wYXJzZShzYXZlZFByb2ZpbGUpXHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZmlsZS5jdXJyZW50TG9jYXRpb24gJiYgcHJvZmlsZS5jdXJyZW50TG9jYXRpb24ubGF0aXR1ZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXRJbml0aWFsQ2VudGVyKFtwcm9maWxlLmN1cnJlbnRMb2NhdGlvbi5sYXRpdHVkZSwgcHJvZmlsZS5jdXJyZW50TG9jYXRpb24ubG9uZ2l0dWRlXSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcItCe0YjQuNCx0LrQsCDRh9GC0LXQvdC40Y8g0LvQvtC60LDRhtC40Lgg0LjQtyBsb2NhbFN0b3JhZ2VcIiwgZSlcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBzZXRJc0xvY2F0aW9uTG9hZGVkKHRydWUpXHJcbiAgICAgICAgfVxyXG4gICAgfSwgW10pXHJcblxyXG4gICAgY29uc3Qgc2VhcmNoVGltZW91dFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGw+KG51bGwpXHJcblxyXG4gICAgY29uc3QgcGVyZm9ybVNlYXJjaCA9IHVzZUNhbGxiYWNrKGFzeW5jIChxOiBzdHJpbmcsIGxhdDogbnVtYmVyLCBsb246IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIHRpdGxlOiBib29sZWFuLCBkZXNjOiBib29sZWFuLCBjb21wOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHEudHJpbSgpLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICAgICAgICAgIHNldFBlcmZvcm1lcnMoW10pXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyh0cnVlKVxyXG4gICAgICAgICAgICBzZXRFcnJvcihudWxsKVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnbG9iYWxTZWFyY2goe1xyXG4gICAgICAgICAgICAgICAgcTogcS50cmltKCksXHJcbiAgICAgICAgICAgICAgICBsYXQsXHJcbiAgICAgICAgICAgICAgICBsb24sXHJcbiAgICAgICAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICAgICAgICBpblRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGluRGVzYzogZGVzYyxcclxuICAgICAgICAgICAgICAgIGluQ29tcDogY29tcFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBzZXRQZXJmb3JtZXJzKHJlc3VsdClcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlNlYXJjaCBlcnJvcjpcIiwgZXJyKVxyXG4gICAgICAgICAgICBzZXRFcnJvcihcItCe0YjQuNCx0LrQsCDQv9GA0Lgg0L/QvtC40YHQutC1LiDQn9C+0L/RgNC+0LHRg9C50YLQtSDRgdC90L7QstCwLlwiKVxyXG4gICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcclxuICAgICAgICB9XHJcbiAgICB9LCBbXSlcclxuXHJcbiAgICAvLyBEZWJvdW5jZWQgc2VhcmNoIHRyaWdnZXJcclxuICAgIGNvbnN0IHRyaWdnZXJTZWFyY2ggPSB1c2VDYWxsYmFjaygobmV3UXVlcnk6IHN0cmluZywgbGF0PzogbnVtYmVyLCBsb24/OiBudW1iZXIsIHJhZD86IG51bWJlciwgdGl0bGU/OiBib29sZWFuLCBkZXNjPzogYm9vbGVhbiwgY29tcD86IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoc2VhcmNoVGltZW91dFJlZi5jdXJyZW50KSBjbGVhclRpbWVvdXQoc2VhcmNoVGltZW91dFJlZi5jdXJyZW50KVxyXG5cclxuICAgICAgICBjb25zdCBjdXJyZW50TGF0ID0gbGF0ID8/IG1hcEJvdW5kcz8ubGF0XHJcbiAgICAgICAgY29uc3QgY3VycmVudExvbiA9IGxvbiA/PyBtYXBCb3VuZHM/LmxvblxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRSYWQgPSByYWQgPz8gbWFwQm91bmRzPy5yYWRpdXNcclxuXHJcbiAgICAgICAgaWYgKCFjdXJyZW50TGF0IHx8ICFjdXJyZW50TG9uKSByZXR1cm4gLy8g0JbQtNGR0LwsINC/0L7QutCwINC60LDRgNGC0LAg0LTQsNGB0YIg0LrQvtC+0YDQtNC40L3QsNGC0YtcclxuXHJcbiAgICAgICAgc2VhcmNoVGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHBlcmZvcm1TZWFyY2goXHJcbiAgICAgICAgICAgICAgICBuZXdRdWVyeSxcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRMYXQsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50TG9uLFxyXG4gICAgICAgICAgICAgICAgY3VycmVudFJhZCB8fCA1MDAwLFxyXG4gICAgICAgICAgICAgICAgdGl0bGUgPz8gaW5UaXRsZSxcclxuICAgICAgICAgICAgICAgIGRlc2MgPz8gaW5EZXNjLFxyXG4gICAgICAgICAgICAgICAgY29tcCA/PyBpbkNvbXBcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0sIDQwMClcclxuICAgIH0sIFttYXBCb3VuZHMsIHBlcmZvcm1TZWFyY2gsIGluVGl0bGUsIGluRGVzYywgaW5Db21wXSlcclxuXHJcbiAgICBjb25zdCBoYW5kbGVCb3VuZHNDaGFuZ2UgPSB1c2VDYWxsYmFjaygobGF0OiBudW1iZXIsIGxvbjogbnVtYmVyLCByYWRpdXM6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHNldE1hcEJvdW5kcyh7IGxhdCwgbG9uLCByYWRpdXMgfSlcclxuICAgICAgICB0cmlnZ2VyU2VhcmNoKHF1ZXJ5LCBsYXQsIGxvbiwgcmFkaXVzKVxyXG4gICAgfSwgW3RyaWdnZXJTZWFyY2gsIHF1ZXJ5XSlcclxuXHJcbiAgICBjb25zdCBoYW5kbGVVc2VyTG9jYXRlZCA9IHVzZUNhbGxiYWNrKChsYXQ6IG51bWJlciwgbG9uOiBudW1iZXIpID0+IHtcclxuICAgICAgICBzZXRNYXBCb3VuZHMoeyBsYXQsIGxvbiwgcmFkaXVzOiA1MDAwIH0pXHJcbiAgICAgICAgdHJpZ2dlclNlYXJjaChxdWVyeSwgbGF0LCBsb24sIDUwMDApXHJcbiAgICB9LCBbdHJpZ2dlclNlYXJjaCwgcXVlcnldKVxyXG5cclxuICAgIGNvbnN0IGhhbmRsZVBlcmZvcm1lckNsaWNrID0gdXNlQ2FsbGJhY2soKGlkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBzZXRBY3RpdmVQZXJmb3JtZXJJZChpZClcclxuICAgICAgICBpZiAoc2lkZWJhck9wZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgcGVyZm9ybWVyLWNhcmQtJHtpZH1gKVxyXG4gICAgICAgICAgICBpZiAoZWwpIHtcclxuICAgICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNldFNpZGViYXJPcGVuKHRydWUpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgcGVyZm9ybWVyLWNhcmQtJHtpZH1gKVxyXG4gICAgICAgICAgICAgICAgaWYgKGVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCAzMDApXHJcbiAgICAgICAgfVxyXG4gICAgfSwgW3NpZGViYXJPcGVuXSlcclxuXHJcbiAgICBjb25zdCBoYW5kbGVMaXN0UGVyZm9ybWVyQ2xpY2sgPSB1c2VDYWxsYmFjaygoaWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHNldEFjdGl2ZVBlcmZvcm1lcklkKGlkKVxyXG4gICAgICAgIHNldENlbnRlclRyaWdnZXIocHJldiA9PiBwcmV2ICsgMSlcclxuICAgIH0sIFtdKVxyXG5cclxuICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICAgICAgbGV0IGl0ZW1zOiB7IHR5cGU6ICdvZmZlcicgfCAncGVyZm9ybWVyJywgcGVyZm9ybWVyOiBTZWFyY2hSZXN1bHRJdGVtLCBvZmZlcj86IGFueSwgZGlzdGFuY2U6IG51bWJlciwgcHJpY2U6IG51bWJlciB9W10gPSBbXTtcclxuICAgICAgICBwZXJmb3JtZXJzLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwLm1hdGNoZWRPZmZlcnMgJiYgcC5tYXRjaGVkT2ZmZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHAubWF0Y2hlZE9mZmVycy5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyB0eXBlOiAnb2ZmZXInLCBwZXJmb3JtZXI6IHAsIG9mZmVyOiBvLCBkaXN0YW5jZTogcC5kaXN0YW5jZSB8fCAwLCBwcmljZTogby5wcmljZUFtb3VudCA/PyBvLmFtb3VudCA/PyAwIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgdHlwZTogJ3BlcmZvcm1lcicsIHBlcmZvcm1lcjogcCwgZGlzdGFuY2U6IHAuZGlzdGFuY2UgfHwgMCwgcHJpY2U6IDAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHNvcnRCeSA9PT0gXCJwcmljZV9hc2NcIikge1xyXG4gICAgICAgICAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiBhLnByaWNlIC0gYi5wcmljZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzb3J0QnkgPT09IFwicHJpY2VfZGVzY1wiKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IGIucHJpY2UgLSBhLnByaWNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvcnRCeSA9PT0gXCJkaXN0YW5jZV9hc2NcIikge1xyXG4gICAgICAgICAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiBhLmRpc3RhbmNlIC0gYi5kaXN0YW5jZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtcztcclxuICAgIH0sIFtwZXJmb3JtZXJzLCBzb3J0QnldKVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHctZnVsbFwiIHN0eWxlPXt7IGhlaWdodDogXCJjYWxjKDEwMHZoIC0gNjRweClcIiB9fT5cclxuICAgICAgICAgICAgey8qID09PSDQkdC+0LrQvtCy0LDRjyDQv9Cw0L3QtdC70Yw6INCf0L7QuNGB0LogKyDQodC/0LjRgdC+0Log0LzQsNGB0YLQtdGA0L7QsiA9PT0gKi99XHJcbiAgICAgICAgICAgIHtzaWRlYmFyT3BlbiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwidy0yLzUgbWluLXctWzM4MHB4XSBtYXgtdy1bNjAwcHhdIGJvcmRlci1yIGJnLWJhY2tncm91bmQgZmxleCBmbGV4LWNvbCBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LXhsIHotMTAgcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7Lyog0JfQsNCz0L7Qu9C+0LLQvtC6INC4INGE0LjQu9GM0YLRgNGLICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC00IGJvcmRlci1iIHNwYWNlLXktNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJoLTUgdy01IHRleHQtcHJpbWFyeVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J/QvtC40YHQuiDRg9GB0LvRg9CzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNpZGViYXJPcGVuKGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRleHQteHMgcHgtMiBweS0xIHJvdW5kZWQgaG92ZXI6YmctbXV0ZWQgdHJhbnNpdGlvbi1jb2xvcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCh0LLQtdGA0L3Rg9GC0YxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsvKiDQodGC0YDQvtC60LAg0L/QvtC40YHQutCwICovfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMyB0b3AtMyBoLTQgdy00IHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCn0YLQviDQstGLINC40YnQtdGC0LU/INCd0LDQv9GALiAn0LHQsNGAJywgJ9GA0LXQvNC+0L3RgidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBsLTkgYmctbXV0ZWQvNTAgZm9jdXMtdmlzaWJsZTpyaW5nLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtxdWVyeX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UXVlcnkoZS50YXJnZXQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJTZWFyY2goZS50YXJnZXQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgey8qINCn0LXQutCx0L7QutGB0Ysg0LfQvtC9INC/0L7QuNGB0LrQsCAqL31cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHB0LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPtCY0YHQutCw0YLRjCDQsjo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00IHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtpblRpdGxlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluVGl0bGUoISFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyU2VhcmNoKHF1ZXJ5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAhIWMsIGluRGVzYywgaW5Db21wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCd0LDQt9Cy0LDQvdC40Y/RhVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17aW5EZXNjfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEluRGVzYyghIWMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJTZWFyY2gocXVlcnksIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGluVGl0bGUsICEhYywgaW5Db21wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCe0L/QuNGB0LDQvdC40LhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2luQ29tcH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tlZENoYW5nZT17KGMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJbkNvbXAoISFjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyU2VhcmNoKHF1ZXJ5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBpblRpdGxlLCBpbkRlc2MsICEhYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQmtC+0LzQv9C10YLQtdC90YbQuNGP0YVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB7Lyog0KHQv9C40YHQvtC6INC90LDQudC00LXQvdC90YvRhSDQvNCw0YHRgtC10YDQvtCyICovfVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBiZy1tdXRlZC8xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7cXVlcnkudHJpbSgpID09PSBcIlwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xNiBweC02IHRleHQtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTE2IHctMTYgcm91bmRlZC1mdWxsIGJnLW11dGVkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNYXBQaW4gY2xhc3NOYW1lPVwiaC04IHctOCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW1cIj7QktCy0LXQtNC40YLQtSDQt9Cw0L/RgNC+0YEg0LTQu9GPINC/0L7QuNGB0LrQsDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQo9C60LDQttC40YLQtSDQvdCw0LfQstCw0L3QuNC1INGD0YHQu9GD0LPQuCwg0L3QsNC/0YDQuNC80LXRgCAn0YPQsdC+0YDQutCwJyDQuNC70LggJ9C90Y/QvdGPJy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IGlzTG9hZGluZyAmJiBwZXJmb3JtZXJzLmxlbmd0aCA9PT0gMCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTYgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtOCB3LTggYm9yZGVyLTMgYm9yZGVyLXByaW1hcnkgYm9yZGVyLXQtdHJhbnNwYXJlbnQgcm91bmRlZC1mdWxsIGFuaW1hdGUtc3BpblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj7QmNGJ0LXQvCDQv9C+0LTRhdC+0LTRj9GJ0LjQtSDRg9GB0LvRg9Cz0LguLi48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IHBlcmZvcm1lcnMubGVuZ3RoID09PSAwID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0xNiBweC02IHRleHQtY2VudGVyIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTE2IHctMTYgcm91bmRlZC1mdWxsIGJnLW11dGVkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2ggY2xhc3NOYW1lPVwiaC04IHctOCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW1cIj7QndC40YfQtdCz0L4g0L3QtSDQvdCw0LnQtNC10L3QvjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQn9C+0L/RgNC+0LHRg9C50YLQtSDQuNC30LzQtdC90LjRgtGMINC30LDQv9GA0L7RgSwg0YDQsNGB0YjQuNGA0LjRgtGMINC30L7QvdGDINC/0L7QuNGB0LrQsCDQuNC70Lgg0YPQsdGA0LDRgtGMINGE0LjQu9GM0YLRgNGLLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXZpZGUteVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0yIGJnLW11dGVkLzMwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBzdGlja3kgdG9wLTAgYmFja2Ryb3AtYmx1ciB6LTEwIGJvcmRlci1iXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHdoaXRlc3BhY2Utbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQndCw0LnQtNC10L3QvjogPHN0cm9uZyBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmRcIj57cGVyZm9ybWVycy5sZW5ndGh9PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdCB2YWx1ZT17c29ydEJ5fSBvblZhbHVlQ2hhbmdlPXtzZXRTb3J0Qnl9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFRyaWdnZXIgY2xhc3NOYW1lPVwiaC03IHRleHQteHMgdy1hdXRvIG1pbi13LVsxNDBweF0gYm9yZGVyLW5vbmUgYmctdHJhbnNwYXJlbnQgc2hhZG93LW5vbmUgZm9jdXM6cmluZy0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFZhbHVlIHBsYWNlaG9sZGVyPVwi0KHQvtGA0YLQuNGA0L7QstC60LBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWxlY3RUcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdENvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJkZWZhdWx0XCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPtCY0LTQtdCw0LvRjNC90L4g0L/QvtC00YXQvtC00Y/RgjwvU2VsZWN0SXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cInByaWNlX2FzY1wiIGNsYXNzTmFtZT1cInRleHQteHNcIj7QodC90LDRh9Cw0LvQsCDQtNC10YjQtdCy0LvQtTwvU2VsZWN0SXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cInByaWNlX2Rlc2NcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+0KHQvdCw0YfQsNC70LAg0LTQvtGA0L7QttC1PC9TZWxlY3RJdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwiZGlzdGFuY2VfYXNjXCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPtCh0L3QsNGH0LDQu9CwINCx0LvQuNC20LU8L1NlbGVjdEl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlbGVjdENvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c29ydGVkSXRlbXMubWFwKChpdGVtLCBpZHgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IGl0ZW0ucGVyZm9ybWVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzT25saW5lID0gcC5zdGF0dXMgPT09IFwi0JPQvtGC0L7QsiDQuiDQt9Cw0LrQsNC30YNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBpdGVtLnR5cGUgPT09ICdvZmZlcicgPyBgJHtpdGVtLm9mZmVyLmlkfS0ke2lkeH1gIDogYCR7cC5wZXJmb3JtZXJJZH0tJHtpZHh9YFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0RGlzdGFuY2UgPSAoZD86IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGQgPT09IHVuZGVmaW5lZCB8fCBkID09PSBudWxsKSByZXR1cm4gJ9CSINCy0LDRiNC10Lwg0YDQsNC50L7QvdC1JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMTAwMCkgcmV0dXJuIGAke01hdGgucm91bmQoZCl9INC8INC+0YIg0LLQsNGBYDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHsoZCAvIDEwMDApLnRvRml4ZWQoMSl9INC60Lwg0L7RgiDQstCw0YFgO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyZm9ybWVyQ2xhc3NlcyA9IGl0ZW0udHlwZSA9PT0gJ29mZmVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIGJnLW11dGVkLzQwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBvcGFjaXR5LTAgbWF4LWgtMCBvdmVyZmxvdy1oaWRkZW4gdHJhbnNmb3JtIHNjYWxlLTk1IHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCBncm91cC1ob3ZlcjptYXgtaC1bMTAwcHhdIGdyb3VwLWhvdmVyOnNjYWxlLTEwMCBncm91cC1ob3ZlcjptdC0zIGdyb3VwLWhvdmVyOnAtMiBncm91cC1ob3Zlcjpib3JkZXItYm9yZGVyLzUwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBiZy1iYWNrZ3JvdW5kIGJvcmRlciByb3VuZGVkLWxnIHAtMyBzaGFkb3ctc20gbXQtMyBvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLWFsbFwiO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17YHBlcmZvcm1lci1jYXJkLSR7cC5wZXJmb3JtZXJJZH0tJHtpZHh9YH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVMaXN0UGVyZm9ybWVyQ2xpY2socC5wZXJmb3JtZXJJZCl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS00IGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tY29sb3JzIGdyb3VwICR7YWN0aXZlUGVyZm9ybWVySWQgPT09IHAucGVyZm9ybWVySWQgPyAnYmctcHJpbWFyeS81IHNoYWRvdy1pbm5lciBib3JkZXItbC00IGJvcmRlci1sLXByaW1hcnknIDogJ2hvdmVyOmJnLW11dGVkLzUwIGJvcmRlci1sLTQgYm9yZGVyLWwtdHJhbnNwYXJlbnQnfWB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey8qINCY0L3RhNC+0YDQvNCw0YbQuNGPINC+0LEg0YPRgdC70YPQs9C1INC40LvQuCDQutC+0LzQv9C10YLQtdC90YbQuNC4ICjQs9C70LDQstC90LDRjykgKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0udHlwZSA9PT0gJ29mZmVyJyA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00IGZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZ2FwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm9mZmVyLmltYWdlVXJsICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNocmluay0wIHctZnVsbCBzbTp3LTM2IGgtMzYgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW4gYmctbXV0ZWQgcmVsYXRpdmUgZ3JvdXAtaG92ZXIvaW1hZ2U6c2hhZG93LW1kIHRyYW5zaXRpb24tYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17aXRlbS5vZmZlci5pbWFnZVVybH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17aXRlbS5vZmZlci50aXRsZX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTUwMCBncm91cC1ob3ZlcjpzY2FsZS0xMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svMTAgZ3JvdXAtaG92ZXI6YmctdHJhbnNwYXJlbnQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tNTAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4tdy0wIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1zdGFydCBnYXAtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRleHQtbGcgbGVhZGluZy10aWdodCBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMgbGluZS1jbGFtcC0yXCI+e2l0ZW0ub2ZmZXIudGl0bGV9PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgZ2FwLTEgc2hyaW5rLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LXByaW1hcnkgd2hpdGVzcGFjZS1ub3dyYXAgYmctcHJpbWFyeS8xMCBweC0yIHB5LTAuNSByb3VuZGVkLW1kIHNoYWRvdy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5wcmljZX0g4oK9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHdoaXRlc3BhY2Utbm93cmFwIGJnLW11dGVkLzcwIHB4LTIgcHktMC41IHJvdW5kZWQtbWQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFBpbiBjbGFzc05hbWU9XCJoLTMgdy0zIHNocmluay0wXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdERpc3RhbmNlKHAuZGlzdGFuY2UpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ub2ZmZXIuZGVzY3JpcHRpb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbGluZS1jbGFtcC0yIGxlYWRpbmctcmVsYXhlZCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ub2ZmZXIuZGVzY3JpcHRpb259XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0yIHNlbGYtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2Avb2ZmZXJzLyR7aXRlbS5vZmZlci5pZH1gfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9IC8vIFByZXZlbnQgY2xpY2tpbmcgdGhlIGNhcmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MCBoLTkgcHgtNCBweS0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0J/RgNC+0YHQvNC+0YLRgNC10YLRjCDRg9GB0LvRg9Cz0YNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQndCw0LnQtNC10L3QviDQv9C+INC60L7QvNC/0LXRgtC10L3RhtC40LhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3AubWF0Y2hlZENvbXBldGVuY2llcy5tYXAoYyA9PiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGtleT17Y30gY2xhc3NOYW1lPVwicHgtMiBweS0wLjUgYmctcHJpbWFyeS8xMCB0ZXh0LXByaW1hcnkgdGV4dC1bMTBweF0gcm91bmRlZC1mdWxsIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIGZvbnQtbWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiDQmtCw0YDRgtC+0YfQutCwINC40YHQv9C+0LvQvdC40YLQtdC70Y8gKi99XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3BlcmZvcm1lckNsYXNzZXN9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGgtOCB3LTggc2hyaW5rLTAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiBiZy1ncmFkaWVudC10by1iciBmcm9tLWluZGlnby01MDAgdG8tcHVycGxlLTYwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXdoaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VXNlciBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLmF2YXRhclVybCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3AuYXZhdGFyVXJsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJBdmF0YXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGJnLWJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkVycm9yPXsoZSkgPT4geyBlLmN1cnJlbnRUYXJnZXQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gdGV4dC14cyB0cnVuY2F0ZVwiPntwLm5hbWV9PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHRleHQtWzEwcHhdIGZvbnQtbWVkaXVtIHNocmluay0wIGZsZXgtbm93cmFwICR7aXNPbmxpbmUgPyBcInRleHQtZ3JlZW4tNTAwXCIgOiBcInRleHQtZ3JheS00MDBcIn1gfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaC0xLjUgdy0xLjUgc2hyaW5rLTAgcm91bmRlZC1mdWxsICR7aXNPbmxpbmUgPyBcImJnLWdyZWVuLTUwMCBhbmltYXRlLXB1bHNlXCIgOiBcImJnLWdyYXktNDAwXCJ9YH0gLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Auc3RhdHVzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hcFBpbiBjbGFzc05hbWU9XCJoLTMuNSB3LTMuNSBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB0cnVuY2F0ZVwiPntmb3JtYXREaXN0YW5jZShwLmRpc3RhbmNlKX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1bMTFweF0gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kLzgwIGJnLW11dGVkLzgwIHB4LTIgcHktMC41IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Aucm9sZSB8fCBcItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYXNpZGU+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7IXNpZGViYXJPcGVuICYmIChcclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3Blbih0cnVlKX1cclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTIgdG9wLTIwIHotWzEwMDBdIGJnLWJhY2tncm91bmQgYm9yZGVyIHNoYWRvdy1sZyByb3VuZGVkLWxnIHB4LTQgcHktMyBob3ZlcjpiZy1tdXRlZCB0cmFuc2l0aW9uLWNvbG9ycyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8RmlsdGVyIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1wcmltYXJ5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICDQpNC40LvRjNGC0YDRiyDQuCDRgdC/0LjRgdC+0LpcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAgey8qID09PSDQmtCw0YDRgtCwID09PSAqL31cclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgcmVsYXRpdmUgei0wXCI+XHJcbiAgICAgICAgICAgICAgICB7aXNMb2NhdGlvbkxvYWRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICA8TGl2ZU1hcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtZXJzPXtwZXJmb3JtZXJzfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9e2Vycm9yfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ2VudGVyPXtpbml0aWFsQ2VudGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJvdW5kc0NoYW5nZT17aGFuZGxlQm91bmRzQ2hhbmdlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblVzZXJMb2NhdGVkPXtoYW5kbGVVc2VyTG9jYXRlZH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlUGVyZm9ybWVySWQ9e2FjdGl2ZVBlcmZvcm1lcklkfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJUcmlnZ2VyPXtjZW50ZXJUcmlnZ2VyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblBlcmZvcm1lckNsaWNrPXtoYW5kbGVQZXJmb3JtZXJDbGlja31cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctZnVsbCBoLWZ1bGwgYmctbXV0ZWQvMzBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTEwIHctMTAgYm9yZGVyLTQgYm9yZGVyLXByaW1hcnkgYm9yZGVyLXQtdHJhbnNwYXJlbnQgcm91bmRlZC1mdWxsIGFuaW1hdGUtc3BpblwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgdGV4dC1zbVwiPtCe0L/RgNC10LTQtdC70LXQvdC40LUg0LLQsNGI0LXQuSDQv9C+0LfQuNGG0LjQuC4uLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIClcclxufVxyXG4iXSwibmFtZXMiOlsiZHluYW1pYyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwiU2VhcmNoIiwiVXNlciIsIkZpbHRlciIsIk1hcFBpbiIsImdsb2JhbFNlYXJjaCIsIklucHV0IiwiQ2hlY2tib3giLCJTZWxlY3QiLCJTZWxlY3RDb250ZW50IiwiU2VsZWN0SXRlbSIsIlNlbGVjdFRyaWdnZXIiLCJTZWxlY3RWYWx1ZSIsIkxpdmVNYXAiLCJzc3IiLCJsb2FkaW5nIiwiZGl2IiwiY2xhc3NOYW1lIiwicCIsIlNlYXJjaFBhZ2UiLCJwZXJmb3JtZXJzIiwic2V0UGVyZm9ybWVycyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsImVycm9yIiwic2V0RXJyb3IiLCJzaWRlYmFyT3BlbiIsInNldFNpZGViYXJPcGVuIiwiYWN0aXZlUGVyZm9ybWVySWQiLCJzZXRBY3RpdmVQZXJmb3JtZXJJZCIsImNlbnRlclRyaWdnZXIiLCJzZXRDZW50ZXJUcmlnZ2VyIiwic29ydEJ5Iiwic2V0U29ydEJ5IiwicXVlcnkiLCJzZXRRdWVyeSIsImluVGl0bGUiLCJzZXRJblRpdGxlIiwiaW5EZXNjIiwic2V0SW5EZXNjIiwiaW5Db21wIiwic2V0SW5Db21wIiwibWFwQm91bmRzIiwic2V0TWFwQm91bmRzIiwiaW5pdGlhbENlbnRlciIsInNldEluaXRpYWxDZW50ZXIiLCJpc0xvY2F0aW9uTG9hZGVkIiwic2V0SXNMb2NhdGlvbkxvYWRlZCIsInNhdmVkUHJvZmlsZSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcm9maWxlIiwiSlNPTiIsInBhcnNlIiwiY3VycmVudExvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJlIiwiY29uc29sZSIsInNlYXJjaFRpbWVvdXRSZWYiLCJwZXJmb3JtU2VhcmNoIiwicSIsImxhdCIsImxvbiIsInJhZGl1cyIsInRpdGxlIiwiZGVzYyIsImNvbXAiLCJ0cmltIiwibGVuZ3RoIiwicmVzdWx0IiwiZXJyIiwidHJpZ2dlclNlYXJjaCIsIm5ld1F1ZXJ5IiwicmFkIiwiY3VycmVudCIsImNsZWFyVGltZW91dCIsImN1cnJlbnRMYXQiLCJjdXJyZW50TG9uIiwiY3VycmVudFJhZCIsInNldFRpbWVvdXQiLCJoYW5kbGVCb3VuZHNDaGFuZ2UiLCJoYW5kbGVVc2VyTG9jYXRlZCIsImhhbmRsZVBlcmZvcm1lckNsaWNrIiwiaWQiLCJlbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxJbnRvVmlldyIsImJlaGF2aW9yIiwiYmxvY2siLCJoYW5kbGVMaXN0UGVyZm9ybWVyQ2xpY2siLCJwcmV2Iiwic29ydGVkSXRlbXMiLCJpdGVtcyIsImZvckVhY2giLCJtYXRjaGVkT2ZmZXJzIiwibyIsInB1c2giLCJ0eXBlIiwicGVyZm9ybWVyIiwib2ZmZXIiLCJkaXN0YW5jZSIsInByaWNlIiwicHJpY2VBbW91bnQiLCJhbW91bnQiLCJzb3J0IiwiYSIsImIiLCJzdHlsZSIsImhlaWdodCIsImFzaWRlIiwiaDEiLCJidXR0b24iLCJvbkNsaWNrIiwicGxhY2Vob2xkZXIiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwidGFyZ2V0IiwibGFiZWwiLCJjaGVja2VkIiwib25DaGVja2VkQ2hhbmdlIiwiYyIsInVuZGVmaW5lZCIsInNwYW4iLCJzdHJvbmciLCJvblZhbHVlQ2hhbmdlIiwibWFwIiwiaXRlbSIsImlkeCIsImlzT25saW5lIiwic3RhdHVzIiwia2V5IiwicGVyZm9ybWVySWQiLCJmb3JtYXREaXN0YW5jZSIsImQiLCJNYXRoIiwicm91bmQiLCJ0b0ZpeGVkIiwicGVyZm9ybWVyQ2xhc3NlcyIsImltYWdlVXJsIiwiaW1nIiwic3JjIiwiYWx0IiwiaDQiLCJkZXNjcmlwdGlvbiIsImhyZWYiLCJyZWwiLCJzdG9wUHJvcGFnYXRpb24iLCJtYXRjaGVkQ29tcGV0ZW5jaWVzIiwiYXZhdGFyVXJsIiwib25FcnJvciIsImN1cnJlbnRUYXJnZXQiLCJkaXNwbGF5IiwibmFtZSIsInJvbGUiLCJvbkJvdW5kc0NoYW5nZSIsIm9uVXNlckxvY2F0ZWQiLCJvblBlcmZvcm1lckNsaWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/search/page.tsx\n"));
|
||
|
||
/***/ })
|
||
|
||
}); |